第六章面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法_第1頁(yè)
第六章面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法_第2頁(yè)
第六章面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法_第3頁(yè)
第六章面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法_第4頁(yè)
第六章面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法_第5頁(yè)
已閱讀5頁(yè),還剩87頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

06第六章面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法本次課主要內(nèi)容6.1面向?qū)ο蠓椒?.2面向?qū)ο蟮姆治?.3面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)6.5軟件復(fù)用6.6用戶界面的設(shè)計(jì)3/11/20242軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.1面向?qū)ο蠓椒ǜ攀?/p>

6.1.2面向?qū)ο蟮能浖こ?OOSE)

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?/p>

3/11/20243軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.1面向?qū)ο蠓椒ǜ攀雒嫦驅(qū)ο蟛粌H是一些具體的軟件開(kāi)發(fā)技術(shù)與策略,而且是一整套關(guān)于如何看待軟件系統(tǒng)與現(xiàn)實(shí)世界的關(guān)系,以什么觀點(diǎn)來(lái)研究問(wèn)題并進(jìn)行求解,以及如何進(jìn)行系統(tǒng)構(gòu)造的軟件方法學(xué)。面向?qū)ο蠓椒ǖ幕舅枷胧菑默F(xiàn)實(shí)世界中客觀存在的事物出發(fā)來(lái)構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類的自然思維方式。3/11/20244軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.1面向?qū)ο蠓椒ǜ攀?.面向?qū)ο蠓椒ǖ闹饕攸c(diǎn)(1)從問(wèn)題域中客觀存在的事物出發(fā)來(lái)構(gòu)造軟件系統(tǒng),用對(duì)象作為對(duì)這些事物的抽象表示,并以此作為系統(tǒng)的基本構(gòu)成單位。(2)事物的靜態(tài)特征是可以用一些數(shù)據(jù)來(lái)表達(dá)的特征,可以用對(duì)象的屬性表示,事物的動(dòng)態(tài)特征(即事物的行為)用對(duì)象的服務(wù)(或操作)表示。(3)對(duì)象的屬性與服務(wù)結(jié)合為一個(gè)獨(dú)立的實(shí)體,對(duì)外屏蔽其內(nèi)部細(xì)節(jié),稱作封裝。3/11/20245軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.1面向?qū)ο蠓椒ǜ攀?.面向?qū)ο蠓椒ǖ闹饕攸c(diǎn)(4)把具有相同屬性和相同服務(wù)的對(duì)象歸為一類,類是這些對(duì)象的抽象描述,每個(gè)對(duì)象是它的類的一個(gè)實(shí)例。(5)通過(guò)在不同程度上運(yùn)用抽象的原則,可以得到較一般的類和較特殊的類。特殊類繼承一般類的屬性與服務(wù),面向?qū)ο蠓椒ㄖС謱?duì)這種繼承關(guān)系的描述與實(shí)現(xiàn),從而簡(jiǎn)化系統(tǒng)的構(gòu)造過(guò)程及其文檔。3/11/20246軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.1面向?qū)ο蠓椒ǜ攀?.面向?qū)ο蠓椒ǖ闹饕攸c(diǎn)(6)復(fù)雜的對(duì)象可以用簡(jiǎn)單的對(duì)象作為其構(gòu)成部分,稱作聚合。(7)對(duì)象之間通過(guò)消息進(jìn)行通信,以實(shí)現(xiàn)對(duì)象之間的動(dòng)態(tài)聯(lián)系。(8)通過(guò)關(guān)聯(lián)表達(dá)對(duì)象之間的靜態(tài)關(guān)系。3/11/20247軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.1面向?qū)ο蠓椒ǜ攀?.面向?qū)ο蟮亩x(1)一種使用對(duì)象(它將屬性與操作封裝為一體)、消息傳送、類、繼承、多態(tài)和動(dòng)態(tài)綁定來(lái)開(kāi)發(fā)問(wèn)題域模型之解的范型。(2)一種基于對(duì)象、類、實(shí)例和繼承等概念的技術(shù)。(3)用對(duì)象作為建模的原子。3/11/20248軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.2面向?qū)ο蟮能浖こ?面向?qū)ο蟮能浖こ虒W(xué)是面向?qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面運(yùn)用。它包括面向?qū)ο蟮姆治?、面向?qū)ο蟮脑O(shè)計(jì)、面向?qū)ο蟮木幊?、面向?qū)ο蟮臏y(cè)試和面向?qū)ο蟮能浖S護(hù)等主要內(nèi)容。3/11/20249軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.2面向?qū)ο蟮能浖こ蹋?)面向?qū)ο蟮姆治?面向?qū)ο蠓治觯∣OA)強(qiáng)調(diào)直接針對(duì)問(wèn)題域中客觀存在的各項(xiàng)事物建立OOA模型中的對(duì)象。3/11/202410軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.2面向?qū)ο蟮能浖こ蹋?)面向?qū)ο蟮脑O(shè)計(jì) OOD則是針對(duì)系統(tǒng)的一個(gè)具體的實(shí)現(xiàn)運(yùn)用OO方法。其中包括兩方面的工作,一是把OOA模型直接搬到OOD(不經(jīng)過(guò)轉(zhuǎn)換,僅作某些必要的修改和調(diào)整),作為OOD的一個(gè)部分;二是針對(duì)具體實(shí)現(xiàn)中的人機(jī)界面、數(shù)據(jù)存儲(chǔ)、任務(wù)管理等因素補(bǔ)充一些與實(shí)現(xiàn)有關(guān)的部分。3/11/202411軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.2面向?qū)ο蟮能浖こ蹋?)面向?qū)ο蟮木幊?面向?qū)ο蟮木幊蹋∣OP)又稱作面向?qū)ο蟮膶?shí)現(xiàn)(OOI)。OOP工作就是用同一種面向?qū)ο蟮木幊陶Z(yǔ)言把OOD模型中的每個(gè)成分書(shū)寫(xiě)出來(lái)。3/11/202412軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.2面向?qū)ο蟮能浖こ蹋?)面向?qū)ο蟮臏y(cè)試 面向?qū)ο蟮臏y(cè)試(OOT)是指:對(duì)于用OO技術(shù)開(kāi)發(fā)的軟件,在測(cè)試過(guò)程中繼續(xù)運(yùn)用OO技術(shù),進(jìn)行以對(duì)象概念為中心的軟件測(cè)試。3/11/202413軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.2面向?qū)ο蟮能浖こ蹋?)面向?qū)ο蟮能浖S護(hù)面向?qū)ο蟮能浖こ谭椒楦倪M(jìn)軟件維護(hù)提供了有效的途徑。程序與問(wèn)題域一致,各個(gè)階段的表示一致,從而大大降低了理解的難度。將系統(tǒng)中最容易變化的因素(功能)作為對(duì)象的服務(wù)封裝在對(duì)象內(nèi)部,對(duì)象的封裝性使一個(gè)對(duì)象的修改對(duì)其他影響也小,從而避免了波動(dòng)效應(yīng)。3/11/202414軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.對(duì)象 對(duì)象是問(wèn)題域或?qū)崿F(xiàn)域中某些事物的一個(gè)抽象,它反映該事物在系統(tǒng)中需要保存的信息和發(fā)揮的作用;它是一組屬性和有權(quán)對(duì)這些屬性進(jìn)行操作的一組服務(wù)的封裝體。●屬性是用來(lái)描述對(duì)象靜態(tài)特征的一個(gè)數(shù)據(jù)項(xiàng);●服務(wù)是用來(lái)描述對(duì)象動(dòng)態(tài)特征(行為)的一個(gè)操作序列。3/11/202415軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.消息和方法(1)消息 消息就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求,它應(yīng)含有提供服務(wù)的對(duì)象標(biāo)識(shí)、服務(wù)標(biāo)識(shí)、輸入信息和回答信息。消息的接收者是提供服務(wù)的對(duì)象。消息的發(fā)送者是要求提供服務(wù)的對(duì)象或其他系統(tǒng)成分。消息的形式用消息模式表示,一個(gè)消息模式定義了一類消息,它可以對(duì)應(yīng)內(nèi)容不同的消息。3/11/202416軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.消息和方法(2)方法 把所有對(duì)象分成各種對(duì)象類,每個(gè)對(duì)象類都有一組所謂的方法,它們實(shí)際上是類對(duì)象上的各種操作。3/11/202417軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.類和類層次(1)類 在OO方法中,類的定義是具有相同屬性和服務(wù)的一組對(duì)象的集合,它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和服務(wù)兩個(gè)主要部分。

