分為兩部分:
- 基礎(chǔ)知識(shí)部分
- 各類(lèi)圖的實(shí)際畫(huà)法畫(huà)法掌握及需要注意的地方
part1 important point:
-
面向?qū)ο蠓椒?/p>
- 面向?qū)ο笈c面向過(guò)程?
面向過(guò)程:面向的是數(shù)據(jù)流,簡(jiǎn)單易懂易掌握,但開(kāi)發(fā)效率低,重用性不好 面向?qū)ο?對(duì)現(xiàn)實(shí)中的事物進(jìn)行抽象,描述成**對(duì)象**,按對(duì)象的一致屬性,將對(duì)象劃分為**類(lèi)** - 面向?qū)ο笤O(shè)計(jì)的基本原則?
開(kāi)閉原則,替換原則,依賴(lài)倒置原則,接口分離原則
- 面向?qū)ο笈c面向過(guò)程?
統(tǒng)一建模語(yǔ)言
UML中圖的分類(lèi):結(jié)構(gòu)圖 行為圖-
統(tǒng)一過(guò)程
- 軟件生命周期:問(wèn)題集中在 做什么?怎么做?怎么用電腦做?做的對(duì)不對(duì)?長(zhǎng)時(shí)間運(yùn)行需要改變嗎?
就是 需求分析 設(shè)計(jì)模型 編碼 測(cè)試分析 維護(hù)
- 軟件生命周期:問(wèn)題集中在 做什么?怎么做?怎么用電腦做?做的對(duì)不對(duì)?長(zhǎng)時(shí)間運(yùn)行需要改變嗎?
-
UML的構(gòu)成
-
關(guān)系
依賴(lài),關(guān)聯(lián),泛化,實(shí)現(xiàn)
-
關(guān)系
正向工程和反向工程的概念
part2 各種圖
-
用例圖 use case diagram
-
什么是用例、用例圖?有什么用?
用例:系統(tǒng)外在的需求情況.一般是一個(gè)動(dòng)作,一個(gè)由系統(tǒng)提供用戶(hù)使用的動(dòng)作.在UML中一半用橢圓表示
用例圖:用例圖(use case diagram)是顯示一組用例、參與者以及它們之間的關(guān)系的圖
作用:幫助你分析系統(tǒng)有哪些功能,以及讓你明確系統(tǒng)內(nèi)部和系統(tǒng)外部(也就是角色)的交互的 -
用例圖有哪些主要的建模元素?
用例,參與者,系統(tǒng)邊界,和他們之間的關(guān)系
-
什么是參與者?
是指系統(tǒng)以外的、需要使用系統(tǒng)或與系統(tǒng)交互的事物, 包括: 人、設(shè)備、外部系統(tǒng)等
-
什么是用例?
用戶(hù)使用系統(tǒng)一項(xiàng)功能所進(jìn)行交互的文字描述
-
參與者、用例之間有哪些關(guān)系?
參與者之間有泛化(generalization)關(guān)系,特殊指向一般 用空心三角+實(shí)線表示
參與者和用例之間是關(guān)聯(lián)關(guān)系,表示了參與者與用例間的通信
用例之間的關(guān)系:泛化,包含,擴(kuò)展
包含關(guān)系:基本用例的行為包含了另一個(gè)用例的行為?;居美枋鲈诙鄠€(gè)用例中都有的公共行為。包含關(guān)系本質(zhì)上是比較特殊的依賴(lài)關(guān)系。
用例的泛化、包含、擴(kuò)展關(guān)系的比較。一般來(lái)說(shuō)可以使用“is a”和“has a”來(lái)判斷使用那種關(guān)系。泛化和擴(kuò)展關(guān)系表示用例之間是“is a”關(guān)系,包含關(guān)系表示用例之間是“has a”關(guān)系 -
如何獲取參與者?
誰(shuí)來(lái)使用系統(tǒng)的主要功能
誰(shuí)來(lái)維護(hù)系統(tǒng)
誰(shuí)對(duì)系統(tǒng)的結(jié)果感興趣
系統(tǒng)需要操作哪些硬件
需要與系統(tǒng)交互的其他系統(tǒng)有哪些 -
如何獲取用例?
和用戶(hù)交互
系統(tǒng)交互的目的是什么?
需要向系統(tǒng)輸入什么信息?
希望由系統(tǒng)進(jìn)行什么處理并從它得到何種結(jié)果?
* 如何詳述用例?
-
-
類(lèi)圖
-
什么是類(lèi)圖?類(lèi)圖有什么用?
類(lèi)圖:顯示出類(lèi)、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)。
作用:展示一個(gè)工程中每個(gè)類(lèi)所包含的函數(shù)和屬性,類(lèi)之間的關(guān)系,類(lèi)的組織方式等 -
類(lèi)圖包含哪些建模元素?
類(lèi)、接口 包以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系
-
類(lèi)的種類(lèi)
抽象類(lèi) --不能實(shí)現(xiàn)的類(lèi),是一種抽象
接口 --類(lèi)似抽象類(lèi),所有操作都未實(shí)現(xiàn)
關(guān)聯(lián)類(lèi)
模板類(lèi) --可以根據(jù)占位符或參數(shù)來(lái)定義類(lèi)
主動(dòng)類(lèi)
嵌套類(lèi) --java中的內(nèi)置類(lèi) -
類(lèi)之間的關(guān)系有哪些?如何表示?
- 組合 是一類(lèi)“強(qiáng)”的整體與部分的包含關(guān)系。成分類(lèi)別必須依靠合成類(lèi)別而存在 例如汽車(chē)與化油器 用實(shí)心菱形和實(shí)線表示
- 聚合 是一種has a 的弱關(guān)系 如池塘中有一只鴨子 這樣的關(guān)系 用空心菱形和實(shí)線表示
- 依賴(lài) 是一種弱化形式的關(guān)系,表示一類(lèi)別依賴(lài)于另外的類(lèi)別
- 關(guān)聯(lián) 當(dāng)一個(gè)類(lèi)作為另一個(gè)類(lèi)某個(gè)方法的參數(shù)時(shí),為關(guān)聯(lián)。
- 泛化 --感覺(jué)上就像是繼承,
- 實(shí)現(xiàn) 和泛化一樣 用空心三角加實(shí)線表示
- 關(guān)系之間的強(qiáng)弱:組合>聚合>關(guān)聯(lián)>依賴(lài)
而對(duì)于兩種關(guān)聯(lián)關(guān)系(組合和聚合之間的區(qū)分,個(gè)人覺(jué)得維基百科上的例子特別形象:例如,一個(gè)大學(xué)包含若干個(gè)系(如化學(xué)系),每個(gè)系由若干名教授。如果大學(xué)撤銷(xiāo),這些系也就不復(fù)存在了,但這些教授仍會(huì)繼續(xù)存在。還需注意,一名教授可以在不同系甚至不同學(xué)校兼職,而一個(gè)系不能屬于兩所大學(xué)。所以,大學(xué)與系之間是組成關(guān)系,而系與教授是聚合關(guān)系
-
聚合與組合的區(qū)別?
兩者的差別主要描述了子類(lèi)的生命周期的不同。組合關(guān)系中,一旦父類(lèi)被銷(xiāo)毀子類(lèi)也會(huì)隨之銷(xiāo)毀;聚合關(guān)系中,子類(lèi)的生命周期與父類(lèi)獨(dú)立。
派生屬性與派生關(guān)聯(lián)?
可以從其它屬性和關(guān)聯(lián)計(jì)算推演得到的屬性和關(guān)聯(lián)類(lèi)圖中的常用版型?類(lèi)圖的抽象層次?
邊界類(lèi) ,實(shí)體類(lèi) , 控制類(lèi)類(lèi)圖的抽象層次?
概念層
說(shuō)明層
實(shí)現(xiàn)層-
面向?qū)ο笤O(shè)計(jì)的原則?
- 開(kāi)閉原則:開(kāi):對(duì)擴(kuò)展開(kāi)放 閉:對(duì)修改封閉
- 替換原則:子類(lèi)可以在任何地方替換父類(lèi)
- 依賴(lài)倒置原則:依賴(lài)關(guān)系應(yīng)該是盡量依賴(lài)接口(或抽象類(lèi)),而不是依賴(lài)于具體類(lèi)
- 接口分離原則:使用多個(gè)專(zhuān)門(mén)的接口比使用單一的總接口要好,使用多個(gè)專(zhuān)用接口比使用單一的復(fù)合接口更好
-
-
活動(dòng)圖
-
什么是活動(dòng)圖?活動(dòng)圖有什么用?
活動(dòng)圖描述系統(tǒng)從一種活動(dòng)轉(zhuǎn)換到另一種活動(dòng)的整個(gè)過(guò)程
活動(dòng)圖通常對(duì)業(yè)務(wù)過(guò)程、工作流和用例實(shí)現(xiàn)進(jìn)行建模 -
活動(dòng)圖中包含哪些建模元素?
- 初始節(jié)點(diǎn) 一個(gè)黑點(diǎn),表示活動(dòng)的開(kāi)始,只能有一個(gè)
- 活動(dòng)終點(diǎn) 圓圈套黑點(diǎn),表示活動(dòng)處理完成
- 活動(dòng)節(jié)點(diǎn) 表示一個(gè)活動(dòng) 用半橢圓表示(區(qū)分于狀態(tài))
- 轉(zhuǎn)換 當(dāng)一個(gè)活動(dòng)結(jié)束時(shí),控制流就會(huì)馬上傳遞給下一個(gè)活動(dòng)節(jié)點(diǎn) 一條帶箭頭的直線
- 分支和監(jiān)護(hù)條件 用菱形表示,它有一個(gè)進(jìn)入轉(zhuǎn)換(箭頭從外指向菱形),一個(gè)或多個(gè)離開(kāi)轉(zhuǎn)換(箭頭從菱形指向外)
在分支的每個(gè)離開(kāi)轉(zhuǎn)換上都會(huì)有一個(gè)監(jiān)護(hù)條件,用來(lái)表示滿足什么條件的時(shí)候執(zhí)行該轉(zhuǎn)換 - 分岔與匯合 在UML中,采用同步線對(duì)分岔和匯合來(lái)對(duì)并發(fā)事件流建模,同步線是一種水平或垂直的粗線段
- 帶泳道 區(qū)分操作角色
活動(dòng)圖中的分支和分岔?
分支是一個(gè)控制流選擇某一個(gè)方向繼續(xù)執(zhí)行,控制流是串行的
而分岔則是控制流的分開(kāi) 控制流是并行的活動(dòng)圖中的對(duì)象流?
-
-
包圖
-
什么是包圖?包圖有什么用?
組織代碼
包圖包含哪些基本建模元素?
包 類(lèi)-
什么是包?
在UML中,包是用于把建模元素組織成組的通用機(jī)制。
分組事物 是其他建模元素的容器
* 包圖的建模原則?
重用等價(jià)原則、共同重用原則、共同閉包原則、非循環(huán)依賴(lài)原則
-
-
對(duì)象圖
-
什么是對(duì)象圖?對(duì)象圖有什么用?
對(duì)象圖表示一組對(duì)象和它們之間的聯(lián)系
-
對(duì)象圖中包含哪些建模元素?
對(duì)象
鏈接 -
對(duì)象圖與類(lèi)圖的比較?
對(duì)象是類(lèi)的實(shí)例
對(duì)象圖組織類(lèi) 類(lèi)圖組織類(lèi)
-
-
狀態(tài)機(jī)圖
-
什么是狀態(tài)機(jī)圖?狀態(tài)機(jī)圖有什么用?
狀態(tài)機(jī)圖描述狀態(tài)到狀態(tài)的控制流程,常用來(lái)對(duì)系統(tǒng)的動(dòng)態(tài)特征建模
-
狀態(tài)機(jī)圖包含哪些建模元素?
-
初態(tài)和終態(tài)
開(kāi)始的狀態(tài) 用實(shí)心圓表示 只能有一個(gè)
終態(tài) 點(diǎn)外有圈 可以有多個(gè) -
源狀態(tài)和目標(biāo)狀態(tài)
兩個(gè)狀態(tài),看名字也能知道這兩個(gè)狀態(tài)是要做什么的
-
轉(zhuǎn)換
事件[監(jiān)護(hù)條件]/動(dòng)作- 觸發(fā)事件
- 監(jiān)護(hù)條件
- 動(dòng)作
分支
-
-
怎樣建模狀態(tài)機(jī)圖?
- 尋找主要的狀態(tài)
- 確定狀態(tài)之間的轉(zhuǎn)換
- 細(xì)化狀態(tài)內(nèi)的活動(dòng)和轉(zhuǎn)換
- 用復(fù)合狀態(tài)展開(kāi)細(xì)節(jié)
-
-
交互圖
交互圖包括幾類(lèi)圖?分別描述什么,有什么用?
順序圖、通信圖、定時(shí)圖、交互概述圖順序圖包含哪些基本建模元素?
--對(duì)象、生命線、控制焦點(diǎn)、消息-
通信圖?
通信圖描述了系統(tǒng)中對(duì)象之間通過(guò)消息進(jìn)行的交互,強(qiáng)調(diào)了對(duì)象在交互行為中承擔(dān)的角色
-
順序圖與通信圖的比較?
- 順序圖強(qiáng)調(diào)消息的時(shí)間順序,通信圖強(qiáng)調(diào)參加交互的對(duì)象的組織,兩者可以相互轉(zhuǎn)換
- 順序圖不同于通信圖的兩個(gè)特征:
- 順序圖有對(duì)象生命線
- 順序圖有控制焦點(diǎn)
- 通信圖不同于順序圖的特征:
- 通信圖必須有消息順序號(hào)
順序圖與定時(shí)圖的不同?
交互概述圖是哪兩種圖的綜合?
-
其他圖
- 構(gòu)件圖
- 部署圖
- 復(fù)合結(jié)構(gòu)圖
- Profile圖
part3 實(shí)際作圖
下面對(duì)著幾個(gè)圖重點(diǎn)建模:
用例圖,類(lèi)圖,活動(dòng)圖,狀態(tài)機(jī)圖
使用工具Enterprise Architect 8.0
問(wèn)題背景
隨著網(wǎng)絡(luò)的不斷發(fā)展,web2.0時(shí)代早已全面到來(lái),web2.0最鮮明的特點(diǎn)就是與用戶(hù)的交互越來(lái)越多,這就導(dǎo)致了用戶(hù)所參與的網(wǎng)站也越來(lái)越多
但是,這些網(wǎng)站都有一個(gè)共同的特點(diǎn)--需要登錄進(jìn)行操作,這就使得用戶(hù)的賬號(hào)密碼不斷增加,能否使得賬號(hào)密碼的管理更加輕松?比如用手機(jī)
登錄網(wǎng)站?
需求分析
對(duì)于用戶(hù):他們需要輸入賬號(hào)之后,用手機(jī)確認(rèn)該請(qǐng)求之后就可以登錄了,用戶(hù)也可以向數(shù)據(jù)庫(kù)中添加網(wǎng)站信息(包括地址,賬號(hào)和密碼)
對(duì)于網(wǎng)站:他們收到用戶(hù)請(qǐng)求之后,由服務(wù)器向用戶(hù)的手機(jī)發(fā)送登錄請(qǐng)求,用戶(hù)如果在規(guī)定時(shí)間內(nèi)確認(rèn)該請(qǐng)求,將登錄,否則登錄超時(shí)
用例圖
(這里等簡(jiǎn)書(shū)markdown下可以傳圖片再增加吧)

類(lèi)圖

活動(dòng)圖

狀態(tài)機(jī)圖
