第10章 面向?qū)ο蟮腃oad方法_第1頁
第10章 面向?qū)ο蟮腃oad方法_第2頁
第10章 面向?qū)ο蟮腃oad方法_第3頁
第10章 面向?qū)ο蟮腃oad方法_第4頁
第10章 面向?qū)ο蟮腃oad方法_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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計面向?qū)ο蟮脑O計10.4 10.4 小結(jié)小結(jié)習題習題第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.1 Coad10.1 Coad方法概述方法概述10.1.1 術語1. 分析分析是一種研究問題域的過程,該過程產(chǎn)生系統(tǒng)行為的需求說明描述,它是關于要做的事情的一個完全、一致和可行的陳述。系統(tǒng)分析是關于問題空間的一種加工過程,它

2、的輸入是目標系統(tǒng)的問題空間,輸出則是經(jīng)過抽象、理解之后產(chǎn)生的系統(tǒng)需求說明。這一過程本質(zhì)上是人的一種思維過程,但需要工具輔助。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法分析關心的是用戶邊界、問題應用范圍及系統(tǒng)應完成的任務。分析方法是一種思維工具,用來幫助分析人員對需求進行形式化,即用特定的標記系統(tǒng)來表示和傳遞分析的結(jié)果。不同標記系統(tǒng)在產(chǎn)生表示時有不同的著眼點,也就有不同角度的抽象,因而反映出不同分析方法的特征。面向?qū)ο蟮姆治鍪怯妹嫦驅(qū)ο蟮姆椒▽δ繕讼到y(tǒng)的問題空間進行理解、分析和反映。通過對象的認定和類層次的認定,確定問題空間中應存在的類和類層次結(jié)構(gòu)。 第第1010章章 面向?qū)?/p>

3、象的面向?qū)ο蟮腃oadCoad方法方法2. 設計設計是建立在分析產(chǎn)生的需求說明基礎上,加入計算機系統(tǒng)實現(xiàn)所需的細節(jié)的過程,包括人機行為、任務管理及數(shù)據(jù)管理等。設計所關心的是把分析的結(jié)果應用于具體的硬件/軟件實現(xiàn)中。面向?qū)ο蟮脑O計則是用面向?qū)ο蟮姆椒?,?gòu)造目標系統(tǒng)的解空間,通過類的認定和類層次的結(jié)構(gòu)的組織,確定解空間中應存在的類和類層次結(jié)構(gòu),并確定外部和主要的數(shù)據(jù)結(jié)構(gòu)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法面向?qū)ο蟮姆治龊兔嫦驅(qū)ο蟮脑O計之間并沒有像傳統(tǒng)開發(fā)方法那樣有明顯的界限,但的確存在差別,存在抽象程度、先后順序及側(cè)重點的差別。這種特點與采用了一致的思維方式有關,也與面

4、向?qū)ο竽J奖旧砭褪菭顟B(tài)交換和進化的認識有關。10.1.2 控制復雜性原則在面向?qū)ο蟮姆治雠c設計中,控制復雜性時采用了如下的原則。1. 抽象為了集中研究問題而忽略那些與問題無關的部分。抽象有過程抽象和數(shù)據(jù)抽象兩種。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法過程抽象常表示為“功能/子功能”抽象,將處理過程分解成多個子步驟,是一種基本的處理復雜性的方法。但是使用這種分解來構(gòu)成一個設計多少有點隨意性和易變性,但可在一定范圍內(nèi)用來確定和描述服務。另一種更有效的抽象方式是數(shù)據(jù)抽象,它是構(gòu)造系統(tǒng)任務描述的基礎,使用數(shù)據(jù)抽象可以定義屬性和服務,獲得屬性的唯一方法是借助于服務。屬性及其服務可

5、以看成一個固有載體。2. 封裝封裝又稱信息隱蔽,它是在開發(fā)完整全面的程序結(jié)構(gòu)時使用的原則,程序中各組成部分都應該封裝或隱蔽在某個單個設計策略中。各模塊的接口也按此方法定義,目的是盡可能少地將其內(nèi)部暴露在外。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法封裝有助于在開發(fā)新系統(tǒng)時極小化重復性勞動,若在設計時將最容易的各部分分別封裝起來,就不必擔心需求變化了。封裝使相關內(nèi)容放在一起,減少了不同內(nèi)容的通信,它將某些特殊需求與其他一些可能使用這些需求的描述分開,可使對象的使用與對象的創(chuàng)建分離。消息通信也是封裝的一種形式,要求執(zhí)行的動作的細節(jié)封裝在消息接收的對象中。數(shù)據(jù)抽象是封裝中“相關事

6、物聯(lián)系在一起”的一種形式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 繼承繼承是面向?qū)ο笤O計的另一種基本設計原則。繼承用來表示類之間相似性的一種機制,它簡化了與已定義過的相似類的定義,描述了一般和具體化關系,在類層次結(jié)構(gòu)和類網(wǎng)絡結(jié)構(gòu)中明確地說明了共同的屬性和服務。這個原則構(gòu)成了顯式表達共同性的重要技術和基礎,繼承能使設計者一次確定共同的屬性和服務,同時將這些屬性和服務擴展到或限制到具體的實例中,繼承也可用于顯示表示共同性。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 組織方法在理解客觀世界組織與表示需求時,常采用以下 3 種方法:(1) 識別具體對