3/11/202418軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.類和類層次(2)類層次結(jié)構(gòu) 一個(gè)類的上層可以有超類,下層可以有子類,形成一種層次結(jié)構(gòu)。這種層次結(jié)構(gòu)的一個(gè)重要特點(diǎn)是繼承性,一個(gè)類繼承其超類的全部描述。3/11/202419軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.繼承性繼承性是自動(dòng)地共享類、子類和對(duì)象中的方法和數(shù)據(jù)的機(jī)制。特殊類的對(duì)象擁有其一般類的全部屬性與服務(wù),稱作特殊類對(duì)一般類的繼承。繼承意味著自動(dòng)地?fù)碛校螂[含地復(fù)制。3/11/202420軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.封裝性封裝是一種信息隱蔽技術(shù),用戶只能見(jiàn)到對(duì)象封裝界面上的信息,對(duì)象內(nèi)部對(duì)用戶來(lái)說(shuō)是隱蔽的。封裝的目的在于將對(duì)象的使用者和對(duì)象的設(shè)計(jì)者分開(kāi),使用者不必知道行為實(shí)際的細(xì)節(jié),只須用設(shè)計(jì)者提供的消息來(lái)訪問(wèn)該對(duì)象。3/11/202421軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.封裝性封裝的定義為:一個(gè)清楚的邊界,所有的對(duì)象的內(nèi)部軟件的范圍被限定在這個(gè)邊界內(nèi);一個(gè)接口,這個(gè)接口描述這個(gè)對(duì)象和其他的對(duì)象之間相互的作用;受保護(hù)的內(nèi)部實(shí)現(xiàn),這個(gè)實(shí)現(xiàn)給出了由軟件對(duì)象提供的功能的細(xì)節(jié),實(shí)現(xiàn)細(xì)節(jié)能在定義這個(gè)對(duì)象的類的外面訪問(wèn)。3/11/202422軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.結(jié)構(gòu)與連接(1)一般/特殊結(jié)構(gòu) 一般/特殊結(jié)構(gòu)又稱作分類結(jié)構(gòu),是一組有一般/特殊關(guān)系的類所組成的結(jié)構(gòu)。(2)整體/部分結(jié)構(gòu) 整體/部分結(jié)構(gòu)又稱為組裝結(jié)構(gòu),它描述對(duì)象之間的組成關(guān)系,即一個(gè)對(duì)象是另一個(gè)對(duì)象的組成部分。3/11/202423軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.結(jié)構(gòu)與連接(3)實(shí)例連接 實(shí)例連接反映了對(duì)象與對(duì)象間的靜態(tài)關(guān)系。(4)消息連接 消息連接描述對(duì)象之間的動(dòng)態(tài)聯(lián)系,即若一個(gè)對(duì)象在執(zhí)行服務(wù)時(shí),需要通過(guò)消息請(qǐng)求另一個(gè)對(duì)象為它完成某個(gè)服務(wù),則說(shuō)第一個(gè)對(duì)象與第二個(gè)對(duì)象之間存在著消息連接。3/11/202424軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.多態(tài)性對(duì)象的多態(tài)性是指在一般類中定義的屬性或服務(wù)被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。支持多態(tài)性的實(shí)現(xiàn)的語(yǔ)言應(yīng)具有下述功能:(1)重載:在特殊類中對(duì)繼承來(lái)的屬性或服務(wù)進(jìn)行重新定義。(2)動(dòng)態(tài)綁定:在運(yùn)行時(shí)根據(jù)對(duì)象接收的消息動(dòng)態(tài)地確定要連接哪一段服務(wù)代碼。(3)類屬:服務(wù)參量的類型可以是參數(shù)化的。3/11/202425軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.1面向?qū)ο蠓椒?/p>

