物件導向的分析與設計
引言
我們首先介紹一些名詞翻譯
object-oriented analysis and design物件導向分析和設計
assignning responsibilities分配職責
iterative development and the unified process迭代開發和統一的過程
embracing change擁抱變化
feedback and adaptation反饋和調整
iterative and incremental development迭代和持續開發
什麼是分析和設計
分析的重點在於調查問題本身和需求,而不是乙個解決方案。例如:我們如果需要乙個新的圖書館系統,它可以用來做什麼呢?分析是乙個廣義的稱呼,還有一些更加精準的稱呼,例如:需求分析,調查、研究需求,或者是物件分析,調查研究領域物件。
設計的重點在於乙個概念上的,可以滿足需求的解決方案,而不是這個解決方案的具體實現。例如:資料庫結構描述和軟體物件描述。最終,設計可以被實現。
和分析一樣,設計也還有一些更加精準的稱呼,物件設計或者是資料庫設計。
什麼是物件導向的分析和設計
在物件導向的分析過程中,重點是找到和描述問題領域的物件或者是概念。例如:在圖書館系統中,就包含下面一些概念:圖書,圖書館,顧客。
在物件導向的設計過程中,重點是定義軟體物件,以及它們如何協作來滿足需求。例如:在圖書館系統中,圖書這個軟體物件就包含title(標題)屬性和getchapter(獲取章節)方法。
最後在程式設計的時候,這些物件會有具體的實現,可能會變成程式語言中的類。
物件導向的分析和設計例項
這個例項中將包括四個步驟。
例項的背景是乙個骰子遊戲,投擲兩個骰子,兩個骰子點數相加,如果等於7就是贏了。否則,就是輸了。
定義用例
需求分析的結果可以描述為用例。用例和物件導向沒有關係,他們只是簡單的描述需求,描述流程,講故事。
玩骰子遊戲:乙個遊戲者投擲兩個骰子,如果兩個骰子的點數之和等於7,就贏了;否則,就輸了。
定義領域模型
物件導向分析的重點在於建立領域物件的描述。結果可以用領域模型來表達,領域模型中包含一系列領域概念和物件的圖表。
模型中包含一些重要的概念:遊戲者,骰子,骰子遊戲,一起他們的屬性和關聯。
需要注意的是,領域模型不是軟體物件的描述,它只是乙個現實世界的可視概念。
定義互動圖
物件導向設計的重點在於定義軟體物件以及它們之間的協作。通常使用互動圖來定義物件的協作。在圖中可以看出軟體物件之間的資訊流向,呼叫方法。
需要注意的是在現實世界中骰子是由遊戲者投資的,但是在軟體設計中,我們使用骰子遊戲來投擲骰子(意味著,傳送訊息給骰子物件)。軟體物件設計和程式**於現實世界,但是它們不是直接對映或者模擬現實世界。
定義類圖
除了使用動態的互動圖,還有必要建立靜態的類圖。類圖中可以看到類的屬性和方法。
相對於領域模型來說,類圖不描述現實世界,相反,它顯示的是軟體的類。
物件導向設計與分析
在前面裝載的一遍文章 類的高階 初步總結了類的相關使用。在這段的時間工作中,又讓我加強了對類和物件的了解。看了 物件導向設計與分析 的第三章 類與物件,裡面描述類和物件的關係也比較清晰,所以發表博文總結一下。1 物件的本質 我們可以將乙個物件概括為乙個有狀態 行為 識別符號的實體。物件的狀態包括這個...
物件導向的分析與設計
物件導向的分析與設計 引言 我們首先介紹一些名詞翻譯 object oriented analysis and design物件導向分析和設計 assignning responsibilities分配職責 iterative development and the unified process迭...
物件導向分析與設計
物件導向的程式設計,剛剛接觸的時候,給人一種抽象 透明的感覺,不知道該怎麼樣去理解,實踐就更不用說了。一 物件導向的分析 ooa 二 物件導向的設計 ood 三 物件導向程式設計 oop 現在物件導向的程式設計已成為一種趨勢,面向過程的程式設計使得系統不易於擴充套件和維護,如果客戶的需求發生改,需要...