軟件工程概述
- 軟件工程產(chǎn)生的背景以及軟件工程的定義
- 開發(fā)模型:
- 線性模型
- 增量模型
- 螺旋模型
- 開發(fā)方法
- 結(jié)構(gòu)化方法
- 面向?qū)ο蠓椒?/li>
- 各個軟件工具
- 如項目管理工具扮念、分析設(shè)計工具嘶居、測試與分析工具等等
結(jié)構(gòu)化分析和設(shè)計方法
- 結(jié)構(gòu)化分析主要包括功能建模和數(shù)據(jù)建模戒财,通常使用數(shù)據(jù)流圖(DFD)和實體聯(lián)系圖(ERD)來描述
- 結(jié)構(gòu)化設(shè)計通常分為概要設(shè)計和詳細(xì)設(shè)計兩階段均践。
- 概要設(shè)計階段的重點在于合理劃分系統(tǒng)模塊桂躏,指導(dǎo)模塊劃分的原則是保證模塊之間的高內(nèi)聚低耦合原則抢埋。概要設(shè)計階段使用的工具是軟件結(jié)構(gòu)圖宋渔。
- 而進入到詳細(xì)設(shè)計階段州疾,建議使用NS圖這樣符合結(jié)構(gòu)化程序設(shè)計語言規(guī)范的工具來定義模塊內(nèi)部的流程
面向?qū)ο?/h1>
- 面向?qū)ο蟮母拍?
- 面向?qū)ο蠖x:Coad-Yourdon給出了一個定義:面向?qū)ο螅綄ο螅∣bject)+類(Class)+繼承(Inheritance)+通信(Messages)。如果一個軟件系統(tǒng)是使用這樣4個概念設(shè)計和實現(xiàn)的皇拣,則認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮?/li>
- 對象的定義
- 類的定義
- 繼承的定義
- 消息的定義
- 封裝定義
- 多態(tài)與動態(tài)綁定介紹
- 面向?qū)ο箝_發(fā)過程
- 系統(tǒng)分析階段
- 通過面向?qū)ο蠓治觯∣OA)严蓖,建立了概念模型。按照對模型進行構(gòu)造和評審的順序氧急,概念模型可分為五個層次颗胡,分別是:類與對象層、屬性層吩坝、服務(wù)層毒姨、結(jié)構(gòu)層和主題層
- 系統(tǒng)設(shè)計階段
- 系統(tǒng)對象設(shè)計階段:建立系統(tǒng)整體結(jié)構(gòu)并確認(rèn)接口
- 設(shè)計對象接口:加入接口有利于建立對象結(jié)構(gòu)與對象交互,更充分地展現(xiàn)對象的靜態(tài)钉寝、動態(tài)關(guān)系弧呐。
- 設(shè)計算法和數(shù)據(jù)結(jié)構(gòu)
- 確認(rèn)子系統(tǒng):以系統(tǒng)整體結(jié)構(gòu)圖描述各個子系統(tǒng)之間的相互服務(wù)關(guān)系闸迷。
- 確定子系統(tǒng)之間的通信
- 系統(tǒng)體系結(jié)構(gòu)設(shè)計階段:選擇系統(tǒng)環(huán)境與設(shè)計體系結(jié)構(gòu)
- 任務(wù)管理設(shè)計:主要包括從主結(jié)構(gòu)設(shè)計、分布式結(jié)構(gòu)設(shè)計俘枫、增加協(xié)調(diào)者和資源管理
- 數(shù)據(jù)管理設(shè)計:包括數(shù)據(jù)結(jié)構(gòu)設(shè)計和數(shù)據(jù)管理設(shè)計腥沽。
- 人機界面設(shè)計
- 系統(tǒng)實現(xiàn)、測試和維護階段
- 本書不做重點介紹鸠蚪。
- UML
- 構(gòu)架
- 由5類視圖構(gòu)成今阳,包括用例視圖、邏輯視圖茅信、進程視圖盾舌、構(gòu)件視圖(實現(xiàn)視圖)和部署視圖
- 基本構(gòu)造塊(圖示)
UML基本構(gòu)造塊的結(jié)構(gòu)
- UML的公共機制:為了使UML整個模型更加一致,UML定義了4種公共機制
- 規(guī)格說明(Specification)
- 修飾(Adornment)
- 通用劃分(CommonDivision)
- 擴展機制(ExtensibilityMechanism)
- UML的擴展機制
- 構(gòu)造型(Stereotype)
- 標(biāo)記值(Tagged)
- 約束(Constraint)
- 統(tǒng)一開發(fā)過程(RationalUnifiedProcess汹押,RUP):是由提出UML方法的Booch和Jacobson以Rational的Objectory為核心提出的一整套面向?qū)ο蟮能浖こ踢^程矿筝。
- 未感興趣。
- OOCASE:RationalRose工具簡介
- 未感興趣棚贾。
需求分析與用例建模
- 需求分析的核心概念和任務(wù)
- 需求的定義和類型
- 需求分析的任務(wù)
- 需求分析的過程
- 問題識別(需求獲冉盐)
- 分析與綜合(需求建模)
- 編制需求分析階段的文檔(需求描述)
- 驗證(需求評審)
- 用例圖(未感興趣,暫作記錄)
- 用例圖的定義與組成元素
- 系統(tǒng)邊界
- 行為者
- 場景和用例
- 用例之間的關(guān)系
- 包含(Include)
- 擴展(Extend)
- 泛化(Generalization)
- 用例圖的規(guī)格說明
- 未感興趣
- 案例分析
- 未感興趣
靜態(tài)建模
- 基本講述如何使用UML建模(設(shè)計)系統(tǒng)妙痹,描述得非常清晰铸史、透徹和全面,當(dāng)使用到的時候可以回頭翻閱怯伊;
- 面向?qū)ο蠓治龊驮O(shè)計的關(guān)系
- 類圖
- 類的名稱
- 類的屬性
- 類的操作
- 類的分類
- 類之間的關(guān)系
- 關(guān)聯(lián)
- 關(guān)聯(lián)關(guān)系的圖示表達(dá)
- 名稱
gmefP0.png
- 角色
gmeLI1.png
- 多重性
gmevRK.png
- 聚集(Aggregation)是關(guān)聯(lián)的特例
- 共享聚集:其中一個類描述了一個較大的事物(整體)琳轿,它由較小的事物(部分)組成,并且部分對象可以是任意整體對象的一部分耿芹,表示關(guān)系較弱的情況崭篡。它描述了“has a”關(guān)系,即將整體對象擁有部分對象表示成在整體對象的一端用一個空心菱形修飾的簡單關(guān)聯(lián)關(guān)系吧秕。
gmmidA.png
- 組合聚集:一種強形式的聚集琉闪,整體對象不僅擁有它的部分對象,并具有強的物主身份砸彬,表示“containsa”的關(guān)系颠毙,即將部分對象不能脫離整體對象存在表示成在整體對象的一端用一個實心菱形修飾的簡單關(guān)聯(lián)關(guān)系。
gmmWeH.png
- 依賴
- 依賴關(guān)系將行為或?qū)崿F(xiàn)與對其他類有影響的類聯(lián)系起來砂碉。依賴關(guān)系有很多種蛀蜜,除了實現(xiàn)關(guān)系以外,還有跟蹤關(guān)系(不同模型的元素之間的一種松散連接)增蹭、精化關(guān)系(兩個不同層次意義之間的一種映射)滴某、使用關(guān)系(在一個模型中需要另一個元素的存在)食店、綁定關(guān)系(為模板參數(shù)指定值)等旱易。
gmnzHH.png
- 泛化(繼承)
gmuiCt.png
- 對象圖
- 對象圖的定義和組成元素
- 對象圖和類圖的區(qū)別
- 對象圖建模
gmuUa9.png
- 接口
- 接口表示方法
- 接口的名稱
- 接口的操作
- 接口的關(guān)系
gmuoM8.png
- 理解接口
- 為了使接口易于理解和處理椰憋,可以為接口提供更多的信息厅克。首先,可以為各個操作附上前置和后置條件橙依,為整個類或構(gòu)件附上不變式证舟。這樣需要使用接口的客戶就能理解接口做什么以及如何使用它。
- 包
- 當(dāng)系統(tǒng)復(fù)雜度增加時窗骑,有必要把類女责、接口、構(gòu)件创译、結(jié)點抵知、圖等元素有序地組織起來,以更清晰地表達(dá)系統(tǒng)的層次關(guān)系软族。UML中的包(Package)提供了建模元素的分組機制刷喜。
- 包的定義和表示方法
- 包的名稱
gmKAiR.png
- 包的元素
- 包的嵌套
gmKnsO.png
gmKuLD.png
- 案例分析
-
某電子投票系統(tǒng)
電子投票系統(tǒng)的類圖
- 某高校藝術(shù)類招生考試管理
gmQ12t.png
gmQGKf.png
動態(tài)建模
- 消息
- 消息的定義
- (UML2.0已經(jīng)不用“約束”,見 http://www.uml.org.cn/oobject/200503082.htm)
- 消息的類型
gmywBF.png
- 時序圖
- 時序圖的組成元素
- 對象
- 生命線
gmy79I.png
- 激活
gm6ADU.png
- 消息
- 創(chuàng)建對象和撤銷對象
gm6wxP.png
gm66aQ.png
- 時序圖中的條件和分支
- UML使用約束表示立砸,UML2.0使用“組合片段”表示
- 時序圖中的約束(改概念和UML官方文檔有出入)
- 時序圖中的循環(huán)
- 協(xié)作圖
- 協(xié)作圖的組成元素
- 對象(Object)
- 消息(Messages)
- 鏈接(Link)
gmRolR.png
- 消息的層次關(guān)系和表達(dá)
- 協(xié)作圖中掖疮,對象之間傳遞的消息必須標(biāo)明序號,用以說明消息傳送的先后順序颗祝。序號標(biāo)識的方法有兩種浊闪,一種是順序標(biāo)識法,另一種是具有層次關(guān)系的標(biāo)識法——嵌套消息標(biāo)識法螺戳。
gmWPnP.png
- 協(xié)作圖中的循環(huán)
gmfrq0.png
- 時序圖和協(xié)作圖的關(guān)聯(lián)與差異
- 相同點主要有3個
- 兩種圖都直觀地規(guī)定了發(fā)送對象和接收對象的責(zé)任搁宾。
- 兩種圖都支持所有的消息類型。
- 兩種圖還是衡量耦合性的工具倔幼。
- 時序圖和協(xié)作圖之間有如下區(qū)別
- 協(xié)作圖的重點是將對象的交互映射到它們之間的鏈接上盖腿,但是時序圖卻不把鏈接表示出來。
- 時序圖可以描述對象的創(chuàng)建和撤銷情況凤藏。而在協(xié)作圖中,對象要么存在要么不存在堕伪,除了通過消息描述或約束外揖庄,沒有其他的方法可以表示對象的創(chuàng)建或撤銷。
- 時序圖可以表現(xiàn)對象的激活和去激活情況欠雌,但對于協(xié)作圖來說蹄梢,無法清晰地表示對象的激活和去激活情況。
gmfxsI.png
gmfzLt.png
- 狀態(tài)圖
- 狀態(tài)圖描述的是一種行為,它說明具體某一個對象在它的生命周期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列以及它們對那些事件的響應(yīng)禁炒。
- 在UML中描述一個狀態(tài)圖的圖符除了狀態(tài)圖符和狀態(tài)轉(zhuǎn)移圖符外而咆,還有起始狀態(tài)、終止?fàn)顟B(tài)幕袱、條件判定暴备、發(fā)出信號、接收信號和并發(fā)狀態(tài)等圖符
gmhvhF.png
- 狀態(tài)圖是由狀態(tài)们豌、事件涯捻、轉(zhuǎn)移、執(zhí)行動作和連接點組成的望迎,用來建模對象是如何改變狀態(tài)的障癌。
- 狀態(tài)(狀態(tài)包含以下)
- 名稱(Name)
- 進入/退出效應(yīng)(Entry/ExitEffect)
- 內(nèi)部轉(zhuǎn)移(InternalTransition):不導(dǎo)致狀態(tài)改變的轉(zhuǎn)移。
- 子狀態(tài)(Substate):狀態(tài)的嵌套結(jié)構(gòu)辩尊,包括非正交(順序活動)子狀態(tài)和正交(并發(fā)活動)子狀態(tài)涛浙。
- 延遲事件(DeferredEvent)
- 事件
- 可分內(nèi)部事件和外部事件,內(nèi)部事件有:
- 入口事件摄欲,以關(guān)鍵字entry說明
- 出口事件是UML提供的標(biāo)準(zhǔn)內(nèi)部事件轿亮,以關(guān)鍵字exit說明
- do事件是UML提供的標(biāo)準(zhǔn)內(nèi)部事件,以關(guān)鍵字do說明
- include事件是UML提供的標(biāo)準(zhǔn)內(nèi)部事件蒿涎,以關(guān)鍵字include說明
- 自定義內(nèi)部事件
- 也可將事件分為信號事件哀托、調(diào)用事件、時間事件和變化事件
- 信號事件也稱為信號(Signal)劳秋,是在實例間進行通信的異步消息的規(guī)約仓手。
- 調(diào)用事件表示對象接到一個操作調(diào)用請求。
- 時間事件表示到達(dá)指定時間時發(fā)生的事件玻淑。
- 變化事件表示狀態(tài)的一個變化或某些條件得到滿足的事件嗽冒。
gmIuwt.png
- 轉(zhuǎn)移
- 源狀態(tài)(SourceState)
- 事件觸發(fā)器(EventTrigger)
- 警戒條件(GuardCondition)
- 效應(yīng)(Effect)
- 目標(biāo)狀態(tài)(TargetState)
- 嵌套狀態(tài)
gmIbnA.png
- 順序狀態(tài)(上圖同時也是順序狀態(tài))
- 并發(fā)狀態(tài)
gmopcQ.png
gmonc4.png
- 歷史狀態(tài)
gmo3Ax.png
- 狀態(tài)圖之間的消息發(fā)送
gmoc8S.png
- 活動圖
- 活動圖用來表示完成一個操作所需要的活動,或者一個用例實例(場景)的活動补履√矸唬活動圖在本質(zhì)上類似于傳統(tǒng)結(jié)構(gòu)化方法中的流程圖,不同之處在于活動圖能夠展示并發(fā)和控制分支箫锤。
- 活動圖的組成元素
- UML活動圖中除了活動圖符外還有起始活動與終止活動贬蛙、對象、轉(zhuǎn)移谚攒、條件判定阳准、并發(fā)活動、接收信號與發(fā)出信號馏臭、泳道等各種圖符野蝇。
gmoo5V.png
- 活動圖一般包括動作、活動結(jié)點、流和泳道绕沈,像所有其他圖一樣锐想,活動圖也可以包括注解和約束。
gmTArd.png
gmTZVI.png
gmT3rj.png
gmHNgU.png
- 活動圖的層次關(guān)系
- 在一個活動圖中乍狐,其中的一個活動可以分解為若干個子活動或動作赠摇,這些子活動或動作可以組成一個新的活動圖。
- 案例分析
實現(xiàn)建模
- 邏輯建模
gmHo5t.png
- 構(gòu)件和構(gòu)件圖
- 構(gòu)件圖中通常包含3種元素:構(gòu)件澜躺、接口和依賴關(guān)系
gmbS5q.png
- 構(gòu)件圖
gmbEqJ.png
- 部署圖
- 節(jié)點
- 節(jié)點之間的聯(lián)系
- 建立部署圖的步驟
- 案例分析
gmbKG6.png
gmbQxO.png
軟件體系結(jié)構(gòu)概述
- 軟件體系結(jié)構(gòu)的描述
- 軟件體系結(jié)構(gòu)的描述方法
- 薦標(biāo)準(zhǔn)IEEE1471—2000蝉稳,定義了軟件體系結(jié)構(gòu)描述的內(nèi)容要求
- (1)功能性:指系統(tǒng)需要做什么。
- (2)性能:指在重度負(fù)載下系統(tǒng)將如何運轉(zhuǎn)掘鄙。
- (3)安全性:指系統(tǒng)是否有保護用戶信息的足夠能力耘戚。
- (4)可行性:指是否可以實現(xiàn)該系統(tǒng)。
- IEEE1471還定義了軟件體系結(jié)構(gòu)描述的標(biāo)準(zhǔn)操漠,包括:
- (1)體系結(jié)構(gòu)設(shè)計的標(biāo)識收津、版本、總體信息浊伙。
- (2)系統(tǒng)參與者的標(biāo)識以及在體系結(jié)構(gòu)中他們所關(guān)注方面的標(biāo)識撞秋。
- (3)組織體系結(jié)構(gòu)所選擇的視點規(guī)格說明以及這種選擇的基本原理。
- (4)一個或多個體系結(jié)構(gòu)視圖嚣鄙。
- (5)體系結(jié)構(gòu)描述所需的成分之間不一致的記錄吻贿。
- (6)體系結(jié)構(gòu)選擇的基本原理。
- 一般體系結(jié)構(gòu)描述方法
- 圖形表達(dá)工具:可以用類似于UML中的構(gòu)件圖來表達(dá)
- 模塊內(nèi)連接語言(MIL)
- 基于軟件構(gòu)件的系統(tǒng)描述語言:將軟件系統(tǒng)描述成一種由許多以特定形式相互作用的特殊軟件實體構(gòu)造組成的組織或系統(tǒng)
- 體系結(jié)構(gòu)描述語言(ADL)
- 軟件體系結(jié)構(gòu)的描述語言(ADL)
- ADL的三個基本元素是構(gòu)件哑子、連接件舅列、體系結(jié)構(gòu)配置。
- ADL通常解決以下幾個問題:
- (1)軟件行為規(guī)格說明卧蜓。
- (2)軟件協(xié)議規(guī)格說明帐要。
- (3)連接件規(guī)格說明。
- 主要的體系結(jié)構(gòu)描述語言有Aesop弥奸、MetaH榨惠、C2、Rapide盛霎、SADL赠橙、Unicon和Wright等
- 動態(tài)軟件體系結(jié)構(gòu)
- Web服務(wù)體系結(jié)構(gòu)
- 軟件產(chǎn)品線體系結(jié)構(gòu)
軟件體系結(jié)構(gòu)風(fēng)格
- 軟件體系結(jié)構(gòu)風(fēng)格的定義
- 軟件體系結(jié)構(gòu)風(fēng)格描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式,通常獨立于實際問題愤炸。
- 經(jīng)典的軟件體系結(jié)構(gòu)風(fēng)格
- 管道/過濾器風(fēng)格
- 基于事件的隱式調(diào)用風(fēng)格
- 構(gòu)件不直接調(diào)用一個過程期揪,而是觸發(fā)或廣播一個或多個事件。系統(tǒng)其他構(gòu)件中的過程在一個或多個事件中注冊摇幻,當(dāng)一個事件被觸發(fā)横侦,系統(tǒng)自動調(diào)用這個事件中注冊的所有過程。
- 分層風(fēng)格
gnUrPf.png
- 倉庫風(fēng)格與黑板系統(tǒng)
- 倉庫風(fēng)格是以數(shù)據(jù)為中心的體系結(jié)構(gòu)風(fēng)格绰姻。
- 黑板系統(tǒng)由知識源枉侧、黑板數(shù)據(jù)結(jié)構(gòu)和控制器組成
- 客戶機/服務(wù)器結(jié)構(gòu)
- 瀏覽器/服務(wù)器結(jié)構(gòu)
- 公共對象請求代理結(jié)構(gòu)(CommonObjectRequestBrokerArchitecture,CORBA):一種獨立于語言和軟件/硬件平臺的軟件體系結(jié)構(gòu)規(guī)范狂芋。
- 正交軟件體系結(jié)構(gòu)
- 每一條線索的實現(xiàn)與其他線索的實現(xiàn)無關(guān)或關(guān)聯(lián)很少榨馁,在同一層中的構(gòu)件之間是不存在相互調(diào)用的。如果線索是相互獨立的帜矾,即不同線索中的構(gòu)件之間沒有相互調(diào)用翼虫,那么這個結(jié)構(gòu)就是完全正交的。
gnUTRU.png
- 主要特征:
- (1)由完成不同功能的n(n>1)個線索(子系統(tǒng))組成屡萤。
- (2)系統(tǒng)具有m(m>1)個不同抽象級別的層珍剑。
- (3)線索之間是相互獨立的(正交的)。
- (4)系統(tǒng)有一個公共驅(qū)動層(一般為最高層)和公共數(shù)據(jù)結(jié)構(gòu)(一般為最低層)死陆。
- 異構(gòu)軟件體系結(jié)構(gòu)
- 在實際的系統(tǒng)開發(fā)中存在許多案例招拙,它們不只使用一個體系結(jié)構(gòu)風(fēng)格,而是由某些體系結(jié)構(gòu)組合而成
- 基于云計算的軟件體系結(jié)構(gòu)
gnaPQe.png
設(shè)計模式
- 設(shè)計模式概述
- 設(shè)計模式的分類
- 懶得記錄了措译。
- 設(shè)計模式原則
- 懶得記錄了别凤。
- 典型設(shè)計模式
- 用示例描述了工廠、抽象工廠领虹、橋接规哪、組合、迭代器塌衰、MVC等模式诉稍,不作記錄了。
- 基于構(gòu)件和基于體系結(jié)構(gòu)的軟件開發(fā)
gndyuQ.png
- 案例分析……
軟件體系結(jié)構(gòu)評估
- 體系結(jié)構(gòu)評估方法
- 質(zhì)量屬性專題研討會(QAW)
- 體系結(jié)構(gòu)權(quán)衡分析方法(ATAM)
- 軟件體系結(jié)構(gòu)分析方法(SAAM)
- 積極的中間設(shè)計審核(ARID)
- ATAM評估方法:(ArchitectureTradeoffAnalysisMethod猾蒂,架構(gòu)權(quán)衡分析方法)是一種比較全面的軟件架構(gòu)評估方法均唉。
- ATAM分為4個評估階段共9個步驟。
gnByuD.png
完結(jié)
- 體系結(jié)構(gòu)從軟件出發(fā)肚菠,標(biāo)準(zhǔn)化舔箭、模式化輸出解決軟件復(fù)雜度的辦法,其實正正是現(xiàn)代軟件架構(gòu)的同義詞和發(fā)展基礎(chǔ)蚊逢。
- 面向?qū)ο蠖x:Coad-Yourdon給出了一個定義:面向?qū)ο螅綄ο螅∣bject)+類(Class)+繼承(Inheritance)+通信(Messages)。如果一個軟件系統(tǒng)是使用這樣4個概念設(shè)計和實現(xiàn)的皇拣,則認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮?/li>
- 對象的定義
- 類的定義
- 繼承的定義
- 消息的定義
- 封裝定義
- 多態(tài)與動態(tài)綁定介紹
- 系統(tǒng)分析階段
- 通過面向?qū)ο蠓治觯∣OA)严蓖,建立了概念模型。按照對模型進行構(gòu)造和評審的順序氧急,概念模型可分為五個層次颗胡,分別是:類與對象層、屬性層吩坝、服務(wù)層毒姨、結(jié)構(gòu)層和主題層
- 系統(tǒng)設(shè)計階段
- 系統(tǒng)對象設(shè)計階段:建立系統(tǒng)整體結(jié)構(gòu)并確認(rèn)接口
- 設(shè)計對象接口:加入接口有利于建立對象結(jié)構(gòu)與對象交互,更充分地展現(xiàn)對象的靜態(tài)钉寝、動態(tài)關(guān)系弧呐。
- 設(shè)計算法和數(shù)據(jù)結(jié)構(gòu)
- 確認(rèn)子系統(tǒng):以系統(tǒng)整體結(jié)構(gòu)圖描述各個子系統(tǒng)之間的相互服務(wù)關(guān)系闸迷。
- 確定子系統(tǒng)之間的通信
- 系統(tǒng)體系結(jié)構(gòu)設(shè)計階段:選擇系統(tǒng)環(huán)境與設(shè)計體系結(jié)構(gòu)
- 任務(wù)管理設(shè)計:主要包括從主結(jié)構(gòu)設(shè)計、分布式結(jié)構(gòu)設(shè)計俘枫、增加協(xié)調(diào)者和資源管理
- 數(shù)據(jù)管理設(shè)計:包括數(shù)據(jù)結(jié)構(gòu)設(shè)計和數(shù)據(jù)管理設(shè)計腥沽。
- 人機界面設(shè)計
- 系統(tǒng)對象設(shè)計階段:建立系統(tǒng)整體結(jié)構(gòu)并確認(rèn)接口
- 系統(tǒng)實現(xiàn)、測試和維護階段
- 本書不做重點介紹鸠蚪。
- 構(gòu)架
- 由5類視圖構(gòu)成今阳,包括用例視圖、邏輯視圖茅信、進程視圖盾舌、構(gòu)件視圖(實現(xiàn)視圖)和部署視圖
- 基本構(gòu)造塊(圖示)
UML基本構(gòu)造塊的結(jié)構(gòu) - UML的公共機制:為了使UML整個模型更加一致,UML定義了4種公共機制
- 規(guī)格說明(Specification)
- 修飾(Adornment)
- 通用劃分(CommonDivision)
- 擴展機制(ExtensibilityMechanism)
- UML的擴展機制
- 構(gòu)造型(Stereotype)
- 標(biāo)記值(Tagged)
- 約束(Constraint)
- 未感興趣。
- 未感興趣棚贾。
- 需求的定義和類型
- 需求分析的任務(wù)
- 需求分析的過程
- 問題識別(需求獲冉盐)
- 分析與綜合(需求建模)
- 編制需求分析階段的文檔(需求描述)
- 驗證(需求評審)
- 用例圖(未感興趣,暫作記錄)
- 用例圖的定義與組成元素
- 系統(tǒng)邊界
- 行為者
- 場景和用例
- 用例之間的關(guān)系
- 包含(Include)
- 擴展(Extend)
- 泛化(Generalization)
- 用例圖的規(guī)格說明
- 未感興趣
- 案例分析
- 未感興趣
- 類的名稱
- 類的屬性
- 類的操作
- 類的分類
- 關(guān)聯(lián)
- 關(guān)聯(lián)關(guān)系的圖示表達(dá)
- 名稱
gmefP0.png - 角色
gmeLI1.png - 多重性
gmevRK.png
- 名稱
- 聚集(Aggregation)是關(guān)聯(lián)的特例
- 共享聚集:其中一個類描述了一個較大的事物(整體)琳轿,它由較小的事物(部分)組成,并且部分對象可以是任意整體對象的一部分耿芹,表示關(guān)系較弱的情況崭篡。它描述了“has a”關(guān)系,即將整體對象擁有部分對象表示成在整體對象的一端用一個空心菱形修飾的簡單關(guān)聯(lián)關(guān)系吧秕。
gmmidA.png - 組合聚集:一種強形式的聚集琉闪,整體對象不僅擁有它的部分對象,并具有強的物主身份砸彬,表示“containsa”的關(guān)系颠毙,即將部分對象不能脫離整體對象存在表示成在整體對象的一端用一個實心菱形修飾的簡單關(guān)聯(lián)關(guān)系。
gmmWeH.png
- 共享聚集:其中一個類描述了一個較大的事物(整體)琳轿,它由較小的事物(部分)組成,并且部分對象可以是任意整體對象的一部分耿芹,表示關(guān)系較弱的情況崭篡。它描述了“has a”關(guān)系,即將整體對象擁有部分對象表示成在整體對象的一端用一個空心菱形修飾的簡單關(guān)聯(lián)關(guān)系吧秕。
- 關(guān)聯(lián)關(guān)系的圖示表達(dá)
- 依賴
- 依賴關(guān)系將行為或?qū)崿F(xiàn)與對其他類有影響的類聯(lián)系起來砂碉。依賴關(guān)系有很多種蛀蜜,除了實現(xiàn)關(guān)系以外,還有跟蹤關(guān)系(不同模型的元素之間的一種松散連接)增蹭、精化關(guān)系(兩個不同層次意義之間的一種映射)滴某、使用關(guān)系(在一個模型中需要另一個元素的存在)食店、綁定關(guān)系(為模板參數(shù)指定值)等旱易。
gmnzHH.png
- 依賴關(guān)系將行為或?qū)崿F(xiàn)與對其他類有影響的類聯(lián)系起來砂碉。依賴關(guān)系有很多種蛀蜜,除了實現(xiàn)關(guān)系以外,還有跟蹤關(guān)系(不同模型的元素之間的一種松散連接)增蹭、精化關(guān)系(兩個不同層次意義之間的一種映射)滴某、使用關(guān)系(在一個模型中需要另一個元素的存在)食店、綁定關(guān)系(為模板參數(shù)指定值)等旱易。
- 泛化(繼承)
gmuiCt.png
- 對象圖的定義和組成元素
- 對象圖和類圖的區(qū)別
- 對象圖建模
gmuUa9.png
- 接口表示方法
- 接口的名稱
- 接口的操作
- 接口的關(guān)系
gmuoM8.png - 理解接口
- 為了使接口易于理解和處理椰憋,可以為接口提供更多的信息厅克。首先,可以為各個操作附上前置和后置條件橙依,為整個類或構(gòu)件附上不變式证舟。這樣需要使用接口的客戶就能理解接口做什么以及如何使用它。
- 當(dāng)系統(tǒng)復(fù)雜度增加時窗骑,有必要把類女责、接口、構(gòu)件创译、結(jié)點抵知、圖等元素有序地組織起來,以更清晰地表達(dá)系統(tǒng)的層次關(guān)系软族。UML中的包(Package)提供了建模元素的分組機制刷喜。
- 包的定義和表示方法
- 包的名稱
gmKAiR.png - 包的元素
- 包的嵌套
gmKnsO.png
gmKuLD.png
-
某電子投票系統(tǒng)
電子投票系統(tǒng)的類圖 - 某高校藝術(shù)類招生考試管理
gmQ12t.png
gmQGKf.png
- 消息的定義
- (UML2.0已經(jīng)不用“約束”,見 http://www.uml.org.cn/oobject/200503082.htm)
- 消息的類型
gmywBF.png
- 時序圖的組成元素
- 對象
- 生命線
gmy79I.png - 激活
gm6ADU.png - 消息
- 創(chuàng)建對象和撤銷對象
gm6wxP.png
gm66aQ.png
- 時序圖中的條件和分支
- UML使用約束表示立砸,UML2.0使用“組合片段”表示
- 時序圖中的約束(改概念和UML官方文檔有出入)
- 時序圖中的循環(huán)
- 協(xié)作圖的組成元素
- 對象(Object)
- 消息(Messages)
- 鏈接(Link)
gmRolR.png
- 消息的層次關(guān)系和表達(dá)
- 協(xié)作圖中掖疮,對象之間傳遞的消息必須標(biāo)明序號,用以說明消息傳送的先后順序颗祝。序號標(biāo)識的方法有兩種浊闪,一種是順序標(biāo)識法,另一種是具有層次關(guān)系的標(biāo)識法——嵌套消息標(biāo)識法螺戳。
gmWPnP.png
- 協(xié)作圖中掖疮,對象之間傳遞的消息必須標(biāo)明序號,用以說明消息傳送的先后順序颗祝。序號標(biāo)識的方法有兩種浊闪,一種是順序標(biāo)識法,另一種是具有層次關(guān)系的標(biāo)識法——嵌套消息標(biāo)識法螺戳。
- 協(xié)作圖中的循環(huán)
gmfrq0.png
- 相同點主要有3個
- 兩種圖都直觀地規(guī)定了發(fā)送對象和接收對象的責(zé)任搁宾。
- 兩種圖都支持所有的消息類型。
- 兩種圖還是衡量耦合性的工具倔幼。
- 時序圖和協(xié)作圖之間有如下區(qū)別
- 協(xié)作圖的重點是將對象的交互映射到它們之間的鏈接上盖腿,但是時序圖卻不把鏈接表示出來。
- 時序圖可以描述對象的創(chuàng)建和撤銷情況凤藏。而在協(xié)作圖中,對象要么存在要么不存在堕伪,除了通過消息描述或約束外揖庄,沒有其他的方法可以表示對象的創(chuàng)建或撤銷。
- 時序圖可以表現(xiàn)對象的激活和去激活情況欠雌,但對于協(xié)作圖來說蹄梢,無法清晰地表示對象的激活和去激活情況。
gmfxsI.png
gmfzLt.png
- 狀態(tài)圖描述的是一種行為,它說明具體某一個對象在它的生命周期中響應(yīng)事件所經(jīng)歷的狀態(tài)序列以及它們對那些事件的響應(yīng)禁炒。
- 在UML中描述一個狀態(tài)圖的圖符除了狀態(tài)圖符和狀態(tài)轉(zhuǎn)移圖符外而咆,還有起始狀態(tài)、終止?fàn)顟B(tài)幕袱、條件判定暴备、發(fā)出信號、接收信號和并發(fā)狀態(tài)等圖符
gmhvhF.png - 狀態(tài)圖是由狀態(tài)们豌、事件涯捻、轉(zhuǎn)移、執(zhí)行動作和連接點組成的望迎,用來建模對象是如何改變狀態(tài)的障癌。
- 狀態(tài)(狀態(tài)包含以下)
- 名稱(Name)
- 進入/退出效應(yīng)(Entry/ExitEffect)
- 內(nèi)部轉(zhuǎn)移(InternalTransition):不導(dǎo)致狀態(tài)改變的轉(zhuǎn)移。
- 子狀態(tài)(Substate):狀態(tài)的嵌套結(jié)構(gòu)辩尊,包括非正交(順序活動)子狀態(tài)和正交(并發(fā)活動)子狀態(tài)涛浙。
- 延遲事件(DeferredEvent)
- 事件
- 可分內(nèi)部事件和外部事件,內(nèi)部事件有:
- 入口事件摄欲,以關(guān)鍵字entry說明
- 出口事件是UML提供的標(biāo)準(zhǔn)內(nèi)部事件轿亮,以關(guān)鍵字exit說明
- do事件是UML提供的標(biāo)準(zhǔn)內(nèi)部事件,以關(guān)鍵字do說明
- include事件是UML提供的標(biāo)準(zhǔn)內(nèi)部事件蒿涎,以關(guān)鍵字include說明
- 自定義內(nèi)部事件
- 也可將事件分為信號事件哀托、調(diào)用事件、時間事件和變化事件
- 信號事件也稱為信號(Signal)劳秋,是在實例間進行通信的異步消息的規(guī)約仓手。
- 調(diào)用事件表示對象接到一個操作調(diào)用請求。
- 時間事件表示到達(dá)指定時間時發(fā)生的事件玻淑。
- 變化事件表示狀態(tài)的一個變化或某些條件得到滿足的事件嗽冒。
gmIuwt.png
- 可分內(nèi)部事件和外部事件,內(nèi)部事件有:
- 轉(zhuǎn)移
- 源狀態(tài)(SourceState)
- 事件觸發(fā)器(EventTrigger)
- 警戒條件(GuardCondition)
- 效應(yīng)(Effect)
- 目標(biāo)狀態(tài)(TargetState)
- 狀態(tài)(狀態(tài)包含以下)
- 嵌套狀態(tài)
gmIbnA.png - 順序狀態(tài)(上圖同時也是順序狀態(tài))
- 并發(fā)狀態(tài)
gmopcQ.png
gmonc4.png - 歷史狀態(tài)
gmo3Ax.png - 狀態(tài)圖之間的消息發(fā)送
gmoc8S.png
- 活動圖用來表示完成一個操作所需要的活動,或者一個用例實例(場景)的活動补履√矸唬活動圖在本質(zhì)上類似于傳統(tǒng)結(jié)構(gòu)化方法中的流程圖,不同之處在于活動圖能夠展示并發(fā)和控制分支箫锤。
- 活動圖的組成元素
- UML活動圖中除了活動圖符外還有起始活動與終止活動贬蛙、對象、轉(zhuǎn)移谚攒、條件判定阳准、并發(fā)活動、接收信號與發(fā)出信號馏臭、泳道等各種圖符野蝇。
gmoo5V.png
- UML活動圖中除了活動圖符外還有起始活動與終止活動贬蛙、對象、轉(zhuǎn)移谚攒、條件判定阳准、并發(fā)活動、接收信號與發(fā)出信號馏臭、泳道等各種圖符野蝇。
- 活動圖一般包括動作、活動結(jié)點、流和泳道绕沈,像所有其他圖一樣锐想,活動圖也可以包括注解和約束。
gmTArd.png
gmTZVI.png
gmT3rj.png
gmHNgU.png - 活動圖的層次關(guān)系
- 在一個活動圖中乍狐,其中的一個活動可以分解為若干個子活動或動作赠摇,這些子活動或動作可以組成一個新的活動圖。
gmHo5t.png
- 構(gòu)件圖中通常包含3種元素:構(gòu)件澜躺、接口和依賴關(guān)系
gmbS5q.png
gmbEqJ.png
- 節(jié)點
- 節(jié)點之間的聯(lián)系
- 建立部署圖的步驟
gmbKG6.png
gmbQxO.png
- 軟件體系結(jié)構(gòu)的描述方法
- 薦標(biāo)準(zhǔn)IEEE1471—2000蝉稳,定義了軟件體系結(jié)構(gòu)描述的內(nèi)容要求
- (1)功能性:指系統(tǒng)需要做什么。
- (2)性能:指在重度負(fù)載下系統(tǒng)將如何運轉(zhuǎn)掘鄙。
- (3)安全性:指系統(tǒng)是否有保護用戶信息的足夠能力耘戚。
- (4)可行性:指是否可以實現(xiàn)該系統(tǒng)。
- IEEE1471還定義了軟件體系結(jié)構(gòu)描述的標(biāo)準(zhǔn)操漠,包括:
- (1)體系結(jié)構(gòu)設(shè)計的標(biāo)識收津、版本、總體信息浊伙。
- (2)系統(tǒng)參與者的標(biāo)識以及在體系結(jié)構(gòu)中他們所關(guān)注方面的標(biāo)識撞秋。
- (3)組織體系結(jié)構(gòu)所選擇的視點規(guī)格說明以及這種選擇的基本原理。
- (4)一個或多個體系結(jié)構(gòu)視圖嚣鄙。
- (5)體系結(jié)構(gòu)描述所需的成分之間不一致的記錄吻贿。
- (6)體系結(jié)構(gòu)選擇的基本原理。
- 一般體系結(jié)構(gòu)描述方法
- 圖形表達(dá)工具:可以用類似于UML中的構(gòu)件圖來表達(dá)
- 模塊內(nèi)連接語言(MIL)
- 基于軟件構(gòu)件的系統(tǒng)描述語言:將軟件系統(tǒng)描述成一種由許多以特定形式相互作用的特殊軟件實體構(gòu)造組成的組織或系統(tǒng)
- 體系結(jié)構(gòu)描述語言(ADL)
- 薦標(biāo)準(zhǔn)IEEE1471—2000蝉稳,定義了軟件體系結(jié)構(gòu)描述的內(nèi)容要求
- 軟件體系結(jié)構(gòu)的描述語言(ADL)
- ADL的三個基本元素是構(gòu)件哑子、連接件舅列、體系結(jié)構(gòu)配置。
- ADL通常解決以下幾個問題:
- (1)軟件行為規(guī)格說明卧蜓。
- (2)軟件協(xié)議規(guī)格說明帐要。
- (3)連接件規(guī)格說明。
- 主要的體系結(jié)構(gòu)描述語言有Aesop弥奸、MetaH榨惠、C2、Rapide盛霎、SADL赠橙、Unicon和Wright等
- 軟件體系結(jié)構(gòu)風(fēng)格描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式,通常獨立于實際問題愤炸。
- 管道/過濾器風(fēng)格
- 基于事件的隱式調(diào)用風(fēng)格
- 構(gòu)件不直接調(diào)用一個過程期揪,而是觸發(fā)或廣播一個或多個事件。系統(tǒng)其他構(gòu)件中的過程在一個或多個事件中注冊摇幻,當(dāng)一個事件被觸發(fā)横侦,系統(tǒng)自動調(diào)用這個事件中注冊的所有過程。
- 分層風(fēng)格
gnUrPf.png - 倉庫風(fēng)格與黑板系統(tǒng)
- 倉庫風(fēng)格是以數(shù)據(jù)為中心的體系結(jié)構(gòu)風(fēng)格绰姻。
- 黑板系統(tǒng)由知識源枉侧、黑板數(shù)據(jù)結(jié)構(gòu)和控制器組成
- 每一條線索的實現(xiàn)與其他線索的實現(xiàn)無關(guān)或關(guān)聯(lián)很少榨馁,在同一層中的構(gòu)件之間是不存在相互調(diào)用的。如果線索是相互獨立的帜矾,即不同線索中的構(gòu)件之間沒有相互調(diào)用翼虫,那么這個結(jié)構(gòu)就是完全正交的。
gnUTRU.png - 主要特征:
- (1)由完成不同功能的n(n>1)個線索(子系統(tǒng))組成屡萤。
- (2)系統(tǒng)具有m(m>1)個不同抽象級別的層珍剑。
- (3)線索之間是相互獨立的(正交的)。
- (4)系統(tǒng)有一個公共驅(qū)動層(一般為最高層)和公共數(shù)據(jù)結(jié)構(gòu)(一般為最低層)死陆。
- 在實際的系統(tǒng)開發(fā)中存在許多案例招拙,它們不只使用一個體系結(jié)構(gòu)風(fēng)格,而是由某些體系結(jié)構(gòu)組合而成
gnaPQe.png
- 懶得記錄了措译。
- 懶得記錄了别凤。
- 用示例描述了工廠、抽象工廠领虹、橋接规哪、組合、迭代器塌衰、MVC等模式诉稍,不作記錄了。
gndyuQ.png
- 質(zhì)量屬性專題研討會(QAW)
- 體系結(jié)構(gòu)權(quán)衡分析方法(ATAM)
- 軟件體系結(jié)構(gòu)分析方法(SAAM)
- 積極的中間設(shè)計審核(ARID)
- ATAM分為4個評估階段共9個步驟。
gnByuD.png