7、象及其屬性。(2) 識別整體對象及其部分對象。(3) 識別不同的對象類。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 5. 行為分類最常用的3種行為分類是:(1)建立在即時因果關系基礎上。(2)建立在歷史發(fā)展的相似性上。(3)建立在功能相似性上。10.1.3 開發(fā)多層次多組元的模型 1. 連續(xù)性表示從20世紀70年代中期以來,軟件人員遇到的問題如下:(1) 數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)處理的分離:即ER圖與DFD圖的分離。有人注意到DFD圖不適合于長期保存數(shù)據(jù),當時解決的辦法是增加一級表示數(shù)據(jù)結(jié)構(gòu)的圖,即ER圖,這種方法使數(shù)據(jù)及數(shù)據(jù)處理分離。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadC

8、oad方法方法(2) 分析與設計的分離:即軟件分析用DFD圖、ER圖及數(shù)據(jù)詞典來表示,而軟件設計的表示是軟件結(jié)構(gòu)圖和軟件詳細設計表示法。它們的表示截然不同,需要轉(zhuǎn)換。面向?qū)ο蟮腃oad方法使用統(tǒng)一的基本表示方法來組織數(shù)據(jù)及數(shù)據(jù)上的專有處理。面向?qū)ο蟮姆治龆x問題域的對象和類,反映系統(tǒng)的任務。面向?qū)ο蟮脑O計定義附加的類和對象,反映需求的實現(xiàn),使得分析和設計符號表示無明顯差別。不存在從分析到設計的轉(zhuǎn)換。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 分析模型Coad方法在面向?qū)ο蟮姆治鲋械?種活動:(1) 識別對象和類。(2) 識別類的結(jié)構(gòu)。(3) 確定主題。(4) 定義屬性。

9、(5) 定義服務。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法按上述活動建立信息需求分析模型,按下列5個層次整理提交文檔。(1) 主題層:控制一次分析所考慮的范圍,即對相關的類進行歸并。(2) 對象層:在分析范圍內(nèi)找出全部的對象。(3) 結(jié)構(gòu)層:分析類的分類結(jié)構(gòu)和組裝結(jié)構(gòu)。(4) 屬性層:描述每個對象的狀態(tài)特征。(5) 服務層:描述每個對象所具有的操作。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 設計模型Coad方法中,面向?qū)ο笤O計模型在面向?qū)ο蟮姆治瞿P偷?個層次上由4個組元構(gòu)成,如圖10.1所示。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoa

10、d方法方法圖10.1 設計模型第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5個層次從縱向反映模型是透明重疊的,一級比一級更詳細,4個組元從橫向反映模型的組成。 4個組元對應于面向?qū)ο笤O計的4個主要活動步驟:(1) 設計問題域組元。(2) 設計人機界面組元。(3) 設計任務管理組元。(4) 設計數(shù)據(jù)管理組元。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.1.4 定義及符號表示 下面給出Coad方法中面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O計用到的定義和符號表示。1. 對象和類1) 對象對象是問題域中事物的抽象或者是問題域中事物的實現(xiàn)的抽象,它是屬性值及其相應服務的一種封裝

11、,對象的同義詞是實例。2) 類類是一個或多個對象的描述,對象可用統(tǒng)一的屬性和服務的集合來描述。另外,類也可以描述如何創(chuàng)建該類的新對象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 類對象類對象指的是類和類中的對象,其符號表示如圖10.2所示,粗方框表示類,類分3個區(qū)域,對象用圍繞著粗框的細框來表示,在表示類的3個區(qū)域內(nèi),應標出類對象的名稱、屬性及服務,這是具有對象的類,是一種具體類。圖10.3給出類符號表示,這種類是一種抽象類,它沒有對象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.2 類對象的符號表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oa

12、dCoad方法方法圖10.3 類符號表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 層次結(jié)構(gòu)1) 結(jié)構(gòu)結(jié)構(gòu)是與系統(tǒng)任務有關的問題域復雜性的一種表示,它是類層次結(jié)構(gòu)的統(tǒng)稱,既描述了一般具體結(jié)構(gòu),也描述了整體部分結(jié)構(gòu)。2) 分類結(jié)構(gòu)它是系統(tǒng)組織的3種方法之一,即區(qū)分不同類的方法,是一種“is a”結(jié)構(gòu)。例如,臺燈是一種照明工具,其中照明工具是一般的,臺燈是具體的,照明工具與臺燈是一種分類關系,也稱分類結(jié)構(gòu)。在分類結(jié)構(gòu)中,使用繼承描述更一般的屬性和服務。分類結(jié)構(gòu)的符號表示如圖10.4所示,一般類放在頂端,具體類放在下端,它們之間用線連起來,其中半圓弧說明這是一個一般具體結(jié)構(gòu)的

13、形式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.4 分類結(jié)構(gòu)的符號表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 組裝結(jié)構(gòu)組裝結(jié)構(gòu)也是3種系統(tǒng)組織方法之一,它是“has a”結(jié)構(gòu)。例如,臺燈有一個電燈泡,則臺燈和電燈泡就是這種結(jié)構(gòu)的例子。臺燈是整體,而電燈泡則是臺燈的組成部分之一。組裝結(jié)構(gòu)的表示如圖10.5所示。整體類放在圖的頂部,部分類放在圖的下端,用線把它們連起來,用三角形表示這是一個組裝結(jié)構(gòu)的形式。連線上的數(shù)字和范圍表示了整體所包含的部分的數(shù)目。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.5 組裝結(jié)構(gòu)的符號表示

14、第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 主題主題是指導人們了解復雜大模型的一種機制。主題有助于組織大項目的軟件包,主題是一種手段,用它來綜述較大的面向?qū)ο蠓治龊驮O計的模型。給出這些模型的概貌,是這些模型的抽象機制。主題的表示符號有兩種形式。圖10.6是主題的簡單表示形式,它給出主題名和相應編號,圖10.7是主題的擴展表示形式,除了主題名和相應編號,還給出該主題包含的類。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.6 主題簡單表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.7 主題簡單表示第第1010章章 面向?qū)ο蟮?/p>

