1.1 為什么要建模
建立大廈和建立狗窩的區別是建設狗窩不需要設計。要生產合格的軟件就要有一套關于體系結構、過程和工具的規范。
建模的定義:建模是對現實的簡化。
建模的目標:
1)模型幫助我們按照實際情況或按照我們所需要的樣式對系統進行可視化。
2)模型允許我們詳細說明系統的結構和行為。
3)模型給出一個知道我們構造系統的模板。
4)模型對我們的決策進行文檔化。
建模就是把復雜的系統變成小的系統,采用“各個擊破”的原則逐一解決。
1.2 建模原理
1)選擇創建什么模型很重要,模型要反映你難于處理的開發問題。
2)模型要在不同的精度級別上來表示。你可以根據觀察的角色和觀察的原因來選擇精度。
3)建造模型要和現實相連。
4)重要的系統需要用一組獨立的模型去處理。在面向對象的軟件體系中,為了理解系統的體系結構,你需要幾個互補和連鎖的視圖:用例圖、設計視圖、進程視圖、實現視圖和實施視圖。
1.3 面向對象的建模
面向算法的建模在需求發生變化或者系統增長后就變得難以維護。
面向對象的建模把對象和類作為其主要構造塊。例如,在三層結構中,我們可以在用戶接口層、中間層和數據庫層中找到你想要的對象。
2 UML介紹
2.1 概述
UML可以對軟件密集型系統的制品進行可視化、詳述、構造和文檔化。最好把它用于以用況(用例)為驅動、以體系結構為中心、跌代及增量的過程中。
UML是一種語言,它是一種可視化的語言,它是一組圖形符號。它可用于詳細描述。它又是一種構造語言,可以直接生成代碼。用Rational XDE就可以實現從UML到C#,或者從C#到UML的雙向工程。
2.2 UML的概念模型
學習建模的三個要素:UML的基本構造塊、這些構造塊放在一起的規則、一些運用于整個UML的公共機制。
UML中由一些四種事物
1)結構事物 --- 類、接口、協作(它是一個交互,它是由一組共同工作以提供某協作行為的角色和其它元素構成的一個群體。)、用例、主動類(至少擁有一個進程或者線程,其元素的行為可以和其它元素的行為并發)、構件(如COM+和Java Bean)、節點。
2)行為事物 --- 交互、狀態機(描述了一個對象或者一個交互在生命期內響應事件所經歷的狀態序列)。
3)分組事物 --- 包
4)注釋事物 --- 注解
UML中的四種關系
1)依賴 --- 兩個事物間的語義關系
2)關聯 --- 是一種結構關系,如聚合
3)泛化 --- 一般/特殊關系
4)實現 --- 用在兩種地方:接口和實現他們之間的類和構件之間;用例和實現他們的協作之間。
UML中的圖
1)類圖 --- 系統的靜態狀態圖,包含主動類的類圖給除系統的靜態進程視圖。
2)對象圖
3)用例圖
4)順序圖
5)協作圖
6)狀態圖
7)活動圖 --- 強調對象間的控制流程
8)構件圖
9)實施圖
2.3 體系結構
我們用5個互聯的視圖來描述軟件密集型系統的體系結構:
1)系統的用例圖
2)系統的設計視圖 --- 靜態方面由類圖和對象圖描述,動態方面由交互圖、狀態圖和活動圖描述。
3)系統的進程視圖 --- 包含了形成系統并發和同步機制的線程和進程。
4)系統的實現視圖 --- 主要針對系統發布的配置管理。
5)系統的實施視圖
2.4 軟件開發生命周期
用況驅動
以體系結構為中心
跌代過程 --- 涉及到一連串可執行發布的管理。
軟件開發生命周期的四個階段:
初始
細化
構造
移交
3 Hello World
4 類
4.3.1 對系統的詞匯建模
需要做如下工作:
1)識別用戶用于描述問題或解決問題的事物。
2)對于每個抽象,識別一個職責集。
3)提供為實現每個類的職責所需的屬性和操作。
4.3.2 對系統中職責的分布建模
抽象出來的類要適中,不要過大過小。
需要如下工作:
1) 識別一組為了完成某些行為而緊密協同工作的類。
2) 對上面的每一個類識別出一組職責。
3) 從整體上觀察這些類,過大的分解,過小的合并。
4) 考慮相映的協作方式,重新分配職責。
5 關系
面向對象建模中三種最重要的關系:
依賴 --- 使用關系
泛化 --- 一般/特殊關系
關聯 --- 結構關系
當你開始建模是,特別是解決這些對象的動態協作時,你還會遇到兩種其它的關系:鏈(可能發送消息的對象間的實例)和轉換(狀態機中不同狀態的連接)
對簡單依賴建模 ---(如一個類作為另一個類的參數) 依賴從操作的類指向當作參數的類。
對單繼承建模
對結構關系建模
6 公共機制
四個公共機制可以使UML簡化:詳述、修飾、公共劃分和擴展
構造型、標記值和約束使UML提供的用以增加新的構造塊、創建新的特性以及描述新的語義的機制。
7 圖
有5種最重要的互補視圖:用例視圖、設計視圖、進程視圖、實現視圖和實施視圖
每一種視圖包含結構建模(靜態)和行為建模(動態)
建圖的兩種方法:正向工程和逆向工程
一些術語:
系統:由子系統組成; 子系統:由元素組成; 模型:對現實的簡化; 視圖:對系統模型的組織和結構的投影,注重于系統的一個方面。
結構圖:類圖、對象圖、構件圖、實施圖。
行為圖: 用況圖、順序圖、協作圖、狀態圖、活動圖。
順序圖和協作圖統稱交互圖。順序圖強調消息的時間次序,協作圖強調收發消息的對象的結構組織。
活動圖強調對象之間的控制流。
如何選擇視圖來建模?
1)視圖能夠表達系統的體系結構,能夠暴露項目的技術風險。
2)決定用哪些制品來捕獲視圖的基本細節。
3)作為你的過程策略的一部分,決定把那種視圖至于某種形式或者半形式的控制之下。
4)保留廢棄的視圖。
兩種系統建模的方法:
1)針對同一模型,用不同層次上的細節描述圖。
2)在不同的抽象層次上,從一個模型跟蹤到另一個模型的方法建模。
8 類圖
類圖包括如下內容:
類
接口
協作
依賴、泛化和關聯關系。
對系統的靜態設計視圖建模時使用類圖的3種方式:
1)對系統的詞匯建模
2)對簡單協作建模 --- 協作提供的一些合作行為強于其所有元素行為之和。
3)對邏輯數據庫模式建模
9 高級類
在UML中更一般的構造塊是類元,類元包括:類、接口、數據類型、信號、構件、節點、用況和子系統。他是描述結構特性和行為特性的機制。
凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
、轉載請注明來處和原文作者。非常感謝。