面向對象建模獲得的模型包含系統的3個要素:靜態結構(對象模型)、交互次序(動態模型)和數據變換(功能模型)。數據結構
這三個模型解決的問題不一樣,其重要程度也不一樣:幾乎解決任何一個問題,都須要從客觀世界實體及實體間相互關係抽象出極有價值的對象模型;當問題涉及交互做用和時序時(好比,用戶界面及過程控制等),動態模型很重要;解決運算量很大的問題(好比,高級語言編譯科學與工程計算等),則功能模型更重要。spa
複雜問題(大型系統)的對象模型能夠由下面五個層次組成:主體層、類與對象層、結構層、屬性層、服務層。這5個層次就像疊在一塊兒的5張透明塑料片,它們一層比一層顯現出對象模型的更多細節。對象
創建對象模型繼承
面向對象分析首要的工做,是創建問題域的對象模型。這個模型描述了現實世界中的「類與對象」以及它們之間的關係,表示了目標系統的靜態數據結構。靜態數據結構對應用細節依賴較少,比較容易肯定;當用戶的需求變化時,靜態數據結構相對來講比較穩定。所以,用面向對象方法開發絕大多數軟件時,都首先創建對象模型,而後再創建另外兩個子模型。事件
對象模型一般有5個層次,基本的工做步驟是:首先肯定對象類和關聯(由於它們影響系統總體結構和解決問題的方法),對於大型複雜問題還要進一步劃分不一樣主題;而後給類和關聯添加屬性,目的爲進一步描述它們;接下來利用適當的繼承關係進一步合併和組織類。而對類中操做的最後肯定,則須要等創建了動態模型和功能模型以後,由於這兩個子模型更準確地描述了對類中提供的服務的需求。開發
創建動態模型編譯
第一步,編寫典型交互行爲的腳本。雖然腳本中不可能包括每一個偶然事件,可是,至少必須保證不遺漏常見的交互行爲。軟件
第二步,從腳本中提取出事件,肯定觸發每一個事件的動做對象以及接受事件的目標對象。方法
第三步,排列事件發生的次序,肯定每一個對象可能有的狀態及狀態間的轉換關係,並用狀態圖描繪它們。數據
最後,比較各個對象的狀態圖,檢查它們之間的一致性,確保事件之間的匹配。
順便解釋一下什麼是腳本,「腳本」原意是指「表演戲曲、話劇、拍攝電影、電視劇等所依據的本子,裏面記載臺詞、故事情節等」。
在創建動態模型的過程當中,腳本是指系統在某一執行期間內出現一系列事件。
創建功能模型
功能模型代表了系統中數據之間的依賴關係,以及有關的數據處理功能,它由一組數據流圖組成。其中的處理功能能夠用IPO圖(或表)、僞碼等多種方式進一步描述。一般在創建對象模型和動態模型以後再創建功能模型。