15、面向?qū)ο蟮腃oadCoad方法方法4. 屬性及實例關聯(lián)1) 屬性屬性是類的性質(zhì),它是某種數(shù)據(jù)(狀態(tài)信息)。類中對象有相應的值(狀態(tài)),用來描述對象或分類結(jié)構(gòu)的實例。這種概念的基礎來自信息建模方法。2) 實例關聯(lián)實例關聯(lián)是一個實例集合到另一個實例集合的映射。它是問題域映射的一種模型,表示對象間的依賴關系及對象所需的一部分狀態(tài)信息。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 符號表示屬性表示符號如圖10.8所示,屬性在類對象的第二個區(qū)域中表示,實例關聯(lián)表示符號如圖10.9所示,用兩個類對象之間的連線表示,線上各對象都標記數(shù)字或范圍(m, n),說明對象之間的約束關系,表明一

16、個類對象1對應了0個或m個類對象2。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.8 屬性的符號表示 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 圖10.9 實例關聯(lián)的符號表示 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5. 服務及消息關聯(lián)1) 服務一個服務是在對象接收到一條消息后所要進行的加工,它是對象表現(xiàn)的具體行為。服務的符號如圖10.10所示,放在類對象的第三個區(qū)域中。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.10 服務的符號表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2)

17、消息關聯(lián)消息關聯(lián)用于表示對象間的通信,說明了服務的要求。通信的基本方式是消息傳遞,所以定義通信信息就是定義實例之間的消息關聯(lián)。消息關聯(lián)的符號表示如圖10.11所示。在兩個類對象之間用粗線連起來,箭頭由發(fā)送對象指向接收對象。發(fā)送對象發(fā)送消息,接收對象接收消息。接收對象執(zhí)行某些動作,并將結(jié)果返回發(fā)送對象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.11 消息關聯(lián)的符號表示第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2 10.2 面向?qū)ο蟮姆治雒嫦驅(qū)ο蟮姆治?0.2.1 面向?qū)ο蠓治龈攀?1. 系統(tǒng)需求的變動因素和穩(wěn)定因素面向?qū)ο蠓治龇椒ǖ牟呗曰A是

18、分析系統(tǒng)需求時遇到的變動因素和穩(wěn)定因素,把這兩種因素區(qū)分后,比較容易對變動所產(chǎn)生的影響進行鑒別、定界、追蹤和估價。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 思維組織模式系統(tǒng)分析本質(zhì)上是一種思維過程,就是考慮問題的次序、條理、層次等方面的模式,在傳統(tǒng)的分析模式中從問題空間到分析結(jié)果的映射是間接的,因為由分析方法所決定的思維模式與人們所采用的思維模式有一定的距離。為了減少這些距離,只好進行轉(zhuǎn)換,以利于分析結(jié)果的傳遞。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法從根本上統(tǒng)一思維模式的辦法是在系統(tǒng)開發(fā)各個環(huán)節(jié)中,統(tǒng)一采用人類原有的思維組織模式。人類典型的思維

19、過程是由三部分來進行組織的,即從現(xiàn)實世界中區(qū)分出特定的客體及其屬性;對客體的整體和組成部分加以區(qū)分;對不同種類的客體給出表示,在此基礎上加以區(qū)分。面向?qū)ο蟮姆治龇椒ň徒⒃谶@3個來自人類自己思維組織模式之上,依照客觀世界本來的規(guī)律來開發(fā)應用系統(tǒng)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 面向?qū)ο蠓治龇椒ǖ谋硎久嫦驅(qū)ο蟮姆治鲇蓪ο?、分類、繼承性及基于消息的通信構(gòu)成。其中對象是一組屬性和專有服務的封裝,它是問題空間中某種事物的一個抽象,同時也帶有問題空間中這種事物的若干實例。這些是從信息建模方法中演變而來的,再加上面向?qū)ο蟮姆庋b性、繼承性和層次結(jié)構(gòu),所以面向?qū)ο蟮姆治霰刃?/p>

20、息建模方法更完整地實現(xiàn)了從問題空間到系統(tǒng)模型的直接映射。 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.2 對象的認定 面向?qū)ο蠓治龅暮诵氖菍ο?,人們已?jīng)使用了許多方法來進行對象的認定。1. 簡單的認定方法該方法由Booch于1983年提出,它是基于詞法分析的方法。從目標系統(tǒng)的描述開始,找出其中的名詞作為候選的對象。另一方面,找出其中的動詞作為候選的方法(即服務),然后產(chǎn)生一個由對象(名詞)和方法(動詞)構(gòu)成的表,作為分析的結(jié)果。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法現(xiàn)以開發(fā)字處理系統(tǒng)為例,說明基于詞法分析的方法。問題陳述:字處理系統(tǒng)允許用戶產(chǎn)

21、生文檔,產(chǎn)生的文檔存儲在用戶目錄中,用戶可打印和顯示文檔;修改文檔;可從用戶目錄中刪除文檔。找出該問題的名詞和動詞確認的對象和方法構(gòu)成的表如下:第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 復雜系統(tǒng)對象的認定在一個復雜系統(tǒng)中,對象的認定面臨5個需要回答的問題。1) 到什么地方去找候選對象尋找對象的范圍如下:(1) 問題空間:從用戶那里得到某種形式表達的系統(tǒng)需求,了解問題領域的知識背景,向用戶索取與系統(tǒng)主題有關的、簡要的歸納性材料,與有關人員座談、聽取意見和建議。(2) 文本:收集一切能得到的文字材料,重點留意那些專門示例系統(tǒng)主題和值得仔細學習與考慮的部分,并注意出現(xiàn)的名詞

