第07章-面向?qū)ο蟮姆治龊驮O(shè)計(jì)-軟件工程電子教案-教學(xué)課件

上傳人:沈*** 文檔編號(hào):253112804 上傳時(shí)間:2024-11-29 格式:PPT 頁(yè)數(shù):237 大?。?.15MB
收藏 版權(quán)申訴 舉報(bào) 下載
第07章-面向?qū)ο蟮姆治龊驮O(shè)計(jì)-軟件工程電子教案-教學(xué)課件_第1頁(yè)
第1頁(yè) / 共237頁(yè)
第07章-面向?qū)ο蟮姆治龊驮O(shè)計(jì)-軟件工程電子教案-教學(xué)課件_第2頁(yè)
第2頁(yè) / 共237頁(yè)
第07章-面向?qū)ο蟮姆治龊驮O(shè)計(jì)-軟件工程電子教案-教學(xué)課件_第3頁(yè)
第3頁(yè) / 共237頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《第07章-面向?qū)ο蟮姆治龊驮O(shè)計(jì)-軟件工程電子教案-教學(xué)課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《第07章-面向?qū)ο蟮姆治龊驮O(shè)計(jì)-軟件工程電子教案-教學(xué)課件(237頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,*,/237,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,軟件工程,第7章 面向?qū)ο蟮姆治龊驮O(shè)計(jì),,1,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,軟件工程第7章 面向?qū)ο蟮姆治龊驮O(shè)計(jì)1復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工,內(nèi)容摘要,面向?qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程,UML概述,用況建模,靜態(tài)建模,動(dòng)態(tài)建模,物理體系結(jié)構(gòu)建模,,2,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,內(nèi)容摘要面向?qū)ο蟮幕靖拍?復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)

2、與工程系,內(nèi)容摘要,面向?qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程,UML概述,用況建模,靜態(tài)建模,動(dòng)態(tài)建模,物理體系結(jié)構(gòu)建模,,3,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,內(nèi)容摘要面向?qū)ο蟮幕靖拍?復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,Peter Coad和Edward Yourdon提出用下列等式識(shí)認(rèn)面向?qū)ο蠓椒ǎ?面向?qū)ο?=,對(duì)象,(object),+,分類,(classification),+,繼承,(inheritance),+,通過(guò)消息的通信,(communication with messages),可以說(shuō),采用這四個(gè)概念開(kāi)發(fā)的軟件系統(tǒng)是面向?qū)ο蟮?,4,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工

3、程系 軟件工程課程,Peter Coad和Edward Yourdon提出用下列,面向?qū)ο蠓椒ǖ某霈F(xiàn)很快受到計(jì)算機(jī)軟件界的青睞,并成為20世紀(jì)90年代的主流開(kāi)發(fā)方法。我們可以從下列幾個(gè)方面來(lái)分析其原因:,從認(rèn)知學(xué)的角度來(lái)看,面向?qū)ο蠓椒ǚ先藗儗?duì)客觀世界的認(rèn)識(shí)規(guī)律。,面向?qū)ο蠓椒ㄩ_(kāi)發(fā)的軟件系統(tǒng)易于維護(hù),其體系結(jié)構(gòu)易于理解、擴(kuò)充和修改。,面向?qū)ο蠓椒ㄖ械睦^承機(jī)制有力支持軟件的復(fù)用。,,5,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,面向?qū)ο蠓椒ǖ某霈F(xiàn)很快受到計(jì)算機(jī)軟件界的青睞,并成,面向?qū)ο蟮幕靖拍?1.,對(duì)象,(object),,對(duì)象是指一組屬性以及這組屬性上的專用操作的封裝體

4、。,,屬性,(attribute)通常是一些數(shù)據(jù),有時(shí)它也可以是另一個(gè)對(duì)象。每個(gè)對(duì)象都有它自己的屬性值,表示該對(duì)象的狀態(tài)。對(duì)象中的屬性只能通過(guò)該對(duì)象所提供的操作來(lái)存取或修改。,,操作,(operation)(也稱方法或服務(wù))規(guī)定了對(duì)象的行為,表示對(duì)象所能提供的服務(wù)。,,,6,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,面向?qū)ο蟮幕靖拍?1. 對(duì)象(object)6復(fù)旦大學(xué)計(jì),封裝,(encapsulation)是一種信息隱蔽技術(shù),用戶只能看見(jiàn)對(duì)象封裝界面上的信息,對(duì)象的內(nèi)部實(shí)現(xiàn)對(duì)用戶是隱蔽的。封裝的目的是使對(duì)象的使用者和生產(chǎn)者分離,使對(duì)象的定義和實(shí)現(xiàn)分開(kāi)。,,一個(gè)對(duì)象通??捎蓪?duì)象名、

5、屬性和操作三部分組成。,,7,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,封裝(encapsulation)是一種信息隱蔽技術(shù),用戶只,2.,類,(class),類是一組具有相同屬性和相同操作的對(duì)象的集合。一個(gè)類中的每個(gè)對(duì)象都是這個(gè)類的一個(gè)實(shí)例(instance)。,類是創(chuàng)建對(duì)象的模板,從同一個(gè)類實(shí)例化的每個(gè)對(duì)象都具有相同的結(jié)構(gòu)和行為。,,8,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,2. 類(class)8復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,轎 車,,型號(hào):字符串,顏色:字符串,牌照號(hào):字符串,....,張經(jīng)理的轎車,,型號(hào)=桑塔納,顏色=紅色,牌照號(hào)=滬AN2037,....,類,

6、實(shí)例對(duì)象,,9,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,轎 車張經(jīng)理的轎車類實(shí)例對(duì)象9復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,3.,繼承,(inheritance),繼承是類間的基本關(guān)系,它是基于層次關(guān)系的不同類共享數(shù)據(jù)和操作的一種機(jī)制。父類中定義了其所有子類的公共屬性和操作,在子類中除了定義自己特有的屬性和操作外,可以繼承其父類(或祖先類)的屬性和操作,還可以對(duì)父類(或祖先類)中的操作重新定義其實(shí)現(xiàn)方法。,,10,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,3. 繼承(inheritance)10復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與,矩形,長(zhǎng),寬,對(duì)角線,計(jì)算面積,計(jì)算對(duì)角線,多邊形,頂點(diǎn)數(shù),頂點(diǎn)坐標(biāo)

7、,計(jì)算面積,旋轉(zhuǎn),,,11,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,矩形 多邊形11復(fù)旦大學(xué)計(jì)算機(jī)科,有時(shí),我們定義一個(gè)類,它把一些類組織起來(lái),提供一些公共的行為,但并不需要使用這個(gè)類的實(shí)例,而僅使用其子類的實(shí)例。我們把這種沒(méi)有實(shí)例的類稱為,抽象類,(abstract class)。在抽象類中可以定義,抽象操作,,抽象操作指:只定義這個(gè)類的操作接口,不定義它的實(shí)現(xiàn),其實(shí)現(xiàn)部分由其子類定義。抽象操作操作名用斜體字表示,也可以在操作特征(signature)后面加上特征字符串{abstract}。,,12,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,有時(shí),我們定義一個(gè)類,

8、它把一些類組織起來(lái),提供一些公共的行為,交通工具,飛行器,汽 車,船,轎 車,貨 車,,,,一般,-特殊關(guān)系,,13,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,交通工具飛行器汽 車 船轎 車貨 車 一般-特殊關(guān)系13復(fù)旦,如果一個(gè)子類只有唯一一個(gè)父類,這個(gè)繼承稱為,單一繼承,。如果一個(gè)子類有一個(gè)以上的父類,這種繼承稱為,多重繼承,。,水上交通工具,陸上交通工具,水陸兩棲交通工具,,,,,多重繼承,,14,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,如果一個(gè)子類只有唯一一個(gè)父類,這個(gè)繼承稱為單一繼承,4.,消息,(message),消息傳遞是對(duì)象間通信的手段,一個(gè)對(duì)象通過(guò)向另一個(gè)對(duì)

