《軟件工程》課件-第9章 面向?qū)ο蠓治鯻第1頁
《軟件工程》課件-第9章 面向?qū)ο蠓治鯻第2頁
《軟件工程》課件-第9章 面向?qū)ο蠓治鯻第3頁
《軟件工程》課件-第9章 面向?qū)ο蠓治鯻第4頁
《軟件工程》課件-第9章 面向?qū)ο蠓治鯻第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第9章

面向?qū)ο蠓治鯴X大學(xué)XX系XXX軟件工程教程電子科技大學(xué)出版社學(xué)習(xí)目標(biāo)l

掌握面向?qū)ο蠓治龅幕靖拍?;l

掌握使用UML建立對象模型的方法;l

掌握使用UML建立動態(tài)模型的方法;l

掌握使用UML建立功能模型的方法。目錄01020304面向?qū)ο蠹夹g(shù)概述面向?qū)ο蠓治鲞^程面向?qū)ο蠓治鲈瓌t建立對象模型0506建立動態(tài)模型建立功能模型07

本章小結(jié)面向?qū)ο蠓治龈攀?1面向?qū)ο蠓治龈攀觥?/p>

面向?qū)ο蠓治觯∣OA)的目標(biāo)是抽取和整理用戶需求,并建立一系列問題域的精確模型來描述能夠滿足用戶需要的計(jì)算機(jī)軟件?!?/p>

面向?qū)ο蠓治鏊⒌哪P鸵硎境鱿到y(tǒng)的數(shù)據(jù)、功能和行為三個(gè)方面的基本特征?!?/p>

在進(jìn)行面向?qū)ο蠓治鰰r(shí),需要建立面向?qū)ο蟮膶ο竽P停枋鱿到y(tǒng)的數(shù)據(jù)結(jié)構(gòu))、功能模型(描述系統(tǒng)的功能)和行為模型(描述系統(tǒng)的控制結(jié)構(gòu))。面向?qū)ο蠓治龈攀觥?/p>

對任何大型系統(tǒng)而言,三個(gè)模型都必不可少。其中,對象模型又始終是最重要、最基本、最核心的?!?/p>

面向?qū)ο蠓治龇ㄖ傅氖窃谝粋€(gè)系統(tǒng)的開發(fā)過程中進(jìn)行了系統(tǒng)業(yè)務(wù)調(diào)查以后,按照面向?qū)ο蟮乃枷雭矸治鰡栴}。面向?qū)ο蠓治龈攀觥?/p>

OOA(面向?qū)ο蟮姆治觯┠P陀?個(gè)層次(主題層、對象類層、結(jié)構(gòu)層、屬性層和服務(wù)層)和5個(gè)活動(標(biāo)識對象類、標(biāo)識結(jié)構(gòu)、定義主題、定義屬性和定義服務(wù))組成?!?/p>

定義了兩種對象類之間的結(jié)構(gòu),一種稱為分類結(jié)構(gòu),一種稱為組裝結(jié)構(gòu)。分類結(jié)構(gòu)就是所謂的一般與特殊的關(guān)系。組裝結(jié)構(gòu)則反映了對象之間的整體與部分的關(guān)系。面向?qū)ο蠓治龈攀觥?/p>

OOA在定義屬性的同時(shí),要識別實(shí)例連接?!?/p>

OOA在定義服務(wù)的同時(shí)要識別消息連接?!?/p>

OOA中的5個(gè)層次和5個(gè)活動繼續(xù)貫穿在OOD(面向?qū)ο笤O(shè)計(jì))過程中?!?/p>