6.1.3面向?qū)ο蟮幕靖拍詈吞卣?.主動(dòng)對(duì)象主動(dòng)對(duì)象是一組屬性和一組服務(wù)的封裝體,其中至少有一個(gè)服務(wù)不需要接收消息就能主動(dòng)執(zhí)行(稱作主動(dòng)服務(wù))。主動(dòng)對(duì)象的作用是描述問(wèn)題域中具有主動(dòng)行為的事物以及在系統(tǒng)設(shè)計(jì)時(shí)識(shí)別的任務(wù),主動(dòng)服務(wù)描述相應(yīng)的任務(wù)所應(yīng)完成的操作。在系統(tǒng)實(shí)現(xiàn)階段,主動(dòng)服務(wù)應(yīng)該被實(shí)現(xiàn)為一個(gè)能并發(fā)執(zhí)行的、主動(dòng)的程序單位,例如進(jìn)程或線程。3/11/202426軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.1面向?qū)ο蠓治龌具^(guò)程及原則

6.2.2確定對(duì)象與類

6.2.3確定屬性

6.2.4定義服務(wù)

6.2.5對(duì)象間通信3/11/202427軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.1面向?qū)ο蠓治龌具^(guò)程及原則1.分析問(wèn)題的層次 面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行:主題層(也稱為范疇層)類&對(duì)象層

結(jié)構(gòu)層屬性層服務(wù)層3/11/202428軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.1面向?qū)ο蠓治龌具^(guò)程及原則2.OOA主要概念的表示法及OOA主要原則(1)OOA主要概念①對(duì)象、類:必要時(shí)可區(qū)分主動(dòng)對(duì)象并用不同的類符號(hào)表示。②屬性:必要時(shí)可區(qū)分類屬性和對(duì)象屬性。③服務(wù):對(duì)于主動(dòng)對(duì)象,應(yīng)標(biāo)出主動(dòng)服務(wù)。④結(jié)構(gòu):分為一般/特殊結(jié)構(gòu)和整體/部分結(jié)構(gòu)。⑤連接:包括實(shí)例連接和消息連接。⑥主題:指導(dǎo)讀者理解大型而復(fù)雜的對(duì)象模型。3/11/202429軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.1面向?qū)ο蠓治龌具^(guò)程及原則2.OOA主要概念的表示法及OOA主要原則(2)OOA的主要原則①抽象:OOA中的類就是抽象得到的。②分類:分類就是把具有相同屬性和服務(wù)的對(duì)象劃分為一類。③聚合:聚合的原則是把一個(gè)復(fù)雜的事物看成若干比較簡(jiǎn)單的事物的組裝體④關(guān)聯(lián):關(guān)聯(lián)又稱為組裝3/11/202430軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.1面向?qū)ο蠓治龌具^(guò)程及原則2.OOA主要概念的表示法及OOA主要原則(2)OOA的主要原則⑤消息通信:這一原則要求對(duì)象之間只能通過(guò)消息進(jìn)行通信⑥粒度控制:面對(duì)一個(gè)復(fù)雜的問(wèn)題域時(shí),不可能在同一時(shí)刻既能縱觀全局,又能洞察秋毫。⑦行為分析:現(xiàn)實(shí)世界中事物的行為是復(fù)雜的。3/11/202431軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.2確定對(duì)象與類1.確定對(duì)象問(wèn)題域和系統(tǒng)責(zé)任問(wèn)題域和系統(tǒng)責(zé)任是發(fā)現(xiàn)對(duì)象的根本出發(fā)點(diǎn)。

(2)正確地運(yùn)用抽象原則緊緊圍繞系統(tǒng)責(zé)任這個(gè)目標(biāo)去進(jìn)行抽象。

(3)策略與啟發(fā)從問(wèn)題域、系統(tǒng)邊界和系統(tǒng)責(zé)任三個(gè)方面,考慮各種能啟發(fā)自己發(fā)現(xiàn)對(duì)象的因素。