9、象發(fā)送消息來(lái)請(qǐng)求其服務(wù)。一個(gè)消息通常包括接收對(duì)象名、調(diào)用的操作名和適當(dāng)?shù)膮?shù)(如果有必要的話)。消息只告訴接收對(duì)象需要完成什么操作,但并不指示接收者怎樣完成操作。消息完全由接收者解釋,接收者獨(dú)立決定采用什么方法完成所需的操作。,,15,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,4. 消息(message)15復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,5.,多態(tài)性,(polymorphism),多態(tài)性是指同一個(gè)操作作用于不同的對(duì)象上可以有不同的解釋,并產(chǎn)生不同的執(zhí)行結(jié)果。例如“畫(huà)”操作,作用在“矩形”對(duì)象上,則在屏幕上畫(huà)一個(gè)矩形,作用在“圓”對(duì)象上,則在屏幕上畫(huà)一個(gè)圓。也就是說(shuō),相同操作的消息發(fā)送給不

10、同的對(duì)象時(shí),每個(gè)對(duì)象將根據(jù)自己所屬類中定義的這個(gè)操作去執(zhí)行,從而產(chǎn)生不同的結(jié)果。,,16,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,5. 多態(tài)性(polymorphism)16復(fù)旦大學(xué)計(jì)算機(jī)科,6.,動(dòng)態(tài)綁定,(dynamic binding),動(dòng)態(tài)綁定是指在程序運(yùn)行時(shí)才將消息所請(qǐng)求的操作與實(shí)現(xiàn)該操作的方法連接起來(lái)。,傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言的過(guò)程調(diào)用與目標(biāo)代碼的連接(即調(diào)用哪個(gè)過(guò)程)放在程序運(yùn)行前(即編譯時(shí))進(jìn)行(稱為靜態(tài)綁定),而動(dòng)態(tài)綁定則是把這種連接推遲到運(yùn)行時(shí)才進(jìn)行。,動(dòng)態(tài)綁定是一種在運(yùn)行時(shí)確定被執(zhí)行代碼的技術(shù)。,,17,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,6. 動(dòng)態(tài)

11、綁定(dynamic binding)17復(fù)旦大,在一般與特殊關(guān)系中,子類是父類的一個(gè)特例,所以父類對(duì)象可以出現(xiàn)的地方,也允許其子類對(duì)象出現(xiàn)。因此在運(yùn)行過(guò)程中,當(dāng)一個(gè)對(duì)象發(fā)送消息請(qǐng)求服務(wù)時(shí),要根據(jù)接收對(duì)象的具體情況將請(qǐng)求的操作與實(shí)現(xiàn)的方法進(jìn)行連接,即動(dòng)態(tài)綁定。,,,18,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,在一般與特殊關(guān)系中,子類是父類的一個(gè)特例,所以父類對(duì)象可以出,if 條件 then p := t ;,else p := r ;,area := p.getarea ;,getArea {abstract},,polygon,area,,hexagon,getArea,

12、,,rectangle,getArea,length,width,,triangle,getArea,,,Var p : polygon ;,Var t : triangle :=,triangle.new ;,Var r : rectangle :=,rectangle.new ;,,19,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,if 條件 then p := t ;getArea,內(nèi)容摘要,面向?qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程,UML概述,用況建模,靜態(tài)建模,動(dòng)態(tài)建模,物理體系結(jié)構(gòu)建模,,20,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,內(nèi)容摘要面向?qū)ο蟮幕?/p>

13、概念20復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,面向?qū)ο蠓治?Object-Oriented Analysis,,面向?qū)ο蠓治龅囊话悴襟E,如下:,獲取客戶對(duì)系統(tǒng)的需求:包括標(biāo)識(shí)場(chǎng)景(scenario)和用況(use case,也稱用例),以及建造需求模型,用基本的需求為指南,來(lái)選擇類和對(duì)象(包括屬性和操作)。,定義類的結(jié)構(gòu)和層次。,建造對(duì)象—關(guān)系模型。,建造對(duì)象—行為模型。,利用用況/場(chǎng)景來(lái)復(fù)審分析模型。,,21,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,面向?qū)ο蠓治?Object-Oriented Analysi,1.,獲取客戶對(duì)系統(tǒng)的需求,需求獲取必須讓客戶與開(kāi)發(fā)者充分地交流,這里介紹一種采用

14、用況來(lái)收集客戶需求的技術(shù)。分析員首先標(biāo)識(shí)使用該系統(tǒng)的不同的執(zhí)行者(actor),這些執(zhí)行者代表使用該系統(tǒng)的不同的角色。每個(gè)執(zhí)行者可以敘述他如何使用系統(tǒng),或者說(shuō)他需要系統(tǒng)提供什么功能。執(zhí)行者提出的每一個(gè)使用場(chǎng)景(或功能)都是系統(tǒng)的一個(gè)用況的實(shí)例,一個(gè)用況描述了系統(tǒng)的一種用法(或一個(gè)功能),所有執(zhí)行者提出的所有用況構(gòu)成系統(tǒng)的完整的需求。,,分析過(guò)程,,22,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,1.?? 獲取客戶對(duì)系統(tǒng)的需求分析過(guò)程22復(fù)旦大學(xué)計(jì)算機(jī)科學(xué),注意,執(zhí)行者與用戶是不同的兩個(gè)概念,一個(gè)用戶可以扮演幾個(gè)角色(執(zhí)行者),一個(gè)執(zhí)行者可以是用戶,也可以是其他系統(tǒng)(應(yīng)用程序或設(shè)備)。得

15、到的用況必須進(jìn)行復(fù)審,以使需求完整。,,23,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,注意,執(zhí)行者與用戶是不同的兩個(gè)概念,一個(gè)用戶可以扮演幾個(gè)角色,2.,標(biāo)識(shí)類和對(duì)象,類和對(duì)象來(lái)自問(wèn)題領(lǐng)域。,可以先標(biāo)識(shí)候選類,然后進(jìn)行篩選,,24,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,2.???標(biāo)識(shí)類和對(duì)象24復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,3.,定義類的結(jié)構(gòu)和層次,類的結(jié)構(gòu)主要有兩種:一般—特殊(generalization—specialization)結(jié)構(gòu)和整體—部分(whole—part)結(jié)構(gòu)。,,一般—特殊結(jié)構(gòu),是一種分類結(jié)構(gòu),反映了類間的一般與特殊的關(guān)系。一般類與特殊類之間是一種

16、“is a”的關(guān)系,如:汽車是一種交通工具。同樣,特殊類還可以分為更特殊的類,這樣可形成類的層次結(jié)構(gòu)。,,整體—部分結(jié)構(gòu),反映了類間的整體與部分關(guān)系。值得注意的是,整體—部分關(guān)系是對(duì)對(duì)象而言的,而不是對(duì)類的。整體—部分關(guān)系是一種“has a ”的關(guān)系,如“汽車”有“發(fā)動(dòng)機(jī)”。同樣,整體—部分結(jié)構(gòu)也具有層次結(jié)構(gòu)。,,25,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,3. 定義類的結(jié)構(gòu)和層次25復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,有的面向?qū)ο蠓椒ㄖ?,把互相協(xié)作以完成一組緊密結(jié)合在一起的責(zé)任的類的集合定義為,主題,(subject)或,子系統(tǒng),(subsystem)。主題和子系統(tǒng)都是一種抽象,從外界

17、觀察系統(tǒng)時(shí),主題或子系統(tǒng)可看作黑盒,它有自己的一組責(zé)任和協(xié)作者,觀察者不必關(guān)心其細(xì)節(jié)。觀察一個(gè)主題或子系統(tǒng)的內(nèi)部時(shí),觀察者可以把注意力集中在系統(tǒng)的某一個(gè)方面。因此,主題或子系統(tǒng)實(shí)際上是系統(tǒng)更高抽象層次上的一種描述。,,26,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,有的面向?qū)ο蠓椒ㄖ?,把互相協(xié)作以完成一組緊密結(jié)合在一起的責(zé)任,4.,建造對(duì)象——關(guān)系模型,對(duì)象--關(guān)系模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu),它指出了類間的關(guān)系(relationship)。,類之間的關(guān)系有關(guān)聯(lián)、依賴、泛化、實(shí)現(xiàn)等。,,27,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,4.?? 建造對(duì)象——關(guān)系模型27復(fù)旦大學(xué)計(jì)算機(jī)

