Coad和Yourdon的方法是建立在信息模型化技術、面向對象的程序設計和知識庫系統的基礎之上的,方法分為面向對象的分析(OOA)和面向對象的設計(OOD)。我們在這裡先討論Coad和Yourdon面向對象的分析,在下一節中再討論面向對象的設計。
Coad和Yourdon認為面向對象的分析主要應該考慮:一個與特定應用有關的對象,對象與對象在結構和相互作用上的關系。在面向對象的分析中,需要建立分析模型來描述系統的功能。
OOA的任務
面向對象的分析需要完成兩個任務:
●形式的說明所面對的應用問題,最終成為軟件系統基本構成的對象,以及系統所必須遵從的、由應用環境所決定的規則和約束。
●明確地規定構成系統的對象如何協同工作,完成指定的功能。
通過面向對象的分析建立的系統模型是以概念為中心的,因此稱為概念模型。概念模型由一組相關的類組成。面向對象的分析可以自頂向下地逐層分解建立系統模型,也可以自底向上地從已經定義的類出發,逐步構造新的類。
概念模型構造和評審的順序由五個層次構成:類和對象層、屬性層、服務層、結構層、主題層。這五個層次不是構成軟件系統的層次,而是分析過程中的層次,也可以說是問題的不同側面,每個層次的工作都為系統的規格說明增加了一個組成部分。當五個層次的工作全部完成時,面向對象的分析的任務也就完成了。
OOA的步驟
面向對象的分析通常按照下面的步驟進行:
(1).標識對象和類。可以從應用領域開始,逐步確定形成整個應用的基礎的類和對象。這個步驟要通過分析領域中目標系統的責任、調查系統的環境,從而確定對系統有用的類和對象。
(2).標識結構。典型的結構有兩種,一般--特殊結構和整體--部分結構。一般--特殊結構表示一般類是基類,特殊類是派生類;整體--部分結構表示聚合,由屬於不同類的成員聚合成為新的類。
(3).標識屬性。對象所保存的信息稱為它的屬性。類的屬性所描述的是狀態信息,在類的某個實例中屬性的值表示該對象的狀態值。對於每個對象,我們都需要找出在目標系統中對象所需要的屬性,而後將屬性安排到適當的位置,找出實例連接,最後進行檢查。對每個屬性應該給出描述,由屬性的名字和屬性的描述來確定,並指定對該屬性存在哪些特殊的限制(如只讀、屬性值限定於某個范圍之內等)。
(4).標識服務。對象收到消息後執行的操作稱為對象提供的服務,它描述了系統需要執行的處理和功能。定義服務的目的在於定義對象的行為和對象之間的通信。其具體步驟包括標識對象狀態、標識必要的服務、標識消息連接和對服務的描述。可以用和流圖類似的圖形來指明服務。
(5).標識主題。對於包含大量類和對象的概念模型往往難以掌握,標識主題則對模型進行劃分,給出模型的整體框架,劃分出層次結構。但是Coad和Yourdon並沒有提出如何標識主題的具體建議。在標識主題時,可以采取先識別主題,而後對主題進行改進和細化,最後將主題加入到分析模型當中步驟進行。主題是一個與應用相關的,而不是人為任意引出的概念,主題層的工作有助於分析的結果。