3/11/202432軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.2確定對(duì)象與類2.對(duì)象分類、建立類圖的對(duì)象層(1)異常情況的檢查和調(diào)整①類的屬性或服務(wù)不適合該類的全部對(duì)象②屬性和服務(wù)相似的類③對(duì)同一事物的重復(fù)描述3/11/202433軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.2確定對(duì)象與類2.對(duì)象分類、建立類圖的對(duì)象層(2)類的命名①類的名字應(yīng)恰好符合這個(gè)類(和它的特殊類)所包含的每一個(gè)對(duì)象。②類的名字,應(yīng)該反映每個(gè)對(duì)象個(gè)體,而不是整個(gè)群體。③采用名詞,或帶有定語(yǔ)的名詞;使用規(guī)范的詞匯;使用專家及用戶慣常使用的詞匯。④使用適當(dāng)?shù)恼Z(yǔ)言文字。3/11/202434軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.2確定對(duì)象與類2.對(duì)象分類、建立類圖的對(duì)象層(3)建立類圖的對(duì)象層①類圖基本概念:對(duì)象層:給出系統(tǒng)中所有反映問(wèn)題域與系統(tǒng)責(zé)任的對(duì)象。特征層:給出每一個(gè)類(及其所代表的對(duì)象)的內(nèi)部特征。關(guān)系層:給出各個(gè)類(及其所代表的對(duì)象)彼此之間的關(guān)系。3/11/202435軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.2確定對(duì)象與類2.對(duì)象分類、建立類圖的對(duì)象層(3)建立類圖的對(duì)象層②建立步驟

:用類符號(hào)表示每個(gè)類(對(duì)于主動(dòng)對(duì)象,在類名之前增加主動(dòng)標(biāo)記“@”),把它們畫(huà)出來(lái)在類描述模板中填寫(xiě)關(guān)于每個(gè)類的詳細(xì)說(shuō)明。在發(fā)現(xiàn)對(duì)象的活動(dòng)中能夠認(rèn)識(shí)的屬性和服務(wù)均可隨時(shí)加入類符號(hào),能夠認(rèn)識(shí)的結(jié)構(gòu)和連接,均可隨時(shí)在類符號(hào)之間畫(huà)出

