版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蠓治龅闹饕ぷ饔美P蛶椭_(kāi)發(fā)團(tuán)隊(duì)理解客戶(hù)對(duì)系統(tǒng)的各種功能需求概念模型(靜態(tài)模型)幫助開(kāi)發(fā)團(tuán)隊(duì)理解問(wèn)題領(lǐng)域的各種概念、各種名詞、以及它們之間的各種關(guān)系。描述系統(tǒng)的結(jié)構(gòu)特征動(dòng)態(tài)模型描述系統(tǒng)的動(dòng)態(tài)行為特征。這兩方面的工作,將幫助開(kāi)發(fā)團(tuán)隊(duì)定義問(wèn)題,也是分析工作的主要內(nèi)容第一頁(yè),共六十一頁(yè)。分析與設(shè)計(jì)過(guò)程全景第二頁(yè),共六十一頁(yè)。UML在建模中的使用第三頁(yè),共六十一頁(yè)。面向?qū)ο蠓治鲞^(guò)程定義用例(輔助模型,可選)用用例對(duì)用戶(hù)需求進(jìn)行規(guī)范化描述建立類(lèi)圖(基本模型)發(fā)現(xiàn)對(duì)象、定義對(duì)象類(lèi)識(shí)別對(duì)象的內(nèi)部特征識(shí)別對(duì)象的外部關(guān)系建立交互圖、狀態(tài)圖和活動(dòng)圖(輔助模型,可選)建立詳細(xì)說(shuō)明對(duì)模型中的成分進(jìn)行規(guī)范的定義和文字說(shuō)明可以集中進(jìn)行,也可分散在各個(gè)活動(dòng)中原型開(kāi)發(fā)結(jié)合其他活動(dòng)反復(fù)進(jìn)行第四頁(yè),共六十一頁(yè)。什么是問(wèn)題域?“問(wèn)題域”是指一個(gè)包含現(xiàn)實(shí)世界事物與概念的領(lǐng)域,這些事物和概念與所設(shè)計(jì)的系統(tǒng)要解決的問(wèn)題有關(guān)。建立概念模型,又稱(chēng)為問(wèn)題域建模、域建模,也就是找到代表那些事物與概念的“對(duì)象”。建模OO軟件的第一步是澄清問(wèn)題域。第五頁(yè),共六十一頁(yè)。確定核心的抽象概念目的通過(guò)采取確定系統(tǒng)必須處理的核心抽象概念(即在業(yè)務(wù)建模和需求活動(dòng)中確定的概念)的措施來(lái)進(jìn)行分析必要性需求和業(yè)務(wù)建?;顒?dòng)通常會(huì)揭示系統(tǒng)必須能夠處理的核心概念,與此同時(shí),這些概念也證實(shí)了其自身是核心的設(shè)計(jì)抽象概念。因?yàn)橐呀?jīng)確認(rèn),所以沒(méi)有必要在用例分析活動(dòng)中重復(fù)確認(rèn)工作。為了利用現(xiàn)有知識(shí),我們初步確定使用實(shí)體分析類(lèi),來(lái)代表這些以系統(tǒng)常識(shí)(諸如需求、詞匯表、特別是領(lǐng)域模型或業(yè)務(wù)對(duì)象模型)為基礎(chǔ)的核心抽象概念關(guān)鍵抽象的來(lái)源需求詞匯表領(lǐng)域模型業(yè)務(wù)對(duì)象模型第六頁(yè),共六十一頁(yè)。什么是分析類(lèi)?它代表問(wèn)題域中的簡(jiǎn)潔抽象應(yīng)該映射到真實(shí)世界業(yè)務(wù)概念分析類(lèi)的最重要方面是應(yīng)該使用清晰的和無(wú)歧義的方法映射到真實(shí)世界業(yè)務(wù)概念第七頁(yè),共六十一頁(yè)。OO分析師的工作力求把混淆或不恰當(dāng)?shù)臉I(yè)務(wù)概念澄清為能夠形成分析類(lèi)基礎(chǔ)的事物,是OO分析工作困難的原因。OO分析的真正目的是找出現(xiàn)實(shí)對(duì)象的類(lèi)第八頁(yè),共六十一頁(yè)。分析類(lèi)的思想盡力捕獲抽象的本質(zhì),忽略實(shí)現(xiàn)細(xì)節(jié)不是從設(shè)計(jì)角度考慮而產(chǎn)生的類(lèi),在具體設(shè)計(jì)時(shí)可能一個(gè)分析類(lèi)被精華為一個(gè)或多個(gè)設(shè)計(jì)類(lèi)在分析中,在創(chuàng)建概念模型時(shí),捕獲大場(chǎng)景。分析類(lèi)的形式名稱(chēng)屬性操作第九頁(yè),共六十一頁(yè)。如何產(chǎn)生良好的分析類(lèi)名稱(chēng)反映目的。建模問(wèn)題域的一個(gè)特定元素是簡(jiǎn)潔的抽象。清晰地映射到問(wèn)題域中的可識(shí)別的特征。具有小的、良好定義的職責(zé)集合。職責(zé)是類(lèi)與其客戶(hù)的契約或?qū)τ诳蛻?hù)的義務(wù)職責(zé)在語(yǔ)義上是內(nèi)聚的操作集合每個(gè)類(lèi)大約有3~5個(gè)職責(zé)高內(nèi)聚。類(lèi)的所有特征應(yīng)該有助于實(shí)現(xiàn)其目的低耦合。類(lèi)應(yīng)該僅同一小部分其他類(lèi)協(xié)作實(shí)現(xiàn)其目的第十頁(yè),共六十一頁(yè)。分析類(lèi)經(jīng)驗(yàn)法則每個(gè)類(lèi)大約3~5個(gè)職責(zé)。不存在獨(dú)立的類(lèi)。當(dāng)心很多非常小的類(lèi)當(dāng)心少數(shù)幾個(gè)非常龐大的類(lèi)當(dāng)心“偽類(lèi)”當(dāng)心萬(wàn)能類(lèi)避免深度繼承樹(shù)設(shè)計(jì)良好的繼承層次的本質(zhì)是繼承層次中每個(gè)抽象層次應(yīng)該具有良好定義的目的第十一頁(yè),共六十一頁(yè)。OO分析建模核心問(wèn)題尋找分析類(lèi)使用名詞/動(dòng)詞分析尋找類(lèi)使用CRC分析尋找類(lèi)尋找其他類(lèi)來(lái)源第十二頁(yè),共六十一頁(yè)。使用名詞/動(dòng)詞分析尋找類(lèi)名詞/動(dòng)詞分析是分析文本嘗試找出類(lèi)、屬性和職責(zé)的方法。從名詞與名詞短語(yǔ)中提取對(duì)象與屬性從動(dòng)詞與動(dòng)詞短語(yǔ)中提取操作與關(guān)聯(lián)所有格短語(yǔ)通常表明名詞應(yīng)該是屬性而不是對(duì)象第十三頁(yè),共六十一頁(yè)。名詞/動(dòng)詞分析過(guò)程第一步:盡可能多地收集相關(guān)信息補(bǔ)充需求規(guī)格說(shuō)明用例項(xiàng)目詞匯表任何其他信息源(構(gòu)架、遠(yuǎn)景文檔)第十四頁(yè),共六十一頁(yè)。名詞/動(dòng)詞分析過(guò)程(續(xù))第二步:使用非常簡(jiǎn)單方法分析如下內(nèi)容:名詞名詞短語(yǔ)動(dòng)詞動(dòng)詞短語(yǔ)第十五頁(yè),共六十一頁(yè)。概念模型建模步驟找到備選類(lèi)決定候選類(lèi)并不是每一個(gè)備選類(lèi)都是合適的候選類(lèi),有些名詞對(duì)于要開(kāi)發(fā)的系統(tǒng)來(lái)說(shuō)并無(wú)關(guān)緊要,甚至是系統(tǒng)之外的;而有些名詞表述的概念則相對(duì)較小,適合于某個(gè)候選類(lèi)的屬性
確定類(lèi)之間的關(guān)聯(lián)為類(lèi)添加職責(zé)什么是類(lèi)的職責(zé)呢?它包括以下兩個(gè)主要內(nèi)容:
類(lèi)所維護(hù)的知識(shí);(成員變量)
類(lèi)能夠執(zhí)行的行為。(成員方法)第十六頁(yè),共六十一頁(yè)。舉例-創(chuàng)建概念模型一個(gè)愛(ài)書(shū)之人,家里各類(lèi)書(shū)籍已過(guò)千冊(cè),而平時(shí)又時(shí)常有朋友外借,因此需要一個(gè)個(gè)人圖書(shū)管理系統(tǒng)。該系統(tǒng)應(yīng)該能夠?qū)?shū)籍的基本信息按計(jì)算機(jī)類(lèi)、非計(jì)算機(jī)類(lèi)分別建檔,實(shí)現(xiàn)按書(shū)名、作者、類(lèi)別、出版社等關(guān)鍵字的組合查詢(xún)功能。在使用該系統(tǒng)錄入新書(shū)籍時(shí)系統(tǒng)會(huì)自動(dòng)按規(guī)則生成書(shū)號(hào),可以修改信息,但不能夠刪除記錄。該系統(tǒng)還應(yīng)該能夠?qū)?shū)籍的外借情況進(jìn)行記錄,可對(duì)外借情況列表打印。另外,還希望能夠?qū)?shū)籍的購(gòu)買(mǎi)金額、冊(cè)數(shù)按特定時(shí)限進(jìn)行統(tǒng)計(jì)。第十七頁(yè),共六十一頁(yè)。使用名詞/動(dòng)詞法注意在使用“名詞動(dòng)詞法”尋找類(lèi)的時(shí)候,很多團(tuán)隊(duì)會(huì)在此耗費(fèi)大量的時(shí)間,這樣很容易迷失方向。其實(shí)我們的主要目的是對(duì)問(wèn)題域建立概要的了解,無(wú)需太過(guò)咬文嚼字。第十八頁(yè),共六十一頁(yè)。其它方法-CRC分析腦力風(fēng)暴技術(shù)過(guò)程要求團(tuán)隊(duì)成員命名運(yùn)轉(zhuǎn)在業(yè)務(wù)領(lǐng)域的事物要求團(tuán)隊(duì)陳述該事物的職責(zé)要求團(tuán)隊(duì)識(shí)別可能一起工作的類(lèi)第十九頁(yè),共六十一頁(yè)。概念模型的意義面向?qū)ο蟮囊暯鞘褂肙O的思想所建立的系統(tǒng)模型就是對(duì)問(wèn)題域的完整、直接的映射,體現(xiàn)了OO思想的關(guān)鍵活動(dòng)
開(kāi)發(fā)團(tuán)對(duì)的需要概念模型的建立,其主要的作用是幫助開(kāi)發(fā)團(tuán)隊(duì)能夠?qū)?wèn)題域有一個(gè)全貌式的了解第二十頁(yè),共六十一頁(yè)。概念模型的詳細(xì)程度模型不是我們要生產(chǎn)的目標(biāo)產(chǎn)物,而且過(guò)程中的一個(gè)輔助工作,只要能夠利用其幫助團(tuán)隊(duì)更好的開(kāi)發(fā),詳細(xì)也罷、簡(jiǎn)約也罷,都是好模型第二十一頁(yè),共六十一頁(yè)。OO分析總結(jié)用例模型幫助開(kāi)發(fā)團(tuán)隊(duì)明白客戶(hù)想解決什么問(wèn)題將需求整理歸納成為指導(dǎo)全開(kāi)發(fā)過(guò)程的“軟件需求規(guī)格說(shuō)明書(shū)概念模型幫助開(kāi)發(fā)團(tuán)隊(duì)了解客戶(hù)所處的世界第二十二頁(yè),共六十一頁(yè)。分析用例(行為分析)用例模型補(bǔ)充需求構(gòu)架描述用例分析用例用例工程師業(yè)務(wù)模型分析類(lèi)第二十三頁(yè),共六十一頁(yè)。用例分析目的確定執(zhí)行用例事件流的類(lèi)使用用例實(shí)現(xiàn),將用例行為分配給那些類(lèi)確定類(lèi)的職責(zé)、屬性和關(guān)聯(lián)關(guān)系記錄構(gòu)架機(jī)制的使用情況角色設(shè)計(jì)師時(shí)機(jī)用例分析分兩個(gè)階段第一個(gè)階段是“定義備選構(gòu)架”,同時(shí)做“構(gòu)架分析”活動(dòng),目標(biāo)是定義一個(gè)備選構(gòu)架第二個(gè)階段是“分析行為”,與“確定設(shè)計(jì)元素”活動(dòng)一起做,目標(biāo)是把用例行為分配到分析類(lèi)中第二十四頁(yè),共六十一頁(yè)。行為分析之前-用例建模獲取可靠的需求--我們需要高層的需求文檔和用例結(jié)構(gòu)圖來(lái)確定需求的可靠性,它并不一定完備、但提供了系統(tǒng)的基本全景;如果在分析過(guò)程中發(fā)現(xiàn)了一些相當(dāng)新的用例,那說(shuō)明需求工作沒(méi)做到位,它作為分析(行為建模)的基礎(chǔ)將是不可靠的;確定用例的優(yōu)先級(jí)—我們通常采用迭代的開(kāi)發(fā)模式,每次只針對(duì)一個(gè)目標(biāo)用例集展開(kāi)分析,而不是全線出擊;因此需要根據(jù)風(fēng)險(xiǎn)、重要性和團(tuán)隊(duì)的適應(yīng)能力綜合考慮,為所有的用例確定優(yōu)先級(jí);那些級(jí)別高的用例應(yīng)當(dāng)有詳細(xì)的規(guī)格說(shuō)明,包括基本流和重要的擴(kuò)展流,它們是分析的基本素材。第二十五頁(yè),共六十一頁(yè)。用例實(shí)現(xiàn)中的分析與設(shè)計(jì)用例建模對(duì)系統(tǒng)外在的行為進(jìn)行了分解,每個(gè)用例情節(jié)最終都落實(shí)到內(nèi)部某個(gè)對(duì)象群體的協(xié)作上;而對(duì)象群體行為則進(jìn)一步將必要職責(zé)分配到對(duì)象個(gè)體上;這便是用例實(shí)現(xiàn),并分為用例分析和用例設(shè)計(jì)兩個(gè)階段。為用例實(shí)現(xiàn)建模的元素包括—協(xié)作圖、序列圖、以及類(lèi)圖等。第二十六頁(yè),共六十一頁(yè)。用例分析的輸入和輸出輸入詞匯表補(bǔ)充規(guī)約用例模型用例規(guī)約用例建模指南用例實(shí)現(xiàn)(只是識(shí)別出來(lái)了,還沒(méi)有開(kāi)發(fā))軟件構(gòu)架文檔邊界類(lèi),表示用戶(hù)界面中的窗口設(shè)計(jì)模型或分析模型輸出用例實(shí)現(xiàn)分析模型(可選)或設(shè)計(jì)模型
第二十七頁(yè),共六十一頁(yè)。用例實(shí)現(xiàn)用例實(shí)現(xiàn)對(duì)用例模型中的每個(gè)用例,在設(shè)計(jì)模型中都有相應(yīng)的實(shí)現(xiàn)提供從分析和設(shè)計(jì)到需求的可跟蹤性用例實(shí)現(xiàn)結(jié)構(gòu)用例實(shí)現(xiàn)包是組織用例的類(lèi)和交互圖的方式每個(gè)用例都對(duì)應(yīng)一個(gè)用例實(shí)現(xiàn)包可跟蹤性圖交互圖時(shí)序圖(SequenceDiagrams)(動(dòng)態(tài))協(xié)作圖(CollaborationDiagrams)(動(dòng)態(tài))類(lèi)圖(ClassDiagrams)(靜態(tài))第二十八頁(yè),共六十一頁(yè)。用例分析的步驟補(bǔ)充用例描述對(duì)每個(gè)用例實(shí)現(xiàn)從用例行為中找出類(lèi)把用例行為分配到類(lèi)對(duì)每個(gè)分析類(lèi)描述屬性和關(guān)聯(lián)描述責(zé)任限定分析機(jī)制(analysismechanism)確定屬性建立分析類(lèi)之間的關(guān)聯(lián)關(guān)系說(shuō)明分析類(lèi)之間的事件依賴(lài)關(guān)系整合分析類(lèi)第二十九頁(yè),共六十一頁(yè)。Step1:補(bǔ)充用例描述用例的描述往往不夠查找分析類(lèi)用戶(hù)通常不關(guān)心系統(tǒng)內(nèi)部的信息,所以開(kāi)始時(shí)的用例描述是黑盒的為了發(fā)現(xiàn)分析類(lèi),需要從系統(tǒng)內(nèi)部的視點(diǎn)對(duì)用例進(jìn)行白盒描述例如:課程注冊(cè)系統(tǒng)中,學(xué)生可能喜歡說(shuō)“系統(tǒng)顯示課程列表”,但是這不能說(shuō)明系統(tǒng)內(nèi)部是如何實(shí)現(xiàn)的。為了給出系統(tǒng)內(nèi)部是如何工作的,我們要加入:系統(tǒng)從課程目錄遺留數(shù)據(jù)庫(kù)中取得課程列表第三十頁(yè),共六十一頁(yè)。Step2:從用例行為中查找分析類(lèi)
目的確定一組備選的、能夠執(zhí)行用例行為的分析類(lèi)分析類(lèi)分析類(lèi)代表“系統(tǒng)中具備職責(zé)和行為的事物”的初期概念模型。這些概念模型最終將演進(jìn)為設(shè)計(jì)模型中的類(lèi)和子系統(tǒng)分類(lèi)(根據(jù)其擔(dān)負(fù)的職責(zé)和表現(xiàn)的行為)邊界類(lèi)(Boundaryclass)接口與系統(tǒng)外部某些事物的媒介??刂祁?lèi)(ControlClass)負(fù)責(zé)協(xié)調(diào)用例的行為。實(shí)體類(lèi)(EntityClass)
封裝了數(shù)據(jù)以及數(shù)據(jù)相關(guān)的操作,表達(dá)領(lǐng)域概念,負(fù)責(zé)承擔(dān)系統(tǒng)中需要持久化的信息及其關(guān)聯(lián)的行為。應(yīng)用邏輯對(duì)象
第三十一頁(yè),共六十一頁(yè)。識(shí)別分析類(lèi)用例的行為最終都要落實(shí)到各分析類(lèi)的職責(zé)上。第三十二頁(yè),共六十一頁(yè)。邊界類(lèi)承擔(dān)的角色邊界類(lèi)負(fù)責(zé)系統(tǒng)與外界的通訊和交互。邊界對(duì)象將系統(tǒng)與其外部環(huán)境的變更(與其他系統(tǒng)的接口的變更、用戶(hù)需求的變更等)分隔開(kāi),使這些變更不會(huì)對(duì)系統(tǒng)的其他部分造成影響。
第三十三頁(yè),共六十一頁(yè)。邊界類(lèi)的職責(zé)轉(zhuǎn)換和翻譯交互事件—對(duì)內(nèi),將外界不同格式的事件和信息轉(zhuǎn)換為內(nèi)部能夠識(shí)別的格式,并觸發(fā)控制類(lèi)對(duì)象(或?qū)嶓w對(duì)象)來(lái)響應(yīng)它們;對(duì)外,則做類(lèi)似的反向操作;變更對(duì)外的表示內(nèi)容—在內(nèi)部狀態(tài)(特別是外界關(guān)注的信息)發(fā)生變化時(shí),向外部通知或更新表示內(nèi)容)常見(jiàn)的邊界類(lèi)對(duì)象有:用戶(hù)接口類(lèi)幫助與用戶(hù)進(jìn)行通信的類(lèi),通過(guò)標(biāo)準(zhǔn)的I/O設(shè)備提供人機(jī)界面(GUI)系統(tǒng)接口類(lèi)幫助與其他系統(tǒng)進(jìn)行通信的類(lèi),系統(tǒng)(通訊協(xié)議)接口。設(shè)備接口類(lèi)或Timer提供對(duì)硬件設(shè)備的軟件接口第三十四頁(yè),共六十一頁(yè)。識(shí)別邊界類(lèi)用戶(hù)界面類(lèi)關(guān)注要呈現(xiàn)給用戶(hù)的信息是什么不要陷入U(xiǎn)I的設(shè)計(jì)細(xì)節(jié)系統(tǒng)和設(shè)備接口類(lèi)關(guān)注必須定義的協(xié)議是什么不要關(guān)注協(xié)議是如何實(shí)現(xiàn)的重點(diǎn)關(guān)注職責(zé)而不是細(xì)節(jié)第三十五頁(yè),共六十一頁(yè)。識(shí)別邊界類(lèi)(續(xù))每個(gè)用例主角都至少有一個(gè)邊界類(lèi)查找用戶(hù)接口類(lèi)時(shí)需要注意可以復(fù)用用戶(hù)界面建?;顒?dòng)期間存在的邊界類(lèi)僅對(duì)系統(tǒng)的核心部分建模,不要對(duì)
GUI中的每個(gè)按鈕、列表和小部件都建模。分析的目的是要大致了解系統(tǒng)是如何構(gòu)成的,而不是要設(shè)計(jì)每一個(gè)細(xì)枝末節(jié)查找系統(tǒng)邊界類(lèi)時(shí)注意與現(xiàn)有系統(tǒng)的接口可能已有明確定義,如果是這樣,即可從接口定義中直接推導(dǎo)出職責(zé)如果已經(jīng)有一個(gè)正式的接口定義,則可對(duì)它實(shí)施逆向工程,這樣就不必在此正式界定它查找設(shè)備邊界類(lèi)時(shí)注意做用例分析的時(shí)候可能需要補(bǔ)充原來(lái)沒(méi)有識(shí)別出來(lái)的設(shè)備主角,相應(yīng)的也要修改用例的說(shuō)明第三十六頁(yè),共六十一頁(yè)。實(shí)例:用戶(hù)界面(邊界類(lèi))第三十七頁(yè),共六十一頁(yè)。實(shí)例:系統(tǒng)接口(邊界類(lèi))第三十八頁(yè),共六十一頁(yè)。邊界類(lèi)的職責(zé)歸類(lèi)GUI界面邊界類(lèi)承擔(dān)的職責(zé)包括:按要求的格式顯示內(nèi)容(VIEW—文本、表格、圖形等控件)輸入數(shù)據(jù)并轉(zhuǎn)換為內(nèi)部格式(CONTROL—編輯、選擇、圖形等控件)轉(zhuǎn)換和翻譯用戶(hù)動(dòng)作并觸發(fā)響應(yīng)(CONTROL—菜單、按鈕、快捷鍵)系統(tǒng)接口邊界類(lèi)承擔(dān)的職責(zé)包括:輸入/輸出數(shù)據(jù),并根據(jù)協(xié)議進(jìn)行格式轉(zhuǎn)換接收事件并觸發(fā)響應(yīng)和向外發(fā)送事件第三十九頁(yè),共六十一頁(yè)。邊界類(lèi)的狀態(tài)與行為GUI界面邊界類(lèi)可以擁有狀態(tài),并可能對(duì)其行為產(chǎn)生如下影響:影響用戶(hù)操作的執(zhí)行范圍(菜單等的使能與禁用,對(duì)話(huà)框的打開(kāi)與關(guān)閉)影響對(duì)外顯示的樣式和能力邊界類(lèi)的狀態(tài)除了受用戶(hù)操作序列的影響,更多地將為控制類(lèi)和實(shí)體類(lèi)的狀態(tài)所控制系統(tǒng)接口邊界類(lèi)的狀態(tài)將與其支持的協(xié)議中規(guī)定的交互順序有關(guān)設(shè)備接口邊界類(lèi)通常擁有復(fù)雜的狀態(tài),以便支持與硬件設(shè)備的適配邏輯第四十頁(yè),共六十一頁(yè)??刂祁?lèi)作用:負(fù)責(zé)協(xié)調(diào)、調(diào)度、處理事務(wù)并控制系統(tǒng)內(nèi)部其它對(duì)象的行為。用于對(duì)一個(gè)或幾個(gè)用例所特有的控制行為進(jìn)行建模,控制類(lèi)封裝了用例的特有行為控制對(duì)象(控制類(lèi)的實(shí)例)通??刂破渌麑?duì)象,因此它們的行為具有協(xié)調(diào)性質(zhì)控制類(lèi)有效地將邊界對(duì)象與實(shí)體對(duì)象分開(kāi),讓系統(tǒng)更能適應(yīng)其邊界內(nèi)發(fā)生的變更控制類(lèi)還將用例所特有的行為與實(shí)體對(duì)象分開(kāi),使實(shí)體對(duì)象在用例和系統(tǒng)中具有更高的復(fù)用性控制類(lèi)并不能處理用例需要執(zhí)行的一切事務(wù)。相反,它協(xié)調(diào)其他用來(lái)實(shí)施此功能的對(duì)象的活動(dòng)。控制類(lèi)將工作委派給已被指定負(fù)責(zé)此項(xiàng)功能的對(duì)象??刂祁?lèi)通常被看成一個(gè)樂(lè)隊(duì)的指揮,它指揮(控制)參與usecase的其它對(duì)象的行為,通知對(duì)象什么時(shí)候執(zhí)行以及執(zhí)行什么。第四十一頁(yè),共六十一頁(yè)??刂祁?lèi)的角色協(xié)調(diào)用例的行為第四十二頁(yè),共六十一頁(yè)。識(shí)別控制類(lèi)可以首先為每個(gè)用例實(shí)現(xiàn)確定一個(gè)控制類(lèi),接著,在確定了更多的用例實(shí)現(xiàn)并發(fā)現(xiàn)更多的共性后,再對(duì)其進(jìn)行改進(jìn)將性質(zhì)不同的控制邏輯封裝到分離的控制類(lèi)中將(邏輯復(fù)雜的)主事件流和可選/異常事件流封裝到不同的控制類(lèi)中盡量為每個(gè)執(zhí)行者定義單獨(dú)的控制類(lèi)第四十三頁(yè),共六十一頁(yè)。控制類(lèi)的職責(zé)歸類(lèi)用例控制類(lèi)負(fù)責(zé)用例的控制序列(應(yīng)用邏輯),協(xié)調(diào)其它類(lèi)的協(xié)作以完成用例的不同執(zhí)行場(chǎng)景,其中包括:控制顯示(導(dǎo)航)流程控制系統(tǒng)的執(zhí)行動(dòng)作,這些動(dòng)作將可能改變系統(tǒng)的內(nèi)部狀態(tài)、提供結(jié)果數(shù)據(jù)等控制協(xié)議的對(duì)話(huà)順序第四十四頁(yè),共六十一頁(yè)??刂祁?lèi)的行為控制類(lèi)行為有以下特點(diǎn)與周?chē)h(huán)境無(wú)關(guān)定義控制邏輯(event的順序)和usecase事務(wù)如果實(shí)體類(lèi)的內(nèi)部結(jié)構(gòu)或行為變化,控制類(lèi)很少會(huì)變化使用或設(shè)定幾個(gè)實(shí)體類(lèi)的內(nèi)容,因此需要協(xié)調(diào)這幾個(gè)實(shí)體類(lèi)的行為每次被激活,行為方式不同(flowofevent與多個(gè)狀態(tài)有關(guān))有的用例沒(méi)有控制類(lèi),復(fù)雜的用例可以有多個(gè)控制類(lèi)控制對(duì)象的生命周期通常和用例實(shí)例的生命周期相同控制類(lèi)可以分為協(xié)調(diào)對(duì)象(狀態(tài)無(wú)關(guān)的)和狀態(tài)相關(guān)的控制對(duì)象兩種
第四十五頁(yè),共六十一頁(yè)。示例:管理任務(wù)隊(duì)列執(zhí)行任務(wù)用例的事件流主要包含:從任務(wù)隊(duì)列中按順序取出任務(wù),并為其分配資源,然后開(kāi)始執(zhí)行任務(wù)(系統(tǒng)可以同時(shí)執(zhí)行多個(gè)任務(wù));根據(jù)控制邏輯的不同性質(zhì),可以劃分為兩個(gè)控制類(lèi),一個(gè)負(fù)責(zé)處理任務(wù)隊(duì)列和分配資源,另一個(gè)則負(fù)責(zé)具體控制任務(wù)的執(zhí)行過(guò)程。第四十六頁(yè),共六十一頁(yè)。實(shí)體類(lèi)實(shí)體類(lèi)(entityclass)系統(tǒng)的關(guān)鍵抽象、是系統(tǒng)的核心概念主要責(zé)任是用于保存和管理系統(tǒng)的信息,如一個(gè)event,一個(gè)人或一些實(shí)際存在的對(duì)象的信息。通常是持久化的(persistent)通常不特定于某個(gè)usecaserealization,有時(shí)甚至不特定于系統(tǒng)。實(shí)體類(lèi)承擔(dān)的角色(存儲(chǔ)和管理系統(tǒng)中的信息)第四十七頁(yè),共六十一頁(yè)。從用例中識(shí)別實(shí)體類(lèi)使用用例的事件流作為輸入用例中的關(guān)鍵抽象傳統(tǒng)的名詞過(guò)濾法劃出用例事件流中的名詞條款去掉重復(fù)的候選者去掉含糊的候選者去掉執(zhí)行者ACTORS(超出了系統(tǒng)范圍)去掉實(shí)施部件去掉屬性去掉操作第四十八頁(yè),共六十一頁(yè)。應(yīng)用邏輯對(duì)象
分為業(yè)務(wù)邏輯對(duì)象和算法對(duì)象兩種業(yè)務(wù)邏輯對(duì)象(BusinessLogicObjects)
定義業(yè)務(wù)特定的處理一個(gè)用戶(hù)請(qǐng)求的應(yīng)用邏輯,目的是封裝(隱藏)業(yè)務(wù)邏輯通常業(yè)務(wù)邏輯對(duì)象在執(zhí)行過(guò)程中可以訪問(wèn)各種實(shí)體對(duì)象只有在特定情況下才需要業(yè)務(wù)邏輯對(duì)象如果businessrule要通過(guò)訪問(wèn)兩個(gè)或多個(gè)實(shí)體對(duì)象才能執(zhí)行,就需要有一個(gè)單獨(dú)的業(yè)務(wù)邏輯對(duì)象否則,就是實(shí)體類(lèi)的一個(gè)操作業(yè)務(wù)邏輯對(duì)象與協(xié)調(diào)對(duì)象的區(qū)別協(xié)調(diào)對(duì)象的責(zé)任是監(jiān)督其他的對(duì)象而業(yè)務(wù)邏輯對(duì)象的主要責(zé)任是封裝和執(zhí)行businessrule算法對(duì)象(AlgorithmObjects)封裝了問(wèn)題域用的算法
算法對(duì)象通常也封裝了計(jì)算算法時(shí)需要的數(shù)據(jù)
第四十九頁(yè),共六十一頁(yè)。實(shí)例:識(shí)別的候選分析類(lèi)第五十頁(yè),共六十一頁(yè)。Step3:把用例行為分配到類(lèi)指南:把責(zé)任分配到類(lèi)邊界類(lèi)和actor交互的行為實(shí)體類(lèi)與數(shù)據(jù)抽象封裝有關(guān)的行為控制類(lèi)特定到一個(gè)usecase或一部分非常重要的事件流程的行為動(dòng)態(tài)建模:用時(shí)序圖和協(xié)作圖來(lái)描述用例行為注意:對(duì)所有基本流和備選流都要進(jìn)行分析第五十一頁(yè),共六十一頁(yè)。時(shí)序圖時(shí)序圖表示如何一步步的完成系統(tǒng)的一個(gè)功能時(shí)序圖是用于決定類(lèi)責(zé)任和接口的主要信息來(lái)源時(shí)序圖描述了對(duì)象間的交互模式通過(guò)對(duì)象的“生命線”和他們相互發(fā)送的消息來(lái)顯示對(duì)象時(shí)序圖與協(xié)作圖在語(yǔ)義上是相同的,只是時(shí)序圖中的消息是按時(shí)間順序分布的時(shí)序圖表示的是一個(gè)場(chǎng)景(scenario)組成主角對(duì)象消息生命線Focusofcontrol表示對(duì)象直接或通過(guò)子過(guò)程執(zhí)行動(dòng)作的一段時(shí)間第五十二頁(yè),共六十一頁(yè)。協(xié)作圖協(xié)作圖顯示對(duì)象之間的交互協(xié)作圖強(qiáng)調(diào)參與交互的對(duì)象的組織適合分析活動(dòng),適合表示少數(shù)對(duì)象的簡(jiǎn)單交互協(xié)作圖很難顯示補(bǔ)充的說(shuō)明性信息,例如時(shí)間、判定點(diǎn)或其他非結(jié)構(gòu)化的信息,而在序列圖中這些信息可以方便地添加到注釋中
組成主角(actor)對(duì)象(object)Links:Link是對(duì)象通信的途徑消息(message)第五十三頁(yè),共六十一頁(yè)。記錄分析類(lèi)的職責(zé)用簡(jiǎn)短的(最多幾個(gè)單詞)職責(zé)名稱(chēng)和簡(jiǎn)短的(最多幾個(gè)句子)說(shuō)明記錄職責(zé)。該說(shuō)明表述對(duì)象實(shí)現(xiàn)職責(zé)需要執(zhí)行什么操作,以及調(diào)用職責(zé)時(shí)將返回什么結(jié)果可以用兩種方式來(lái)記錄職責(zé)用分析類(lèi)的操作:操作名就是職責(zé)名稱(chēng),職責(zé)的說(shuō)明就寫(xiě)到操作的說(shuō)明中。為了表示該操作是一個(gè)職責(zé),應(yīng)該在操作名前面加上“//”來(lái)標(biāo)記用文字描述:在類(lèi)的說(shuō)明中描述類(lèi)的職責(zé)
維護(hù)一致性確保類(lèi)具有一致的責(zé)任,如果類(lèi)的責(zé)任是脫節(jié)的,要把類(lèi)分成兩個(gè)或多個(gè)新類(lèi),同時(shí)要修改交互圖
確保沒(méi)有兩個(gè)類(lèi)具有相似的責(zé)任,如果兩個(gè)類(lèi)具有相同的責(zé)任,就把這兩個(gè)類(lèi)合并成一個(gè),同時(shí)要修改交互圖
第五十四頁(yè),共六十一頁(yè)。實(shí)例:用例分析-時(shí)序圖第五十五頁(yè),共六十一頁(yè)。確定屬性是屬性還是類(lèi)?信息屬于以下情況時(shí),需要使用屬性“通過(guò)值”引用;即在信息中只有值是重要的,而與地址或?qū)ο髽?biāo)識(shí)符無(wú)關(guān)由其所屬的對(duì)象唯一“擁有”;其他對(duì)象都不引用這條信息通過(guò)獲取、設(shè)置或者執(zhí)行對(duì)信息的簡(jiǎn)單轉(zhuǎn)換的操作進(jìn)行訪問(wèn);信息除了提供它本身的值以外沒(méi)有任何“實(shí)際”的行為如果信息具有復(fù)雜的行為,被兩個(gè)或更多對(duì)象共享,或者在兩個(gè)或更多對(duì)象間“通過(guò)引用”傳遞,此時(shí)信息應(yīng)當(dāng)作為一個(gè)單獨(dú)的類(lèi)屬性的說(shuō)明屬性名稱(chēng)應(yīng)當(dāng)是一個(gè)名詞,它描述了屬性保存的信息屬性說(shuō)明應(yīng)當(dāng)說(shuō)明屬性中將要存儲(chǔ)的信息;如果從屬性名稱(chēng)可以很明顯地看出所存儲(chǔ)的信息,則可以不說(shuō)明屬性類(lèi)型就是屬性的簡(jiǎn)單數(shù)據(jù)類(lèi)型。例如字符串、整型、數(shù)值型等第五十六頁(yè),共六十一頁(yè)。確定屬性屬性可以來(lái)自領(lǐng)域知識(shí)需求Glossary領(lǐng)域模型業(yè)務(wù)模型分析時(shí)屬性的類(lèi)型來(lái)自領(lǐng)域,可以不映射到具體的實(shí)現(xiàn)語(yǔ)言第五十七頁(yè),共六十一頁(yè)。識(shí)別分析類(lèi)之間的關(guān)系識(shí)別分析類(lèi)之間的關(guān)聯(lián)關(guān)系有兩個(gè)來(lái)源協(xié)作圖:協(xié)作圖中對(duì)象之間有聯(lián)系,就意味著相應(yīng)的類(lèi)之間存在關(guān)聯(lián)關(guān)系領(lǐng)域知識(shí):從中得到實(shí)體類(lèi)之間的聚合關(guān)系注意:不要添加您認(rèn)為“或許”存在的關(guān)聯(lián)關(guān)系,除非協(xié)作圖要求添加這些關(guān)聯(lián)關(guān)系在分析時(shí)不用識(shí)別出類(lèi)之間的關(guān)系是關(guān)聯(lián)還是依賴(lài),是聚合還是組合,因?yàn)槲覀冞€沒(méi)有作出明智決策所需要的足夠信息,我們將在類(lèi)設(shè)計(jì)活動(dòng)中改進(jìn)對(duì)于繼承關(guān)系,在分析時(shí)可以識(shí)別出來(lái),但是不要求
是關(guān)聯(lián)還是聚合
選擇聚合只是為了闡明一種整體/部分的關(guān)系
如果拿不準(zhǔn)是什么關(guān)系,通常關(guān)聯(lián)關(guān)系更合適。聚合關(guān)系通常是很明顯的,聚合的語(yǔ)義應(yīng)該很容易的從上下文中理解出來(lái)
是聚合關(guān)系還是關(guān)聯(lián)關(guān)系與開(kāi)發(fā)的具體應(yīng)用有關(guān)第五十八頁(yè),共六十一頁(yè)。記錄類(lèi)之間的關(guān)系用類(lèi)圖來(lái)表示類(lèi)之間的關(guān)系
用例實(shí)現(xiàn)的類(lèi)圖又叫VOPC(ViewOfParticipatedClasses)畫(huà)類(lèi)圖時(shí),還要給關(guān)系加上關(guān)系名或角色(Role)名稱(chēng)關(guān)聯(lián)關(guān)系名稱(chēng)和角色名稱(chēng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理實(shí)訓(xùn):靜脈輸液泵使用
- 心血管護(hù)理與疾病管理
- 供應(yīng)室團(tuán)隊(duì)建設(shè)與溝通技巧
- 基礎(chǔ)護(hù)理中的感染爆發(fā)處理
- 護(hù)理告知制度的國(guó)際比較
- 聽(tīng)辨樂(lè)器的音色課件
- 單孔腹腔鏡的護(hù)理
- 宜賓消防安全知識(shí)學(xué)習(xí)
- 學(xué)生五一消防安全提示
- 工地教育手冊(cè)講解
- 江蘇省鹽城市東臺(tái)市2024-2025學(xué)年六年級(jí)上學(xué)期期末考試英語(yǔ)試題
- 鐵塔冰凍應(yīng)急預(yù)案
- 文物復(fù)仿制合同協(xié)議
- 大貨車(chē)司機(jī)管理制度
- 主人翁精神課件
- 2025年1月浙江省高考技術(shù)試卷真題(含答案)
- 【低空經(jīng)濟(jì)】低空經(jīng)濟(jì)校企合作方案
- 第十單元快樂(lè)每一天第20課把握情緒主旋律【我的情緒我做主:玩轉(zhuǎn)情緒主旋律】課件+2025-2026學(xué)年北師大版(2015)心理健康七年級(jí)全一冊(cè)
- 家具制造行業(yè)企業(yè)專(zhuān)用檢查表
- 以租代購(gòu)房子合同范本
- 脊柱內(nèi)鏡課件
評(píng)論
0/150
提交評(píng)論