高級軟件工程se研第4章_第1頁
高級軟件工程se研第4章_第2頁
高級軟件工程se研第4章_第3頁
高級軟件工程se研第4章_第4頁
高級軟件工程se研第4章_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、4.2 面向?qū)ο蠓治?無論何種開發(fā)方法,其分析的過程都是提取系統(tǒng)需求的過程。主要包括三項內(nèi)容:理解、表達(dá)和驗(yàn)證。 面向?qū)ο蠓治龅年P(guān)鍵是識別出問題域內(nèi)的對象,并分析它們相互間的關(guān)系,最終建立問題域的簡潔、精確、可理解的正確模型。第四章 軟件開發(fā)的面向?qū)ο蠓椒?4.1 面向?qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓治?4.2.1 00A方法概述 4.2.2 確定對象 4.2.3 建立結(jié)構(gòu) 4.2.4 建立主題 4.2.5 確定屬性 4.2.6 確定消息和服務(wù) 4.2.7 實(shí)例連接實(shí)用面向?qū)ο筌浖こ探坛蘀dward Yourdon & Carl Argila殷人昆等譯電子工業(yè)出版社高級軟件工程南京郵電大學(xué)軟件

2、學(xué)院陳春玲第四章 軟件開發(fā)的面向?qū)ο蠓椒ㄒ?、OOA的基本任務(wù) 基本任務(wù)是運(yùn)用OO方法,對問題域進(jìn)行分析和理解,找出描述問題域所需的對象及類,定義這些對象和類的屬性與服務(wù),以及它們之間所形成的結(jié)構(gòu)、靜態(tài)聯(lián)系和動態(tài)聯(lián)系。最終目的是產(chǎn)生一個符合用戶需求,并能夠直接反映問題域的OOA模型及其軟件需求規(guī)格說明。第四章 軟件開發(fā)的面向?qū)ο蠓椒?4.1 面向?qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓治?4.2.1 00A方法概述 4.2.2 確定對象 4.2.3 建立結(jié)構(gòu) 4.2.4 建立主題 4.2.5 確定屬性 4.2.6 確定消息和服務(wù) 4.2.7 實(shí)例連接4.2.1 OOA方法概述(1)主題(Subject)是

3、指把一些具有較強(qiáng)聯(lián)系的類組織在一起而得到的類的集合。 對于類較多的大系統(tǒng),會增加閱讀和理解的難度。運(yùn)用主題劃分原則,把眾多類組合成較少的幾個主題,通過控制可見性,使人們可以從更高的宏觀角度觀察這些主題,有助于理解總體模型。(2)問題域(Problem Domain)是指被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域,即在客觀世界中由該系統(tǒng)處理的業(yè)務(wù)范圍。(3)關(guān)聯(lián)(Association)是指對象之間的靜態(tài)聯(lián)系。如果這種聯(lián)系是系統(tǒng)責(zé)任所需要的,則要求在OOA模型中通過連接明確地表示出來。二、OOA的有關(guān)術(shù)語(4)聚合(Aggregation)又稱組裝,是指把一個復(fù)雜的事物看成若干個簡單的事物的組裝體,用于簡化對復(fù)雜事物

4、的描述。(5)主動對象是指至少有一個服務(wù)不需要接受消息就能主動執(zhí)行的對象。(6)OOA模型是一種用OOA方法建立的系統(tǒng)模型。 信息建模是OOA過程中最基本和最關(guān)鍵的活動之一。就是從現(xiàn)實(shí)世界的應(yīng)用領(lǐng)域中捕捉出應(yīng)用領(lǐng)域的基本結(jié)構(gòu)的過程。表示待開發(fā)系統(tǒng)的基本構(gòu)造塊。對象都是現(xiàn)實(shí)世界中應(yīng)用領(lǐng)域的概念的抽象。OOA對象模型主要包括五個層次:對象的屬性和實(shí)例連接共同構(gòu)成。對象的服務(wù)加上對象間的消息通信構(gòu)成。應(yīng)用領(lǐng)域中的特定結(jié)構(gòu)構(gòu)成。當(dāng)OOA模型的結(jié)構(gòu)龐大復(fù)雜時,眾多的對象有時便難以處理,可以將對象歸結(jié)到一定的主題中,這樣,可以將相關(guān)的對象歸結(jié)到一個主題,使得模型的結(jié)構(gòu)清晰。 OOA有許多不同的方法,但是這