22、。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(3) 圖:能收集到的一切圖。如塊結(jié)構(gòu)圖、接口圖、系統(tǒng)構(gòu)件圖、高層次的數(shù)據(jù)流圖和控制流圖等。根據(jù)這些再用圖標和連線畫出內(nèi)容豐富的圖來,形成問題空間的初始骨架。2) 找什么范圍確定之后,可能成為對象的是:(1) 結(jié)構(gòu):是最有可能被認定為對象的實體,其中分類結(jié)構(gòu)和組裝結(jié)構(gòu)又是結(jié)構(gòu)中可能性最大的。(2) 其他系統(tǒng):指要進行交互的外部系統(tǒng)和外界的“終結(jié)點”。(3) 設備:需要進行交互的設備。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 (4) 事件:由系統(tǒng)及時觀察和記錄的事件及歷史事件。(5) 扮演的角色:各種人員在系統(tǒng)

23、中扮演的角色。(6) 位置:系統(tǒng)安裝和運行的物理位置。(7) 組織和單位。系統(tǒng)涉及的人員所屬的單位。3) 對候選對象考察什么對于一個候選對象,能否認定它是一個對象,要考察:(1) 需要記憶,即系統(tǒng)是否有必要記憶對象的某些或全部成分?(2) 需要服務,即系統(tǒng)是否有必要對該對象的行為提供服務?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(3) 多于一個屬性。只有一個屬性的對象通常應看成其他對象的屬性。(4) 共有屬性即對于一種對象所有實例,能否認定一組為這些實例所共有的屬性?(5) 共有服務即對于一種對象的所有實例,能否認定一組這些實例都要進行的加工?4) 提出什么質(zhì)疑對于已初步

24、認定的對象,應從下列幾方面提出質(zhì)疑:(1) 記憶和服務的必要性:若系統(tǒng)沒有必要始終持有現(xiàn)實世界中某種事物的信息或者提供關于它的服務,那么這種事物就不要認定為對象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(2) 單個實例:若某種有屬性的對象只有一個實例,要看是否確實反映了問題空間情況,若已經(jīng)初步認定的兩種或多種對象有相同的屬性和服務,而且至少其中的一種只有一實例,這時應當考慮將它們合并。 (3) 派生結(jié)果:注意那些可以通過計算機得出值的屬性。5) 怎樣為認定的對象命名認定的對象需要命名,這時應當:(1) 用單數(shù)名詞或形容詞加名詞來命名對象的名字。(2) 命名所使用的詞匯應當

25、來自符合系統(tǒng)主題、標準的詞匯集。(3) 使用可讀的名字,要基于內(nèi)容,基于內(nèi)在本質(zhì),具有確切意義。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.3 結(jié)構(gòu)的認定 結(jié)構(gòu)指的是多種對象的組織方式,用來反映問題空間中復雜事物和復雜關系。結(jié)構(gòu)有分類結(jié)構(gòu)和組裝結(jié)構(gòu)兩種。分類結(jié)構(gòu)針對的是事物的類別之間的組織關系;組裝結(jié)構(gòu)對應于事物的整體與部件之間的關系。1. 認定分類結(jié)構(gòu)使用分類結(jié)構(gòu),可以按照事物的類別對問題空間進行層次結(jié)構(gòu)劃分,體現(xiàn)現(xiàn)實世界中事物的一般性與特殊性。認定分類結(jié)構(gòu)的原則是先從一般向特殊考慮,再從特殊向一般考慮。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方

26、法1) 從一般到特殊 對于一種對象,首先認為它具有最一般的含義。這時看它在問題空間中具有不同特殊性的可能,對該對象每種可能的特殊性考慮:(1) 是否可用不同的屬性和服務來描述?(2) 是否反映了現(xiàn)實世界中有意義的特殊性?(3) 是否在問題空間之內(nèi)?按上述原則確認了對象應具有的特殊性后,就可令共有的屬性和服務從屬于一般含義的對象,而令擴充的特殊屬性和服務分屬于特殊含義的對象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 從特殊到一般對于一種對象,在認定它具有某種特殊含義之后,再從特殊向一般考慮,這時要考察:(1) 問題空間中是否有其他與這種對象有一些屬性或服務是共有的?(2

27、) 若引入某種更一般的對象,是否反映了現(xiàn)實世界中有意義的一般性?(3) 若引入某種更一般的對象,那么這種對象是否存在于問題空間之中?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 認定組裝結(jié)構(gòu)認定組裝結(jié)構(gòu)的原則是先從整體向部件考慮,再從部件向整體考慮。1) 從整體到部件對于一種對象,首先認為它是一個整體。這時看它在問題空間中含有部件的可能性,即要考察:(1) 它的組成部分是什么?(2) 對于它的一個部件,系統(tǒng)是否有必要記錄每個實例或值?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(3) 對于它的一個部件,每個實例是否都有屬性來描述?(4) 它的部件是否反映

