物件導向模型
物件導向模型是利用UML(整合模組化語言)的圖形來描述系統結構的模型,它從不同角度實現系統的工作狀態。這些圖形有助於使用者,管理員,系統分析人員,開發人員,測試人員和其他人員之間進行資訊交流。這裡主要介紹使用案例圖,順序圖表和類圖。
1.物件導向模型OOM
物件導向模型是利用UML的圖形描述系統結構的模型,可以利用PowerDesigner的物件導向模型進行建立。PowerDesigner支援UML的下列圖形。 使用案例圖(User Case Diagram):通常用來定義系統的高層次草圖,它從使用者角度描述了應用的系統功能,指出了各個功能的外部操作者。 順序圖表(Sequence Diagram):描述系統如何實際完成在User Case圖中定義的功能。可以畫出對象(類的執行個體)之間互動時產生的時序關係。 類圖(Class Diagram):描述類與類之間的靜態關係。其中包括一系列的包,類,介面和它們之間的關係。類圖是定義其他圖的基礎。
2.建立物件導向模型
(1)選擇File-New Model命令或者單擊工具列中的New Model表徵圖,彈出New Model視窗。
(2)在左側是Model type欄中選擇Object-Oriented Model(物件導向模型)選項,在右側輸入模型名稱,語言,如圖8-1所示。
圖8-1
(3)單擊“確定”按鈕,進入OOM設計工作區。在該工作區中可以定義OOM的屬性和操作,也可以設計各種UML的圖形。
(4)選擇Model-Model Properties命令,顯示如圖8-2所示OOM的Model Properties視窗。
圖8-2
(5)定義完畢後單擊“確定”按鈕。然後選擇File-Save As命令,以PubInfoSys.OOM這個名稱將所定義的模型存檔。
(6)設定模型的選擇。選擇Tools-Model Options命令,開啟Model Options(模型選項)視窗。如圖8-3所示。
圖8-3
(7)單擊Set As Default按鈕,設定為預設選項,然後單擊OK按鈕。
3.設計使用案例圖
3.1 使用案例圖用於系統需求分析階段,進行系統需求和功能設計,它包含執行者和用例兩個要素。執行者指使用者在系統中的角色,用例是使用者與電腦的一次互動。使用案例圖主要用來描述每個用例將有哪些執行者進行參與。 定義用例:用例是外部可見的一個系統功能單元,這些功能由系統單元提供,通過一系列單元與一個或多個參與者之間交換的訊息表達。 定義角色:角色描述了與系統相互作用的一組使用者,最明顯的角色是系統中的人,但也可能是系統本身。 定義關聯:用例除了與其參與者發生關聯外,還可以參與系統中的多個關係,允許定義的關聯有關聯,擴充,用例泛化,包括。
3.2定義使用案例圖
定義使用案例圖如下:
(1)單擊“用例”表徵圖定義4個用例,如圖8-4所示。
圖8-4
(2)選中第一個用例雙擊,開啟Use Case Properties(用例屬性)視窗,將Name屬性修改為“尋找”,將Code屬性修改為Search,如圖8-5所示。
圖8-5
(3)利用同樣的方法,修改其他3個用例屬性如圖8-6所示。
圖8-6
(4)單擊“執行者”表徵圖定義3個執行者,如圖8-7所示。
圖8-7
(5)選中第一個執行者並雙擊,開啟Actor Properties視窗,將Name屬性修改為“顧客”,將Code屬性修改為Buyer,如圖8-8所示。
圖8-8
(6)利用同樣的方法,修改其他兩個執行者的屬性。
(7)定義執行者和用例之間的關係。單擊“關係”表徵圖,再單擊執行者“顧客”並拖動滑鼠至用例“尋找”,釋放滑鼠,這時在執行者和用例之間建立了關係。雙擊該關係,開啟Association Properties視窗,將Name屬性修改為“查詢商品”,將Code屬性修改為SearchProduct。
(8)按照步驟(7)的方法,在其他執行者和用例之間建立關係。
(9)定義完成後的使用案例圖如圖8-9所示。
圖8-9
4設計順序圖表
4.1順序圖表(Sequence Diagram)是用來描述系統如何?完成在Use Case圖中定義的功能。可以畫出對象之間的互動時產生的時序關係。它一方面描述了一次互動,互動中涉及類圖中的類,另一方面細化了用例的描述。
順序圖表有角色(Actor),對象(Object),訊息(Message)和啟用期(Activation)幾個要素如果8-10所示。
圖8-10
訊息類型有: Message:訊息 Slef Message 遞迴訊息 Call Message帶有啟用期的訊息 Self Call Message帶有啟用期的遞迴訊息 Return Message返回訊息 Self Return Message遞迴返回訊息
4.2建立順序圖表
(1)選擇File-New Model命令,開啟New Model視窗。在視窗左側的Mode type欄選擇Object-Oriented Model選項,在右側的First diagram下拉式清單方塊中選擇Sequence Diagram選項,在Object language下拉框中選擇Java選項,如圖8-11所示。
圖8-11
(2)選擇完畢後單擊“確定”按鈕,進入PowerDesigner設計工作區。
(3)單擊Palette工具列的Object表徵圖,在右邊空白工作區單擊滑鼠,出現對象符號如圖8-12所示。
圖8-12
(4)在設計區空白地區右擊,滑鼠指標變為箭頭形狀,雙擊對象符號,彈出Actor Properties視窗,在Name文字框中輸入"來電者",在Code文字框中輸入“Caller”,然後單擊“確定”按鈕。
(5)重複步驟(3)(4),添加其他兩個對象,Name分別為“交換器”和“被叫方”,Code分別為Exchange和Receiver。
(6)單擊Palette工具列中的Message表徵圖,在“來電者”對象下方的虛線處單擊,拖動滑鼠至“交換器”對象下方的虛線釋放滑鼠,即可增加一個訊息。
(7)在設計區空白地區右擊,滑鼠指標變成箭頭形狀,雙擊對象符號,彈出“訊息屬性”視窗,在Name文字框中輸入“拿起話筒”,在Code文字框中輸入“Lift Reciever”,然後單擊“確定”按鈕。
(8)重複(6)(7),添加其他訊息。
(9)最終的順序圖表如圖8-13所示。
圖8-13
(10)選擇File-Save命令,儲存建立的物件導向模型
5設計類圖
類圖是用一種抽象的方法來描述對象及對象之間的關係,並不能描述對象的所有細節。
5.1建立Class(類)
(1)選擇File-New Model命令,開啟New Model視窗。在視窗左側的Mode type欄選擇Object-Oriented Model選項,在右側的First diagram下拉式清單方塊中選擇Class Diagram選項,在Object language下拉框中選擇Java選項,如圖8-14所示。
圖8-14
(2)在類圖工作區中單擊Palette工具列中的Class表徵圖,建立一個類,雙擊類圖的圖形符號,開啟Class Properties視窗。
(3)選擇Detail選項卡,可以定義類的更多屬性。
(4)選擇Attributes選項卡,可以為類增加屬性。單擊Add a Row表徵圖,增加屬性,也可以單擊Add Attributes表徵圖開啟Selection視窗列表模型中其他類的屬性,選擇需要的屬性,然後單擊“OK”按鈕即可。
(5)選擇Operations選項卡,單擊Add Operation表徵圖,開啟Selection視窗,從中可以選擇該模型中其他類包含的操作。選擇完畢後,單擊OK按鈕,所選的操作即可增加到當前類上。
(6)選擇Inner Classifies選項卡,可以為該類定義內部類。內部類是PowerDesigner的一個分類器,在UML中分類器是一個包含有屬性和操作等的模型元素。定義完畢後可以通過Preview選項卡觀察當前類或介面所包含的內部類代碼,如圖8-15所示。
圖8-15
(7)除了以上屬性外,還可以定義Associations,Identifies等屬性。屬性定義完畢後建立的內容如圖8-16所示。
圖8-16
5.2建立聯絡
在類圖中,聯絡有關聯,依賴,泛化和實現聯絡。
6.產生Java的原始碼
如圖8-17所示類圖,產生Java原始碼。
圖8-17
(1)在類圖中選擇Language-Generate Java Code命令,開啟Generation視窗,顯示模型中包含的類。
(2)在Selection選項卡的Classes選項卡中選擇類,在Directory欄中輸入Java原始碼的目標路徑。
(3)在Options選項卡中定義Java產生選項。
(4)在Tasks選項卡中定義Java產生任務選項,如圖8-18所示。
圖8-18
(5)單擊“確定”按鈕,開始產生Java源檔案,產生完成顯示Generated Files視窗。
(6)選擇一個源檔案,單擊Edit按鈕,將在文字編輯器中顯示該檔案的內容。如圖8-19所示。
圖8-19
7.根據Java代碼產生類圖
(1)選擇File-Reverse Engineer-Object Language彈出如圖8-20所示。
圖8-20
(2)在Object language欄選擇Java,單擊確定進入如下介面,如圖8-21所示。
圖8-21
(3)點擊Add,添加Java檔案,再單擊確定即可產生相應的Java類圖(在Reverse engineer欄中還可以選擇Java位元組碼檔案或檔案目錄),如圖8-23所示。
圖8-23