OOD模型由4個(gè)部分組成。它們分別是設(shè)計(jì)問題域部分、設(shè)計(jì)人機(jī)交互部分、設(shè)計(jì)任務(wù)管理部分和設(shè)計(jì)數(shù)據(jù)管理部分。面向?qū)ο蠓治鲞^程02面向?qū)ο蠓治鲞^程在用OOA具體分析一個(gè)事物時(shí),大致上遵循如下五個(gè)基本步驟。(1)確定對象和類。這里所說的對象是對數(shù)”據(jù)及其處理方式的抽象。類是多個(gè)對象的共同屬性和方法集合的描述。(2)確定結(jié)構(gòu)(structure)。結(jié)構(gòu)是指問題域的復(fù)雜性和連接關(guān)系。面向?qū)ο蠓治鲞^程(3)確定主題(subject)。主題是指事物的總體概貌和總體分析模型。(4)確定屬性(attribute)。屬性就是數(shù)據(jù)元素?!保?)確定方法(method)。方法是在收到消息后必須進(jìn)行的一些處理方法:方法要在圖中定義,并在對象的存儲中指定。面向?qū)ο蠓治鲞^程面向?qū)ο蠓治瞿軌虍a(chǎn)生如下三種模型。(1)對象模型。對象模型是對用例模型進(jìn)行分析,把系統(tǒng)分解成互相協(xié)作的分析類,通過類圖、對象圖描述對象、對象的屬性、對象間的關(guān)系,是系統(tǒng)的靜態(tài)模型?!保?)動態(tài)模型。動態(tài)模型用來描述系統(tǒng)的動態(tài)行為,通過時(shí)序圖、協(xié)作圖、描述對象的交互,以揭示對象間如何協(xié)作來完成每個(gè)具體的用例。單個(gè)對象的狀態(tài)變化、動態(tài)行為可以通過狀態(tài)圖來表示。(3)功能模型。功能模型即用例模型作為輸入。面向?qū)ο蠓治鲈瓌t03面向?qū)ο蠓治鲈瓌t(1)抽象抽象是從許多事物中舍棄個(gè)別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性的特征。抽象是形成概念的必須手段。抽象原則有兩個(gè)方面的意義:①

盡管問題域中的事物是很復(fù)雜的,但是分析員并不需要了解和描述它們的一切,只需要分析其中與系統(tǒng)目標(biāo)有關(guān)的事物及其本質(zhì)性特征。②

通過舍棄個(gè)體事物在細(xì)節(jié)上的差異,抽取其共同特性而得到一批事物的抽象概念。面向?qū)ο蠓治鲈瓌t抽象原則包括過程抽象和數(shù)據(jù)抽象兩個(gè)方面?!?/p>

過程抽象:是指任何一個(gè)完成確定功能的操作序列,其使用者都可以把它看做一個(gè)單一的實(shí)體,盡管實(shí)際上它可能是由一系列更低級的操作完成的?!?/p>

數(shù)據(jù)抽象:是根據(jù)施加于數(shù)據(jù)之上的操作來定義數(shù)據(jù)類型,并限定數(shù)據(jù)的值只能由這些操作來修改和觀察。數(shù)據(jù)抽象是OOA的核心原則。面向?qū)ο蠓治鲈瓌t(2)封裝封裝就是把對象的屬性和服務(wù)結(jié)合為一個(gè)不可分的系統(tǒng)單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。(3)繼承特殊類的對象擁有的其一般類的全部屬性與服務(wù),稱作特殊類對一般類的繼承。面向?qū)ο蠓治鲈瓌t(4)分類分類就是把具有相同屬性和服務(wù)的對象劃分為一類,用類作為這些對象的抽象描述。(5)聚合聚合又稱組裝,其原則是把一個(gè)復(fù)雜的事物看成若干比較簡單的事物組裝體,從而簡化對復(fù)雜事物的描述。面向?qū)ο蠓治鲈瓌t(6)關(guān)聯(lián)關(guān)聯(lián)是人類思考問題時(shí)經(jīng)常運(yùn)用的思想方法:通過一個(gè)事物聯(lián)想到另外的事物。(7)消息通信這一原則要求對象之間只能通過消息進(jìn)行通信,而不允許在對象之外直接地存取對象內(nèi)部的屬性。面向?qū)ο蠓治鲈瓌t(8)粒度控制控制自己的視野:考慮全局時(shí),注意其大的組成部分,暫時(shí)不詳細(xì)描述每一部分的具體細(xì)節(jié):考慮某部分的細(xì)節(jié)時(shí)則暫時(shí)撇開其余的部分。這就是粒度控制原則。(9)行為分析顯示世界中事物的行為是復(fù)雜的。由大量的事物所構(gòu)成的問題域中各種行為往往相互依賴交織。建立對象模型04建立對象模型◆