28、現(xiàn)實世界中存在的部件?(5) 它的部件是否限定在目標系統(tǒng)之內(nèi)?采用從整體到部件的方式考慮組裝結(jié)構(gòu),即挖掘問題空間中出現(xiàn)的事物具體的構(gòu)成細節(jié)。2) 從部件到整體對于一種對象,假定它可能是另一種對象的一個部件,這時應考察:(1) 這種對象適合什么樣的組裝關系?第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法 (2) 還需要哪些對象與這種對象一起構(gòu)成另一種對象?(3) 對于這樣組裝而成的對象,系統(tǒng)是否有必要記錄它的每一個實例?(4) 這樣組裝而成的對象在現(xiàn)實世界是否有意義?(5) 這樣組裝而成的對象是否限定在目標系統(tǒng)之內(nèi)?采用從部件到整體的方式考慮組裝結(jié)構(gòu),這是把問題空間中出現(xiàn)的某些事

29、物,合理地納入某種含義更廣、可作為整體看待的事物之中,以便從聚集的角度來表示客觀事物。先整體向部件分析,再由部件向整體綜合,這也遵循人類的思維組織模式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.4 認定主題 主題是一種關于模型的抽象機制,它是面向?qū)ο蠓治瞿P偷母琶?,也是關于某個模型要同時考慮和理解的內(nèi)容,主題起一種控制作用。從實際開發(fā)經(jīng)驗來看,一個實際的目標系統(tǒng)通過對象和結(jié)構(gòu)的認定,對問題空間中的事物已進行了抽象和概括,所認定的對象和結(jié)構(gòu)的數(shù)目有幾十到幾百種,但人們能同時考慮和理解的問題數(shù)目受到其記憶能力和處理能力的制約,為7個左右,因此不經(jīng)過進一步抽象,會造成對

30、分析結(jié)果理解的困難和混亂。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法直觀地來看,主題就是一個名詞或名詞短語,與對象名類似,但抽象程度不同。認定主題的方法是:(1) 為每一個結(jié)構(gòu)追加一個主題。(2) 為每一種對象追加一個主題。(3) 若當前主題的數(shù)目超過7個,就對已有主題進行歸并。歸并的原則是當兩個主題對應的屬性和服務有著較密切聯(lián)系時,就將它們歸并為一個主題。主題是一個單獨的層次,在這個層次中,每個主題有一個序號,主題之間的聯(lián)系是消息關聯(lián)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.5 定義屬性 屬性是數(shù)據(jù)元素,用來描述對象或分類結(jié)構(gòu)的實例。在分析

31、過程中,定義屬性有5個步驟。1. 認定屬性認定一個屬性有如下3個基本原則:(1) 對相應對象或分類結(jié)構(gòu)的每一個實例是否均適用?(2) 在現(xiàn)實世界中它與這種事物的關系是否最密切?(3) 認定的屬性應當是一種相對的原子概念,不依賴于并列的其他屬性就可以理解。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 確定屬性的位置確定屬性與特定對象之間的從屬關系主要是針對分類結(jié)構(gòu)中的對象而言,采用的是繼承觀點。低層對象的共有屬性應在上層對象中定義,而低層對象只定義自己特有的屬性。3. 認定和定義實例關聯(lián)實例關聯(lián)是一個實例集合到另一個實例集合的映射,既可以是兩種對象的實例集合,也可以是同一種

32、對象的實例集合的兩個子集。實例關聯(lián)分為1: 1,1: m,0: 1,0: m這4種。與ER圖中的聯(lián)系相比有自己特點。實例關聯(lián)是可選的。認定和定義實例關聯(lián)的具體過程類似于ER圖中建立的實體聯(lián)系。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 重新修改認定的對象經(jīng)過上述的過程,對原來的認定可能會發(fā)生一些改變,需修改原來的認定。5. 對屬性和實例關聯(lián)進行說明對屬性的名字、描述、約束和范疇進行說明,一個屬性依其特征有如下情況: (1) 描述型: 指屬性的值由對象實例添加、變動、刪除及選擇等操作來建立和保持。(2) 定義型: 用于標識和命名各個實例。(3) 派生型: 由其他數(shù)據(jù)計算得

33、到的。(4) 參考型: 與另一個實例聯(lián)系的事實。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.6 定義服務 服務是在接收到一條消息后所要進行的加工。定義服務時,首先定義行為,然后定義實例之間的通信。1. 認定基礎服務基礎服務有以下3類:(1) 存在服務:指最一般的服務,即所創(chuàng)建、變動、刪除及選擇。(2) 計算服務:一個實例需要另一個實例加工的結(jié)果時,所需的服務。(3) 監(jiān)控服務:模型中某些部件需要快速實時處理時,所需的服務。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 認定輔助服務在面向?qū)ο蠓治瞿P椭?,對每種對象及分類結(jié)構(gòu)要考慮對象生存史和狀態(tài)事

34、件響應兩種輔助服務。1) 對象生存史對象生存史定義基礎服務的順序,檢查其中每步需要的服務的變種,增加相應的服務變種,以及增加其他的服務。一種對象的基礎服務順序就是它的“存在”服務之間的次序關系,一般都有如圖10.12所示的形式。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.12 對象生存史第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 狀態(tài)事件響應狀態(tài)事件響應要定義主要的系統(tǒng)狀態(tài),列出外部事件及其需要的響應,以及擴充服務和消息關聯(lián)。3. 認定消息關聯(lián)消息關聯(lián)是事件響應和數(shù)據(jù)流的一種結(jié)合,即每條消息關聯(lián)都表示著一種要發(fā)出的消息和收到這條消息后要作出的一