18、科學(xué)與工程系,5.,建立對(duì)象——行為模型,對(duì)象--行為模型描述了系統(tǒng)的動(dòng)態(tài)行為,它們指明系統(tǒng)如何響應(yīng)外部的事件或激勵(lì)(stimulus)。,建模的步驟如下:,評(píng)估所有的用況,以完全理解系統(tǒng)中交互的序列。,標(biāo)識(shí)驅(qū)動(dòng)交互序列的事件,理解這些事件如何和特定的對(duì)象相關(guān)聯(lián)。,為每個(gè)用況創(chuàng)建事件軌跡(event trace)。,為系統(tǒng)建造狀態(tài)機(jī)圖。,復(fù)審對(duì)象--行為模型,以驗(yàn)證準(zhǔn)確性和一致性。,,,28,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,5.?? 建立對(duì)象——行為模型28復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,面向?qū)ο笤O(shè)計(jì) (Object_Oriented Design),,面向?qū)ο笤O(shè)計(jì)的一般步驟,如

19、下:,系統(tǒng)設(shè)計(jì),將子系統(tǒng)分配到處理器,選擇實(shí)現(xiàn)數(shù)據(jù)管理、界面支持和任務(wù)管理的設(shè)計(jì)策略,為系統(tǒng)設(shè)計(jì)合適的控制機(jī)制,復(fù)審并考慮權(quán)衡(折衷),,29,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,面向?qū)ο笤O(shè)計(jì) (Object_Oriented Design,對(duì)象設(shè)計(jì),在過(guò)程級(jí)別(procedural lavel)設(shè)計(jì)每個(gè)操作,即設(shè)計(jì)每個(gè)操作的實(shí)現(xiàn)細(xì)節(jié),定義內(nèi)部類,為類屬性設(shè)計(jì)內(nèi)部數(shù)據(jù)結(jié)構(gòu),消息設(shè)計(jì),使用對(duì)象間的協(xié)作和對(duì)象--關(guān)系模型,設(shè)計(jì)消息模型,復(fù)審,復(fù)審設(shè)計(jì)模型并在需要時(shí)迭代。,,30,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,對(duì)象設(shè)計(jì)30復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程

20、課程,1.,系統(tǒng)設(shè)計(jì),1),將分析模型劃分成子系統(tǒng),在OO系統(tǒng)設(shè)計(jì)中,我們把分析模型中緊密相關(guān)的類、關(guān)系等設(shè)計(jì)元素包裝成子系統(tǒng)。,通常,子系統(tǒng)的所有元素共享某些公共的性質(zhì),它們可能都涉及完成相同的功能;它們可能駐留在相同的產(chǎn)品硬件中;或者它們可能管理相同的類和資源。子系統(tǒng)由它們的責(zé)任所刻畫(huà),即,一個(gè)子系統(tǒng)可以通過(guò)它提供的服務(wù)來(lái)標(biāo)識(shí)。在OOD中,這種服務(wù)是完成特定功能的一組操作。,,,31,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,1. 系統(tǒng)設(shè)計(jì)31復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件,,子系統(tǒng)的設(shè)計(jì)準(zhǔn)則是:,(1) 子系統(tǒng)應(yīng)具有定義良好的接口,通過(guò)接口和系統(tǒng)的其它部分通信;,(2

21、) 除了少數(shù)的“通信類” 外,子系統(tǒng)中的類應(yīng)只和該子系統(tǒng)中的其它類協(xié)作;,(3) 子系統(tǒng)的數(shù)量不宜太多;,(4) 可以在子系統(tǒng)內(nèi)部再次劃分,以降低復(fù)雜性。,,32,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,子系統(tǒng)的設(shè)計(jì)準(zhǔn)則是:32復(fù)旦大學(xué)計(jì)算機(jī)科學(xué),2),標(biāo)識(shí)問(wèn)題本身的并發(fā)性,并為子系統(tǒng)分配處理器,通過(guò)對(duì)對(duì)象--行為模型的分析,可發(fā)現(xiàn)系統(tǒng)的并發(fā)性。如果對(duì)象(或子系統(tǒng))不是同時(shí)活動(dòng)的,則它們不需并發(fā)處理,此時(shí)這些對(duì)象(或子系統(tǒng))可以在同一個(gè)處理器上實(shí)現(xiàn)。反之,如果對(duì)象(或子系統(tǒng))必須對(duì)一些事件同時(shí)異步地動(dòng)作,則它們被視為并發(fā)的,此時(shí),可以將并發(fā)的子系統(tǒng)分別分配到不同的處理器,或者分配在

22、同一個(gè)處理器,而由操作系統(tǒng)提供并發(fā)支持。,,33,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,2) 標(biāo)識(shí)問(wèn)題本身的并發(fā)性,并為子系統(tǒng)分配處理器33復(fù)旦大學(xué),3),任務(wù)管理設(shè)計(jì),Coad和Yourdon提出如下管理并發(fā)任務(wù)對(duì)象的設(shè)計(jì)策略:,(1) 確定任務(wù)的類型;,(2) 必要時(shí),定義協(xié)調(diào)者任務(wù)和關(guān)聯(lián)的對(duì)象;,(3) 將協(xié)調(diào)者任務(wù)和其它任務(wù)集成。,通??赏ㄟ^(guò)了解任務(wù)是如何被啟動(dòng)的來(lái)確定任務(wù)的類型,如事件驅(qū)動(dòng)任務(wù),時(shí)鐘驅(qū)動(dòng)任務(wù)。每個(gè)任務(wù)應(yīng)該定義其優(yōu)先級(jí),并識(shí)別關(guān)鍵任務(wù)。當(dāng)有多個(gè)任務(wù)時(shí)還可以考慮增加一個(gè)協(xié)調(diào)者任務(wù),以控制這些任務(wù)協(xié)同工作。,,34,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課

23、程,3) 任務(wù)管理設(shè)計(jì)34復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,4),數(shù)據(jù)管理設(shè)計(jì),通常數(shù)據(jù)管理設(shè)計(jì)成層次模式,其目的是將數(shù)據(jù)的物理存儲(chǔ)及操縱與系統(tǒng)的業(yè)務(wù)邏輯加以分離。,數(shù)據(jù)管理的設(shè)計(jì)包括設(shè)計(jì)系統(tǒng)中各種數(shù)據(jù)對(duì)象的存儲(chǔ)方式(如內(nèi)部數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫(kù)),以及設(shè)計(jì)相應(yīng)的服務(wù),即為要儲(chǔ)存的對(duì)象增加所需的屬性和操作。,,35,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,4) 數(shù)據(jù)管理設(shè)計(jì)35復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,5),資源管理設(shè)計(jì),OO系統(tǒng)可利用一系列不同的資源(如磁盤(pán)驅(qū)動(dòng)器、處理器、通信線路等外部實(shí)體或數(shù)據(jù)庫(kù)、對(duì)象等抽象資源),很多情況下,子系統(tǒng)同時(shí)競(jìng)爭(zhēng)這些資源,因此要設(shè)計(jì)一套控制機(jī)制和安全

24、機(jī)制,以控制對(duì)資源的訪問(wèn),避免對(duì)資源使用的沖突。,,6),人機(jī)界面設(shè)計(jì),對(duì)大多數(shù)應(yīng)用系統(tǒng)而言,人機(jī)界面本身是一個(gè)非常重要的子系統(tǒng)。人機(jī)界面主要強(qiáng)調(diào)人如何命令系統(tǒng),以及系統(tǒng)如何向人提交信息。它包括窗口、菜單、報(bào)告的設(shè)計(jì)。,,,36,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,5) 資源管理設(shè)計(jì)36復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,7),子系統(tǒng)間的通信,子系統(tǒng)之間可以通過(guò)建立客戶/服務(wù)器連接進(jìn)行通信,也可以通過(guò)端對(duì)端(peer to peer)連接進(jìn)行通信。我們必須確定子系統(tǒng)間通信的合約(contract),合約提供了一個(gè)子系統(tǒng)和另一個(gè)子系統(tǒng)交互的方式。,,,37,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系

