天天看點

淺談時序圖

前序:

這周基本都在肝txmini項目,不知道是不是我菜,總覺得難度還是挺高的,是以就沒太多時間整理知識點了。

項目進展了快大半個月了,最後因為性能問題,我們還是選擇重構原來的代碼。準備用golang去重構原本python 的代碼,但是如果要重構,又要怎麼重構呢?

因為時間實在是有限,一共才兩周,任務的配置設定和時間的策劃都很重要。是以我們先做了一個架構圖(最後有原圖(待更新)),因為原本python的代碼實在是太多,而且我們又不是特别熟悉python,是以我們打算用時序圖去完成整體架構的梳理。後面在配置設定入手去重構不同的元件

感悟:有個架構圖真香

一、 什麼是時序圖?

時序圖(Sequence Diagram),亦稱為序列圖、循序圖或順序圖,是一種UML互動圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動态協作。

時序圖是一個二維圖,橫軸表示對象,縱軸表示時間,消息在各對象之間橫向傳遞,依照時間順序縱向排列。

二、 時序圖的作用是什麼?

1、展示對象之間互動的順序。将互動行為模組化為消息傳遞,通過描述消息是如何在對象間發送和接收的來動态展示對象之間的互動;

2、相對于其他UML圖,時序圖更強調互動的時間順序;

3、可以直覺的描述并發程序。

三、 組成元素有哪些?

1. 角色(Actor)

系統角色,可以是人、機器、其他系統、子系統;在時序圖中用表示。

2. 對象(Object)

(1)對象的三種命名方式

第一種方式包括對象名和類名,例如:直播課時:課時,在時序圖中,用“對象:類”表示;

第二種方式隻顯示類名,即表示它是一個匿名對象,例如: :課程;在時序圖中,用“:類”表示;

第三種方式隻顯示對象名不顯示類名,例如:講師;在時序圖中,用“對象”表示。

(2)命名方式的選擇

三種命名方式均可,哪種最容易讓閱讀該時序圖的人了解,就選擇哪種。

(3)對象的排列順序

對象的左右順序并不重要,但是為了作圖清晰整潔,通常應遵循以下兩個原則:把互動頻繁的對象盡可能的靠攏;2.把初始化整個互動活動的對象放置在最左端。

3. 生命線(Lifeline)

在時序圖中表示為從對象圖示向下延伸的一條虛線,表示對象存在的時間。

4. 控制焦點(Focus of Control)

又稱為激活期,表示時間段的符号,在這個時間段内對象将執行相應的操作。它可以被了解成C語言語義中一對花括号{ }中的内容;用小矩形表示。

5. 消息(Message)

消息一般分為同步消息(Synchronous Message),異步消息(Asynchronous Message)和傳回消息(Return Message)。

消息的發送者把控制傳遞給消息的接收者,然後停止活動,等待消息的接收者放棄或者傳回控制。用來表示同步的意義;

消息發送者通過消息把信号傳遞給消息的接收者,然後繼續自己的活動,不等待接受者傳回消息或者控制。異步消息的接收者和發送者是并發工作的。

傳回消息表示從過程調用傳回。

6. 自關聯消息

表示方法的自身調用或者一個對象内的一個方法調用另外一個方法。

我們項目小部分的時序圖

(涉及項目是以就沒全部放出來了)

淺談時序圖

繼續閱讀