35、個響應。消息關聯(lián)也是實例關聯(lián)之間的一種映射關系。認定消息關聯(lián)時,首先在已經(jīng)用實例關聯(lián)聯(lián)系起來的那些實例之間考慮有無消息關聯(lián),然后檢查那些需要其他實例進行的加工,考慮增加其他必要的消息關聯(lián)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 對服務進行說明主要對外部可觀察到的行為進行說明。目的是強調(diào)可測試的部分,作為對系統(tǒng)需求進行驗證、對系統(tǒng)實現(xiàn)進行驗收的測試的基準。10.2.7 對象的規(guī)格說明 下面給出以對象為單位的系統(tǒng)規(guī)格說明的模板。specification 對象名 描述性屬性 定義性屬性 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法派生性屬性 外部系統(tǒng)輸

36、入 外部系統(tǒng)輸出 實例關聯(lián) 狀態(tài)事件響應表 對象生存史圖 服務 服務 end specification第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.2.8 應用示例 以傳感器控制系統(tǒng)為例,用Coad方法建立該系統(tǒng)的分析模型。1. 問題陳述傳感器控制系統(tǒng)控制傳感器和臨界傳感器,報告問題情況。各傳感器都通過類型(生產(chǎn)廠,型號)、觸發(fā)序列(發(fā)往被觸發(fā)的傳感器)、轉(zhuǎn)換(偏移,測量單位,比例系數(shù))、脈沖調(diào)幅、地址、狀態(tài)(開,關,等待)、當前值及報警閾值來描述。傳感器裝在建筑物中,系統(tǒng)跟蹤各個建筑物中的傳感器、建筑物地址及緊急接觸點。另外,臨界傳感器用容限(脈沖調(diào)幅容限)來描述。第

37、第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法每當超出或滿足傳感器閾值時,控制系統(tǒng)就觸發(fā)相應的報警設備,報警設備的活動受設備狀態(tài)持續(xù)時間的影響??刂葡到y(tǒng)跟蹤日期、時間、嚴重程度、修理時間及各個報警裝置的狀態(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計面向?qū)ο蟮脑O計10.3.1 面向?qū)ο笤O計的目標 面向?qū)ο笤O計的主要目標是提高生產(chǎn)率、提高質(zhì)量、提高可維護性。1.

38、 提高生產(chǎn)率面向?qū)ο蟮脑O計是一種系統(tǒng)設計活動,它能減少測試時間,但在系統(tǒng)開發(fā)過程中,使用面向?qū)ο笤O計最多使整個生產(chǎn)率提高20%左右。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法另一種看法,使用面向?qū)ο笤O計能提高整個生命周期的效率,大多數(shù)項目表明系統(tǒng)的開銷有70%、80%使用在維護階段。因此,強調(diào)維護,將大大提高整個生產(chǎn)率。面向?qū)ο笤O計使用了重用類機制來改進效率,重用類是用包含類及子類層次的類庫實現(xiàn)的,類庫是這種結(jié)構(gòu)的主要組成部分。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 提高質(zhì)量強調(diào)生產(chǎn)率的同時,不能忽視軟件質(zhì)量。改進質(zhì)量的工具、技術及方法有許多,它

39、們大多與開發(fā)過程末期的標準或過細的產(chǎn)品測試有關,而不強調(diào)過程本身。產(chǎn)生高質(zhì)量產(chǎn)品的開發(fā)過程,特別是分析過程和設計過程,能夠大大減少開發(fā)后期發(fā)現(xiàn)的錯誤,并大大提高系統(tǒng)的質(zhì)量。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 提高可維護性系統(tǒng)的需求總是在變化中,有許多影響需求的因素,如用戶、環(huán)境、政策及技術等。設計者盡可能構(gòu)造這樣一種,有利于將來修改的設計,方法是將系統(tǒng)中穩(wěn)定部分與易變部分分離開來。系統(tǒng)中最穩(wěn)定的是類,它嚴格描述了問題域及系統(tǒng)在該域中的任務。系統(tǒng)中可變的是服務,服務的復雜程度也是變化的,外部接口也是最可能變化的部分。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadC

40、oad方法方法10.3.2 設計問題域組元 1. 原因面向?qū)ο蠓椒ㄖ械囊粋€主要目標就是保持問題域組織框架的完整性,使用這種方法可以直接追蹤分析、設計直至程序設計的內(nèi)容,因為這3個階段都是根據(jù)問題域本身來實現(xiàn)的。設計問題域組元的理由就是為了尋求穩(wěn)定性,無論何種修改,例如增加具體類、增加屬性或服務等,都是建立在問題域基礎上的。穩(wěn)定性是實現(xiàn)可重用的分析、設計及程序設計的關鍵因素,為了更好地支持系統(tǒng)的擴充性也需要穩(wěn)定性。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 內(nèi)容在面向?qū)ο蟮拈_發(fā)方法中,分析和設計不能截然分開,面向?qū)ο蟮姆治鼋Y(jié)果就是面向?qū)ο笤O計多元組模型的一個完整的部分,但

41、面向?qū)ο蟮脑O計可以修改或增加一些內(nèi)容。對于設計問題組元來說,要在分析模型基礎上,增加一些實際的修改,這些修改是針對具體的設計考慮的,修改包含合并或分解類對象、結(jié)構(gòu)、屬性、服務等。這些修改應建立在具體的客觀標準上。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 策略在進行設計問題域組元時,采用下列策略: (1) 應用面向?qū)ο蟮姆治?,使用相同的符號表示,圍繞 4 種組元組織。(2) 改進面向?qū)ο蟮姆治鼋Y(jié)果,可直接應用分析的結(jié)果。(3) 完善面向?qū)ο蟮姆治鼋Y(jié)果,必須加入一些常規(guī)類以完善分析的內(nèi)容。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 將專門的問題域類