25、 軟件工程課程,7) 子系統(tǒng)間的通信37復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,2.,對(duì)象設(shè)計(jì),對(duì)象設(shè)計(jì)是為每個(gè)類的屬性和操作作出詳細(xì)的設(shè)計(jì),并設(shè)計(jì)連接類與它的協(xié)作者之間的消息規(guī)約。,1)?? 對(duì)象描述,對(duì)象的設(shè)計(jì)描述可以采取以下形式之一:,(1) 協(xié)議描述:描述對(duì)象的接口,即定義對(duì)象可以接收的消息以及當(dāng)對(duì)象接收到消息后完成的相關(guān)操作;,(2) 實(shí)現(xiàn)描述:描述傳送給對(duì)象的消息所蘊(yùn)含的每個(gè)操作的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)細(xì)節(jié)包括有關(guān)對(duì)象私有部分的信息,即關(guān)于描述對(duì)象屬性的數(shù)據(jù)結(jié)構(gòu)的內(nèi)部細(xì)節(jié)和描述操作的過(guò)程細(xì)節(jié)。,對(duì)對(duì)象的使用者來(lái)說(shuō),只需要協(xié)議描述就夠了。,,38,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,

26、2. ? 對(duì)象設(shè)計(jì)38復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟,2)設(shè)計(jì)算法和數(shù)據(jù)結(jié)構(gòu),為對(duì)象中的屬性和操作設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)算法。,,3.,設(shè)計(jì)模式,(design patterns),在許多面向?qū)ο笙到y(tǒng)中,存在一些類和通信對(duì)象的重復(fù)出現(xiàn)的模式。這些模式求解特定的設(shè)計(jì)問(wèn)題,使面向?qū)ο笤O(shè)計(jì)更靈活,并最終可復(fù)用。這些模式幫助設(shè)計(jì)者復(fù)用以前成功的設(shè)計(jì),設(shè)計(jì)者可以把這些模式應(yīng)用到新的設(shè)計(jì)中。,,39,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,2)設(shè)計(jì)算法和數(shù)據(jù)結(jié)構(gòu)39復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,一個(gè)設(shè)計(jì)模式通??捎盟膫€(gè)信息來(lái)描述:,1)模式名,設(shè)計(jì)模式名應(yīng)具有實(shí)際的含義,它能反映模式的適用性和

27、意圖。,2)使模式可被應(yīng)用所必須存在的環(huán)境和條件。,3)設(shè)計(jì)模式的特征,模式特征指出一些設(shè)計(jì)的屬性,調(diào)整這些屬性使該模式能適應(yīng)各種不同的問(wèn)題。這些屬性表示設(shè)計(jì)的特征,這些特征能被用于檢索(通過(guò)數(shù)據(jù)庫(kù))以找到合適的模式。,4)應(yīng)用設(shè)計(jì)模式的結(jié)果(consequences),對(duì)于一個(gè)設(shè)計(jì)模式的使用結(jié)果表明設(shè)計(jì)決策的走向。,,40,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,一個(gè)設(shè)計(jì)模式通??捎盟膫€(gè)信息來(lái)描述:40復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與,典型的面向?qū)ο蠓椒?Coad & Yourdon 方法,OMT方法,Booch方法,OOSE方法,,41,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,典型

28、的面向?qū)ο蠓椒–oad & Yourdon 方法41復(fù)旦,內(nèi)容摘要,面向?qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程,UML概述,用況建模,靜態(tài)建模,動(dòng)態(tài)建模,物理體系結(jié)構(gòu)建模,,42,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,內(nèi)容摘要面向?qū)ο蟮幕靖拍?2復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,統(tǒng)一建模語(yǔ)言UML,Unified Modeling Language,,43,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,統(tǒng)一建模語(yǔ)言UMLUnified Modeling Lang,UML概述,為何研究UML—結(jié)束方法大戰(zhàn),發(fā)展歷史,,1994年Booch和Rumbaugh在Rational Sof

29、tware Corporation開(kāi)始了UML的工作,其目標(biāo)是創(chuàng)建一個(gè)“統(tǒng)一的方法”,,1995年OOSE的創(chuàng)始人Jacobson加盟到這項(xiàng)工作中,工作重點(diǎn)轉(zhuǎn)移到創(chuàng)建一種統(tǒng)一的建模語(yǔ)言UML,1996年6月、10月、1997年1月、11月分別推出了UML0.9、 UML0.91、 UML1.0、 UML1.1,,44,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,UML概述 為何研究UML—結(jié)束方法大戰(zhàn)44復(fù)旦大學(xué)計(jì)算機(jī)科,UML概述,1997年11月,OMG(Object Management Group)批準(zhǔn)把UML1.1作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語(yǔ)言,之后,UML進(jìn)行了持續(xù)的修訂

30、和改進(jìn),先后產(chǎn)生了UML1.2、1.3、1.4、1.5版本,2004年推出了UML2.0,UML2.0對(duì)UML1.x作了重大的修改。,,45,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,UML概述 1997年11月,OMG(Obj,模型元素,,模型元素指模型中的實(shí)體以及實(shí)體間相互連接的關(guān)系,,部分模型元素,注解,類,屬性,操作,對(duì)象:類,屬性,操作,狀態(tài),用況,結(jié)點(diǎn),,供應(yīng)接口,包,,依賴,關(guān)聯(lián),泛化,,主動(dòng)類,屬性,操作,,,,請(qǐng)求接口,,,構(gòu)件,,,,實(shí)現(xiàn),,,46,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,模型元素部分模型元素注解類屬性操作對(duì)象:類屬性操作狀

31、態(tài)用況,視圖與圖,主題域,視圖 (view),圖(diagram),結(jié)構(gòu)化,靜態(tài)視圖,類圖(class),設(shè)計(jì)視圖,內(nèi)部結(jié)構(gòu)(internal structure),協(xié)作圖(collaboration),構(gòu)件圖(component),用況視圖,用況圖(use case),動(dòng)態(tài)的,狀態(tài)機(jī)視圖,狀態(tài)機(jī)圖(state machine),活動(dòng)視圖,活動(dòng)圖(activity),交互視圖,順序圖(sequence),通信圖(communication),物理的,部署視圖,部署圖(deployment),模型管理,模型管理視圖,包圖(package),,47,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程

32、,視圖與圖主題域視圖 (view)圖(diagram)結(jié)構(gòu)化靜,靜態(tài)視圖,靜態(tài)視圖對(duì)應(yīng)用領(lǐng)域中的概念以及與系統(tǒng)實(shí)現(xiàn)有關(guān)的內(nèi)部概念建模,主要由類以及類之間的相互關(guān)系組成,在靜態(tài)視圖中不描述依賴于時(shí)間的系統(tǒng)行為。靜態(tài)視圖用類圖來(lái)展示。,設(shè)計(jì)視圖,設(shè)計(jì)視圖對(duì)應(yīng)用自身的設(shè)計(jì)結(jié)構(gòu)建模,例如,將設(shè)計(jì)結(jié)構(gòu)擴(kuò)展成:結(jié)構(gòu)化類元,為實(shí)現(xiàn)功能所需的協(xié)作和良定義接口的構(gòu)件的組裝。設(shè)計(jì)視圖由內(nèi)部結(jié)構(gòu)圖、協(xié)作圖和構(gòu)件圖實(shí)現(xiàn)。,,48,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,靜態(tài)視圖48復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況視圖,用況視圖對(duì)被稱為執(zhí)行者的外部代理(他與特定視點(diǎn)的主題交互)所感受到的

33、主題(如系統(tǒng))功能建模。用況視圖的意圖是列出系統(tǒng)中的用況和執(zhí)行者,并顯示哪個(gè)執(zhí)行者參與了哪個(gè)用況的執(zhí)行。用況的行為用動(dòng)態(tài)視圖,特別是交互視圖來(lái)表示。用況視圖用用況圖來(lái)展示。,,49,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況視圖49復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,狀態(tài)機(jī)視圖,狀態(tài)機(jī)視圖對(duì)一個(gè)類的對(duì)象的可能生命歷程建模。一個(gè)狀態(tài)機(jī)包括用遷移連接的狀態(tài),每個(gè)狀態(tài)對(duì)一個(gè)對(duì)象在其生命期中滿足某種條件的一個(gè)時(shí)間段建模。當(dāng)一個(gè)事件發(fā)生時(shí),它會(huì)導(dǎo)致觸發(fā)對(duì)象的一個(gè)狀態(tài)向另一個(gè)新?tīng)顟B(tài)的遷移,附加在遷移上的動(dòng)作或活動(dòng)也同時(shí)被執(zhí)行。狀態(tài)機(jī)視圖用狀態(tài)機(jī)圖來(lái)展示。,,50,復(fù)旦大學(xué)計(jì)算機(jī)科