3/11/202436軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.3確定屬性1.對(duì)象的屬性和服務(wù)事物的靜態(tài)特征和動(dòng)態(tài)特征分別用對(duì)象中的一組屬性和一組服務(wù)來(lái)表達(dá)。按照面向?qū)ο蠓椒ǖ姆庋b原則,一個(gè)對(duì)象的屬性和服務(wù)是緊密結(jié)合的,對(duì)象的屬性只能由這個(gè)對(duì)象的服務(wù)存取。3/11/202437軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.3確定屬性2.定義屬性首先考慮利用以往的OOA結(jié)果,看看相同或相似的問(wèn)題域是否有已開(kāi)發(fā)的OOA模型,盡可能復(fù)用其中同類對(duì)象的屬性定義。然后,主要的工作是研究當(dāng)前的問(wèn)題域和系統(tǒng)責(zé)任,針對(duì)本系統(tǒng)應(yīng)該設(shè)置的每一類對(duì)象,按照問(wèn)題域的實(shí)際情況,以系統(tǒng)責(zé)任為目標(biāo)進(jìn)行正確的抽象,從而找出每一類對(duì)象應(yīng)有的屬性。3/11/202438軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)1.對(duì)象的狀態(tài)與狀態(tài)轉(zhuǎn)換圖對(duì)象狀態(tài)①對(duì)象或者類的所有屬性的當(dāng)前值。②對(duì)象或者類的整體行為(例如響應(yīng)消息)的某些規(guī)則所能適應(yīng)的(對(duì)象或類的)狀況、情況、條件、形式或生存周期階段。3/11/202439軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)1.對(duì)象的狀態(tài)與狀態(tài)轉(zhuǎn)換圖(2)狀態(tài)轉(zhuǎn)換圖 狀態(tài)轉(zhuǎn)換圖是對(duì)整個(gè)對(duì)象的狀態(tài)/行為關(guān)系的圖示,它附屬于該對(duì)象的類描述模板。過(guò)程:①找出對(duì)象的各種狀態(tài)。②分析在不同的狀態(tài)下,對(duì)象的行為規(guī)則有何不同。如果發(fā)現(xiàn)在開(kāi)始所認(rèn)識(shí)的幾種狀態(tài)下對(duì)象行為規(guī)則并無(wú)差別,則應(yīng)將其合并為一種狀態(tài)。③分析從一種狀態(tài)可以轉(zhuǎn)換到哪幾種其他狀態(tài),對(duì)象的什么行為(服務(wù))可以引起這種轉(zhuǎn)換。3/11/202440軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)2.行為分類(1)系統(tǒng)行為與對(duì)象有關(guān)的某些行為實(shí)際上不是對(duì)象自身的行為(2)算法簡(jiǎn)單的服務(wù)讀取或設(shè)置一個(gè)屬性的值,對(duì)象自身的行為(3)算法復(fù)雜的服務(wù) 此類服務(wù)描述了對(duì)象所映射事物的固有行為,要進(jìn)行某些計(jì)算或監(jiān)控操作。3/11/202441軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)3.發(fā)現(xiàn)服務(wù)的策略與啟發(fā)(1)考慮系統(tǒng)責(zé)任。(2)考慮問(wèn)題域。(3)分析對(duì)象的狀態(tài)。(4)追蹤服務(wù)的執(zhí)行路線3/11/202442軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)4.審查與調(diào)整(1)首先檢查每個(gè)服務(wù)是否真正有用。(2)其次是檢查每個(gè)服務(wù)是不是高內(nèi)聚的。3/11/202443軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)5.識(shí)別主動(dòng)對(duì)象(1)在問(wèn)題域中,這個(gè)服務(wù)所描述的對(duì)象行為是不是主動(dòng)行為?(2)重點(diǎn)考慮與系統(tǒng)邊界以外的活動(dòng)者直接進(jìn)行交互的對(duì)象,這些對(duì)象最有可能成為主動(dòng)對(duì)象。(3)根據(jù)系統(tǒng)責(zé)任觀察系統(tǒng)功能的構(gòu)成層次,重點(diǎn)考慮完成最外層功能的對(duì)象服務(wù)是否應(yīng)定義為主動(dòng)服務(wù)3/11/202444軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)5.識(shí)別主動(dòng)對(duì)象(4)最后一個(gè)策略是進(jìn)行服務(wù)執(zhí)行路線的逆向追蹤,考慮每個(gè)服務(wù)是被其他哪些對(duì)象的哪些服務(wù)請(qǐng)求的,按消息傳遞的相反方向跟蹤上去,直到發(fā)現(xiàn)某個(gè)服務(wù)不被其他成分所請(qǐng)求,則它應(yīng)該是一個(gè)主動(dòng)對(duì)象的主動(dòng)服務(wù)。3/11/202445軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)6.服務(wù)的命名和定位 服務(wù)的命名應(yīng)采用動(dòng)詞或動(dòng)詞加名詞所組成的動(dòng)賓結(jié)構(gòu)。服務(wù)名應(yīng)盡可能準(zhǔn)確地反映該服務(wù)的職能。3/11/202446軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)7.服務(wù)的詳細(xì)說(shuō)明(1)服務(wù)解釋:用一段簡(jiǎn)練的文字解釋該服務(wù)的作用及功能。(2)消息協(xié)議:給出服務(wù)的入口消息格式,即請(qǐng)求該服務(wù)的消息格式,內(nèi)容包括服務(wù)名、輸入輸出參數(shù)、參數(shù)類型。在并發(fā)系統(tǒng)中,一個(gè)服務(wù)可能接收多種消息。(3)消息發(fā)送:指出在這個(gè)服務(wù)執(zhí)行時(shí),需要請(qǐng)求哪些別的對(duì)象服務(wù)。內(nèi)容包括接收消息的對(duì)象類名以及執(zhí)行這個(gè)消息的服務(wù)名。3/11/202447軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.4定義服務(wù)7.服務(wù)的詳細(xì)說(shuō)明(4)約束條件:如果該服務(wù)的執(zhí)行有前置條件、后置條件以及執(zhí)行時(shí)間的要求等其他需要說(shuō)明的事項(xiàng),則在這里加以說(shuō)明。(5)服務(wù)流程圖:對(duì)于功能比較復(fù)雜的服務(wù),要給出一個(gè)服務(wù)流程圖,表明該服務(wù)是怎樣執(zhí)行的。3/11/202448軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信1.識(shí)別結(jié)構(gòu)結(jié)構(gòu)的意義和作用 一般/特殊結(jié)構(gòu)和整體/部分結(jié)構(gòu)能使分析人員和領(lǐng)域?qū)<业淖⒁饬性诰哂卸鄠€(gè)類和對(duì)象的復(fù)雜問(wèn)題上。而且,使用結(jié)構(gòu)能使分析人員考慮到問(wèn)題的邊緣,并揭示那些尚未發(fā)現(xiàn)的類和對(duì)象。除此以外,一般/特殊結(jié)構(gòu)具有繼承性,一般類和對(duì)象的屬性和方法一旦被識(shí)別,即可在特殊類和對(duì)象中使用。3/11/202449軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信1.識(shí)別結(jié)構(gòu)(2)如何定義一般/特殊結(jié)構(gòu)①表示法②策略:將每個(gè)類看成是一般類,按不同的分類方式來(lái)進(jìn)行特殊分類。③層次與網(wǎng)絡(luò):每個(gè)一般/特殊結(jié)構(gòu)均形成層次或網(wǎng)絡(luò)。3/11/202450軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信1.識(shí)別結(jié)構(gòu)(3)如何定義整體/部分結(jié)構(gòu)①表示法 在頂部是一個(gè)整體對(duì)象(用類&對(duì)象符號(hào)表示的對(duì)象),下部是部分對(duì)象(用類&對(duì)象符號(hào)表示的對(duì)象),它們之間用線(結(jié)構(gòu)線)連接。②策略 策略由兩個(gè)部分組成,一部分是確定什么,另一部分是考慮什么。3/11/202451軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信1.識(shí)別結(jié)構(gòu)(4)多重結(jié)構(gòu) 多重結(jié)構(gòu)包括一般/特殊結(jié)構(gòu)、整體/部分結(jié)構(gòu)或兩者的各種組合結(jié)構(gòu)。多重結(jié)構(gòu)通常是自底向上的,但有時(shí)也可以用實(shí)例連接來(lái)依次映射。3/11/202452軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信2.識(shí)別主題在面向?qū)ο蠓治鲋?,主題是一種指導(dǎo)讀者或用戶研究大型復(fù)雜模型的機(jī)制。在初步面向?qū)ο蠓治龅幕A(chǔ)上,主題有助于分解大型項(xiàng)目以便建立工作小組。主題所提供的機(jī)制可控制一個(gè)用戶必須同時(shí)考慮的模型數(shù)目。同時(shí)它還可以給出面向?qū)ο蠓治瞿P偷目傮w概貌。3/11/202453軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信3.實(shí)例連接實(shí)例連接又稱為鏈,用于表達(dá)對(duì)象之間的靜態(tài)聯(lián)系。所謂靜態(tài)聯(lián)系是指最終可通過(guò)對(duì)象屬性來(lái)表示的一個(gè)對(duì)象對(duì)另一個(gè)對(duì)象的依賴關(guān)系實(shí)例連接是對(duì)象實(shí)例之間的一種二元關(guān)系,在實(shí)現(xiàn)之后的關(guān)系中它將落實(shí)到每一對(duì)具有這種關(guān)系的對(duì)象實(shí)例之間3/11/202454軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信3.實(shí)例連接(1)表示法在具有實(shí)例連接關(guān)系的類之間畫(huà)一條連接線把它們連接起來(lái),連接線的旁邊給出表明其意義的連接名(無(wú)誤解時(shí)可以缺?。谶B接線的兩端用數(shù)字標(biāo)明其多重性。(2)實(shí)現(xiàn)方式:實(shí)例連接一般可用對(duì)象指針(也可用對(duì)象標(biāo)識(shí))來(lái)實(shí)現(xiàn)。3/11/202455軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.2面向?qū)ο蟮姆治?/p>

