圖6 “選擇建設項目”可選流1的順序圖
圖6 所示的順序圖是選擇建設項目用例的“可選流1”中對象之間的交互序列。也就是用戶不使用系統列出的建設項目,而是查詢建設項目從中選擇。在此順序圖中的對 象有某個質監機構的工作人員、選擇建設項目窗體的一個實例、TProject類的一個對象。某個質監機構的工作人員激活選擇建設項目窗體的一個實例。該窗 體創建TProject類的一個對象。接著窗體調用對象方法,獲得的所有建設項目,并且調用自身的方法將這些建設項目進行加載,供質監機構的工作人員選 擇。某個質監機構的工作人員將查詢信息提供給窗體進行查詢,窗體調用對象的查詢方法獲得建設項目。窗體調用自身的加載方法,將查詢得到的建設項目加載到窗 體上,供質監機構的工作人員選擇。質監機構的工作人員選擇某個建設項目之后,窗體調用對象的方法將用戶選擇的建設項目標識為當前的建設項目,以后所有的操 作將在這個建設項目上進行。

圖7 “選擇建設項目”可選流2的順序圖
圖7 所示的順序圖是“選擇建設項目”用例的可選流2中對象之間的交互序列。也就是不選擇建設項目而新建一個建設項目。在此順序圖中的對象有某個質監機構的工作 人員、選擇建設項目窗體的一個實例、TProject類的一個對象。某個質監機構的工作人員激活選擇建設項目窗體的一個實例。該窗體創建TProject 類的一個對象。接著窗體對象的方法,獲得所有的建設項目,并且調用自身的方法將這些建設項目進行加載,供質監機構的工作人員選擇。某個質監機構的工作人員 不進行選擇,新建建設項目,窗體調用對象的新建建設項目的功能。該功能在新建建設項目用例中描述。
2.4 整理分析類
整理分析類主要是依據用例實現部分的一系列的交互圖。我們已經獲得了分析類,在用例實現中我們在交互圖中使用了這些類。但是這些類還沒有屬性、職責。我們需要對他們進行整理,完成分析類的屬性、職責以及類之間的關系,并在類圖中將他們展示出來。
職責是分析類響應消息并完成特定功能的能力,包括對外提供服務和維護自身的信息。由于消息和職責存在著對應關系,根據消息就可以確定職責。在交互模型中對象之間的交互通過消息進行。將交互圖中將和該類有關的消息進行整理確定類的職責。
類之間并不是孤立的,利用類之間的關系就可以找到另一個類。利用協作圖中對象之間的連接就是分析類之間的關聯方式之一。分析類之間完整的關聯關系要根據所有事件序列中對象間的連接加以歸納。
屬性是分析類的基本內容。屬性的基本來源是用例的事件流描述。如果對分析類及方法的描述比較明確,屬性就比較容易獲取。要分析屬性也要結合分析類的方法,因為職責會使用屬性去完成功能。
在整理分析類的過程中一定要注意分析類不僅僅參與了一個用例,它可能參與了很多的用例,因此在分析屬性、職責及類之間關聯的時候要考慮每個用例的情況,進行歸納總結。通過整理分析類繪制的類圖僅僅是分析階段的類圖還需要在后續階段繼續完善和細化。

圖8 分析類Project
圖8就是整理出的一個分析類Project類的示例,當然這個類不僅僅是從選擇建設項目這個用例獲取的信息,它是綜合了所有相關的用例分析的結果。