5、些方法中有一點(diǎn)是共同的,那就是定義對象。 定義對象的主要活動包括: 確定對象 確定屬性 定義服務(wù) 建立結(jié)構(gòu) 確定關(guān)聯(lián) 上述過程的執(zhí)行次序是可以改變的,某些活動可能會重復(fù)地發(fā)生。 三、OOA的基本過程四、電梯控制系統(tǒng)簡介 1、問題描述 設(shè)計和實(shí)現(xiàn)一個系統(tǒng),用于控制一個高層建筑中電梯的運(yùn)行。要求必須高效合理地調(diào)度電梯。 2、問題討論 在電梯外某樓層,按上或下的召喚按鈕,可使電梯在該層停下。進(jìn)入電梯內(nèi),按目的樓層的按鈕,可使電梯到達(dá)目的樓層或停下。 涉及的概念:(1)電梯具有實(shí)際運(yùn)行狀態(tài)和狀態(tài)方向(“計劃中的方向”)。(2)調(diào)度樓層:對某電梯而言,必須要停的樓層。(3)電梯停到調(diào)度樓層的原因: (a

6、)該層是電梯的目的樓層,電梯正在向該樓層運(yùn)行。 (b)電梯停留在一層,有人在該樓層按了召喚按鈕。(4)確定某樓層是否是調(diào)度樓層的條件: (a)電梯即將到達(dá)的目的地(對電梯)。 (b)沒有處理的請求(對樓層)。 (c)電梯的實(shí)際運(yùn)行方向。 (d)電梯的狀態(tài)運(yùn)行方向。4.2.2 確定對象 對象是問題域中有意義的事物的抽象,它們或者是物理實(shí)體,或者是抽象的概念。第四章 軟件開發(fā)的面向?qū)ο蠓椒?4.1 面向?qū)ο蠓椒ǜ攀?.2 面向?qū)ο蠓治?4.2.1 00A方法概述 4.2.2 確定對象 4.2.3 建立結(jié)構(gòu) 4.2.4 建立主題 4.2.5 確定屬性 4.2.6 確定消息和服務(wù) 4.2.7 實(shí)例連接

7、對象可以是:(1)外部實(shí)體。如其它系統(tǒng)、設(shè)備、人。它們生成或者消耗本系統(tǒng)所用的信息。(2)物。如報告、信件、信號,是問題的信息域的一部分。(3)發(fā)生或事件。如一次傳輸或一系列動作的完成,在系統(tǒng)操作的有關(guān)時刻發(fā)生。(4)角色。如管理者、系統(tǒng)分析員、程序員、銷售人員。(5)組織單位。如部門、團(tuán)隊、組。(6)場所。如總臺、編輯部、酒吧。(7)結(jié)構(gòu)。如程控交換機(jī)、采訪車或計算機(jī),定義一個對象類或?qū)ο蟮南嚓P(guān)類。(1)基于語言的信息分析方法(LIA) 主要思想:先對要建立的系統(tǒng)及其需求用自然語言描述,然后對這些描述進(jìn)行語法分析。 名詞對象,形容詞屬性,動詞服務(wù) 填進(jìn)一張OOA/OOD工作表格。最后對表中的

8、項進(jìn)行分析,從中確定問題域中的對象。找出問題域有關(guān)對象的兩種方法:(2)三視圖模型法(3VM) 觀察一個事物的角度不同,將得到不同的視圖。從多個角度觀察得到的同一個事物的多個視圖更能完整地、全面地反映該事物。 LIA方法要求分析員從眾多的侯選對象中識別出目標(biāo)系統(tǒng)的對象,這依賴于分析員的抽象和分析能力,隨意性大,可操作性不強(qiáng)。 LIA方法提供了一個發(fā)現(xiàn)對象的出發(fā)點(diǎn),一般將該方法用于對象模型建立的初始階段。 3VM法也依賴于分析人員的抽象和分析能力,但運(yùn)用建立3VM的方法,確實(shí)提供了分析對象的入口點(diǎn)和細(xì)化的方法,具有相對較好的操作性。 該方法一般用于對象模型的細(xì)化。(1)實(shí)體-關(guān)系模型(ER):常

