1. 程式人生 > >UML建模之時序圖(重點講矩形長條的連續與間斷)

UML建模之時序圖(重點講矩形長條的連續與間斷)

  時序圖(Sequence Diagram ,是互動圖的一種,另一種互動圖是協作圖,這兩種圖在Rose中可以相互轉化)用來描述按時間順序排列的物件之間的互動,它強調物件之間訊息傳遞的時間順序(協作圖強調物件之間的互動關係)。 時序圖都由哪些元素組成呢?
角色例項(某一角色的具體例項)        如上圖所示,:CommonUser就代表角色CommonUser的一個例項,角色例項的主要作用是啟用用例,接下來就是物件間的相互呼叫,從而完成用例的功能。 物件 上圖中頂端的一排帶尾巴虛線的矩形就代表各個物件,物件是有生命週期的,“叉號”就代表物件生命週期的結束。 生命線 物件下面的尾巴虛線就代表物件的生命線,它以“叉號”終結(在實際繪圖中叉號通常省略不畫) 會話(也叫一次互動)
       生命週期線上的長條矩形就代表一次會話(或一次互動),用VS逆向工程生成時序圖你會發現,UI層的 :frmLogin物件在呼叫BLL層的 :LogManager 物件時,兩次方法呼叫(TestLogin和AddWorkLog)之間的長條是斷開的,不是連續的,這是為什麼呢? 因為從UI層到DLL層的每一個來回的呼叫就代表一次會話,所以兩個方法呼叫之間的長條是斷開的而不是連續的
       那為什麼UI層的窗體物件下面的長條會一直不間斷呢,這個很簡單,因為整個互動過程在UI層的一個按鈕的單擊事件過程裡發生,既然是同一個事件過程(方法),就代表同一個會話(互動),當然不會斷開了,它會一直連續著,直到單擊事件過程結束 訊息
訊息是物件之間傳遞資訊的方式,訊息按時間順序在時序圖上排列。訊息按照其性質不同分為以下幾類 1、簡單訊息:用一個實箭頭表示,也是最常見的一種訊息形式 2、返回訊息:用一個虛箭頭表示 3、同步訊息 4、非同步訊息 3、4暫時沒用過,可能以後會用到        下面講一下為什麼在用抽象工廠+反射的程式裡,時序圖只用畫到介面層就可以了,而不用往下畫。在用VS逆向工程生成時序圖的時候,你會發現它也只是到介面層,而不會繼續往下走(這一點充分證明了,畫到介面層是正確的)        我的理解是:因為工廠裡面是用反射來例項化DAL層的類的,所以工廠和DAL層之間不存在引用關係。BLL層中用的都是介面層的方法(具體的實現是DAL層的dll檔案中的類的方法完成的),所以時序圖只畫到介面層,而不必往下畫。這只是我的看法,如果有不足的地方,歡迎雅正。