6.2.5對(duì)象間通信3.實(shí)例連接(3)實(shí)例連接與整體/部分結(jié)構(gòu)的異同:實(shí)例連接與整體/部分結(jié)構(gòu)有某些相似之處,在概念上它們都是對(duì)象實(shí)例間的一種靜態(tài)關(guān)系,并且都是通過(guò)對(duì)象的屬性來(lái)體現(xiàn)的。但是,整體/部分結(jié)構(gòu)中的對(duì)象在現(xiàn)實(shí)世界中含有明顯的“has-a”語(yǔ)義,實(shí)例連接中的對(duì)象之間則沒(méi)有。3/11/202456軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.3面向?qū)ο笤O(shè)計(jì)

6.3.1面向?qū)ο笤O(shè)計(jì)的基本概念

6.3.2面向?qū)ο笤O(shè)計(jì)的方法3/11/202457軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.3面向?qū)ο笤O(shè)計(jì)

6.3.1面向?qū)ο笤O(shè)計(jì)的基本概念1.面向?qū)ο笤O(shè)計(jì)的框架面向?qū)ο笤O(shè)計(jì)的模型由5層組成,在設(shè)計(jì)期間主要擴(kuò)充4個(gè)組成部分:人機(jī)交互部分、問(wèn)題域、任務(wù)管理和數(shù)據(jù)管理3/11/202458軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.3面向?qū)ο笤O(shè)計(jì)

6.3.1面向?qū)ο笤O(shè)計(jì)的基本概念2.對(duì)象客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象,復(fù)雜的對(duì)象可由相對(duì)簡(jiǎn)單的對(duì)象以某種方式組成。傳統(tǒng)意義上的數(shù)據(jù)單元和處理單元可被統(tǒng)一定義成對(duì)象。3/11/202459軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.3面向?qū)ο笤O(shè)計(jì)

6.3.2面向?qū)ο笤O(shè)計(jì)的方法1.面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則●模塊化●抽象●信息隱藏●弱耦合●強(qiáng)內(nèi)聚●可擴(kuò)充性3/11/202460軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.3面向?qū)ο笤O(shè)計(jì)

6.3.2面向?qū)ο笤O(shè)計(jì)的方法2.面向?qū)ο蟮幕驹O(shè)計(jì)方法(1)面向?qū)ο笤O(shè)計(jì)范式與過(guò)程設(shè)計(jì)范式設(shè)計(jì)范式是用其分解過(guò)程的觀點(diǎn)來(lái)刻劃的。過(guò)程范式采用面向任務(wù)的觀點(diǎn)。導(dǎo)致了從分析階段的問(wèn)題域到設(shè)計(jì)階段的分解域的不一致。面向?qū)ο蟮脑O(shè)計(jì)范式采用建模的觀點(diǎn)。分析階段開(kāi)發(fā)的信息就成為設(shè)計(jì)階段的一個(gè)主要部分。3/11/202461軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.3面向?qū)ο笤O(shè)計(jì)

6.3.2面向?qū)ο笤O(shè)計(jì)的方法2.面向?qū)ο蟮幕驹O(shè)計(jì)方法(2)兩種范式的比較過(guò)程范式通過(guò)考慮必須執(zhí)行的組任務(wù)來(lái)開(kāi)發(fā)系統(tǒng)。可將其功能分解成一組任務(wù)。這種層次結(jié)構(gòu)同時(shí)說(shuō)明了逐步求精的過(guò)程。面向?qū)ο蠓妒酵ㄟ^(guò)識(shí)別問(wèn)題的實(shí)體來(lái)開(kāi)發(fā)系統(tǒng)。這些實(shí)體的抽象將成為系統(tǒng)的基本成分類,類的規(guī)格說(shuō)明用來(lái)補(bǔ)充傳統(tǒng)的需求說(shuō)明的信息。3/11/202462軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.1系統(tǒng)設(shè)計(jì)

6.4.2實(shí)時(shí)執(zhí)行者