面向?qū)ο蠓治龅氖滓蝿?wù)就是建立對象模型,建立對象模型的基本過程如下:(1)確定分析模型中的類和對象。(2)確定對象間的關(guān)系。(3)確定對象的屬性。(4)確定繼承關(guān)系。建立對象模型◆

確定類與對象的步驟如下:(1)找出候選的類與對象。(2)篩選出正確的類與對象。(3)區(qū)分實(shí)體類、邊界類和控制類?!?/p>

實(shí)體類表示系統(tǒng)將跟蹤的持久信息;邊界類表示參與者與系統(tǒng)之間的交互;控制類負(fù)責(zé)用例的實(shí)現(xiàn)。建立對象模型圖9.1

實(shí)體類圖形表示建立對象模型◆

確定關(guān)聯(lián)標(biāo)識關(guān)聯(lián)的啟發(fā)式準(zhǔn)則如下:①

檢查指示狀態(tài)的動詞或動詞短語,識別動作的主體和客體,從角色尋找關(guān)聯(lián)。②準(zhǔn)確地命名關(guān)聯(lián)和角色。③盡量使用常用的修飾詞標(biāo)識出名字空間和關(guān)鍵屬性。④應(yīng)消除導(dǎo)出其他關(guān)聯(lián)的關(guān)聯(lián)。⑤在一組關(guān)聯(lián)被穩(wěn)定之前先不必考慮實(shí)例之間的多重性。⑥過多的關(guān)聯(lián)使得一個(gè)模型不可讀。建立對象模型分析階段屬性定義的原則如下。①每個(gè)對象至少包含一個(gè)屬性,例如_id。②屬性取值必需適合對象類的所有實(shí)例。③

出現(xiàn)在泛化關(guān)系中的對象所繼承的屬性必須與泛化關(guān)系一致。④系統(tǒng)的所有存儲數(shù)據(jù)必須定義為屬性。⑤對象的導(dǎo)出屬性應(yīng)當(dāng)略去。⑥

在分析階段,如果某屬性描述了對象的外部不可見狀態(tài),應(yīng)將該屬性從分析模型中刪去。建立對象模型例9.1:在醫(yī)院的病房里,將病癥監(jiān)視器安置在每個(gè)病床,對病人進(jìn)行監(jiān)護(hù)。監(jiān)視器將病人的病癥信號(組合)實(shí)時(shí)地傳送到中央監(jiān)護(hù)系統(tǒng)進(jìn)行分析處理。在中心值班室里,值班護(hù)士使用中央監(jiān)護(hù)系統(tǒng)對病員的情況進(jìn)行監(jiān)控,監(jiān)護(hù)系統(tǒng)實(shí)時(shí)地將病人的病癥信號與標(biāo)準(zhǔn)的病診信號進(jìn)行比較分析,當(dāng)病癥出現(xiàn)異常時(shí),系統(tǒng)會立即自動報(bào)警,并打印病情報(bào)告和更新病歷。系統(tǒng)根據(jù)醫(yī)生的要求隨時(shí)打印病人的病情報(bào)告,系統(tǒng)還定期自動更新病歷。建立對象模型通過簡單的需求分析,根據(jù)分析系統(tǒng)主要實(shí)現(xiàn)以下功能。①

病癥監(jiān)視器可以將采集到的病癥信號(組合),格式化后實(shí)時(shí)的傳送到中央監(jiān)護(hù)系統(tǒng);②

中央監(jiān)護(hù)系統(tǒng)將病人的病癥信號與標(biāo)準(zhǔn)的病癥信號庫里的病癥信號的正常值進(jìn)行比較,當(dāng)病癥出現(xiàn)異常時(shí)系統(tǒng)自動報(bào)警;③當(dāng)病癥信號異常時(shí),系統(tǒng)自動更新病歷并打印病情報(bào)告④值班護(hù)士可以查看病情報(bào)告并進(jìn)行打??;⑤