34、學(xué)與工程系 軟件工程課程,狀態(tài)機(jī)視圖50復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課,活動(dòng)視圖,活動(dòng)展示了包含在執(zhí)行計(jì)算或工作流中的計(jì)算活動(dòng)的控制流。一個(gè)動(dòng)作是一個(gè)基本的計(jì)算步,一個(gè)活動(dòng)結(jié)點(diǎn)是一組動(dòng)作或子活動(dòng),一個(gè)活動(dòng)可描述順序的和并發(fā)的計(jì)算?;顒?dòng)視圖用活動(dòng)圖來(lái)展示。,交互視圖,交互視圖描述系統(tǒng)各部分中消息交換的順序。交互視圖提供了系統(tǒng)中行為的整體視圖,也就是說(shuō),它展示了多個(gè)對(duì)象間交叉的控制流。交互視圖用順序圖和通信圖來(lái)展示。,,51,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,活動(dòng)視圖51復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,部署視圖,部署視圖描述了運(yùn)行時(shí)結(jié)點(diǎn)上制

35、品的分布。制品是一個(gè)物理實(shí)現(xiàn)單元,如一個(gè)文件,它也可以表示一或多個(gè)構(gòu)件的實(shí)現(xiàn)(一種表現(xiàn)形式)。結(jié)點(diǎn)是運(yùn)行時(shí)表示計(jì)算資源的物理對(duì)象,如,計(jì)算機(jī)、設(shè)備或內(nèi)存。部署視圖允許對(duì)分配的結(jié)果和資源分配進(jìn)行評(píng)估。部署視圖用部署圖來(lái)展示。,,52,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,部署視圖52復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,模型管理視圖,模型管理視圖對(duì)模型自身的組織建模。一個(gè)模型由一組保存模型元素(如類、狀態(tài)機(jī)、用況)的包組成。包還可以包含其它的包,因此,一個(gè)模型從一個(gè)間接包含所有模型內(nèi)容的根包(root package)開(kāi)始。包是操縱模型內(nèi)容的單元,還是訪問(wèn)控制和配置控制的

36、單元。每個(gè)模型元素可以被一個(gè)包或另一個(gè)元素?fù)碛小DP凸芾硇畔⑼ǔU故驹诎鼒D中,它是類圖的變種。,,53,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,模型管理視圖53復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程,剖面(profile),UML是用一個(gè)元模型(metamodel)定義的,元模型是指描述建模語(yǔ)言自身的模型。通常元模型的改變是復(fù)雜的,也是危險(xiǎn)的。剖面機(jī)制允許在不修改基礎(chǔ)元模型的前提下對(duì)UML作有限的變化。UML包含三個(gè)主要的可擴(kuò)展結(jié)構(gòu):約束(constraints)、版型(stereotypes)和標(biāo)簽值(tagged values)。,約束是以自然語(yǔ)言或特定形式語(yǔ)言的正文表示的

37、語(yǔ)義條件或限制,約束寫(xiě)在花括號(hào)中({}),如{value≥0},{or}。版型是在基于現(xiàn)有各類模型元素的外形中定義模型元素的新類型,它本質(zhì)上是一種新元類(metaclass)。版型可以擴(kuò)展語(yǔ)義,但不能擴(kuò)展原元模型類的結(jié)構(gòu)。用《 》標(biāo)記版型,如《signal》。標(biāo)簽值是貼在任何模型元素上的被命名的信息片。下圖給出了版型和標(biāo)簽值的應(yīng)用實(shí)例。,,54,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,剖面(profile)54復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,版型和標(biāo)簽值,《authorship》,Scheduling,tagged values,,《authorship》,author=“Frank M

38、artin”,due=Dec.31,2009,,55,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,版型和標(biāo)簽值《authorship》tagged value,類圖,類圖展示了系統(tǒng)中類的靜態(tài)結(jié)構(gòu),即類與類之間的相互聯(lián)系。類之間有多種聯(lián)系方式,如關(guān)聯(lián)(相互連接)、依賴(一個(gè)類依賴或使用另一個(gè)類)、泛化(一個(gè)類是另一個(gè)類的特殊情況)等。可以把若干個(gè)相關(guān)的類包裝在一起作為一個(gè)單元(包),相當(dāng)于一個(gè)子系統(tǒng)。一個(gè)系統(tǒng)可以有多張類圖,一個(gè)類也可以出現(xiàn)在幾張類圖中。,對(duì)象圖,對(duì)象圖是類圖的實(shí)例,它展示了系統(tǒng)執(zhí)行在某一時(shí)間點(diǎn)上的一個(gè)可能的快照。對(duì)象圖使用與類圖相同的符號(hào),只是在對(duì)象名下面加上下劃線,同時(shí)

39、它還顯示了對(duì)象間的所有實(shí)例鏈接(,link,)關(guān)系。,,56,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,類圖56復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,內(nèi)部結(jié)構(gòu)圖,內(nèi)部結(jié)構(gòu)圖展示了類的分解,給出了組成一個(gè)結(jié)構(gòu)化類元的相互連接的部分、端口和連接器。,手冊(cè):演出手冊(cè),數(shù)據(jù)庫(kù):演出數(shù)據(jù)庫(kù),售票員:售票員,,,,,售票處,,售票,,,,內(nèi)部結(jié)構(gòu)圖,,57,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,內(nèi)部結(jié)構(gòu)圖手冊(cè):演出手冊(cè)數(shù)據(jù)庫(kù):演出數(shù)據(jù)庫(kù)售票員:售票員售票,協(xié)作圖,協(xié)作圖展示了協(xié)作的定義,是一種合成的結(jié)構(gòu)圖。協(xié)作是為了完成某一目的而一起工作的一組對(duì)象間的上下文關(guān)系。,劇院售票

40、,*  1,售票亭:售票亭[*],:售票處,1  *,終端:售票終端[*],,協(xié)作圖,,58,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,協(xié)作圖劇院售票*  1售票亭:售票亭[*]:售票處1  *,構(gòu)件圖,構(gòu)件圖展示了系統(tǒng)中的構(gòu)件(即來(lái)自應(yīng)用的軟件單元),構(gòu)件間通過(guò)接口的連接,以及構(gòu)件之間的依賴關(guān)系。構(gòu)件是一種結(jié)構(gòu)化類元,可以用內(nèi)部結(jié)構(gòu)圖來(lái)定義它的內(nèi)部結(jié)構(gòu)。,,59,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,構(gòu)件圖59復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況圖,用況圖展示了各類外部執(zhí)行者與系統(tǒng)所提供的用況之間的連接。一個(gè)用況是系統(tǒng)所提供的一個(gè)功能(也可以說(shuō)是系統(tǒng)

41、提供的某一特定用法)的描述,執(zhí)行者是指那些可能使用這些用況的人或外部系統(tǒng),執(zhí)行者與用況的連接表示該執(zhí)行者使用了那個(gè)用況。用況圖給出了用戶所感受到的系統(tǒng)行為,但不描述系統(tǒng)如何實(shí)現(xiàn)該功能。用況通常用普通正文描述,也可以用活動(dòng)圖來(lái)描述。,,60,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況圖60復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,狀態(tài)機(jī)圖,狀態(tài)機(jī)圖通常是對(duì)類描述的補(bǔ)充,它說(shuō)明該類的對(duì)象所有可能的狀態(tài)以及哪些事件將導(dǎo)致?tīng)顟B(tài)的改變。一個(gè)事件可以是另一個(gè)對(duì)象向它發(fā)送的一條消息,或者是滿足了某些條件。狀態(tài)的改變稱為遷移(,transition,)。一個(gè)狀態(tài)遷移還可以有與之相關(guān)的動(dòng)作,

42、該動(dòng)作指出狀態(tài)遷移時(shí)應(yīng)做什么。,并不是所有的類都要畫(huà)狀態(tài)機(jī)圖,有些類有一些意義明確的狀態(tài),并且其行為受不同的狀態(tài)所影響和改變,這些類才需要畫(huà)狀態(tài)機(jī)圖。,,61,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,狀態(tài)機(jī)圖61復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,活動(dòng)圖,活動(dòng)圖展示了連續(xù)的活動(dòng)流?;顒?dòng)圖通常用來(lái)描述完成一個(gè)操作所需要的活動(dòng)。當(dāng)然它還能用于描述其它活動(dòng)流,如描述用況。活動(dòng)圖由動(dòng)作狀態(tài)組成,它包含完成一個(gè)動(dòng)作的活動(dòng)的規(guī)約(即規(guī)格說(shuō)明)。當(dāng)一個(gè)動(dòng)作完成時(shí),將離開(kāi)該動(dòng)作狀態(tài)?;顒?dòng)圖中的動(dòng)作部分還可包括消息發(fā)送和接收的規(guī)約。,,62,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課