42、組合在一起需要引入一個類將專門的問題域類組合在一起,引入的類即為“根”類,組合在一起的問題域類作為從屬的類。引入“根”類主要是為了將專門的問題域類組合在一個類庫中,這只是當不能使用更復雜的組合機制時才采用的一種組合方法。另外,還可建立協(xié)議來完成這種組合。3) 加入一般化類(抽象類)以建立協(xié)議 在許多情況下,大量的具體類需要相似的一個協(xié)議,即需要定義一個相似的服務集合,這時可引入一個附加的抽象類,目的是建立一個協(xié)議。這些服務在具體類中詳細定義。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4) 調(diào)整繼承的支持層次如果在分析模型中的一般具體結(jié)構(gòu)中包括多重繼承,而所使用的程序設計語言

43、沒有多重繼承機制,或只有單重繼承或根本沒有繼承機制,這時就要對分析模型進行修改。使用化為單一層次的方法,將多重繼承化為單重繼承,這意味著不再在設計中明確表示一個或多個一般具體層次,而某些屬性和服務可在具體類中重復多次。對于不具備繼承機制的語言,就要將各個一般具體結(jié)構(gòu)變成一組零層次的類對象,即調(diào)整為各個孤立的類對象。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5. 提高效率提高效率是設計的關鍵問題之一,為了從速度方面考慮提高效率,可能需要對問題域組元進行修改。當對象之間的消息發(fā)送出現(xiàn)阻塞時,必須進行修改。需要把問題域組元中的兩個或多個類組合起來產(chǎn)生高耦合。這種修改是否能提高速度

44、,還需經(jīng)過測試和檢查來了解。為了提高速度,需要將設計模型的 4 種組元都增加一種構(gòu)造塊來存放某些中間結(jié)果。一種方法是擴充類對象的屬性來存放中間結(jié)果,另一種方法是使用更低層的構(gòu)造塊來擴充類對象,這就構(gòu)成了整體部分結(jié)構(gòu)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法6. 支持數(shù)據(jù)管理組元為了支持數(shù)據(jù)管理組元,各個被存儲對象必須了解自身是如何存儲的。一種方法是“自己保存自己”,即通知對象保存自己,各對象知道如何保存自身,加入完成對象這種定義的屬性和服務;另一種方法是各個對象將自己發(fā)送給數(shù)據(jù)管理組元,由相應組元保存。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.3

45、.3 設計人機交互組元 1. 原因人機交互組元表示了用戶與系統(tǒng)交互作用使用的命令以及系統(tǒng)提供給用戶的信息。人機交互組元設計得如何,對用戶使用系統(tǒng)帶來較大影響。開發(fā)者在分析階段為了得到正確結(jié)果,要對用戶進行分析,在設計過程中必須繼承這種分析,它包括分析用戶,確定交互作用的時間,分析具體系統(tǒng)使用的交互技術等。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 內(nèi)容 在人機交互組元設計中,要增加人機交互的細節(jié),包括指定窗口、設計窗口的布局和設計報表的形式等,原型有助于開發(fā)和選擇實際的交互機制。使用多層次多組元模型有助于從分析和需求中區(qū)分獨立于實現(xiàn)的人機交互組元。這種區(qū)分減少了由結(jié)構(gòu)技

46、術變化而帶來的變化影響。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3. 方法1) 分類用戶分類用戶研究使用系統(tǒng)用戶的各類人員,他們是如何工作的?他們想完成什么任務?必須完成什么任務?設計者提供什么工具來幫助他們完成這種任務?怎樣才能做到不引人注目地使用工具?使用系統(tǒng)的人可能有以下幾種情況:(1) 按技能分,有初級、中級和高級。(2) 按組織級別分:有總經(jīng)理、部門經(jīng)理和辦事員。(3) 不同組織成員:有職員、顧客。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 描述用戶及其任務腳本對用戶的各類人員,描述他們使用系統(tǒng)的目的;各自的特征,包括年齡、文化程度、關鍵

47、的成功因素、技能水平、主要任務及任務的腳本等。3) 設計命令層次研究用戶交互的意義及準則。若已建立的交互系統(tǒng)中已有命令層次,則先著手研究已有的人機交互行為的意義和準則,然后建立初始命令層,再細化命令層。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4) 設計詳細交互按下列方面進行人機交互的設計:(1) 一致性。使用一致的術語、一致的步驟及一致的動作行為。(2) 減少步驟。最小化擊鍵次數(shù)、使用鼠標的次數(shù)及下拉菜單的次數(shù),極小化響應時間。(3) 盡量顯示提示信息。盡量為用戶提供有意義的及時的反饋。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(4) 提供取消操作。用

48、戶難免出錯,應盡量能使用戶取消其錯誤動作。(5) 幫助。有聯(lián)機學習手冊,易學易用。5) 設計人機交互組元的類人機交互組元在一定程度上依賴于所使用的圖形用戶接口,接口不同,人機交互組元類也不同,為了設計人機交互組元類,從構(gòu)造窗口及其組成的人機交互開始。圖10.14給出了窗口及其組元的結(jié)構(gòu)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.14 窗口及其組元第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法各個類都包含窗口中的菜單條、下拉菜單及彈出菜單的定義,各個類也定義了創(chuàng)建菜單所需的服務,反向顯示所選擇項目的服務和喚醒相關行為的服務,各個類也負責窗口中信息的實際

