




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.1 Coad10.1 Coad方法概述方法概述10.2 10.2 面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮姆治?0.3 10.3 面向?qū)ο蟮脑O(shè)計(jì)面向?qū)ο蟮脑O(shè)計(jì)10.4 10.4 小結(jié)小結(jié)習(xí)題習(xí)題第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.1 Coad10.1 Coad方法概述方法概述10.1.1 術(shù)語1. 分析分析是一種研究問題域的過程,該過程產(chǎn)生系統(tǒng)行為的需求說明描述,它是關(guān)于要做的事情的一個(gè)完全、一致和可行的陳述。系統(tǒng)分析是關(guān)于問題空間的一種加工過程,它
2、的輸入是目標(biāo)系統(tǒng)的問題空間,輸出則是經(jīng)過抽象、理解之后產(chǎn)生的系統(tǒng)需求說明。這一過程本質(zhì)上是人的一種思維過程,但需要工具輔助。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法分析關(guān)心的是用戶邊界、問題應(yīng)用范圍及系統(tǒng)應(yīng)完成的任務(wù)。分析方法是一種思維工具,用來幫助分析人員對(duì)需求進(jìn)行形式化,即用特定的標(biāo)記系統(tǒng)來表示和傳遞分析的結(jié)果。不同標(biāo)記系統(tǒng)在產(chǎn)生表示時(shí)有不同的著眼點(diǎn),也就有不同角度的抽象,因而反映出不同分析方法的特征。面向?qū)ο蟮姆治鍪怯妹嫦驅(qū)ο蟮姆椒▽?duì)目標(biāo)系統(tǒng)的問題空間進(jìn)行理解、分析和反映。通過對(duì)象的認(rèn)定和類層次的認(rèn)定,確定問題空間中應(yīng)存在的類和類層次結(jié)構(gòu)。 第第1010章章 面向?qū)?/p>
3、象的面向?qū)ο蟮腃oadCoad方法方法2. 設(shè)計(jì)設(shè)計(jì)是建立在分析產(chǎn)生的需求說明基礎(chǔ)上,加入計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)所需的細(xì)節(jié)的過程,包括人機(jī)行為、任務(wù)管理及數(shù)據(jù)管理等。設(shè)計(jì)所關(guān)心的是把分析的結(jié)果應(yīng)用于具體的硬件/軟件實(shí)現(xiàn)中。面向?qū)ο蟮脑O(shè)計(jì)則是用面向?qū)ο蟮姆椒ǎ瑯?gòu)造目標(biāo)系統(tǒng)的解空間,通過類的認(rèn)定和類層次的結(jié)構(gòu)的組織,確定解空間中應(yīng)存在的類和類層次結(jié)構(gòu),并確定外部和主要的數(shù)據(jù)結(jié)構(gòu)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法面向?qū)ο蟮姆治龊兔嫦驅(qū)ο蟮脑O(shè)計(jì)之間并沒有像傳統(tǒng)開發(fā)方法那樣有明顯的界限,但的確存在差別,存在抽象程度、先后順序及側(cè)重點(diǎn)的差別。這種特點(diǎn)與采用了一致的思維方式有關(guān),也與面
4、向?qū)ο竽J奖旧砭褪菭顟B(tài)交換和進(jìn)化的認(rèn)識(shí)有關(guān)。10.1.2 控制復(fù)雜性原則在面向?qū)ο蟮姆治雠c設(shè)計(jì)中,控制復(fù)雜性時(shí)采用了如下的原則。1. 抽象為了集中研究問題而忽略那些與問題無關(guān)的部分。抽象有過程抽象和數(shù)據(jù)抽象兩種。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法過程抽象常表示為“功能/子功能”抽象,將處理過程分解成多個(gè)子步驟,是一種基本的處理復(fù)雜性的方法。但是使用這種分解來構(gòu)成一個(gè)設(shè)計(jì)多少有點(diǎn)隨意性和易變性,但可在一定范圍內(nèi)用來確定和描述服務(wù)。另一種更有效的抽象方式是數(shù)據(jù)抽象,它是構(gòu)造系統(tǒng)任務(wù)描述的基礎(chǔ),使用數(shù)據(jù)抽象可以定義屬性和服務(wù),獲得屬性的唯一方法是借助于服務(wù)。屬性及其服務(wù)可
5、以看成一個(gè)固有載體。2. 封裝封裝又稱信息隱蔽,它是在開發(fā)完整全面的程序結(jié)構(gòu)時(shí)使用的原則,程序中各組成部分都應(yīng)該封裝或隱蔽在某個(gè)單個(gè)設(shè)計(jì)策略中。各模塊的接口也按此方法定義,目的是盡可能少地將其內(nèi)部暴露在外。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法封裝有助于在開發(fā)新系統(tǒng)時(shí)極小化重復(fù)性勞動(dòng),若在設(shè)計(jì)時(shí)將最容易的各部分分別封裝起來,就不必?fù)?dān)心需求變化了。封裝使相關(guān)內(nèi)容放在一起,減少了不同內(nèi)容的通信,它將某些特殊需求與其他一些可能使用這些需求的描述分開,可使對(duì)象的使用與對(duì)象的創(chuàng)建分離。消息通信也是封裝的一種形式,要求執(zhí)行的動(dòng)作的細(xì)節(jié)封裝在消息接收的對(duì)象中。數(shù)據(jù)抽象是封裝中“相關(guān)事
6、物聯(lián)系在一起”的一種形式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 繼承繼承是面向?qū)ο笤O(shè)計(jì)的另一種基本設(shè)計(jì)原則。繼承用來表示類之間相似性的一種機(jī)制,它簡(jiǎn)化了與已定義過的相似類的定義,描述了一般和具體化關(guān)系,在類層次結(jié)構(gòu)和類網(wǎng)絡(luò)結(jié)構(gòu)中明確地說明了共同的屬性和服務(wù)。這個(gè)原則構(gòu)成了顯式表達(dá)共同性的重要技術(shù)和基礎(chǔ),繼承能使設(shè)計(jì)者一次確定共同的屬性和服務(wù),同時(shí)將這些屬性和服務(wù)擴(kuò)展到或限制到具體的實(shí)例中,繼承也可用于顯示表示共同性。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 組織方法在理解客觀世界組織與表示需求時(shí),常采用以下 3 種方法:(1) 識(shí)別具體對(duì)
7、象及其屬性。(2) 識(shí)別整體對(duì)象及其部分對(duì)象。(3) 識(shí)別不同的對(duì)象類。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 5. 行為分類最常用的3種行為分類是:(1)建立在即時(shí)因果關(guān)系基礎(chǔ)上。(2)建立在歷史發(fā)展的相似性上。(3)建立在功能相似性上。10.1.3 開發(fā)多層次多組元的模型 1. 連續(xù)性表示從20世紀(jì)70年代中期以來,軟件人員遇到的問題如下:(1) 數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)處理的分離:即ER圖與DFD圖的分離。有人注意到DFD圖不適合于長(zhǎng)期保存數(shù)據(jù),當(dāng)時(shí)解決的辦法是增加一級(jí)表示數(shù)據(jù)結(jié)構(gòu)的圖,即ER圖,這種方法使數(shù)據(jù)及數(shù)據(jù)處理分離。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadC
8、oad方法方法(2) 分析與設(shè)計(jì)的分離:即軟件分析用DFD圖、ER圖及數(shù)據(jù)詞典來表示,而軟件設(shè)計(jì)的表示是軟件結(jié)構(gòu)圖和軟件詳細(xì)設(shè)計(jì)表示法。它們的表示截然不同,需要轉(zhuǎn)換。面向?qū)ο蟮腃oad方法使用統(tǒng)一的基本表示方法來組織數(shù)據(jù)及數(shù)據(jù)上的專有處理。面向?qū)ο蟮姆治龆x問題域的對(duì)象和類,反映系統(tǒng)的任務(wù)。面向?qū)ο蟮脑O(shè)計(jì)定義附加的類和對(duì)象,反映需求的實(shí)現(xiàn),使得分析和設(shè)計(jì)符號(hào)表示無明顯差別。不存在從分析到設(shè)計(jì)的轉(zhuǎn)換。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 分析模型Coad方法在面向?qū)ο蟮姆治鲋械?種活動(dòng):(1) 識(shí)別對(duì)象和類。(2) 識(shí)別類的結(jié)構(gòu)。(3) 確定主題。(4) 定義屬性。
9、(5) 定義服務(wù)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法按上述活動(dòng)建立信息需求分析模型,按下列5個(gè)層次整理提交文檔。(1) 主題層:控制一次分析所考慮的范圍,即對(duì)相關(guān)的類進(jìn)行歸并。(2) 對(duì)象層:在分析范圍內(nèi)找出全部的對(duì)象。(3) 結(jié)構(gòu)層:分析類的分類結(jié)構(gòu)和組裝結(jié)構(gòu)。(4) 屬性層:描述每個(gè)對(duì)象的狀態(tài)特征。(5) 服務(wù)層:描述每個(gè)對(duì)象所具有的操作。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 設(shè)計(jì)模型Coad方法中,面向?qū)ο笤O(shè)計(jì)模型在面向?qū)ο蟮姆治瞿P偷?個(gè)層次上由4個(gè)組元構(gòu)成,如圖10.1所示。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoa
10、d方法方法圖10.1 設(shè)計(jì)模型第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5個(gè)層次從縱向反映模型是透明重疊的,一級(jí)比一級(jí)更詳細(xì),4個(gè)組元從橫向反映模型的組成。 4個(gè)組元對(duì)應(yīng)于面向?qū)ο笤O(shè)計(jì)的4個(gè)主要活動(dòng)步驟:(1) 設(shè)計(jì)問題域組元。(2) 設(shè)計(jì)人機(jī)界面組元。(3) 設(shè)計(jì)任務(wù)管理組元。(4) 設(shè)計(jì)數(shù)據(jù)管理組元。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.1.4 定義及符號(hào)表示 下面給出Coad方法中面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計(jì)用到的定義和符號(hào)表示。1. 對(duì)象和類1) 對(duì)象對(duì)象是問題域中事物的抽象或者是問題域中事物的實(shí)現(xiàn)的抽象,它是屬性值及其相應(yīng)服務(wù)的一種封裝
11、,對(duì)象的同義詞是實(shí)例。2) 類類是一個(gè)或多個(gè)對(duì)象的描述,對(duì)象可用統(tǒng)一的屬性和服務(wù)的集合來描述。另外,類也可以描述如何創(chuàng)建該類的新對(duì)象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 類對(duì)象類對(duì)象指的是類和類中的對(duì)象,其符號(hào)表示如圖10.2所示,粗方框表示類,類分3個(gè)區(qū)域,對(duì)象用圍繞著粗框的細(xì)框來表示,在表示類的3個(gè)區(qū)域內(nèi),應(yīng)標(biāo)出類對(duì)象的名稱、屬性及服務(wù),這是具有對(duì)象的類,是一種具體類。圖10.3給出類符號(hào)表示,這種類是一種抽象類,它沒有對(duì)象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.2 類對(duì)象的符號(hào)表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oa
12、dCoad方法方法圖10.3 類符號(hào)表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 層次結(jié)構(gòu)1) 結(jié)構(gòu)結(jié)構(gòu)是與系統(tǒng)任務(wù)有關(guān)的問題域復(fù)雜性的一種表示,它是類層次結(jié)構(gòu)的統(tǒng)稱,既描述了一般具體結(jié)構(gòu),也描述了整體部分結(jié)構(gòu)。2) 分類結(jié)構(gòu)它是系統(tǒng)組織的3種方法之一,即區(qū)分不同類的方法,是一種“is a”結(jié)構(gòu)。例如,臺(tái)燈是一種照明工具,其中照明工具是一般的,臺(tái)燈是具體的,照明工具與臺(tái)燈是一種分類關(guān)系,也稱分類結(jié)構(gòu)。在分類結(jié)構(gòu)中,使用繼承描述更一般的屬性和服務(wù)。分類結(jié)構(gòu)的符號(hào)表示如圖10.4所示,一般類放在頂端,具體類放在下端,它們之間用線連起來,其中半圓弧說明這是一個(gè)一般具體結(jié)構(gòu)的
13、形式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.4 分類結(jié)構(gòu)的符號(hào)表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 組裝結(jié)構(gòu)組裝結(jié)構(gòu)也是3種系統(tǒng)組織方法之一,它是“has a”結(jié)構(gòu)。例如,臺(tái)燈有一個(gè)電燈泡,則臺(tái)燈和電燈泡就是這種結(jié)構(gòu)的例子。臺(tái)燈是整體,而電燈泡則是臺(tái)燈的組成部分之一。組裝結(jié)構(gòu)的表示如圖10.5所示。整體類放在圖的頂部,部分類放在圖的下端,用線把它們連起來,用三角形表示這是一個(gè)組裝結(jié)構(gòu)的形式。連線上的數(shù)字和范圍表示了整體所包含的部分的數(shù)目。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.5 組裝結(jié)構(gòu)的符號(hào)表示
14、第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 主題主題是指導(dǎo)人們了解復(fù)雜大模型的一種機(jī)制。主題有助于組織大項(xiàng)目的軟件包,主題是一種手段,用它來綜述較大的面向?qū)ο蠓治龊驮O(shè)計(jì)的模型。給出這些模型的概貌,是這些模型的抽象機(jī)制。主題的表示符號(hào)有兩種形式。圖10.6是主題的簡(jiǎn)單表示形式,它給出主題名和相應(yīng)編號(hào),圖10.7是主題的擴(kuò)展表示形式,除了主題名和相應(yīng)編號(hào),還給出該主題包含的類。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.6 主題簡(jiǎn)單表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.7 主題簡(jiǎn)單表示第第1010章章 面向?qū)ο蟮?/p>
15、面向?qū)ο蟮腃oadCoad方法方法4. 屬性及實(shí)例關(guān)聯(lián)1) 屬性屬性是類的性質(zhì),它是某種數(shù)據(jù)(狀態(tài)信息)。類中對(duì)象有相應(yīng)的值(狀態(tài)),用來描述對(duì)象或分類結(jié)構(gòu)的實(shí)例。這種概念的基礎(chǔ)來自信息建模方法。2) 實(shí)例關(guān)聯(lián)實(shí)例關(guān)聯(lián)是一個(gè)實(shí)例集合到另一個(gè)實(shí)例集合的映射。它是問題域映射的一種模型,表示對(duì)象間的依賴關(guān)系及對(duì)象所需的一部分狀態(tài)信息。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 符號(hào)表示屬性表示符號(hào)如圖10.8所示,屬性在類對(duì)象的第二個(gè)區(qū)域中表示,實(shí)例關(guān)聯(lián)表示符號(hào)如圖10.9所示,用兩個(gè)類對(duì)象之間的連線表示,線上各對(duì)象都標(biāo)記數(shù)字或范圍(m, n),說明對(duì)象之間的約束關(guān)系,表明一
16、個(gè)類對(duì)象1對(duì)應(yīng)了0個(gè)或m個(gè)類對(duì)象2。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.8 屬性的符號(hào)表示 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 圖10.9 實(shí)例關(guān)聯(lián)的符號(hào)表示 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5. 服務(wù)及消息關(guān)聯(lián)1) 服務(wù)一個(gè)服務(wù)是在對(duì)象接收到一條消息后所要進(jìn)行的加工,它是對(duì)象表現(xiàn)的具體行為。服務(wù)的符號(hào)如圖10.10所示,放在類對(duì)象的第三個(gè)區(qū)域中。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.10 服務(wù)的符號(hào)表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2)
17、消息關(guān)聯(lián)消息關(guān)聯(lián)用于表示對(duì)象間的通信,說明了服務(wù)的要求。通信的基本方式是消息傳遞,所以定義通信信息就是定義實(shí)例之間的消息關(guān)聯(lián)。消息關(guān)聯(lián)的符號(hào)表示如圖10.11所示。在兩個(gè)類對(duì)象之間用粗線連起來,箭頭由發(fā)送對(duì)象指向接收對(duì)象。發(fā)送對(duì)象發(fā)送消息,接收對(duì)象接收消息。接收對(duì)象執(zhí)行某些動(dòng)作,并將結(jié)果返回發(fā)送對(duì)象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.11 消息關(guān)聯(lián)的符號(hào)表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2 10.2 面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮姆治?0.2.1 面向?qū)ο蠓治龈攀?1. 系統(tǒng)需求的變動(dòng)因素和穩(wěn)定因素面向?qū)ο蠓治龇椒ǖ牟呗曰A(chǔ)是
18、分析系統(tǒng)需求時(shí)遇到的變動(dòng)因素和穩(wěn)定因素,把這兩種因素區(qū)分后,比較容易對(duì)變動(dòng)所產(chǎn)生的影響進(jìn)行鑒別、定界、追蹤和估價(jià)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 思維組織模式系統(tǒng)分析本質(zhì)上是一種思維過程,就是考慮問題的次序、條理、層次等方面的模式,在傳統(tǒng)的分析模式中從問題空間到分析結(jié)果的映射是間接的,因?yàn)橛煞治龇椒ㄋ鶝Q定的思維模式與人們所采用的思維模式有一定的距離。為了減少這些距離,只好進(jìn)行轉(zhuǎn)換,以利于分析結(jié)果的傳遞。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法從根本上統(tǒng)一思維模式的辦法是在系統(tǒng)開發(fā)各個(gè)環(huán)節(jié)中,統(tǒng)一采用人類原有的思維組織模式。人類典型的思維
19、過程是由三部分來進(jìn)行組織的,即從現(xiàn)實(shí)世界中區(qū)分出特定的客體及其屬性;對(duì)客體的整體和組成部分加以區(qū)分;對(duì)不同種類的客體給出表示,在此基礎(chǔ)上加以區(qū)分。面向?qū)ο蟮姆治龇椒ň徒⒃谶@3個(gè)來自人類自己思維組織模式之上,依照客觀世界本來的規(guī)律來開發(fā)應(yīng)用系統(tǒng)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 面向?qū)ο蠓治龇椒ǖ谋硎久嫦驅(qū)ο蟮姆治鲇蓪?duì)象、分類、繼承性及基于消息的通信構(gòu)成。其中對(duì)象是一組屬性和專有服務(wù)的封裝,它是問題空間中某種事物的一個(gè)抽象,同時(shí)也帶有問題空間中這種事物的若干實(shí)例。這些是從信息建模方法中演變而來的,再加上面向?qū)ο蟮姆庋b性、繼承性和層次結(jié)構(gòu),所以面向?qū)ο蟮姆治霰刃?/p>
20、息建模方法更完整地實(shí)現(xiàn)了從問題空間到系統(tǒng)模型的直接映射。 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.2 對(duì)象的認(rèn)定 面向?qū)ο蠓治龅暮诵氖菍?duì)象,人們已經(jīng)使用了許多方法來進(jìn)行對(duì)象的認(rèn)定。1. 簡(jiǎn)單的認(rèn)定方法該方法由Booch于1983年提出,它是基于詞法分析的方法。從目標(biāo)系統(tǒng)的描述開始,找出其中的名詞作為候選的對(duì)象。另一方面,找出其中的動(dòng)詞作為候選的方法(即服務(wù)),然后產(chǎn)生一個(gè)由對(duì)象(名詞)和方法(動(dòng)詞)構(gòu)成的表,作為分析的結(jié)果。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法現(xiàn)以開發(fā)字處理系統(tǒng)為例,說明基于詞法分析的方法。問題陳述:字處理系統(tǒng)允許用戶產(chǎn)
21、生文檔,產(chǎn)生的文檔存儲(chǔ)在用戶目錄中,用戶可打印和顯示文檔;修改文檔;可從用戶目錄中刪除文檔。找出該問題的名詞和動(dòng)詞確認(rèn)的對(duì)象和方法構(gòu)成的表如下:第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 復(fù)雜系統(tǒng)對(duì)象的認(rèn)定在一個(gè)復(fù)雜系統(tǒng)中,對(duì)象的認(rèn)定面臨5個(gè)需要回答的問題。1) 到什么地方去找候選對(duì)象尋找對(duì)象的范圍如下:(1) 問題空間:從用戶那里得到某種形式表達(dá)的系統(tǒng)需求,了解問題領(lǐng)域的知識(shí)背景,向用戶索取與系統(tǒng)主題有關(guān)的、簡(jiǎn)要的歸納性材料,與有關(guān)人員座談、聽取意見和建議。(2) 文本:收集一切能得到的文字材料,重點(diǎn)留意那些專門示例系統(tǒng)主題和值得仔細(xì)學(xué)習(xí)與考慮的部分,并注意出現(xiàn)的名詞
22、。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(3) 圖:能收集到的一切圖。如塊結(jié)構(gòu)圖、接口圖、系統(tǒng)構(gòu)件圖、高層次的數(shù)據(jù)流圖和控制流圖等。根據(jù)這些再用圖標(biāo)和連線畫出內(nèi)容豐富的圖來,形成問題空間的初始骨架。2) 找什么范圍確定之后,可能成為對(duì)象的是:(1) 結(jié)構(gòu):是最有可能被認(rèn)定為對(duì)象的實(shí)體,其中分類結(jié)構(gòu)和組裝結(jié)構(gòu)又是結(jié)構(gòu)中可能性最大的。(2) 其他系統(tǒng):指要進(jìn)行交互的外部系統(tǒng)和外界的“終結(jié)點(diǎn)”。(3) 設(shè)備:需要進(jìn)行交互的設(shè)備。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 (4) 事件:由系統(tǒng)及時(shí)觀察和記錄的事件及歷史事件。(5) 扮演的角色:各種人員在系統(tǒng)
23、中扮演的角色。(6) 位置:系統(tǒng)安裝和運(yùn)行的物理位置。(7) 組織和單位。系統(tǒng)涉及的人員所屬的單位。3) 對(duì)候選對(duì)象考察什么對(duì)于一個(gè)候選對(duì)象,能否認(rèn)定它是一個(gè)對(duì)象,要考察:(1) 需要記憶,即系統(tǒng)是否有必要記憶對(duì)象的某些或全部成分?(2) 需要服務(wù),即系統(tǒng)是否有必要對(duì)該對(duì)象的行為提供服務(wù)?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(3) 多于一個(gè)屬性。只有一個(gè)屬性的對(duì)象通常應(yīng)看成其他對(duì)象的屬性。(4) 共有屬性即對(duì)于一種對(duì)象所有實(shí)例,能否認(rèn)定一組為這些實(shí)例所共有的屬性?(5) 共有服務(wù)即對(duì)于一種對(duì)象的所有實(shí)例,能否認(rèn)定一組這些實(shí)例都要進(jìn)行的加工?4) 提出什么質(zhì)疑對(duì)于已初步
24、認(rèn)定的對(duì)象,應(yīng)從下列幾方面提出質(zhì)疑:(1) 記憶和服務(wù)的必要性:若系統(tǒng)沒有必要始終持有現(xiàn)實(shí)世界中某種事物的信息或者提供關(guān)于它的服務(wù),那么這種事物就不要認(rèn)定為對(duì)象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(2) 單個(gè)實(shí)例:若某種有屬性的對(duì)象只有一個(gè)實(shí)例,要看是否確實(shí)反映了問題空間情況,若已經(jīng)初步認(rèn)定的兩種或多種對(duì)象有相同的屬性和服務(wù),而且至少其中的一種只有一實(shí)例,這時(shí)應(yīng)當(dāng)考慮將它們合并。 (3) 派生結(jié)果:注意那些可以通過計(jì)算機(jī)得出值的屬性。5) 怎樣為認(rèn)定的對(duì)象命名認(rèn)定的對(duì)象需要命名,這時(shí)應(yīng)當(dāng):(1) 用單數(shù)名詞或形容詞加名詞來命名對(duì)象的名字。(2) 命名所使用的詞匯應(yīng)當(dāng)
25、來自符合系統(tǒng)主題、標(biāo)準(zhǔn)的詞匯集。(3) 使用可讀的名字,要基于內(nèi)容,基于內(nèi)在本質(zhì),具有確切意義。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.3 結(jié)構(gòu)的認(rèn)定 結(jié)構(gòu)指的是多種對(duì)象的組織方式,用來反映問題空間中復(fù)雜事物和復(fù)雜關(guān)系。結(jié)構(gòu)有分類結(jié)構(gòu)和組裝結(jié)構(gòu)兩種。分類結(jié)構(gòu)針對(duì)的是事物的類別之間的組織關(guān)系;組裝結(jié)構(gòu)對(duì)應(yīng)于事物的整體與部件之間的關(guān)系。1. 認(rèn)定分類結(jié)構(gòu)使用分類結(jié)構(gòu),可以按照事物的類別對(duì)問題空間進(jìn)行層次結(jié)構(gòu)劃分,體現(xiàn)現(xiàn)實(shí)世界中事物的一般性與特殊性。認(rèn)定分類結(jié)構(gòu)的原則是先從一般向特殊考慮,再從特殊向一般考慮。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方
26、法1) 從一般到特殊 對(duì)于一種對(duì)象,首先認(rèn)為它具有最一般的含義。這時(shí)看它在問題空間中具有不同特殊性的可能,對(duì)該對(duì)象每種可能的特殊性考慮:(1) 是否可用不同的屬性和服務(wù)來描述?(2) 是否反映了現(xiàn)實(shí)世界中有意義的特殊性?(3) 是否在問題空間之內(nèi)?按上述原則確認(rèn)了對(duì)象應(yīng)具有的特殊性后,就可令共有的屬性和服務(wù)從屬于一般含義的對(duì)象,而令擴(kuò)充的特殊屬性和服務(wù)分屬于特殊含義的對(duì)象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 從特殊到一般對(duì)于一種對(duì)象,在認(rèn)定它具有某種特殊含義之后,再從特殊向一般考慮,這時(shí)要考察:(1) 問題空間中是否有其他與這種對(duì)象有一些屬性或服務(wù)是共有的?(2
27、) 若引入某種更一般的對(duì)象,是否反映了現(xiàn)實(shí)世界中有意義的一般性?(3) 若引入某種更一般的對(duì)象,那么這種對(duì)象是否存在于問題空間之中?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 認(rèn)定組裝結(jié)構(gòu)認(rèn)定組裝結(jié)構(gòu)的原則是先從整體向部件考慮,再從部件向整體考慮。1) 從整體到部件對(duì)于一種對(duì)象,首先認(rèn)為它是一個(gè)整體。這時(shí)看它在問題空間中含有部件的可能性,即要考察:(1) 它的組成部分是什么?(2) 對(duì)于它的一個(gè)部件,系統(tǒng)是否有必要記錄每個(gè)實(shí)例或值?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(3) 對(duì)于它的一個(gè)部件,每個(gè)實(shí)例是否都有屬性來描述?(4) 它的部件是否反映
28、現(xiàn)實(shí)世界中存在的部件?(5) 它的部件是否限定在目標(biāo)系統(tǒng)之內(nèi)?采用從整體到部件的方式考慮組裝結(jié)構(gòu),即挖掘問題空間中出現(xiàn)的事物具體的構(gòu)成細(xì)節(jié)。2) 從部件到整體對(duì)于一種對(duì)象,假定它可能是另一種對(duì)象的一個(gè)部件,這時(shí)應(yīng)考察:(1) 這種對(duì)象適合什么樣的組裝關(guān)系?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 (2) 還需要哪些對(duì)象與這種對(duì)象一起構(gòu)成另一種對(duì)象?(3) 對(duì)于這樣組裝而成的對(duì)象,系統(tǒng)是否有必要記錄它的每一個(gè)實(shí)例?(4) 這樣組裝而成的對(duì)象在現(xiàn)實(shí)世界是否有意義?(5) 這樣組裝而成的對(duì)象是否限定在目標(biāo)系統(tǒng)之內(nèi)?采用從部件到整體的方式考慮組裝結(jié)構(gòu),這是把問題空間中出現(xiàn)的某些事
29、物,合理地納入某種含義更廣、可作為整體看待的事物之中,以便從聚集的角度來表示客觀事物。先整體向部件分析,再由部件向整體綜合,這也遵循人類的思維組織模式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.4 認(rèn)定主題 主題是一種關(guān)于模型的抽象機(jī)制,它是面向?qū)ο蠓治瞿P偷母琶?,也是關(guān)于某個(gè)模型要同時(shí)考慮和理解的內(nèi)容,主題起一種控制作用。從實(shí)際開發(fā)經(jīng)驗(yàn)來看,一個(gè)實(shí)際的目標(biāo)系統(tǒng)通過對(duì)象和結(jié)構(gòu)的認(rèn)定,對(duì)問題空間中的事物已進(jìn)行了抽象和概括,所認(rèn)定的對(duì)象和結(jié)構(gòu)的數(shù)目有幾十到幾百種,但人們能同時(shí)考慮和理解的問題數(shù)目受到其記憶能力和處理能力的制約,為7個(gè)左右,因此不經(jīng)過進(jìn)一步抽象,會(huì)造成對(duì)
30、分析結(jié)果理解的困難和混亂。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法直觀地來看,主題就是一個(gè)名詞或名詞短語,與對(duì)象名類似,但抽象程度不同。認(rèn)定主題的方法是:(1) 為每一個(gè)結(jié)構(gòu)追加一個(gè)主題。(2) 為每一種對(duì)象追加一個(gè)主題。(3) 若當(dāng)前主題的數(shù)目超過7個(gè),就對(duì)已有主題進(jìn)行歸并。歸并的原則是當(dāng)兩個(gè)主題對(duì)應(yīng)的屬性和服務(wù)有著較密切聯(lián)系時(shí),就將它們歸并為一個(gè)主題。主題是一個(gè)單獨(dú)的層次,在這個(gè)層次中,每個(gè)主題有一個(gè)序號(hào),主題之間的聯(lián)系是消息關(guān)聯(lián)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.5 定義屬性 屬性是數(shù)據(jù)元素,用來描述對(duì)象或分類結(jié)構(gòu)的實(shí)例。在分析
31、過程中,定義屬性有5個(gè)步驟。1. 認(rèn)定屬性認(rèn)定一個(gè)屬性有如下3個(gè)基本原則:(1) 對(duì)相應(yīng)對(duì)象或分類結(jié)構(gòu)的每一個(gè)實(shí)例是否均適用?(2) 在現(xiàn)實(shí)世界中它與這種事物的關(guān)系是否最密切?(3) 認(rèn)定的屬性應(yīng)當(dāng)是一種相對(duì)的原子概念,不依賴于并列的其他屬性就可以理解。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 確定屬性的位置確定屬性與特定對(duì)象之間的從屬關(guān)系主要是針對(duì)分類結(jié)構(gòu)中的對(duì)象而言,采用的是繼承觀點(diǎn)。低層對(duì)象的共有屬性應(yīng)在上層對(duì)象中定義,而低層對(duì)象只定義自己特有的屬性。3. 認(rèn)定和定義實(shí)例關(guān)聯(lián)實(shí)例關(guān)聯(lián)是一個(gè)實(shí)例集合到另一個(gè)實(shí)例集合的映射,既可以是兩種對(duì)象的實(shí)例集合,也可以是同一種
32、對(duì)象的實(shí)例集合的兩個(gè)子集。實(shí)例關(guān)聯(lián)分為1: 1,1: m,0: 1,0: m這4種。與ER圖中的聯(lián)系相比有自己特點(diǎn)。實(shí)例關(guān)聯(lián)是可選的。認(rèn)定和定義實(shí)例關(guān)聯(lián)的具體過程類似于ER圖中建立的實(shí)體聯(lián)系。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 重新修改認(rèn)定的對(duì)象經(jīng)過上述的過程,對(duì)原來的認(rèn)定可能會(huì)發(fā)生一些改變,需修改原來的認(rèn)定。5. 對(duì)屬性和實(shí)例關(guān)聯(lián)進(jìn)行說明對(duì)屬性的名字、描述、約束和范疇進(jìn)行說明,一個(gè)屬性依其特征有如下情況: (1) 描述型: 指屬性的值由對(duì)象實(shí)例添加、變動(dòng)、刪除及選擇等操作來建立和保持。(2) 定義型: 用于標(biāo)識(shí)和命名各個(gè)實(shí)例。(3) 派生型: 由其他數(shù)據(jù)計(jì)算得
33、到的。(4) 參考型: 與另一個(gè)實(shí)例聯(lián)系的事實(shí)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.6 定義服務(wù) 服務(wù)是在接收到一條消息后所要進(jìn)行的加工。定義服務(wù)時(shí),首先定義行為,然后定義實(shí)例之間的通信。1. 認(rèn)定基礎(chǔ)服務(wù)基礎(chǔ)服務(wù)有以下3類:(1) 存在服務(wù):指最一般的服務(wù),即所創(chuàng)建、變動(dòng)、刪除及選擇。(2) 計(jì)算服務(wù):一個(gè)實(shí)例需要另一個(gè)實(shí)例加工的結(jié)果時(shí),所需的服務(wù)。(3) 監(jiān)控服務(wù):模型中某些部件需要快速實(shí)時(shí)處理時(shí),所需的服務(wù)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 認(rèn)定輔助服務(wù)在面向?qū)ο蠓治瞿P椭校瑢?duì)每種對(duì)象及分類結(jié)構(gòu)要考慮對(duì)象生存史和狀態(tài)事
34、件響應(yīng)兩種輔助服務(wù)。1) 對(duì)象生存史對(duì)象生存史定義基礎(chǔ)服務(wù)的順序,檢查其中每步需要的服務(wù)的變種,增加相應(yīng)的服務(wù)變種,以及增加其他的服務(wù)。一種對(duì)象的基礎(chǔ)服務(wù)順序就是它的“存在”服務(wù)之間的次序關(guān)系,一般都有如圖10.12所示的形式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.12 對(duì)象生存史第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 狀態(tài)事件響應(yīng)狀態(tài)事件響應(yīng)要定義主要的系統(tǒng)狀態(tài),列出外部事件及其需要的響應(yīng),以及擴(kuò)充服務(wù)和消息關(guān)聯(lián)。3. 認(rèn)定消息關(guān)聯(lián)消息關(guān)聯(lián)是事件響應(yīng)和數(shù)據(jù)流的一種結(jié)合,即每條消息關(guān)聯(lián)都表示著一種要發(fā)出的消息和收到這條消息后要作出的一
35、個(gè)響應(yīng)。消息關(guān)聯(lián)也是實(shí)例關(guān)聯(lián)之間的一種映射關(guān)系。認(rèn)定消息關(guān)聯(lián)時(shí),首先在已經(jīng)用實(shí)例關(guān)聯(lián)聯(lián)系起來的那些實(shí)例之間考慮有無消息關(guān)聯(lián),然后檢查那些需要其他實(shí)例進(jìn)行的加工,考慮增加其他必要的消息關(guān)聯(lián)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 對(duì)服務(wù)進(jìn)行說明主要對(duì)外部可觀察到的行為進(jìn)行說明。目的是強(qiáng)調(diào)可測(cè)試的部分,作為對(duì)系統(tǒng)需求進(jìn)行驗(yàn)證、對(duì)系統(tǒng)實(shí)現(xiàn)進(jìn)行驗(yàn)收的測(cè)試的基準(zhǔn)。10.2.7 對(duì)象的規(guī)格說明 下面給出以對(duì)象為單位的系統(tǒng)規(guī)格說明的模板。specification 對(duì)象名 描述性屬性 定義性屬性 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法派生性屬性 外部系統(tǒng)輸
36、入 外部系統(tǒng)輸出 實(shí)例關(guān)聯(lián) 狀態(tài)事件響應(yīng)表 對(duì)象生存史圖 服務(wù) 服務(wù) end specification第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.8 應(yīng)用示例 以傳感器控制系統(tǒng)為例,用Coad方法建立該系統(tǒng)的分析模型。1. 問題陳述傳感器控制系統(tǒng)控制傳感器和臨界傳感器,報(bào)告問題情況。各傳感器都通過類型(生產(chǎn)廠,型號(hào))、觸發(fā)序列(發(fā)往被觸發(fā)的傳感器)、轉(zhuǎn)換(偏移,測(cè)量單位,比例系數(shù))、脈沖調(diào)幅、地址、狀態(tài)(開,關(guān),等待)、當(dāng)前值及報(bào)警閾值來描述。傳感器裝在建筑物中,系統(tǒng)跟蹤各個(gè)建筑物中的傳感器、建筑物地址及緊急接觸點(diǎn)。另外,臨界傳感器用容限(脈沖調(diào)幅容限)來描述。第
37、第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法每當(dāng)超出或滿足傳感器閾值時(shí),控制系統(tǒng)就觸發(fā)相應(yīng)的報(bào)警設(shè)備,報(bào)警設(shè)備的活動(dòng)受設(shè)備狀態(tài)持續(xù)時(shí)間的影響??刂葡到y(tǒng)跟蹤日期、時(shí)間、嚴(yán)重程度、修理時(shí)間及各個(gè)報(bào)警裝置的狀態(tài)。2. 傳感器控制系統(tǒng)的分析模型圖10.13給出傳感器控制系統(tǒng)的分析模型。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.13 傳感器控制系統(tǒng)分析模型第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.3 10.3 面向?qū)ο蟮脑O(shè)計(jì)面向?qū)ο蟮脑O(shè)計(jì)10.3.1 面向?qū)ο笤O(shè)計(jì)的目標(biāo) 面向?qū)ο笤O(shè)計(jì)的主要目標(biāo)是提高生產(chǎn)率、提高質(zhì)量、提高可維護(hù)性。1.
38、 提高生產(chǎn)率面向?qū)ο蟮脑O(shè)計(jì)是一種系統(tǒng)設(shè)計(jì)活動(dòng),它能減少測(cè)試時(shí)間,但在系統(tǒng)開發(fā)過程中,使用面向?qū)ο笤O(shè)計(jì)最多使整個(gè)生產(chǎn)率提高20%左右。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法另一種看法,使用面向?qū)ο笤O(shè)計(jì)能提高整個(gè)生命周期的效率,大多數(shù)項(xiàng)目表明系統(tǒng)的開銷有70%、80%使用在維護(hù)階段。因此,強(qiáng)調(diào)維護(hù),將大大提高整個(gè)生產(chǎn)率。面向?qū)ο笤O(shè)計(jì)使用了重用類機(jī)制來改進(jìn)效率,重用類是用包含類及子類層次的類庫實(shí)現(xiàn)的,類庫是這種結(jié)構(gòu)的主要組成部分。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 提高質(zhì)量強(qiáng)調(diào)生產(chǎn)率的同時(shí),不能忽視軟件質(zhì)量。改進(jìn)質(zhì)量的工具、技術(shù)及方法有許多,它
39、們大多與開發(fā)過程末期的標(biāo)準(zhǔn)或過細(xì)的產(chǎn)品測(cè)試有關(guān),而不強(qiáng)調(diào)過程本身。產(chǎn)生高質(zhì)量產(chǎn)品的開發(fā)過程,特別是分析過程和設(shè)計(jì)過程,能夠大大減少開發(fā)后期發(fā)現(xiàn)的錯(cuò)誤,并大大提高系統(tǒng)的質(zhì)量。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 提高可維護(hù)性系統(tǒng)的需求總是在變化中,有許多影響需求的因素,如用戶、環(huán)境、政策及技術(shù)等。設(shè)計(jì)者盡可能構(gòu)造這樣一種,有利于將來修改的設(shè)計(jì),方法是將系統(tǒng)中穩(wěn)定部分與易變部分分離開來。系統(tǒng)中最穩(wěn)定的是類,它嚴(yán)格描述了問題域及系統(tǒng)在該域中的任務(wù)。系統(tǒng)中可變的是服務(wù),服務(wù)的復(fù)雜程度也是變化的,外部接口也是最可能變化的部分。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadC
40、oad方法方法10.3.2 設(shè)計(jì)問題域組元 1. 原因面向?qū)ο蠓椒ㄖ械囊粋€(gè)主要目標(biāo)就是保持問題域組織框架的完整性,使用這種方法可以直接追蹤分析、設(shè)計(jì)直至程序設(shè)計(jì)的內(nèi)容,因?yàn)檫@3個(gè)階段都是根據(jù)問題域本身來實(shí)現(xiàn)的。設(shè)計(jì)問題域組元的理由就是為了尋求穩(wěn)定性,無論何種修改,例如增加具體類、增加屬性或服務(wù)等,都是建立在問題域基礎(chǔ)上的。穩(wěn)定性是實(shí)現(xiàn)可重用的分析、設(shè)計(jì)及程序設(shè)計(jì)的關(guān)鍵因素,為了更好地支持系統(tǒng)的擴(kuò)充性也需要穩(wěn)定性。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 內(nèi)容在面向?qū)ο蟮拈_發(fā)方法中,分析和設(shè)計(jì)不能截然分開,面向?qū)ο蟮姆治鼋Y(jié)果就是面向?qū)ο笤O(shè)計(jì)多元組模型的一個(gè)完整的部分,但
41、面向?qū)ο蟮脑O(shè)計(jì)可以修改或增加一些內(nèi)容。對(duì)于設(shè)計(jì)問題組元來說,要在分析模型基礎(chǔ)上,增加一些實(shí)際的修改,這些修改是針對(duì)具體的設(shè)計(jì)考慮的,修改包含合并或分解類對(duì)象、結(jié)構(gòu)、屬性、服務(wù)等。這些修改應(yīng)建立在具體的客觀標(biāo)準(zhǔn)上。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 策略在進(jìn)行設(shè)計(jì)問題域組元時(shí),采用下列策略: (1) 應(yīng)用面向?qū)ο蟮姆治?,使用相同的符?hào)表示,圍繞 4 種組元組織。(2) 改進(jìn)面向?qū)ο蟮姆治鼋Y(jié)果,可直接應(yīng)用分析的結(jié)果。(3) 完善面向?qū)ο蟮姆治鼋Y(jié)果,必須加入一些常規(guī)類以完善分析的內(nèi)容。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 將專門的問題域類
42、組合在一起需要引入一個(gè)類將專門的問題域類組合在一起,引入的類即為“根”類,組合在一起的問題域類作為從屬的類。引入“根”類主要是為了將專門的問題域類組合在一個(gè)類庫中,這只是當(dāng)不能使用更復(fù)雜的組合機(jī)制時(shí)才采用的一種組合方法。另外,還可建立協(xié)議來完成這種組合。3) 加入一般化類(抽象類)以建立協(xié)議 在許多情況下,大量的具體類需要相似的一個(gè)協(xié)議,即需要定義一個(gè)相似的服務(wù)集合,這時(shí)可引入一個(gè)附加的抽象類,目的是建立一個(gè)協(xié)議。這些服務(wù)在具體類中詳細(xì)定義。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4) 調(diào)整繼承的支持層次如果在分析模型中的一般具體結(jié)構(gòu)中包括多重繼承,而所使用的程序設(shè)計(jì)語言
43、沒有多重繼承機(jī)制,或只有單重繼承或根本沒有繼承機(jī)制,這時(shí)就要對(duì)分析模型進(jìn)行修改。使用化為單一層次的方法,將多重繼承化為單重繼承,這意味著不再在設(shè)計(jì)中明確表示一個(gè)或多個(gè)一般具體層次,而某些屬性和服務(wù)可在具體類中重復(fù)多次。對(duì)于不具備繼承機(jī)制的語言,就要將各個(gè)一般具體結(jié)構(gòu)變成一組零層次的類對(duì)象,即調(diào)整為各個(gè)孤立的類對(duì)象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5. 提高效率提高效率是設(shè)計(jì)的關(guān)鍵問題之一,為了從速度方面考慮提高效率,可能需要對(duì)問題域組元進(jìn)行修改。當(dāng)對(duì)象之間的消息發(fā)送出現(xiàn)阻塞時(shí),必須進(jìn)行修改。需要把問題域組元中的兩個(gè)或多個(gè)類組合起來產(chǎn)生高耦合。這種修改是否能提高速度
44、,還需經(jīng)過測(cè)試和檢查來了解。為了提高速度,需要將設(shè)計(jì)模型的 4 種組元都增加一種構(gòu)造塊來存放某些中間結(jié)果。一種方法是擴(kuò)充類對(duì)象的屬性來存放中間結(jié)果,另一種方法是使用更低層的構(gòu)造塊來擴(kuò)充類對(duì)象,這就構(gòu)成了整體部分結(jié)構(gòu)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法6. 支持?jǐn)?shù)據(jù)管理組元為了支持?jǐn)?shù)據(jù)管理組元,各個(gè)被存儲(chǔ)對(duì)象必須了解自身是如何存儲(chǔ)的。一種方法是“自己保存自己”,即通知對(duì)象保存自己,各對(duì)象知道如何保存自身,加入完成對(duì)象這種定義的屬性和服務(wù);另一種方法是各個(gè)對(duì)象將自己發(fā)送給數(shù)據(jù)管理組元,由相應(yīng)組元保存。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.3
45、.3 設(shè)計(jì)人機(jī)交互組元 1. 原因人機(jī)交互組元表示了用戶與系統(tǒng)交互作用使用的命令以及系統(tǒng)提供給用戶的信息。人機(jī)交互組元設(shè)計(jì)得如何,對(duì)用戶使用系統(tǒng)帶來較大影響。開發(fā)者在分析階段為了得到正確結(jié)果,要對(duì)用戶進(jìn)行分析,在設(shè)計(jì)過程中必須繼承這種分析,它包括分析用戶,確定交互作用的時(shí)間,分析具體系統(tǒng)使用的交互技術(shù)等。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 內(nèi)容 在人機(jī)交互組元設(shè)計(jì)中,要增加人機(jī)交互的細(xì)節(jié),包括指定窗口、設(shè)計(jì)窗口的布局和設(shè)計(jì)報(bào)表的形式等,原型有助于開發(fā)和選擇實(shí)際的交互機(jī)制。使用多層次多組元模型有助于從分析和需求中區(qū)分獨(dú)立于實(shí)現(xiàn)的人機(jī)交互組元。這種區(qū)分減少了由結(jié)構(gòu)技
46、術(shù)變化而帶來的變化影響。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 方法1) 分類用戶分類用戶研究使用系統(tǒng)用戶的各類人員,他們是如何工作的?他們想完成什么任務(wù)?必須完成什么任務(wù)?設(shè)計(jì)者提供什么工具來幫助他們完成這種任務(wù)?怎樣才能做到不引人注目地使用工具?使用系統(tǒng)的人可能有以下幾種情況:(1) 按技能分,有初級(jí)、中級(jí)和高級(jí)。(2) 按組織級(jí)別分:有總經(jīng)理、部門經(jīng)理和辦事員。(3) 不同組織成員:有職員、顧客。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 描述用戶及其任務(wù)腳本對(duì)用戶的各類人員,描述他們使用系統(tǒng)的目的;各自的特征,包括年齡、文化程度、關(guān)鍵
47、的成功因素、技能水平、主要任務(wù)及任務(wù)的腳本等。3) 設(shè)計(jì)命令層次研究用戶交互的意義及準(zhǔn)則。若已建立的交互系統(tǒng)中已有命令層次,則先著手研究已有的人機(jī)交互行為的意義和準(zhǔn)則,然后建立初始命令層,再細(xì)化命令層。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4) 設(shè)計(jì)詳細(xì)交互按下列方面進(jìn)行人機(jī)交互的設(shè)計(jì):(1) 一致性。使用一致的術(shù)語、一致的步驟及一致的動(dòng)作行為。(2) 減少步驟。最小化擊鍵次數(shù)、使用鼠標(biāo)的次數(shù)及下拉菜單的次數(shù),極小化響應(yīng)時(shí)間。(3) 盡量顯示提示信息。盡量為用戶提供有意義的及時(shí)的反饋。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(4) 提供取消操作。用
48、戶難免出錯(cuò),應(yīng)盡量能使用戶取消其錯(cuò)誤動(dòng)作。(5) 幫助。有聯(lián)機(jī)學(xué)習(xí)手冊(cè),易學(xué)易用。5) 設(shè)計(jì)人機(jī)交互組元的類人機(jī)交互組元在一定程度上依賴于所使用的圖形用戶接口,接口不同,人機(jī)交互組元類也不同,為了設(shè)計(jì)人機(jī)交互組元類,從構(gòu)造窗口及其組成的人機(jī)交互開始。圖10.14給出了窗口及其組元的結(jié)構(gòu)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.14 窗口及其組元第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法各個(gè)類都包含窗口中的菜單條、下拉菜單及彈出菜單的定義,各個(gè)類也定義了創(chuàng)建菜單所需的服務(wù),反向顯示所選擇項(xiàng)目的服務(wù)和喚醒相關(guān)行為的服務(wù),各個(gè)類也負(fù)責(zé)窗口中信息的實(shí)際
49、顯示,各個(gè)類都封裝了其所有物理對(duì)話的考慮。4. 傳感器控制系統(tǒng)的人機(jī)交互組元傳感器控制系統(tǒng)的人機(jī)交互組元如圖10.15所示。 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.15 傳感器控制系統(tǒng)人機(jī)交互組元第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.3.4 設(shè)計(jì)任務(wù)管理組元 1. 原因任務(wù)是處理的別名,指用代碼來定義的一個(gè)活動(dòng)流。許多任務(wù)的并發(fā)執(zhí)行稱為多重任務(wù)。任務(wù)管理組元就是為了設(shè)計(jì)處理多重任務(wù)的。此外,在實(shí)際使用的硬件中,可能僅由一個(gè)處理器支持多個(gè)任務(wù)。因此,任務(wù)管理的一項(xiàng)重要內(nèi)容就是,確定哪些是必須同時(shí)動(dòng)作的任務(wù),哪些是相互排斥的任務(wù)。第第1
50、010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 內(nèi)容任務(wù)管理的內(nèi)容是確定各種類型的任務(wù),并把任務(wù)分配到適當(dāng)?shù)挠布蜍浖先?zhí)行。不同的系統(tǒng)均需要各種多重任務(wù),有下列各種情況: (1) 具有數(shù)據(jù)獲取機(jī)制,負(fù)責(zé)控制局部設(shè)備的系統(tǒng),需要多重任務(wù)。(2) 某種用戶接口同時(shí)存在多窗口中的數(shù)據(jù)輸入,也存在多任務(wù)。(3) 多用戶系統(tǒng)中,可能存在一個(gè)用戶任務(wù)的多重復(fù)制。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(4) 多子系統(tǒng)的軟件構(gòu)造中,各子系統(tǒng)之間的協(xié)調(diào)及通信需要多個(gè)任務(wù)完成。(5) 在多處理器的硬件結(jié)構(gòu)中,必須為各處理器分配任務(wù)并支持處理器之間的通信。(6) 對(duì)需要與其
51、他系統(tǒng)通信的系統(tǒng)來說,也需要多任務(wù)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法這些都是任務(wù)管理組元的內(nèi)容。在設(shè)計(jì)、編碼等過程,多任務(wù)增加了處理復(fù)雜度,必須仔細(xì)選擇各個(gè)任務(wù)。3. 設(shè)計(jì)1) 確定事件驅(qū)動(dòng)型任務(wù)某些任務(wù)是由事件驅(qū)動(dòng)而執(zhí)行的,這種任務(wù)可能負(fù)責(zé)與設(shè)備的通信,與一個(gè)或多個(gè)窗口、其他任務(wù)及子系統(tǒng)的通信。任務(wù)可以設(shè)計(jì)成某個(gè)事件上的觸發(fā)器,常常發(fā)出某種數(shù)據(jù)到達(dá)的信號(hào),數(shù)據(jù)可以來自輸入流,也可來自數(shù)據(jù)緩沖區(qū)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 確定時(shí)鐘驅(qū)動(dòng)型任務(wù)這些任務(wù)在特定時(shí)間內(nèi)被觸發(fā)執(zhí)行某些處理。如某些設(shè)備要求周期性地獲得數(shù)據(jù)或控制。某些子
52、系統(tǒng)、人機(jī)接口、任務(wù)、處理器或其他系統(tǒng)也可能需要周期性地通信,這就需要時(shí)鐘驅(qū)動(dòng)型任務(wù)。時(shí)鐘驅(qū)動(dòng)型任務(wù)的工作過程是,任務(wù)設(shè)置了喚醒時(shí)間并進(jìn)入睡眠狀態(tài),任務(wù)睡眠等待來自系統(tǒng)的中斷,一旦接收到這種中斷,任務(wù)被喚醒并執(zhí)行,通知有關(guān)的任務(wù)等,然后任務(wù)又回到睡眠狀態(tài)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 確定優(yōu)先任務(wù)及臨界任務(wù)優(yōu)先任務(wù)含高優(yōu)先級(jí)及低優(yōu)先級(jí)兩種,用來適應(yīng)處理任務(wù)的需要。臨界任務(wù)是有關(guān)系統(tǒng)成功或失敗的臨界處理,它涉及嚴(yán)格的可靠性約束。4) 確定協(xié)調(diào)任務(wù) 當(dāng)存在3個(gè)以上任務(wù)時(shí),就應(yīng)當(dāng)考慮增加一個(gè)任務(wù),用它來作為協(xié)調(diào)任務(wù)。協(xié)調(diào)任務(wù)的引入會(huì)增加總開銷,但是引入?yún)f(xié)調(diào)任務(wù)有
53、利于對(duì)封裝任務(wù)之間的協(xié)調(diào)控制。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5) 分析各個(gè)任務(wù)必須使任務(wù)數(shù)目保持到最少限度,無論是在開發(fā)階段還是在維護(hù)階段,每次只能理解一個(gè)或幾個(gè)正在進(jìn)行的任務(wù)。設(shè)計(jì)多任務(wù)系統(tǒng)的主要問題是常定義太多的任務(wù),其原因是為了處理方便。這樣做加大了整個(gè)設(shè)計(jì)的技術(shù)復(fù)雜度而且不易理解,因此必須仔細(xì)分析和選擇各個(gè)任務(wù)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法6) 定義各個(gè)任務(wù)任務(wù)定義包括下列內(nèi)容:(1) 任務(wù)的內(nèi)容:先對(duì)任務(wù)命名,然后簡(jiǎn)潔地描述該任務(wù)。如果一個(gè)服務(wù)可以分解成多個(gè)任務(wù),則修改該服務(wù)的名稱描述,以使每一個(gè)服務(wù)都可以映射到一個(gè)任
54、務(wù)中。(2) 如何協(xié)調(diào):先說明任務(wù)是事件驅(qū)動(dòng)型還是時(shí)鐘驅(qū)動(dòng)型的,對(duì)于事件驅(qū)動(dòng)型的任務(wù)來說,描述觸發(fā)它的事件;對(duì)時(shí)鐘驅(qū)動(dòng)型的事件來說,描述觸發(fā)該任務(wù)之前的時(shí)間間隔,同時(shí)說明這是一次性的時(shí)間還是反復(fù)的時(shí)間段。(3) 如何通信:說明任務(wù)應(yīng)從哪里取得數(shù)據(jù)值,任務(wù)應(yīng)把它的值發(fā)往何處。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 傳感器控制系統(tǒng)的任務(wù)管理組元模型傳感器控制系統(tǒng)的任務(wù)管理組元如圖10.16所示。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.16 傳感器控制系統(tǒng)任務(wù)管理組元第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5. 傳感器任務(wù)描述1) 任務(wù)1任務(wù)1的內(nèi)容如下: 名字:傳感器讀出。 描述:該任務(wù)在需要脈沖調(diào)幅時(shí)負(fù)責(zé)讀出傳感器。 包含:傳感器.樣本。 優(yōu)先級(jí):中等。 協(xié)調(diào):時(shí)鐘驅(qū)動(dòng),100 ms的時(shí)間間隔。 通信:從輸入線(傳感器)得到值,給雷達(dá)郵箱發(fā)送值。 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 任務(wù)2任務(wù)2的內(nèi)容如下: 名字:臨界傳感器讀出。 描述:該任務(wù)在需要脈沖調(diào)幅以及特定容限之內(nèi)時(shí)負(fù)責(zé)讀出臨界傳感器。 包含:臨界傳感器.樣本。 優(yōu)先級(jí):高。 協(xié)調(diào):時(shí)鐘驅(qū)動(dòng),25 ms的間隔。 通信:從輸入線(臨界傳感器)得到值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江全息數(shù)字展廳施工方案
- 幼兒園防水材料施工方案
- 福建不銹鋼木紋漆施工方案
- 湯遜湖退垸還湖施工方案
- 武漢大學(xué)創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃
- 護(hù)理診斷目標(biāo)計(jì)劃單
- 幼兒大班班主任工作計(jì)劃
- 2025至2030年中國(guó)尼龍三通數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)家用變頻中央空調(diào)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)天然金剛砂數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- DB1509T 0025-2024 肉牛舍設(shè)計(jì)與建筑技術(shù)規(guī)范
- 上海室內(nèi)裝飾施工合同示范文本2024年
- 2024版2024年《汽車文化》全套教案
- 房地產(chǎn) -中建科工五大類型項(xiàng)目成本指標(biāo)庫
- 2024小紅書保健品行業(yè)營(yíng)銷通案
- 未來網(wǎng)絡(luò)支撐下的數(shù)字身份體系:產(chǎn)業(yè)和技術(shù)發(fā)展趨勢(shì)(2024年)定稿版本
- 新《卷煙營(yíng)銷》理論知識(shí)考試題庫(附答案)
- 中考英語688高頻詞大綱詞頻表
- 知識(shí)產(chǎn)權(quán)保護(hù)與跨境執(zhí)法合作
- 肉類食品配送服務(wù)投標(biāo)方案(技術(shù)方案)
- 含新能源發(fā)電接入的電力系統(tǒng)低頻振蕩阻尼控制研究綜述
評(píng)論
0/150
提交評(píng)論