43、程,活動(dòng)圖62復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,順序圖,順序圖展示了幾個(gè)對(duì)象之間的動(dòng)態(tài)交互關(guān)系。它主要是用來(lái)顯示對(duì)象之間發(fā)送消息的順序,它還顯示了對(duì)象之間的交互,即系統(tǒng)執(zhí)行的某一特定點(diǎn)所發(fā)生的事。,通信圖,通信圖用幾何排列來(lái)表示交互作用中的角色,它顯示了有協(xié)作關(guān)系的復(fù)合結(jié)構(gòu)組成部分或角色范圍內(nèi)的交互。它明確地顯示元素之間的協(xié)作關(guān)系,而不顯示作為獨(dú)立維的時(shí)間,消息的順序和并發(fā)線程必須由順序號(hào)確定。,,63,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,順序圖63復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,部署圖,部署圖展示了運(yùn)行時(shí)處理結(jié)點(diǎn)和在結(jié)點(diǎn)上生存的制品的配置。結(jié)點(diǎn)

44、是運(yùn)行時(shí)的計(jì)算資源,制品是物理實(shí)體,如構(gòu)件、文件。,部署圖中顯示部署在結(jié)點(diǎn)上的制品和它們之間的關(guān)系,以及結(jié)點(diǎn)之間的連接和通信方式。,,64,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,部署圖64復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,包圖,包圖是由包和它們間的關(guān)系組成的結(jié)構(gòu)圖,模型是在某一視點(diǎn)給定的精度上對(duì)系統(tǒng)的完整描述,一個(gè)系統(tǒng)可以從不同的視點(diǎn)(如分析模型、設(shè)計(jì)模型)存在多個(gè)模型。一個(gè)模型可看作一個(gè)特定類型的包,通常僅顯示包就足夠了(不必顯示包內(nèi)部的細(xì)節(jié))。,下圖給出了劇院系統(tǒng)所細(xì)分成的包以及它們之間的依賴關(guān)系。,,65,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,包圖

45、65復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,,售票處,,計(jì)劃,廣告,,時(shí)間表,,客戶記錄,,票記錄,,,運(yùn)作,售票,,工資單,,計(jì)算,,購(gòu)買,,包圖,,66,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,售票處計(jì)劃廣告時(shí)間表客戶記錄票記錄運(yùn)作售票工資單計(jì)算購(gòu)買包圖,內(nèi)容摘要,面向?qū)ο蟮幕靖拍?面向?qū)ο蟮姆治龊驮O(shè)計(jì)過(guò)程,UML概述,用況建模,靜態(tài)建模,動(dòng)態(tài)建模,物理體系結(jié)構(gòu)建模,,67,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,內(nèi)容摘要面向?qū)ο蟮幕靖拍?7復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,用況建模,用況建模是用于描述一個(gè)系統(tǒng)應(yīng)該做什么的建模技術(shù),用況建模不僅用于新系統(tǒng)的需求獲

46、取,還可用于已有系統(tǒng)的升級(jí)。用況模型用用況圖來(lái)描述。,用況圖展示了各類外部執(zhí)行者與系統(tǒng)所提供的用況之間的連接。一個(gè)用況是系統(tǒng)所提供的一個(gè)功能(也可以說(shuō)是系統(tǒng)提供的某一特定用法)的描述,執(zhí)行者是指那些可能使用這些用況的人或外部系統(tǒng),執(zhí)行者與用況的連接表示該執(zhí)行者使用了那個(gè)用況。用況圖給出了用戶所感受到的系統(tǒng)行為,但不描述系統(tǒng)如何實(shí)現(xiàn)該功能。,,用況通常用普通正文描述,也可以用活動(dòng)圖來(lái)描述。,,,68,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況建模 用況建模是用于描述一個(gè)系統(tǒng)應(yīng)該做什么的建模技,任何一個(gè)涉及到系統(tǒng)功能活動(dòng)的人都會(huì)用到用況模型。,客戶:用況模型指明了系統(tǒng)的功能,描述

47、了系統(tǒng)能如何使用。用況建模時(shí)客戶的積極參與是十分重要的。,開(kāi)發(fā)者:用況模型幫助他們理解系統(tǒng)要做什么,同時(shí)為以后的其它模型建模、結(jié)構(gòu)設(shè)計(jì)、實(shí)現(xiàn)等提供依據(jù)。,集成測(cè)試和系統(tǒng)測(cè)試人員:根據(jù)用況來(lái)測(cè)試系統(tǒng),以驗(yàn)證系統(tǒng)是否完成了用況指定的功能。,,69,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,任何一個(gè)涉及到系統(tǒng)功能活動(dòng)的人都會(huì)用到用況模型。69,用況建模步驟,創(chuàng)建用況模型的步驟包括:,1.定義系統(tǒng),2.確定執(zhí)行者,3.確定用況,4.描述用況,5.定義用況間的關(guān)系,,6.確認(rèn)模型,,70,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況建模步驟創(chuàng)建用況模型的步驟包括:70復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)

48、與,用況模型由用況圖組成,用況圖展示了執(zhí)行者、用況以及它們之間的關(guān)系。用況通常用正文形式來(lái)描述。,一個(gè)用況模型可由若干幅用況圖組成。一幅用況圖包含的模型元素有系統(tǒng)、執(zhí)行者、用況,以及表示它們間的不同關(guān)系,如關(guān)聯(lián)、擴(kuò)展、包含、泛化等。,,71,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況模型由用況圖組成,用況圖展示了執(zhí)行者、用況以及它們之間的,用況圖,電話訂購(gòu)系統(tǒng)用況圖,Telephone Catalog,,,Customer,Salespersonn,Shipping Clerk,supervisor,establish,credit,Fill order,Arrange,Paym

49、ent,Supply,Customer,Data,order,product,Arrange,Credit,Pay,cash,place,order,Request,Catalog,《include》,《include》,《include》,《extend》,check,status,,,,,,,72,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況圖電話訂購(gòu)系統(tǒng)用況圖Telephone Catalog,一.,,確定執(zhí)行者,執(zhí)行者是指與系統(tǒng)交互的人或其它系統(tǒng),執(zhí)行者代表一種角色,而不是具體的某個(gè)人,執(zhí)行者可分成主執(zhí)行者和副執(zhí)行者:,主執(zhí)行者使用系統(tǒng)的主要功能,例如,保險(xiǎn)系統(tǒng)中主執(zhí)行者處

50、理保險(xiǎn)的注冊(cè)和管理,副執(zhí)行者處理系統(tǒng)的輔助功能,例如,管理數(shù)據(jù)庫(kù)、通信、備份以及其它管理等系統(tǒng)維護(hù),,73,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,一. 確定執(zhí)行者73復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟,執(zhí)行者還可分為主動(dòng)執(zhí)行者和被動(dòng)執(zhí)行者:,主動(dòng)執(zhí)行者開(kāi)始一個(gè)用況,被動(dòng)執(zhí)行者從不開(kāi)始用況,只是參與一個(gè)或多個(gè)用況,,74,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,執(zhí)行者還可分為主動(dòng)執(zhí)行者和被動(dòng)執(zhí)行者:74復(fù)旦大學(xué)計(jì)算機(jī)科學(xué),我們可以通過(guò)回答下列問(wèn)題來(lái)確定執(zhí)行者:,誰(shuí)使用系統(tǒng)的主要功能(主執(zhí)行者)?,誰(shuí)需要從系統(tǒng)中得到對(duì)他們?nèi)粘9ぷ鞯闹С郑?誰(shuí)需要維護(hù)、管理和維持系統(tǒng)的日

