系統(tǒng)架構(gòu)設(shè)計(jì)師教程知識清單6
第6章 UML建模與架構(gòu)文檔化
實(shí)際開發(fā)中和同事對接功能設(shè)計(jì)、寫文檔的時(shí)候使用很多,但是不同公司的規(guī)范有可能不一樣。
UML視圖
1 UML的4種類型10種視圖
用例圖:從外部用戶角度描述系統(tǒng)的功能
行為圖:包括交互圖(分為順序圖和合作圖)、狀態(tài)圖、活動(dòng)圖
靜態(tài)圖:包括類圖、對象圖、包圖
實(shí)現(xiàn)圖:包括構(gòu)件圖和部署圖
2 用例圖
用例(use case):一個(gè)使用一個(gè)橢圓表示(可以比較簡單地記成系統(tǒng)的一個(gè)基本功能)
用例圖(use case diagram):一組用例、參與者以及他們之間的關(guān)系的圖
參與者指系統(tǒng)以外、需要使用系統(tǒng)或與系統(tǒng)交互的東西。一個(gè)參與者可以執(zhí)行多個(gè)用例,一個(gè)用例也可以由多個(gè)參與者使用。(注意一個(gè)有定時(shí)重啟功能的系統(tǒng)中的時(shí)間也可以作為參與者)
參與者與用例之間的關(guān)系:關(guān)聯(lián)
用例與用例之間的關(guān)系:泛化(可記為繼承)、包含(可記為共用)、擴(kuò)展(可記為異常)
3 行為圖
描述一個(gè)用例的行為和設(shè)計(jì)對象之間的消息傳遞
順序圖(時(shí)序圖):顯示對象之間交互關(guān)系的圖
協(xié)作圖:描述系統(tǒng)的行為是如何由系統(tǒng)的成分寫作實(shí)現(xiàn)的圖
狀態(tài)圖:描述一個(gè)對象在其生存期間的動(dòng)態(tài)行為。一般可以用狀態(tài)機(jī)建模
活動(dòng)圖:描述系統(tǒng)的工作流程和并發(fā)行為。重要概念:活動(dòng)、泳道(活動(dòng)圖中的區(qū)域劃分)、分枝、分叉和匯合、對象流
4 靜態(tài)圖
類圖:一個(gè)劃分為三個(gè)格子的長方形
類之間的關(guān)系有關(guān)聯(lián)、聚集(部分與整體,但不同生存周期,如學(xué)校和學(xué)生)、組合(部分與整體,同生存周期,如學(xué)校和院系)、泛化(繼承反向?yàn)榉夯?、依?/p>
對象圖
包圖
5 實(shí)現(xiàn)圖
構(gòu)件圖:顯示一組構(gòu)件以及他們之間的相互關(guān)系,包括編譯、鏈接或執(zhí)行時(shí)構(gòu)件之間的依賴關(guān)系
構(gòu)件是一個(gè)實(shí)際文件,可以有幾種類型:部署文件如dll、exe等;工作產(chǎn)品構(gòu)件如源代碼文件、數(shù)據(jù)文件等;執(zhí)行構(gòu)件(系統(tǒng)執(zhí)行后得到的構(gòu)件)
部署圖:又叫配置圖、實(shí)施圖,可以用來顯示系統(tǒng)中計(jì)算結(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和通信路徑與結(jié)點(diǎn)上運(yùn)行的軟構(gòu)件等。一個(gè)系統(tǒng)模型只有一個(gè)部署圖
基于UML的開發(fā)過程
1 開發(fā)的4個(gè)階段
初啟:目標(biāo)和范圍,可行性分析,經(jīng)濟(jì)效益分析
細(xì)化:需求分析(用例圖、類圖、活動(dòng)圖),高層設(shè)計(jì)(包圖),詳細(xì)設(shè)計(jì)(交互圖、類圖),原型構(gòu)造(交互圖)
構(gòu)建:分析,設(shè)計(jì),編碼,測試,集成
部署
2 基于UML的需求分析
(1)生成用例
(2)用活動(dòng)圖表示用例
(3)生成用例圖
(4)建立頂層架構(gòu)
(5)建立概念模型
3 面向?qū)ο蟮脑O(shè)計(jì)方法
(1)設(shè)計(jì)用例實(shí)現(xiàn)方案
提取邊界類、實(shí)體類和控制類
構(gòu)造交互圖
根據(jù)交互圖精化類圖
(2)設(shè)計(jì)技術(shù)支撐方案
(3)設(shè)計(jì)用戶界面
(4)精化設(shè)計(jì)模型
系統(tǒng)架構(gòu)文檔化
1 “4+1”視圖模型:
邏輯視圖(使用面向?qū)ο竽P?/span>設(shè)計(jì)的對象模型)+開發(fā)視圖(描述開發(fā)環(huán)境中軟件的靜態(tài)組織結(jié)構(gòu))+過程視圖(捕捉設(shè)計(jì)的并發(fā)和同步特性)+物理視圖(描述軟件到硬件的映射)+場景
邏輯架構(gòu):邏輯架構(gòu)主要支撐功能性需求
開發(fā)架構(gòu):主要關(guān)注軟件開發(fā)環(huán)境下實(shí)際模塊的組織
進(jìn)程架構(gòu):進(jìn)程架構(gòu)考慮一些非功能性的需求,如性能和可用性
物理架構(gòu):主要關(guān)注系統(tǒng)非功能需求,如可用性、可靠性等
2 迭代過程
進(jìn)行文檔化時(shí)。提倡一種更具有迭代性質(zhì)的方法:架構(gòu)先被原型化、測試、估量、分析,然后在一系列的迭代過程中被細(xì)化
場景驅(qū)動(dòng)的方法:系統(tǒng)大多數(shù)關(guān)鍵的功能以場景(或用例)的形式被捕獲
開始階段+循環(huán)階段
?