9、用于分析和設(shè)計數(shù)據(jù)庫系統(tǒng),被認(rèn)為是信息視圖。(2)數(shù)據(jù)流模型(DFD):用于功能分析,被認(rèn)為是功能模型。 (3)狀態(tài)-遷移模型:事件-響應(yīng)模型或狀態(tài)-遷移模型,被認(rèn)為是動態(tài)視圖。 三視圖模型法支持從信息、功能和動態(tài)三個視圖來分析問題領(lǐng)域。3VM法用到的三個視圖: 下面對電梯控制系統(tǒng)分析,先采用LIA法給出侯選對象的清單,然后用3VM法逐步細(xì)化。一、識別對象 用LIA方法,從電梯控制系統(tǒng)描述中識別出原始對象:電梯相關(guān)條目(27條):電梯、無乘客的電梯、電梯到達(dá)、電梯容量、電梯線路、電梯控制系統(tǒng)、電梯控制器、電梯門、電梯中斷、電梯生產(chǎn)廠商、電梯機(jī)制、電梯馬達(dá)等等。按鈕相關(guān)條目:(19條)按鈕列、按

10、鈕、按鈕發(fā)光、按鈕號碼、目的地按鈕、下行按鈕、下行按鈕向量中斷、下行召喚按鈕、樓層召喚按鈕、按鈕面板、召喚按鈕中斷、召喚按鈕等等。 并不是所有對象都屬于系統(tǒng),對不屬于系統(tǒng)的對象必須剔除。 找出候選對象的依據(jù):(1)包含的信息。只有該對象的信息對于系統(tǒng)運(yùn)轉(zhuǎn)是必不可少的。(2)需要的服務(wù)。對象必須具有一組能以某種方式改變其屬性值的操作。二、篩選對象超載傳感器電梯:向上、向下、停止等服務(wù)(3)多重屬性。在需求分析中,重點(diǎn)應(yīng)放在主要的信息上,一個只有一個屬性的對象也許確實(shí)有用,但把它表示成另一個對象屬性可能會更好。(4)公共屬性。適用于對象出現(xiàn)的所有場合。(5)公共操作。適用于對象出現(xiàn)的所有場合。(6

11、)基本需求。出現(xiàn)在問題域中,生成或消耗對系統(tǒng)操作很關(guān)鍵的信息的外部實(shí)體,幾乎總是被定義為分析模型中的對象。 如上述候選對象中的電梯內(nèi)部、電梯內(nèi)部鎖、電梯中斷、電梯生產(chǎn)廠商等,不滿足選擇對象的依據(jù),可以剔除掉。 對于一些難以判定的對象,可以通過三視圖的方法來判定。 建立三視圖的過程中,有可能又有新的對象出現(xiàn)。也要篩選。三、電梯控制系統(tǒng)的三視圖 電梯控制系統(tǒng)的三視圖模型的三個視圖: 實(shí)體-關(guān)系模型 數(shù)據(jù)流模型(也用上下文圖表示) 狀態(tài)-遷移模型(也用事件響應(yīng)模型表示)電梯控制系統(tǒng)的上下文圖(數(shù)據(jù)流模型): 它確定了全局的系統(tǒng)邊界。外部實(shí)體表示了數(shù)據(jù)流的源點(diǎn)和匯點(diǎn)。 沒有存儲數(shù)據(jù)的對象不適合用ER圖

12、表達(dá)。 比如,識別事件發(fā)生的對象,執(zhí)行一個控制功能的對象,等。 電梯控制系統(tǒng)主要是要對上述信息產(chǎn)生反應(yīng),事件響應(yīng)模型更為重要。 實(shí)體聯(lián)系圖是信息模型。在電梯控制系統(tǒng)中,只需要存儲電梯所到達(dá)的樓層、當(dāng)前的召喚、所要去的目的樓層等信息,而并不需要存儲過多和復(fù)雜的數(shù)據(jù)。電梯控制系統(tǒng)的事件響應(yīng)模型:事件響應(yīng)1、召喚電梯1、修改召喚按鈕面板2、按電梯調(diào)度策略調(diào)度2、目的地按鈕1、修改目的按鈕面板2、按電梯調(diào)度策略調(diào)度3、電梯到達(dá)目的樓層1、修改到達(dá)按鈕面板2、修改目的按鈕面板3、修改召喚按鈕面板4、電梯停留在樓層上4、電梯到達(dá)非調(diào)度樓層1、修改到達(dá)面板5、電梯就緒1、按電梯調(diào)度策略分派電梯6、電梯超載1