51、常運(yùn)行(副執(zhí)行者)?,系統(tǒng)需要控制哪些硬件設(shè)備?,系統(tǒng)需要與哪些其它系統(tǒng)交互?,哪些人或哪些系統(tǒng)對(duì)系統(tǒng)產(chǎn)生的結(jié)果(值)感興趣?,,75,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,我們可以通過(guò)回答下列問(wèn)題來(lái)確定執(zhí)行者:75復(fù)旦大學(xué)計(jì)算機(jī)科學(xué),確定用況,1.,用況的特征,用況總是被執(zhí)行者啟動(dòng)的(initiated),執(zhí)行者必須直接或間接地指示系統(tǒng)去執(zhí)行用況,用況向執(zhí)行者提供值,這些值必須是可識(shí)別的,用況是完整的,一個(gè)用況必須是一個(gè)完整的描述,,用況是一個(gè)類,而不是實(shí)例,用況的實(shí)例稱為場(chǎng)景(scenario),,76,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,確定用況76復(fù)旦大學(xué)計(jì)算

52、機(jī)科學(xué)與工程系 軟件工程課程,2.,尋找用況,可以通過(guò)讓每個(gè)執(zhí)行者回答以下問(wèn)題來(lái)尋找用況:,執(zhí)行者需要系統(tǒng)提供哪些功能?執(zhí)行者需要做什么?,執(zhí)行者是否需要讀、創(chuàng)建、刪除、修改或儲(chǔ)存系統(tǒng)中的某類信息?,執(zhí)行者是否要被系統(tǒng)中的事件提醒,或者執(zhí)行者是否要提醒系統(tǒng)中某些事情?從功能觀點(diǎn)看,這些事件表示什么?,執(zhí)行者的日常工作是否因?yàn)橄到y(tǒng)的新功能(尤其是目前尚未自動(dòng)化的功能)而被簡(jiǎn)化或提高了效率?,,77,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,2. 尋找用況77復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件,另外還有一些不是目前的執(zhí)行者回答的問(wèn)題:,系統(tǒng)需要哪些輸入/輸出?誰(shuí)從系統(tǒng)獲取信

53、息?誰(shuí)為系統(tǒng)提供信息?,與當(dāng)前系統(tǒng)(可能是人工系統(tǒng)而不是自動(dòng)化系統(tǒng))的實(shí)現(xiàn)有關(guān)的主要問(wèn)題是什么?,,對(duì)同一個(gè)項(xiàng)目,不同的開(kāi)發(fā)者選取的用況數(shù)是不一樣的。例如一個(gè)10個(gè)人年規(guī)模的項(xiàng)目,有人選取了20個(gè)用況,而在一個(gè)類似的項(xiàng)目中,有人選用了100個(gè)用況。,似乎20個(gè)太少,而100個(gè)太多,希望在項(xiàng)目規(guī)模和用況數(shù)之間保持均衡。,,,78,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,另外還有一些不是目前的執(zhí)行者回答的問(wèn)題:78復(fù)旦大學(xué)計(jì)算機(jī)科,3.,用況的描述,用況通常用正文(text)來(lái)描述,也可用活動(dòng)圖來(lái)描述 。,用況的正文描述應(yīng)包括以下內(nèi)容:,用況的目的:用況的最終目的是什么?它試圖達(dá)到什么?

54、,用況是如何啟動(dòng)(initiate)的:哪個(gè)執(zhí)行者在什么情況下啟動(dòng)用況的執(zhí)行?,執(zhí)行者和用況之間的消息流:用況與執(zhí)行者之間交換什么消息或事件來(lái)通知對(duì)方改變或恢復(fù)信息?描述系統(tǒng)與執(zhí)行者之間的主消息流是什么?以及系統(tǒng)中哪些實(shí)體被使用或修改?,,79,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,3. 用況的描述79復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟,用況中可供選擇的流:用況中的活動(dòng)可根據(jù)條件或異常(exception)有選擇地執(zhí)行。,如何通過(guò)給執(zhí)行者一個(gè)值來(lái)結(jié)束用況:描述何時(shí)可認(rèn)為用況已結(jié)束.,,80,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況中可供選擇的流:用況中的活動(dòng)可根

55、據(jù)條件或異常(excep,執(zhí)行者的簡(jiǎn)要描述,如,客戶,:向公司訂購(gòu)商品的人,,客戶代表,:公司處理客戶請(qǐng)求的雇員,,庫(kù)存系統(tǒng),:記錄公司庫(kù)存的軟件,用況的簡(jiǎn)要描述,如,訂購(gòu)貨物,:客戶創(chuàng)建一個(gè)新的請(qǐng)求商品的訂單,并為那些商品付費(fèi),,取消訂單,:客戶取消一個(gè)已經(jīng)存在的訂單,,81,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,執(zhí)行者的簡(jiǎn)要描述81復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件,用況的詳細(xì)描述,前置條件和后置條件,前置條件和后置條件表示用況開(kāi)始和結(jié)束的條件,事件流,(flow of events),事件流是一系列陳述句,它是從執(zhí)行者的角度看,列出用況的各個(gè)步驟,用況描述中可以包含條件

56、、分支和循環(huán)。,例如:訂購(gòu)貨物用況的描述如下,,82,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況的詳細(xì)描述82復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件,用況名稱,:訂購(gòu)貨物,參與的執(zhí)行者,:客戶、客戶代表,前置條件,:一個(gè)合法的客戶已經(jīng)登錄到這個(gè)系統(tǒng),事件流,:,當(dāng)客戶選擇訂購(gòu)貨物時(shí),用況開(kāi)始,客戶輸入他的姓名和地址,如果客戶只輸入郵編,系統(tǒng)將給出州和城市名,當(dāng)客戶輸入產(chǎn)品代碼,a. 系統(tǒng)給出產(chǎn)品描述和價(jià)格,b. 系統(tǒng)往客戶訂單中添加該物品的價(jià)格,循環(huán)結(jié)束,5. 客戶輸入信用卡支付信息,,83,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,用況名稱:訂購(gòu)貨物83復(fù)旦大學(xué)計(jì)算機(jī)科

57、學(xué)與工程系 軟,6. 客戶選擇提交,7. 系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)轉(zhuǎn)發(fā)支付信息。如果客戶提交的信息不正確,系統(tǒng)將提示客戶修改。,8. 當(dāng)支付確認(rèn)后,訂單就被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶一個(gè)訂單ID,用況也就結(jié)束了。如果支付沒(méi)有被確認(rèn),系統(tǒng)將提示客戶改正支付信息或者取消。如果客戶選擇修改信息,就回到第5步;如果選擇取消,用況結(jié)束。,后置條件,:如果訂單沒(méi)有被取消,它將保存在系統(tǒng)中,并做上標(biāo)記,,84,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,6. 客戶選擇提交84復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟,其他需求,在用況中還可描述一些特殊的

58、需求,這些需求常常是非功能性需求,如可用性、安全性、可維護(hù)性、負(fù)載、性能、自動(dòng)防故障、數(shù)據(jù)需求等。,如訂購(gòu)貨物用況的其他需求:,前置條件,:,(略),事件流,:,(略),特殊需求,:,系統(tǒng)必須在一秒內(nèi)響應(yīng)客戶的輸入,后置條件,:,(略),,85,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,其他需求85復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,事件流可分為兩部分:,基本路徑,基本路徑是運(yùn)轉(zhuǎn)正常時(shí)的路徑,是一系列沒(méi)有分支和選擇的簡(jiǎn)單陳述句,可選路徑,可選路徑是指不同于基本路徑而允許不同的事件序列的路徑。,對(duì)于明顯有可能隨時(shí)發(fā)生的事情來(lái)說(shuō),可選路徑非常有效。,,86,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)

59、與工程系 軟件工程課程,事件流可分為兩部分:86復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系,如訂購(gòu)貨物用況的基本路徑:,事件流,:,基本路徑,當(dāng)客戶選擇訂購(gòu)貨物時(shí),用況開(kāi)始,客戶輸入他的姓名和地址,當(dāng)客戶輸入產(chǎn)品代碼時(shí),a. 系統(tǒng)給出產(chǎn)品描述和價(jià)格,b. 系統(tǒng)往客戶訂單中添加該物品的價(jià)格,循環(huán)結(jié)束,4. 客戶輸入信用卡支付信息,5. 客戶選擇提交,6. 系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)轉(zhuǎn)發(fā)支付信息,7. 當(dāng)支付確認(rèn)后,訂單就被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶一個(gè)訂單ID,用況結(jié)束,,87,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,如訂購(gòu)貨物用況的基本路徑:87復(fù)旦