49、顯示,各個類都封裝了其所有物理對話的考慮。4. 傳感器控制系統(tǒng)的人機交互組元傳感器控制系統(tǒng)的人機交互組元如圖10.15所示。 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.15 傳感器控制系統(tǒng)人機交互組元第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法10.3.4 設計任務管理組元 1. 原因任務是處理的別名,指用代碼來定義的一個活動流。許多任務的并發(fā)執(zhí)行稱為多重任務。任務管理組元就是為了設計處理多重任務的。此外,在實際使用的硬件中,可能僅由一個處理器支持多個任務。因此,任務管理的一項重要內(nèi)容就是,確定哪些是必須同時動作的任務,哪些是相互排斥的任務。第第1

50、010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2. 內(nèi)容任務管理的內(nèi)容是確定各種類型的任務,并把任務分配到適當?shù)挠布蜍浖先?zhí)行。不同的系統(tǒng)均需要各種多重任務,有下列各種情況: (1) 具有數(shù)據(jù)獲取機制,負責控制局部設備的系統(tǒng),需要多重任務。(2) 某種用戶接口同時存在多窗口中的數(shù)據(jù)輸入,也存在多任務。(3) 多用戶系統(tǒng)中,可能存在一個用戶任務的多重復制。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法(4) 多子系統(tǒng)的軟件構(gòu)造中,各子系統(tǒng)之間的協(xié)調(diào)及通信需要多個任務完成。(5) 在多處理器的硬件結(jié)構(gòu)中,必須為各處理器分配任務并支持處理器之間的通信。(6) 對需要與其

51、他系統(tǒng)通信的系統(tǒng)來說,也需要多任務。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法這些都是任務管理組元的內(nèi)容。在設計、編碼等過程,多任務增加了處理復雜度,必須仔細選擇各個任務。3. 設計1) 確定事件驅(qū)動型任務某些任務是由事件驅(qū)動而執(zhí)行的,這種任務可能負責與設備的通信,與一個或多個窗口、其他任務及子系統(tǒng)的通信。任務可以設計成某個事件上的觸發(fā)器,常常發(fā)出某種數(shù)據(jù)到達的信號,數(shù)據(jù)可以來自輸入流,也可來自數(shù)據(jù)緩沖區(qū)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 確定時鐘驅(qū)動型任務這些任務在特定時間內(nèi)被觸發(fā)執(zhí)行某些處理。如某些設備要求周期性地獲得數(shù)據(jù)或控制。某些子

52、系統(tǒng)、人機接口、任務、處理器或其他系統(tǒng)也可能需要周期性地通信,這就需要時鐘驅(qū)動型任務。時鐘驅(qū)動型任務的工作過程是,任務設置了喚醒時間并進入睡眠狀態(tài),任務睡眠等待來自系統(tǒng)的中斷,一旦接收到這種中斷,任務被喚醒并執(zhí)行,通知有關的任務等,然后任務又回到睡眠狀態(tài)。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法3) 確定優(yōu)先任務及臨界任務優(yōu)先任務含高優(yōu)先級及低優(yōu)先級兩種,用來適應處理任務的需要。臨界任務是有關系統(tǒng)成功或失敗的臨界處理,它涉及嚴格的可靠性約束。4) 確定協(xié)調(diào)任務 當存在3個以上任務時,就應當考慮增加一個任務,用它來作為協(xié)調(diào)任務。協(xié)調(diào)任務的引入會增加總開銷,但是引入?yún)f(xié)調(diào)任務有

53、利于對封裝任務之間的協(xié)調(diào)控制。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5) 分析各個任務必須使任務數(shù)目保持到最少限度,無論是在開發(fā)階段還是在維護階段,每次只能理解一個或幾個正在進行的任務。設計多任務系統(tǒng)的主要問題是常定義太多的任務,其原因是為了處理方便。這樣做加大了整個設計的技術復雜度而且不易理解,因此必須仔細分析和選擇各個任務。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法6) 定義各個任務任務定義包括下列內(nèi)容:(1) 任務的內(nèi)容:先對任務命名,然后簡潔地描述該任務。如果一個服務可以分解成多個任務,則修改該服務的名稱描述,以使每一個服務都可以映射到一個任

54、務中。(2) 如何協(xié)調(diào):先說明任務是事件驅(qū)動型還是時鐘驅(qū)動型的,對于事件驅(qū)動型的任務來說,描述觸發(fā)它的事件;對時鐘驅(qū)動型的事件來說,描述觸發(fā)該任務之前的時間間隔,同時說明這是一次性的時間還是反復的時間段。(3) 如何通信:說明任務應從哪里取得數(shù)據(jù)值,任務應把它的值發(fā)往何處。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法4. 傳感器控制系統(tǒng)的任務管理組元模型傳感器控制系統(tǒng)的任務管理組元如圖10.16所示。第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法圖10.16 傳感器控制系統(tǒng)任務管理組元第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法5. 傳感器任務描述1) 任務1任務1的內(nèi)容如下: 名字:傳感器讀出。 描述:該任務在需要脈沖調(diào)幅時負責讀出傳感器。 包含:傳感器.樣本。 優(yōu)先級:中等。 協(xié)調(diào):時鐘驅(qū)動,100 ms的時間間隔。 通信:從輸入線(傳感器)得到值,給雷達郵箱發(fā)送值。 第第1010章章 面向?qū)ο蟮拿嫦驅(qū)ο蟮腃oadCoad方法方法2) 任務2任務2的內(nèi)容如下: 名字:臨界傳感器讀出。 描述:該任務在需要脈沖調(diào)幅以及特定容限之內(nèi)時負責讀出臨界傳感器。 包含:臨界傳感器.樣本。 優(yōu)先級:高。 協(xié)調(diào):時鐘驅(qū)動,25 ms的間隔。 通信:從輸入線(臨界傳感器)得到值

溫馨提示

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

最新文檔

評論

0/150

提交評論