醫(yī)生可以查看病情報(bào)告,要求打印病情報(bào)告,也可以查看或要求打印病歷;⑥系統(tǒng)定期自動更新病歷。建立對象模型用UML的靜態(tài)建模機(jī)制定義并描述本系統(tǒng)的靜態(tài)結(jié)構(gòu)。1)建立系統(tǒng)的用例圖。2)將用例細(xì)化,可以得到分解的用例。3)識別系統(tǒng)的類。4)用包圖和配置圖描述系統(tǒng)的體系結(jié)構(gòu)。建立對象模型1)建立系統(tǒng)的用例圖通過以下六個(gè)問題識別角色。①誰使用系統(tǒng)的主要功能?②誰需要系統(tǒng)的支持以完成日常工作任務(wù)?③誰負(fù)責(zé)維護(hù),管理并保持系統(tǒng)正常運(yùn)行?④系統(tǒng)需要應(yīng)付(或處理)哪些硬設(shè)備?⑤系統(tǒng)需要和哪些外部系統(tǒng)交互?⑥誰(或什么)對系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果(值)感興趣?建立對象模型角色描述模板:通過回答這六個(gè)問題以后,再進(jìn)一步分析可以識別出本系統(tǒng)的四個(gè)角色分別是值班護(hù)士,醫(yī)生,病人,標(biāo)準(zhǔn)病癥信號庫。圖9.2

角色描述模板圖9.3

頂層用例圖建立對象模型2)將用例細(xì)化,可以得到分解的用例。本例中需要分解的用例如下:①中央監(jiān)護(hù)②病癥監(jiān)護(hù)③提供標(biāo)準(zhǔn)病癥信號④病歷管理⑤病情報(bào)告圖9.4

細(xì)化用例圖建立對象模型3)識別系統(tǒng)的類通過名詞識別法和系統(tǒng)實(shí)體識別法等方法可以識別出系統(tǒng)的十二個(gè)類。進(jìn)一步地,在類圖中標(biāo)明類之間的關(guān)系,形成類關(guān)系圖。十二個(gè)系統(tǒng)類圖如下所示:圖9.5

系統(tǒng)類圖以上是12個(gè)系統(tǒng)類圖。下面是類關(guān)系圖。圖9.6類關(guān)系圖4)用包圖和配置圖描述系統(tǒng)的體系結(jié)構(gòu)圖9.7

包圖圖9.8

網(wǎng)絡(luò)結(jié)構(gòu)圖建立動態(tài)模型05建立動態(tài)模型◆

在面向?qū)ο蠓椒ㄖ校饕脿顟B(tài)圖來描述系統(tǒng)的動態(tài)模型(也叫行為模型)?!?/p>

對象模型建立后,就需考察對象和關(guān)系動態(tài)變化序列。面向?qū)ο蠓治鲈O(shè)定對象和關(guān)系都具有其生存周期?!?/p>

生存周期由許多階段組成,每個(gè)階段都有一系列的運(yùn)行規(guī)律和規(guī)則,用來調(diào)節(jié)和管理對象的行為。建立動態(tài)模型◆

通常用動態(tài)模型描述對象和關(guān)系的生存周期,即它們的狀態(tài)、狀態(tài)轉(zhuǎn)換的觸發(fā)事件、對象的服務(wù)(行為)。◆

狀態(tài):對象在其生存周期中的某個(gè)特定階段所具有的行為模式?!?/p>

事件:事件是某個(gè)特定時(shí)刻所發(fā)生的事情,是引起對象從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的抽象,它沒有持續(xù)時(shí)間,是瞬間完成的。時(shí)間是引起對象狀態(tài)轉(zhuǎn)換的控制信息。建立動態(tài)模型◆

服務(wù)(行為):對象的某種狀態(tài)下所發(fā)生的一系列處理操作。行為是需要消耗時(shí)間的?!?/p>