60、大學(xué)計(jì)算機(jī)科學(xué)與工程系,如果在訂購(gòu)貨物用況中,客戶可以在提交訂單前隨時(shí)取消訂單,其可選路徑如下:,可選路徑,:,在選擇提交前的任何時(shí)候,客戶都可以選擇cancel。這次訂購(gòu)沒(méi)有被保存,用況結(jié)束。,在基本路徑第6步,如果有任何不正確的信息,系統(tǒng)提示客戶去修改這些信息。,在基本路徑第7步,如果支付沒(méi)有被確認(rèn),系統(tǒng)將提示客戶改正支付信息或者取消。如果客戶選擇修改信息,就回到基本路徑第4步;如果選擇取消,用況結(jié)束。,,,,88,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,如果在訂購(gòu)貨物用況中,客戶可以在提交訂單前隨時(shí)取消訂,確定用況之間的關(guān)系,,關(guān)系,說(shuō)明,記號(hào),關(guān)聯(lián),執(zhí)行者與他所參與的一個(gè)用況

61、之間的通信路徑,,擴(kuò)展,擴(kuò)展的用況到基本用況的一種關(guān)系,它指出擴(kuò)展的用況所定義的行為如何插入到基本用況所定義的行為中。擴(kuò)展的用況通過(guò)模塊化方式增量地修改基本用況,,《extend》,,89,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,確定用況之間的關(guān)系關(guān)系說(shuō)明記號(hào)關(guān)聯(lián)執(zhí)行者與他所參與的一個(gè)用況,關(guān)系,說(shuō)明,記號(hào),包含,從基本用況到另一個(gè)用況(稱為包含用況,inclusion use case)的一種關(guān)系,它指出包含用況定義的行為被包含在基本用況所定義的行為中?;居脹r能看到包含用況,并依賴于執(zhí)行包含用況后的結(jié)果,但兩者相互間不能訪問(wèn)其它屬性,,用況泛化,一個(gè)一般用況與一個(gè)更特殊的用況之間

62、的關(guān)系,特殊用況可繼承一般用況的特征,,,《include》,,90,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,關(guān)系說(shuō)明記號(hào)包含從基本用況到另一個(gè)用況(稱為包含用況,inc,實(shí)例,本實(shí)例實(shí)現(xiàn)一個(gè)簡(jiǎn)化了的銀行儲(chǔ)蓄賬戶管理系統(tǒng),該系統(tǒng)是在銀行的柜臺(tái)上對(duì)客戶辦理活期儲(chǔ)蓄業(yè)務(wù)。系統(tǒng)的需求陳述如下:,一個(gè)客戶可以在多個(gè)銀行中開(kāi)設(shè)賬戶,一個(gè)客戶也可在同一銀行中開(kāi)設(shè)多個(gè)不同的賬戶??蛻艨梢酝ㄟ^(guò)銀行職員進(jìn)行開(kāi)戶、存款、取款、轉(zhuǎn)賬、注銷賬戶等活動(dòng)。其中轉(zhuǎn)賬指客戶將自己的某個(gè)賬戶上的錢(qián)款轉(zhuǎn)入同一銀行的不同賬戶(稱為銀行內(nèi)轉(zhuǎn)賬)或轉(zhuǎn)入不同銀行的賬戶(稱為銀行間轉(zhuǎn)賬)。系統(tǒng)管理員負(fù)責(zé)系統(tǒng)的賬戶管理及業(yè)務(wù)報(bào)表的

63、生成。,,91,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,實(shí)例本實(shí)例實(shí)現(xiàn)一個(gè)簡(jiǎn)化了的銀行儲(chǔ)蓄賬戶管理系統(tǒng),該系統(tǒng)是在銀,識(shí)別執(zhí)行者,客戶:到銀行辦理儲(chǔ)蓄業(yè)務(wù)的人,負(fù)責(zé)輸入密碼,銀行職員(客戶代理):銀行工作人員,代表客戶進(jìn)行儲(chǔ)蓄業(yè)務(wù)的操作,銀行職員(管理人員):銀行工作人員,根據(jù)客戶的儲(chǔ)蓄業(yè)務(wù)更新賬戶,管理員:銀行計(jì)算機(jī)的管理人員,負(fù)責(zé)賬戶的管理和業(yè)務(wù)報(bào)表的生成,,92,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,識(shí)別執(zhí)行者92復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課,識(shí)別用況,從系統(tǒng)的需求陳述可知,銀行職員(客戶代理)需要系統(tǒng)提供開(kāi)戶、存款、取款、轉(zhuǎn)賬、注銷賬戶等功能,這

64、些功能都包含了校驗(yàn)密碼的功能。系統(tǒng)管理員需要系統(tǒng)提供賬戶管理和報(bào)表生成功能。銀行職員(管理人員)則參與了賬戶管理中的更新賬戶的功能。此外,轉(zhuǎn)賬功能可分為銀行內(nèi)轉(zhuǎn)賬和銀行間轉(zhuǎn)賬,我們可將它們?cè)O(shè)計(jì)成三個(gè)用況,其中銀行內(nèi)轉(zhuǎn)賬用況和銀行間轉(zhuǎn)賬用況都繼承了基本轉(zhuǎn)賬用況。據(jù)此分析,得到該系統(tǒng)的用況圖如下圖所示。,,93,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,識(shí)別用況93復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,銀行儲(chǔ)蓄賬戶管理系統(tǒng),《包含》,《包含》,《包含》,,銀行職員,(用戶代理),,賬戶管理,銀行間轉(zhuǎn)賬,開(kāi)戶,取款,銀行內(nèi)轉(zhuǎn)賬,注銷,存款,校驗(yàn)密碼,轉(zhuǎn)賬,報(bào)表生成,,,,,,其它

65、銀行,賬戶管理系統(tǒng),客戶,系統(tǒng)管理員,銀行職員,(管理人員),,,94,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,銀行儲(chǔ)蓄賬戶管理系統(tǒng)《包含》《包含》《包含》銀行職員賬戶管理,開(kāi)戶用況描述,用況名稱:開(kāi)戶,參與的執(zhí)行者:銀行職員(客戶代理),客戶,前置條件:一個(gè)合法的銀行職員(客戶代理)已登錄到該系統(tǒng),事件流:,1.當(dāng)選擇開(kāi)戶功能時(shí)用況開(kāi)始,2.輸入客戶信息(姓名、地址、身份證號(hào)等),3.從賬戶管理系統(tǒng)獲取新的賬號(hào),4.請(qǐng)客戶輸入密碼,5.請(qǐng)客戶再次輸入密碼,6.如果兩次密碼不一致則回到第4步,否則繼續(xù),7.在賬戶庫(kù)中添加新賬戶,8.打印存折,用況結(jié)束,后置條件:在賬戶庫(kù)中增加了一個(gè)新

66、賬戶,得到一張新存折,,95,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,開(kāi)戶用況描述95復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程,取款用況描述,用況名稱:取款,參與的執(zhí)行者:銀行職員(客戶代理),前置條件:一個(gè)合法的銀行職員(客戶代理)已登錄到該系統(tǒng),事件流:,基本路徑:,1.當(dāng)選擇取款功能時(shí)用況開(kāi)始,2.當(dāng)輸入客戶信息(姓名、賬號(hào)等)后,a)如果客戶信息與賬戶不一致,顯示錯(cuò)誤信息,可以重新輸入或結(jié)束用況,b)如果該賬戶被凍結(jié)(如因掛失而凍結(jié)),顯示凍結(jié)信息并結(jié)束用況,3.輸入并校驗(yàn)密碼,,96,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程課程,取款用況描述96復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系 軟件工程,4.輸入取款金額,如果該賬戶的余款小于取款金額,顯示錯(cuò)誤信息,要求重新輸入,5.打印取款單,交客戶簽字,6.建立取款事件記錄,更新賬戶信息,7. 打印存折,用況結(jié)束,可選路徑:,1.在第5步客戶簽字之前的任何時(shí)刻,客戶可以取消本次取款,用況結(jié)束,2.第3步校驗(yàn)密碼時(shí),如發(fā)現(xiàn)密碼不一致,則重新輸入密碼,或用況結(jié)束,后置條件:如果取款成功,客戶賬戶中的余額被更新(減少),否則

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

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