圖中,方塊表示一個對象,方塊中的文字中冒號之前的部分是對象的名字,冒號之后的是對象所屬的類的名字。方塊下面的豎直虛線是對象的生命線,表示對象按照從上到下的時間軸的在某段時間內存在。對象間的箭頭表示對象之間的消息通訊。而那些狹長的長方塊表示某個操作方法執行的時間和調用關系。
順序圖有一個孿生兄弟——協作圖,AddTask的協作圖是這樣的。
這兩種圖描述的其實是同一種東西,即實現某種系統功能的一組對象和它們之間的消息傳遞。不過在順序圖中,時間是作為一個顯式的因素出現的,這是的順序圖在構造實時系統時特別有用。而在協作圖中,沒有顯式的時間因素,但是對象之間的關聯是一目了然的,這對我們在一組相互關聯的對象的語境中考察它們的消息傳遞是很有幫助的。順序圖和協作圖是對同一事物的不同角度的考察。
我們從Use Case自然語言的描述得到了它的順序圖,從順序圖中我們可以發現許多類。你瞧,我們有一個窗口,所以需要有一個對應的窗口類;我們有一個Task對象,相應的就得有一個Task類,類似的,Tasks這個用來管理和組織Task的集合對象也是必須的。Great!現在你看到Use Case和順序圖對識別和發現類的作用了吧!在傳統的面向對象分析中,類的識別是靠分析人員的經驗和靈感來進行的,這太難以把握了,F在有了Use Case的概念,就可以為對象和類的識別提供一個有力的線索和支點。通過分析Use Case,構造它的順序圖描述,再加上傳統的對問題域中的對象和類的考察,可以發現大多數和系統相關的類。面向對象分析中最重要也是最困難的識別和分析類的工作再也不是一種神秘的法術了(你凌空一指,變出了類),現在人人都可以勝任這個活兒了。
經過識別和分析Use Case,我們的需求分析工作可以告一段落了,F在我們著手分析系統的靜態結構——就是類的分析和設計。
靜態結構分析
通過分析Use Case和問題域,我們得到了類,F在我們要分析這些類的屬性、操作和它們之間的關系,即系統的靜態結構。
關于類的屬性和操作的識別和分析,眾多的面向對象分析的書籍中已經有較多的論述,我不多說了。屬性就是對象必須要存貯的信息,而類的操作,則可以通過順序圖中向對象發送的消息來識別。我們重點看一看類之間的關聯。
系統的靜態結構主要用類圖來表示。在類圖中,類用一個方框來表示,這個方框用橫線分為三個部分,第一部分是類的名字,第二部分是類的屬性,第三部分是類的操作。類之間的關聯用一條連接類方框的橫線來表示。一端有箭頭的的橫線表示單向關聯,沒有箭頭的表示雙向關聯。對類之間關聯的良好分析對以后的實現和擴充都有非常大的幫助。
邏輯上相關的類可以被封裝成包,這為我們組織和管理所開發的系統以及開發過程提供了一個很好的手段。大家在我們這個例子的類圖上可以看到幾個包。
文章來源于領測軟件測試網 http://www.kjueaiud.com/