6.4.3數(shù)據(jù)采集系統(tǒng)3/11/202463軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.1系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)要決定系統(tǒng)功能的軟件和用硬件的分配問(wèn)題。將系統(tǒng)處理瓶頸找出來(lái)用硬件來(lái)實(shí)現(xiàn),用軟件來(lái)提供系統(tǒng)適應(yīng)性方面的要求。體系結(jié)構(gòu)設(shè)計(jì)將系統(tǒng)分解成一些獨(dú)立的組件,這些組件既可由硬件實(shí)現(xiàn)也可由軟件實(shí)現(xiàn)。這樣設(shè)計(jì)的系統(tǒng)可維護(hù)性強(qiáng)。3/11/202464軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.1系統(tǒng)設(shè)計(jì)實(shí)時(shí)系統(tǒng)設(shè)計(jì)過(guò)程可分為如下幾個(gè)階段:1.識(shí)別系統(tǒng)必須處理的一些激勵(lì)和相關(guān)的響應(yīng)。2.對(duì)每個(gè)激勵(lì)和相應(yīng)的響應(yīng)給出時(shí)間限制,既要考慮對(duì)激勵(lì)的時(shí)間限制,也要考慮響應(yīng)的時(shí)間限制。3.將激勵(lì)和響應(yīng)的處理集成到一些并發(fā)過(guò)程中,將進(jìn)程與激勵(lì)類和響應(yīng)類相連3/11/202465軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.1系統(tǒng)設(shè)計(jì)實(shí)時(shí)系統(tǒng)設(shè)計(jì)過(guò)程可分為如下幾個(gè)階段:4.對(duì)每個(gè)激勵(lì)和響應(yīng)設(shè)計(jì)算法,為系統(tǒng)的處理量和處理所需的時(shí)間提供指示。5.設(shè)計(jì)一個(gè)調(diào)度系統(tǒng),以確保進(jìn)程都能按時(shí)啟動(dòng),并在給定時(shí)間內(nèi)完成。6.將系統(tǒng)各個(gè)部分集成在一個(gè)實(shí)時(shí)執(zhí)行者的控制之下。3/11/202466軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.1系統(tǒng)設(shè)計(jì)1.實(shí)時(shí)系統(tǒng)建模實(shí)時(shí)系統(tǒng)必須響應(yīng)在不規(guī)則時(shí)間間隔內(nèi)發(fā)生的事件。這些事件(或激勵(lì))通常引起系統(tǒng)狀態(tài)的變化。2.實(shí)時(shí)程序設(shè)計(jì)“硬”實(shí)時(shí)系統(tǒng)仍可用匯編語(yǔ)言來(lái)實(shí)現(xiàn),以便系統(tǒng)能滿足高速的時(shí)間要求。系統(tǒng)級(jí)語(yǔ)言,例如C語(yǔ)言,也能生成高效率的代碼,所以也可以使用。3/11/202467軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.2實(shí)時(shí)執(zhí)行者 實(shí)時(shí)執(zhí)行者類似于通用計(jì)算機(jī)上的操作系統(tǒng),實(shí)時(shí)執(zhí)行者管理進(jìn)程和資源分配。它啟動(dòng)和停止適當(dāng)?shù)倪M(jìn)程以便處理激勵(lì),同時(shí)分配存儲(chǔ)器和處理器資源。但不包括更為復(fù)雜的操作系統(tǒng)服務(wù),例如文件管理等。3/11/202468軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.2實(shí)時(shí)執(zhí)行者實(shí)時(shí)執(zhí)行者包括以下部分:1.實(shí)時(shí)時(shí)鐘:提供信息定期地調(diào)度進(jìn)程。2.中斷處理器:處理周期性的服務(wù)請(qǐng)求。3.調(diào)度器:負(fù)責(zé)檢查哪些進(jìn)程可以執(zhí)行,并選擇其中一個(gè)執(zhí)行。4.資源管理者:資源管理者對(duì)被執(zhí)行的進(jìn)程分配適當(dāng)?shù)膬?nèi)存和處理機(jī)資源。5.分配器:負(fù)責(zé)啟動(dòng)進(jìn)程。3/11/202469軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.4實(shí)時(shí)軟件設(shè)計(jì)

6.4.3數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)采集系統(tǒng)也是一種實(shí)時(shí)系統(tǒng),這種系統(tǒng)從傳感器收集數(shù)據(jù),以便后續(xù)的處理和分析。數(shù)據(jù)采集進(jìn)程和數(shù)據(jù)處理進(jìn)程的運(yùn)行速度和處理周期可能會(huì)不一致。為了解決速度上的不一致,絕大多數(shù)數(shù)據(jù)采集系統(tǒng)的緩沖器使用循環(huán)式或環(huán)形緩沖器。3/11/202470軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)

6.5.1基于組件的開(kāi)發(fā)

6.5.2應(yīng)用系列