動態(tài)模型的建立首先編寫腳本,從腳本中提取事件,畫出事件跟蹤圖,再畫狀態(tài)轉(zhuǎn)換圖。(1)編寫腳本(2)設(shè)計(jì)用戶界面(3)畫順序圖(4)畫狀態(tài)轉(zhuǎn)換圖建立動態(tài)模型例9.2:分別畫出旅館管理系統(tǒng)中旅客和床位的狀態(tài)轉(zhuǎn)換圖。旅館管理系統(tǒng)中要為旅客安排床位,床位有“空”和“住人”兩種狀態(tài)。只有當(dāng)床位處于“空”狀態(tài)時(shí),才可安排旅客住宿,隨后床位的狀態(tài)變?yōu)椤白∪恕?。旅客離開后,他所住的床位又變?yōu)椤翱铡睜顟B(tài)。因而要分析旅客和床位的狀態(tài),以及引起狀態(tài)轉(zhuǎn)換的事件(操作)。旅客在該系統(tǒng)中有三種狀態(tài),分別為旅客登記、住宿和注銷。從“旅客登記”到“住宿”,是由事件“登記旅客情況”和“分配床位”的發(fā)生引起的。從“住宿”狀態(tài)到“注銷”狀態(tài),是由事件“結(jié)賬”和“退房”引起的。建立動態(tài)模型圖9.9旅客的狀態(tài)轉(zhuǎn)換圖圖9.10床位的系統(tǒng)狀態(tài)轉(zhuǎn)換圖建立動態(tài)模型例9.3:結(jié)合9.4節(jié)案例,完成動態(tài)模型的創(chuàng)建。(1)給出兩個(gè)關(guān)系很緊密的狀態(tài)圖(2)用時(shí)序圖和合作圖描述病人病情異常時(shí)系統(tǒng)的情況,其他情況從略。(3)用活動圖描述系統(tǒng)在監(jiān)護(hù)病人時(shí)的狀態(tài)變化。圖9.11

狀態(tài)圖圖9.12

時(shí)序圖圖9.13

合作圖圖9.14

狀態(tài)變化圖建立功能模型06建立功能模型◆

功能模型由一組數(shù)據(jù)流圖組成。在面向?qū)ο蠓治龇椒ㄖ袨閯討B(tài)模型的每個(gè)狀態(tài)畫出數(shù)據(jù)流圖,可以清楚地說明與狀態(tài)有關(guān)的處理過程,即服務(wù)(行為)。◆

在建立系統(tǒng)信息模型的基礎(chǔ)上,以數(shù)據(jù)或信息為主線,在分析數(shù)據(jù)和信息的過程中分析其處理過程,將數(shù)據(jù)和處理結(jié)合在一起而不是分離開來?!?/p>

功能模型可用數(shù)據(jù)流圖、程序流程圖、N-S圖等來表示。建立功能模型◆

功能模型由數(shù)據(jù)流圖組成,指明從外部輸入到外部輸出,數(shù)據(jù)在系統(tǒng)中傳遞和變換的情況。◆

例9.4:結(jié)合9.4節(jié)案例,完成功能模型的創(chuàng)建,具體步驟如下:經(jīng)過初步的需求分析,得到系統(tǒng)功能要求:(1)監(jiān)視病員的病癥(血壓、體溫、脈搏等)。(2)定時(shí)更新病歷。(3)病員出現(xiàn)異常情況時(shí)報(bào)警。(4)隨機(jī)地產(chǎn)生某一病員的病情報(bào)告。建立功能模型(1)分析系統(tǒng)頂層結(jié)構(gòu)①源點(diǎn)來自病人本身或者護(hù)士;②

終點(diǎn)是護(hù)士,因?yàn)橐磺袌?bào)告和告警信息應(yīng)匯集到護(hù)士處;③加工(處理)是病房監(jiān)視系統(tǒng);④

數(shù)據(jù)流包括病情信號,報(bào)告,告警信息和要求報(bào)告;⑤數(shù)據(jù)存儲是指病員病歷。圖9.15

頂層圖建立功能模型(2)系統(tǒng)分解系統(tǒng)可以分解為:①

系統(tǒng)分析后,劃分出一個(gè)床邊監(jiān)視器實(shí)現(xiàn)本地監(jiān)控;②在護(hù)士辦公室實(shí)現(xiàn)中央監(jiān)視;③病人病歷的更新;④護(hù)士辦公室提出報(bào)告。圖9.16

第一層分解圖建立功能模型(3)進(jìn)一步分解將中央監(jiān)視系統(tǒng)劃分為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論