一開始就放一張圖,是因為這就是面向對象方法的開發過程。在介紹這個圖之前,我們還要知道,
問題域:被開發系統的應用領域
系統責任:所開發系統應具備的職能
這兩個概念。
好,現在開始一個個分析。
論域分析
其主要内容為:
開發論域問題的模型;考察問題論域内的一個較寬的範圍,分析覆寫的範圍應比直接要解決的問題更多;及建立大緻的系統實作環境。
應用分析
其主要内容為:
應用分析則根據特定應用的需求進行論域分析;應用哦分析細化在論域分析階段所開發出來的資訊,把注意力集中于目前要解決的問題。
高層設計
高層設計其實是系統頂層的類的視圖,是對較為關鍵的類的設計;
類開發
類開發是高層設計的進一步說明。類的開發從對類的規格說明開始。
上圖是類的三種生存方式,要麼是把既存類直接複用,要麼是既存類開發,亦或者是從廢棄的裡面選出來在開發。
關于類:
- 一旦辨別了一個類,就給出了它的規格說明,其中包括類的執行個體可執行的操作(類的方法)和資料表示(類的屬性);
- 對每一個,無論是哪個階段辨別的類皆是如此;
- 類的規格說明定義了施加于對象的存儲上的一組操作;
類的實作:
- 通過變量的聲明,操作界面的實作及支援界面操作的函數的實作,可實作一個類的預期行為和狀态;
- 實作是與語言相關的。一個好的面向對象語言應當分離共有界面和其内部實作;
類的測試:
- 如果類的定義提供的界面比較狹窄,那麼窮舉測試就有可能實作;
- 類的測試在最抽象的層次開始,沿繼承的層次依次向下進行,也就是自頂向下的方式;
- 已經測試過的部分不需要再測試
求精和維護
- 這是一個在軟體生存期中最花費時間的部分;
- 傳統的維護活動是針對應用的,而求精過程是針對類,針對把類內建在一起的結構;
- 我們可以辨別抽象的抽象,使得繼承結構通過一般化增加新的層次,即在既存的根類上增加一個新的層次