6.5.3設(shè)計(jì)模式3/11/202471軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)在軟件開(kāi)發(fā)中,軟件是一種可重復(fù)使用的資源,可利用復(fù)用來(lái)達(dá)到降低軟件產(chǎn)品及其維護(hù)的成本、加快系統(tǒng)交付速度和提高軟件質(zhì)量等的一系列要求。為了實(shí)現(xiàn)軟件復(fù)用,在軟件設(shè)計(jì)和需求工程中加以考慮。3/11/202472軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)1.軟件復(fù)用類型面向?qū)ο蟮能浖?fù)用主要分為:(1)應(yīng)用系統(tǒng)復(fù)用:應(yīng)用系統(tǒng)復(fù)用是指整個(gè)系統(tǒng)可以不修改地融合到其他系統(tǒng)中,又稱為產(chǎn)品復(fù)用,或是通過(guò)開(kāi)發(fā)應(yīng)用系列來(lái)適應(yīng)不同的平臺(tái)或者是面向特殊的客戶。(2)組件復(fù)用:應(yīng)用系統(tǒng)的組件規(guī)模從子系統(tǒng)到單個(gè)對(duì)象都可以復(fù)用。(3)功能復(fù)用:實(shí)現(xiàn)一個(gè)單一功能的軟件組件可以重復(fù)使用,例如數(shù)學(xué)函數(shù)等。3/11/202473軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)2.軟件復(fù)用的意義增加的可靠性減少了維護(hù)代價(jià)降低的過(guò)程風(fēng)險(xiǎn)專家的有效使用與標(biāo)準(zhǔn)的兼容減少培訓(xùn)開(kāi)銷加快的開(kāi)發(fā)速度3/11/202474軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)3.復(fù)用具備的條件(1)要對(duì)所有可復(fù)用組件做存檔工作并編制所有組件的目錄。(2)目錄中的所有組件都應(yīng)該得到認(rèn)證,確保它們能達(dá)到某個(gè)質(zhì)量標(biāo)準(zhǔn),以保證復(fù)用。(3)組件要有相應(yīng)的文檔幫助復(fù)用者了解它們并據(jù)此調(diào)整以適用。(4)組件要有標(biāo)準(zhǔn)接口、組件獨(dú)立于編程語(yǔ)言、組件提供版本兼容。(5)有標(biāo)準(zhǔn)的軟件體系結(jié)構(gòu)。3/11/202475軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)4.基于生成器的復(fù)用 系統(tǒng)的復(fù)用需要有一個(gè)系統(tǒng)的復(fù)用計(jì)劃支持。與面向組件復(fù)用觀點(diǎn)相對(duì)的是生成器觀點(diǎn)。在這種復(fù)用方法中,一種用面向領(lǐng)域的語(yǔ)言寫(xiě)成的程序生成器可以捕獲可復(fù)用的知識(shí)。應(yīng)用描述以一種抽象方式定義哪些可復(fù)用的組件要用到,如何組合這些組件及其對(duì)它們的參數(shù)化。3/11/202476軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)

6.5.1基于組件的開(kāi)發(fā)1.可復(fù)用組件特性可復(fù)用組件的具有下述兩個(gè)關(guān)鍵特性:(1)組件是一個(gè)獨(dú)立的可運(yùn)行實(shí)體,組件不與其他組件一起編譯。(2)組件發(fā)布它們的接口,所有的交互都是通過(guò)接口完成的。組件接口被表達(dá)成參數(shù)化操作,而它的內(nèi)部狀態(tài)隱蔽。3/11/202477軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)

6.5.1基于組件的開(kāi)發(fā)2.組件接口 組件具有下述兩個(gè)接口:(1)提供接口:定義由這個(gè)組件提供的服務(wù)。(2)需要接口:定義使用此組件的系統(tǒng)應(yīng)該提供哪些服務(wù)。如果不能提供這些服務(wù),則該組件將不可用。3/11/202478軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)

6.5.1基于組件的開(kāi)發(fā)3.組件層次組件可以處在如下5個(gè)不同的層次上:(1)功能的抽象:組件實(shí)現(xiàn)單一的功能。(2)不規(guī)則的組合:組件是一組松散關(guān)聯(lián)的實(shí)體的集合。(3)數(shù)據(jù)抽象:組件表現(xiàn)為數(shù)據(jù)抽象或面向?qū)ο笳Z(yǔ)言的類。(4)聚集抽象:組件是一群能在一起工作的相關(guān)的類,又稱之為框架。(5)系統(tǒng)抽象:組件是一個(gè)完整的自包含系統(tǒng)。3/11/202479軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)

6.5.1基于組件的開(kāi)發(fā)4.應(yīng)用框架(1)系統(tǒng)基礎(chǔ)設(shè)施框架:支持系統(tǒng)基礎(chǔ)設(shè)施的開(kāi)發(fā),基礎(chǔ)設(shè)施包括通信、用戶界面和編譯器。(2)中間件集成框架:由一組支持組件通信和信息交換的標(biāo)準(zhǔn)和相關(guān)對(duì)象類構(gòu)成。(3)企業(yè)應(yīng)用框架:關(guān)心的是專門的應(yīng)用領(lǐng)域,嵌入了應(yīng)用領(lǐng)域知識(shí)并支持對(duì)最終用戶應(yīng)用的開(kāi)發(fā),與應(yīng)用系列相關(guān)聯(lián),應(yīng)用系列通常更抽象,因而允許創(chuàng)建的應(yīng)用范圍也更寬。3/11/202480軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)

6.5.1基于組件的開(kāi)發(fā)5.商業(yè)產(chǎn)品的復(fù)用商業(yè)產(chǎn)品(COTS:CommerCid-Off-The-Shelf)是指由第三方提供的任何組件,通常是指系統(tǒng)軟件產(chǎn)品。

3/11/202481軟件工程導(dǎo)論之面向?qū)ο笤O(shè)計(jì)6.5復(fù)用設(shè)計(jì)

6.5.1基于組件的開(kāi)發(fā)6.面向復(fù)用的組件開(kāi)發(fā)組件開(kāi)發(fā)過(guò)程就是要在現(xiàn)有組件的基礎(chǔ)上構(gòu)造可復(fù)用的組件??蓮?fù)用性的組件特征如下:(1)組件應(yīng)反

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論