13、、停止電梯分派工作7、電梯未超載1、繼續(xù)開始電梯分派工作電梯控制系統(tǒng)的狀態(tài)遷移圖:電梯始終處于四個狀態(tài)之一:空閑狀態(tài):電梯未運(yùn)行,也不打算運(yùn)行。其運(yùn)行方向和狀態(tài)方向?yàn)镹O。停止?fàn)顟B(tài):電梯沒有運(yùn)行,但不處于“就緒”狀態(tài),電梯的門是開的。其運(yùn)行方向?yàn)镹O,狀態(tài)方向可以為UP、DN、NO。忙狀態(tài):電梯處于運(yùn)行狀態(tài)。運(yùn)行方向?yàn)閁P或DN,其狀態(tài)方向可以為NO。超載狀態(tài):電梯不能運(yùn)行??臻e停止:當(dāng)電梯所停留的樓層有召喚事件時(表3-1中的事件1),電梯就打開門??臻e忙:當(dāng)電梯非所停留的樓層有召喚事件時(事件1)或電梯中目的地被按下(事件2),電梯就向目的樓層或有召喚請求的樓層運(yùn)行。停止超載:電梯超載時(

14、事件6)。狀態(tài)的遷移:(1)若其狀態(tài)方向是NO,電梯狀態(tài)就從停止空閑,(2)若其狀態(tài)方向是UP或DN,電梯狀態(tài)就從停止忙。忙停止:當(dāng)電梯到達(dá)調(diào)度樓層時(事件3)。當(dāng)電梯到達(dá)非調(diào)度樓層時(事件4),其狀態(tài)仍處于忙狀態(tài)。超載停止:當(dāng)不在超載時(事件7)當(dāng)電梯就緒事件時(事件5):四、最后確定的對象 三視圖是從三個不同的角度描述同一個系統(tǒng)。 不同應(yīng)用系統(tǒng)側(cè)重點(diǎn)不同。 對于圖書管理、人事管理等事務(wù)系統(tǒng),主要是存儲信息。在對這樣的問題域分析中,實(shí)體聯(lián)系視圖(即信息視圖)更為重要。 對于電梯控制等事件響應(yīng)的控制系統(tǒng)而言,動態(tài)模型即事件響應(yīng)模型就比較重要。 在電梯控制系統(tǒng)中,對事件響應(yīng)模型中出現(xiàn)的對象應(yīng)給予

15、足夠的重視。最后確定的電梯控制系統(tǒng)對象和確定原因:到達(dá)事件(Arrival Event) 直接從事件-響應(yīng)模型中得到。它封裝了電梯到達(dá)某一樓層(無論是否是計劃要去的樓層)時必須要執(zhí)行的各種任務(wù)。到達(dá)面板(Arrival Panel) 由到達(dá)指示燈得到。到達(dá)指示燈位于到達(dá)面板上。各個指示燈表示的信息實(shí)際上是由面板傳遞到控制系統(tǒng)的。目的地事件(Destination Event) 是直接從事件-響應(yīng)模型中得到的。它封裝了電梯如何知道目的地請求的秘密。目的面板(Destination Panel) 從目的按鈕得到。按鈕是與實(shí)現(xiàn)有關(guān)的技術(shù),是人-機(jī)界面的一部分。電梯(Elevator) 封裝了電梯管理和控制所需要的數(shù)據(jù)和各種用于報告電梯當(dāng)前狀態(tài)的服務(wù)。電梯馬達(dá)(Elevator Motor) 包含了各種控制服務(wù)。這些服務(wù)也可以包含在電梯對象中,從而省略掉電梯馬達(dá)對象。 但把電梯馬達(dá)作為一個單獨(dú)的對象是為了更好的擴(kuò)充性和簡潔性。如果電梯更換一個新型的馬達(dá),那么電梯馬達(dá)這個對象可以隱藏馬達(dá)技術(shù)特性的改變,即只需要修改馬達(dá)這個對象。樓層(Floor) 實(shí)現(xiàn)如何派送電梯的功能。如

溫馨提示

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

最新文檔

評論

0/150

提交評論