第4章-面向?qū)ο蟮南到y(tǒng)1_第1頁
第4章-面向?qū)ο蟮南到y(tǒng)1_第2頁
第4章-面向?qū)ο蟮南到y(tǒng)1_第3頁
第4章-面向?qū)ο蟮南到y(tǒng)1_第4頁
第4章-面向?qū)ο蟮南到y(tǒng)1_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

梁昌勇信息系統(tǒng)分析、設(shè)計(jì)與開發(fā)方法第4章面向?qū)ο蟮南到y(tǒng)分析4.1面向?qū)ο蟮幕具^程

4.2面向?qū)ο蠓治龅奶攸c(diǎn) 4.3需求分析陳述4.4面向?qū)ο蟮南到y(tǒng)分析活動 4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型4.8案例目錄面向?qū)ο蠓治?Object-OrientedAnalysis,OOA),就是抽取和整理用戶需求,按照面向?qū)ο蟮乃枷雭矸治鰡栴},最后建立問題域的精確模型。分析的過程就是識別問題域和系統(tǒng)責(zé)任提取系統(tǒng)需求的過程,分析工作包括3項(xiàng)內(nèi)容,即理解、表達(dá)、驗(yàn)證。分析過程得出的最重要的文檔資料是軟件需求規(guī)格說明,在面向?qū)ο蠓治鲋?,主要由對象模型、動態(tài)模型和功能模型組成。

4.1面向?qū)ο蠓治龅幕具^程4.1.1概述問題域(problemdomain)就是被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域,即軟件系統(tǒng)所能處理的現(xiàn)實(shí)世界中業(yè)務(wù)范圍。系統(tǒng)責(zé)任(systemresponsibilities)即所開發(fā)的軟件系統(tǒng)應(yīng)該具備的職能.4.1面向?qū)ο蠓治龅幕具^程4.1.1概述OOA分析的過程就是提取需求的過程,主要包括理解、表達(dá)和驗(yàn)證。OOA過程模型4.1面向?qū)ο蠓治龅幕具^程4.1.2基本過程OOA過程由5項(xiàng)主要活動組成:(1)識別問題域中的類和對象(2)確定結(jié)構(gòu)(3)確定主題(4)定義屬性(5)定義服務(wù)4.1面向?qū)ο蠓治龅幕具^程4.1.2基本過程OOA模型由5個(gè)層組成:(1)主題層,按模塊進(jìn)行劃分,從而降低模型的復(fù)雜程度;(2)類與對象層,描述了系統(tǒng)中的類與對象;(3)結(jié)構(gòu)層,描述了類之間的繼承關(guān)系和“整體-部分”結(jié)構(gòu);(4)屬性層,描述了屬性以及類和對象之間的實(shí)例連接;(5)服務(wù)層,描述了方法以及類和對象之間的消息連接。OOA過程的5項(xiàng)活動分別對應(yīng)OOA模型的5個(gè)層次,這5項(xiàng)活動和5個(gè)層次又繼續(xù)貫穿在OOD(面向?qū)ο蟮脑O(shè)計(jì))過程中。4.1面向?qū)ο蠓治龅幕具^程4.1.2基本過程4.1面向?qū)ο蠓治龅幕具^程4.1面向?qū)ο蟮幕具^程 4.2面向?qū)ο蠓治龅奶攸c(diǎn)

4.3需求分析陳述4.4面向?qū)ο蟮南到y(tǒng)分析活動 4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型4.8案例目錄OOA的主要原則(1)抽象原則。系統(tǒng)中的對象是對現(xiàn)實(shí)世界中事物的抽象;類是系統(tǒng)中對象的抽象。(2)分類原則。就是把具有相同屬性和服務(wù)的對象劃分為一類,用類作為這些對象的抽象描述。(3)聚合原則。聚合將一個(gè)復(fù)雜的事物看成由若干比較簡單的事物組合形成的,從而簡化對復(fù)雜事物的描述。4.2面向?qū)ο蠓治龅奶攸c(diǎn)OOA的主要原則(4)關(guān)聯(lián)原則。在面向?qū)ο蠓治鲞^程中,運(yùn)用關(guān)聯(lián)原則可以

在系統(tǒng)模型中明確地標(biāo)識對象之間的靜態(tài)聯(lián)系。(5)消息通信原則。這一原則要求對象之間只能通過消息進(jìn)行通信,而不允許在對象之外直接地存取對象內(nèi)部的屬性。通過消息進(jìn)行通信是由于封裝原則而引起的。(6)粒度控制原則。人在面對一個(gè)復(fù)雜的問題域時(shí),需要控制自己的視野:考慮全局時(shí),注意其大的組成部分,暫時(shí)不詳察每一部分的具體的細(xì)節(jié);考慮某部分的細(xì)節(jié)時(shí)則暫時(shí)撇開其余的部分。4.2面向?qū)ο蠓治龅奶攸c(diǎn)OOA的主要優(yōu)點(diǎn)(1)OOA是在人類思維組織的基本方法框架下定義并表達(dá)需求,直觀性好。(2)便于分析人員集中精力于問題空間的理解和分析,有利于超越系統(tǒng)的復(fù)雜性困難。(3)把屬性和有關(guān)服務(wù)方法作為對象整體來看待,比較自然。(4)使用對象間的最小相關(guān)性來分析和說明。這有利于實(shí)行封裝性原則,并使OOA適應(yīng)開發(fā)需求的變化,也有利于制作和提取可復(fù)用的部件。4.2面向?qū)ο蠓治龅奶攸c(diǎn)OOA的主要優(yōu)點(diǎn)(5)通過對共性的顯式表示而提高表達(dá)能力。抽象層次與后續(xù)OOP結(jié)合,編程思路清晰,特別是有利于提高程序效率。(6)分析法與設(shè)計(jì)法的一致性,密切配合建造一個(gè)問題域模型。(7)對系統(tǒng)族的適用性和可擴(kuò)展性強(qiáng)4.2面向?qū)ο蠓治龅奶攸c(diǎn)4.1面向?qū)ο蟮幕具^程 4.2面向?qū)ο蠓治龅奶攸c(diǎn) 4.3需求分析陳述4.4面向?qū)ο蟮南到y(tǒng)分析活動 4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型4.8案例目錄面向?qū)ο笙到y(tǒng)分析的基本出發(fā)點(diǎn)是問題域及用戶需求。研究問題域及用戶需求的主要目的是通過對問題域的深入研究,建立一個(gè)能夠滿足用戶需求的系統(tǒng)模型。面向?qū)ο蠓治鰪?qiáng)調(diào)系統(tǒng)模型與問題域的緊密對應(yīng),對問題域的研究貫穿于整個(gè)面向?qū)ο蠓治龉ぷ髦?。對問題域的研究一般可以通過以下工作來完成:親臨現(xiàn)場,通過觀察掌握第一手材料;認(rèn)真聽取問題域?qū)<业囊娊?;閱讀與問題論域有關(guān)的材料,學(xué)習(xí)相關(guān)領(lǐng)域的基本知識;借鑒相關(guān)或相似問題論域已有系統(tǒng)的OOA文檔。4.3需求分析陳述用戶需求就是用戶對所要開發(fā)的系統(tǒng)提出的各種要求和期望。用戶需求大致可以分為2類:技術(shù)需求(功能需求、非功能需求、可用性需求等)非技術(shù)需求(系統(tǒng)交付時(shí)間、資源使用限制等)4.3需求分析陳述功能需求和非功能需求是系統(tǒng)分析人員首先要考慮的因素。功能需求描述了系統(tǒng)可以做什么或被期望做什么,描述了系統(tǒng)的功能,在OOA中可以使用用例來描述系統(tǒng)功能;非功能需求描述了系統(tǒng)如何更好地提供功能服務(wù),可以從性能、安全性、可靠性、可用性等方面來描述。在對用戶需求的研究中,系統(tǒng)分析員需要解決如下問題:系統(tǒng)需要提供哪些功能,要達(dá)到何種性能指標(biāo)以及可靠性、安全性要求,人機(jī)交互要求,系統(tǒng)的對外接口等。Usercase是用來收集和描述用戶需求的最好方法。即先標(biāo)識使用該系統(tǒng)的不同的參與者(actor)。參與者所提出的每個(gè)使用場景(或功能)稱為一個(gè)用例,所有的用例則構(gòu)成完整的系統(tǒng)需求。在這個(gè)過程中,很可能需要快速建立起原型系統(tǒng),以便與用戶更有效地交流。4.3需求分析陳述需求陳述的內(nèi)容包括:問題范圍,功能需求,性能需求,應(yīng)用環(huán)境及假設(shè)條件等。書寫需求陳述時(shí),要盡力做到語法正確,而且應(yīng)該慎重選用名詞、動詞、形容詞和同義詞。4.3需求分析陳述用例名:購買商品參與者:出納員簡要描述:顧客帶著所要購買的商品來到收款處。收款員記錄下商品信息并收款。付款完成后,顧客帶著所購買的商品和收據(jù)離開。用例的簡要描述購買商品收款員4.3需求分析陳述對“取款”用例的非正式描述1)用戶插入ATM卡并輸入密碼2)用戶選擇取款并輸入取款數(shù)量3)系統(tǒng)吐出現(xiàn)金,并從賬號余額中扣除取款數(shù)4.3需求分析陳述4.3需求分析陳述對“取款”用例的完整描述主參與者:信用卡用戶目標(biāo):用戶使用信用卡從ATM機(jī)獲取現(xiàn)金范圍:銀行ATM系統(tǒng)前置條件:用戶將信用卡插入ATM觸發(fā)事件:用戶希望從ATM機(jī)上取現(xiàn)金主事件流:1)用戶插入信用卡到ATM機(jī)2)ATM系統(tǒng)識別卡的ID和賬號,并用主銀行系統(tǒng)驗(yàn)證其有效性3)用戶輸入密碼,ATM驗(yàn)證其有效性4)用戶選擇取款,并輸入提取金額,該數(shù)額必須在50~5000之間,50的倍數(shù)4.3需求分析陳述對“取款”用例的完整描述主事件流:5)ATM系統(tǒng)通知賬戶所在的主銀行系統(tǒng),傳遞賬號和取款金額,并接受返回的確認(rèn)信息和賬戶余額6)ATM系統(tǒng)發(fā)放現(xiàn)金、卡,并打印收據(jù)7)ATM將事務(wù)記入日志4.3需求分析陳述對“取款”用例的完整描述備選事件流:

2a:該卡不能在此ATM機(jī)上使用3a:密碼不正確3b:用戶沒有及時(shí)輸入密碼4a:金額不是50的倍數(shù),或不在指定范圍5a:主機(jī)死機(jī)或網(wǎng)絡(luò)癱瘓5b:賬戶余額不足發(fā)生頻率:一天1000次4.1面向?qū)ο蟮幕具^程 4.2面向?qū)ο蠓治龅奶攸c(diǎn) 4.3需求分析陳述

4.4面向?qū)ο蟮南到y(tǒng)分析活動

4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型4.8案例目錄獲取對象和類確定關(guān)聯(lián)確定主題確定屬性確定方法

4.4面相對象的系統(tǒng)分析活動獲取對象和類

面向?qū)ο笙到y(tǒng)分析過程如人的認(rèn)識過程一樣,從個(gè)別事物認(rèn)識上升到一般概念的歸納過程,這就是認(rèn)識事物的抽象過程。然后,在一般概念的指導(dǎo)下,再對事物進(jìn)行認(rèn)識與分析。在OO建模和OOP中,所有的對象都是通過類來描述的,類是具有相同屬性和操作的一組對象的集合。OOA活動的最終目標(biāo)是建立所有對象的類。4.4面相對象的系統(tǒng)分析活動在識別問題域可能有用的候選對象時(shí),可以從以下三個(gè)面入手:從問題域方面出發(fā),可以啟發(fā)分析員發(fā)現(xiàn)對象的因素包括:人員、組織、物品、設(shè)備、事件、表格、結(jié)構(gòu)等。從系統(tǒng)邊界方面出發(fā),應(yīng)該考慮的因素包括:人員、設(shè)備和外部系統(tǒng),它們是否與所要開發(fā)的系統(tǒng)有交互行為,如果有,那么它們就是候選對象。從系統(tǒng)責(zé)任出發(fā),對照系統(tǒng)責(zé)任所要求的每一項(xiàng)功能,查看是否可以由已找出的對象來完成該功能,在不能滿足要求時(shí)增加相應(yīng)的對象,可以使系統(tǒng)分析員盡可能全地找出所需的各種對象。4.4面相對象的系統(tǒng)分析活動4.4.1獲取對象和類4.4面相對象的系統(tǒng)分析活動4.4面相對象的系統(tǒng)分析活動4.4面相對象的系統(tǒng)分析活動在找到許多可能有用的候選對象之后,需要對它們進(jìn)行逐個(gè)審查,分析它們是否是OOA模型所真正需要的,從而篩選掉一些對象,或精簡及合并一些對象,以及將一些對象推遲到OOD階段再進(jìn)行考慮。系統(tǒng)對象判斷的標(biāo)準(zhǔn)就是這些對象是否為系統(tǒng)提供了有用的屬性和服務(wù)。確定最終對象的原則:需要保留的信息、需要的服務(wù)、具有多個(gè)屬性、具有公共屬性及操作。4.4面相對象的系統(tǒng)分析活動4.4.1獲取對象和類抽象出對象類的常見問題:

(1)類的屬性或服務(wù)不適合該類的全部對象(不完全)

;

(2)出現(xiàn)屬性和服務(wù)相似的類(冗余)

;

(3)出現(xiàn)對同一事物的重復(fù)描述。4.4面相對象的系統(tǒng)分析活動4.4.1獲取對象和類OOA中要正確運(yùn)用抽象原則:首先是擯棄與系統(tǒng)責(zé)任無關(guān)的事物,專注于系統(tǒng)責(zé)任所涉及的事物,把它們作為系統(tǒng)責(zé)任的候選對象。其次,描述候選對象的相應(yīng)特征,對這些特征進(jìn)行認(rèn)真分析,舍棄與系統(tǒng)責(zé)任無關(guān)的特征,只保留與系統(tǒng)責(zé)任有關(guān)的特征,然后將這些特征抽象為對象的屬性和操作。4.4面相對象的系統(tǒng)分析活動4.4.1獲取對象和類判斷問題域事物是否與系統(tǒng)責(zé)任有關(guān),可以從以下3方面進(jìn)行:是否向系統(tǒng)輸入信息,也就是說,系統(tǒng)是否要保留或管理這些信息。是否從系統(tǒng)接受信息,或者說事物是否需要系統(tǒng)提供信息。既向系統(tǒng)輸入信息,也需要系統(tǒng)提供信息。4.4.1獲取對象和類4.4面相對象的系統(tǒng)分析活動關(guān)聯(lián)是指問題域的復(fù)雜性和連接關(guān)系。當(dāng)兩個(gè)或多個(gè)類之間有相互依賴、相互作用的關(guān)系就是關(guān)聯(lián)。一個(gè)面向?qū)ο蟮南到y(tǒng)中,類之間存在以下四種關(guān)系:一般——特殊整體——部分關(guān)聯(lián)依賴關(guān)系4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)1.一般—特殊結(jié)構(gòu)

一般—特殊關(guān)系又稱類屬關(guān)系,是現(xiàn)實(shí)世界中一般對象和特殊對象之間的關(guān)系,反映了現(xiàn)實(shí)世界中事物之間的分類關(guān)系。前者稱為父類,后者稱為子類,子類繼承父類的特性(屬性、操作、關(guān)聯(lián)等),同時(shí)又擁有自己的特性。4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)1.一般—特殊結(jié)構(gòu)

確定了類中應(yīng)該定義的屬性之后,就可以利用繼承機(jī)制共享公共性質(zhì),并對系統(tǒng)中眾多的類加以組織。建立繼承關(guān)系的方式:(1)自底向上:抽象出現(xiàn)有類的共同性質(zhì)泛化出父類,這個(gè)過程實(shí)質(zhì)上模擬了人類歸納思維過程。(2)自頂向下:把現(xiàn)有類細(xì)化成更具體的子類,這模擬了人類的演繹思維過程。

4.4面相對象的系統(tǒng)分析活動4.4面相對象的系統(tǒng)分析活動4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)例如圖書借閱管理系統(tǒng)中,對象類“人員”是類“管理員”和“借閱者”類的父類,而子類“管理員”又是類“系統(tǒng)維護(hù)人員”和類“一般操作人員”的父類。一般——特殊關(guān)系4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)2.整體—部分對象實(shí)例之間的整體—部分關(guān)系,反映了現(xiàn)實(shí)世界中的事物之間的構(gòu)成關(guān)系。整體—部分關(guān)聯(lián)又可以從兩個(gè)方面來反映:聚合關(guān)系表示對象實(shí)例之間的整體與部分的關(guān)系,作為整體的對象擁有作為部分的對象。組合關(guān)系是聚合關(guān)系的一種特殊形式。在組合關(guān)系中,整體和部分之間有著很緊密的關(guān)系和一致的生命周期。4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)3.關(guān)聯(lián)表示對象實(shí)例之間的靜態(tài)聯(lián)系,這兩個(gè)對象實(shí)例之間存在某種語義上聯(lián)系。例如,員工為公司工作,一個(gè)公司有許多部門,因此,可以認(rèn)為員工和公司、公司和部門之間存在某種語義上的聯(lián)系,如下圖所示。4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)4.依賴關(guān)系一個(gè)模型元素的變化影響另一個(gè)模型元素,則兩個(gè)元素之間存在依賴關(guān)系。以X和Y兩個(gè)元素為例,當(dāng)修改X的定義時(shí),引起Y的定義的修改,則稱Y依賴于X。4.4面相對象的系統(tǒng)分析活動4.4.2確定關(guān)聯(lián)主題是指事物的總體概貌和總體分析模型。在開發(fā)大型、復(fù)雜系統(tǒng)的過程中,為了降低復(fù)雜程度,人們習(xí)慣于把復(fù)雜系統(tǒng)進(jìn)一步劃分為幾個(gè)不同的主題,即在概念上把系統(tǒng)包含的內(nèi)容分解成幾個(gè)小的范疇。對于一個(gè)復(fù)雜的系統(tǒng),一般情況下在獲取對象與類、確定結(jié)構(gòu)之后,然后劃分主題。這樣有利于系統(tǒng)開發(fā)人員觀察整個(gè)系統(tǒng)模型。主題的劃分不是按照功能進(jìn)行分解的,而是按照問題域進(jìn)行劃分的。另外,遵循最少原則進(jìn)行主題劃分,即不同主題內(nèi)的對象之間依賴和交互關(guān)系最少。4.4面相對象的系統(tǒng)分析活動4.4.3確定主題從本質(zhì)上講,屬性定義了對象??蓮膯栴}的陳述中或通過對類的理解而標(biāo)識出屬性。

對象的屬性是描述對象靜態(tài)特征的,確定對象屬性時(shí)要從問題域和目標(biāo)系統(tǒng)兩方面進(jìn)行。一般說來,確定屬性的過程包括分析和選擇兩個(gè)步驟。4.4面相對象的系統(tǒng)分析活動4.4.4確定屬性1.分析從以下角度去確定對象應(yīng)具有的屬性:按一般常識,該對象應(yīng)具有哪些屬性;在當(dāng)前問題論域中,該對象應(yīng)具有哪些屬性;根據(jù)系統(tǒng)責(zé)任的要求,該對象應(yīng)具有哪些屬性;建立該對象是為了保存和管理哪些信息;對象為了在服務(wù)中實(shí)現(xiàn)其功能,需要增設(shè)哪些屬性;是否需要增設(shè)屬性來區(qū)別對象的不同狀態(tài);用什么屬性來表示對象的整體-部分聯(lián)系和實(shí)例連接4.4面相對象的系統(tǒng)分析活動4.4.4確定屬性2.選擇刪掉不正確的或不必要的屬性,通常有以下幾種常見情況:誤把對象當(dāng)作屬性;如果某個(gè)實(shí)體的獨(dú)立存在比它的值更重要,則應(yīng)把它作為一個(gè)對象而不是對象的屬性。在具體應(yīng)用領(lǐng)域中具有自身性質(zhì)的實(shí)體,必然是對象。誤把關(guān)聯(lián)類的屬性當(dāng)作一般對象的屬性;如果某個(gè)性質(zhì)依賴于某個(gè)關(guān)聯(lián)鏈的存在;則該性質(zhì)是關(guān)聯(lián)類的屬性,在分析階段不應(yīng)該把它作為一般對象的屬性。把限定誤當(dāng)成屬性;正確使用限定詞往往可以減少關(guān)聯(lián)的重?cái)?shù)。4.4面相對象的系統(tǒng)分析活動4.4.4確定屬性誤把內(nèi)部狀態(tài)當(dāng)成了屬性;如果某個(gè)性質(zhì)是對象的非公開的內(nèi)部狀態(tài),則應(yīng)該從對象模型中刪掉這個(gè)屬性。過于細(xì)化;在分析階段應(yīng)該忽略那些對大多數(shù)操作都沒有影響的屬性。存在不一致的屬性;類應(yīng)該是簡單而且一致的。如果得出一些看起來與其他屬性毫不相關(guān)的屬性,則應(yīng)該考慮把該類分解成兩個(gè)不同的類。4.4面相對象的系統(tǒng)分析活動4.4.4確定屬性方法,也稱服務(wù)、操作或行為等,用來描述對象的動態(tài)特征。有的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言中,又將服務(wù)稱之為類的成員函數(shù)或簡稱函數(shù)。一般從以下幾個(gè)方面發(fā)現(xiàn)和定義對象方法:系統(tǒng)責(zé)任問題域?qū)ο鬆顟B(tài)(狀態(tài)機(jī)圖)4.4面相對象的系統(tǒng)分析活動4.4.5確定方法1.系統(tǒng)責(zé)任在OOA模型中,對象的操作是最直接體現(xiàn)系統(tǒng)責(zé)任并實(shí)現(xiàn)用戶需求的成分,分析研究用戶需求中提出的每一項(xiàng)功能要求,這些功能要求應(yīng)該由哪對象來提供,從而在該對象中設(shè)立相應(yīng)的方法。從對象的角度出發(fā),分析這個(gè)對象是否應(yīng)該設(shè)立,它能完成哪些功能。由該對象完成的功能就是這個(gè)對象的方法。從信息的輸入、加工、輸出的流程出發(fā),在整個(gè)信息流中涉及哪些對象?這些對象是如何處理這些信息的?對象完成信息處理的功能就是對象的方法。4.4面相對象的系統(tǒng)分析活動4.4.5確定方法2.問題域從問題域出發(fā),考慮每個(gè)對象所代表的實(shí)際事物在問題域中呈現(xiàn)哪些行為?這些行為是否與系統(tǒng)責(zé)任有關(guān)?在系統(tǒng)中應(yīng)該為這些對象設(shè)立何種方法?3.對象狀態(tài)對象從創(chuàng)建到撤銷要經(jīng)歷一系列的狀態(tài),從一種狀態(tài)轉(zhuǎn)移為另一種狀態(tài)是由某個(gè)操作引起的。對象的狀態(tài)和狀態(tài)之間的轉(zhuǎn)移可以通過狀態(tài)機(jī)圖來描繪。狀態(tài)機(jī)圖就是確定對象操作的手段之一。4.4面相對象的系統(tǒng)分析活動4.4.5確定方法4.1面向?qū)ο蟮幕具^程 4.2面向?qū)ο蠓治龅奶攸c(diǎn) 4.3需求分析陳述

4.4面向?qū)ο蟮南到y(tǒng)分析活動 4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型4.8案例目錄面向?qū)ο蠓治鍪滓墓ぷ鳎墙栴}域的對象模型。這個(gè)模型描述了現(xiàn)實(shí)世界中的“類與對象”以及它們之間的關(guān)系,表示了目標(biāo)系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。OOA基本模型分為三個(gè)層次:對象層——給出系統(tǒng)中所有反映問題域和系統(tǒng)責(zé)任的對象。特征層——給出類(對象)的內(nèi)部特征,即類的屬性和操作關(guān)系層——給出各類(對象)之間的關(guān)系,即類之間的四種關(guān)系。4.5建立對象模型1.類圖類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),它不僅定義系統(tǒng)中的類,表示類之間的關(guān)系(如關(guān)聯(lián)、依賴、聚集等),也表達(dá)類的內(nèi)部結(jié)構(gòu)(即類的屬性和操作)。類圖描述的這種靜態(tài)關(guān)系涉及軟件系統(tǒng)開發(fā)的整個(gè)生命周期。4.5建立對象模型1.類圖

類一般包含3個(gè)組成部分:類名、屬性、方法。4.5建立對象模型建筑設(shè)計(jì)院公文審批類圖

類圖使用方式對系統(tǒng)的靜態(tài)對象建模。如圖書借閱系統(tǒng)的Book類、reader類,學(xué)生管理系統(tǒng)的Student類等。對簡單的協(xié)作建模。協(xié)作是一些共同行為的類、接口和其他元素的群體。對邏輯數(shù)據(jù)庫模式建模。在很多領(lǐng)域中,都需要在關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫中存儲永久信息,系統(tǒng)分析者可以用類圖對這些需要永久化的實(shí)體建模。4.5建立對象模型類的表示方式有兩種即:全部顯示類的屬性和操作,或者隱藏屬性部分或操作部分,或者兩者都隱藏。4.5建立對象模型2.對象圖對象圖表示在某一時(shí)刻系統(tǒng)對象的狀態(tài)、對象之間的聯(lián)系的狀態(tài)以及對象行為的靜態(tài)方面的狀態(tài)。對象圖和類圖一樣反映系統(tǒng)的靜態(tài)過程,但它是從實(shí)際的或原型化的情景來表達(dá)的。對象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識。它們的不同點(diǎn)在于對象圖顯示類的多個(gè)對象實(shí)例,而不是實(shí)際的類。一個(gè)對象圖是類圖的一個(gè)實(shí)例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時(shí)間段存在。4.5建立對象模型2.對象圖4.5建立對象模型:辦公室工作人員:辦公室主任對象只有兩個(gè)分欄(名稱、屬性);對象的名稱形式為“對象名:類名”;匿名對象的名稱形式為“:類名”;對象只定義了屬性的當(dāng)前值;對象圖中不包含操作;對象使用鏈連接,鏈擁有名稱、角色,但是沒有多重性。對象圖的用途:捕獲實(shí)例和連接在分析和設(shè)計(jì)階段創(chuàng)建捕獲交互的靜態(tài)部分舉例說明數(shù)據(jù)/對象結(jié)構(gòu)詳細(xì)描述瞬態(tài)圖由分析人員、設(shè)計(jì)人員和代碼實(shí)現(xiàn)人員開發(fā)4.5建立對象模型2.對象圖包(Package)是一種常規(guī)用途的組合機(jī)制。UML中的一個(gè)包直接對應(yīng)于Java中的一個(gè)包。在Java中,一個(gè)包可能含有其他包、類或者同時(shí)含有這兩者。進(jìn)行建模時(shí),通常使用邏輯性的包,用于對模型進(jìn)行組織;使用物理性的包,用于轉(zhuǎn)換成系統(tǒng)中的Java包。每個(gè)包的名稱對這個(gè)包進(jìn)行了惟一性的標(biāo)識。4.5建立對象模型3.包圖包圖建模:將一個(gè)框架的所有類放置在相同的包中;將相同繼承層次的類放在相同的包中;彼此間有聚集或組成關(guān)系的類通常放在相同的包中;彼此合作頻繁的類、信息能夠通過UML順序圖和UML合作圖反映出來的類,通常放在相同的包中;確定包與包之間的依賴關(guān)系或泛化關(guān)系。4.5建立對象模型4.1面向?qū)ο蟮幕具^程 4.2面向?qū)ο蠓治龅奶攸c(diǎn) 4.3需求分析陳述

4.4面向?qū)ο蟮南到y(tǒng)分析活動 4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型4.8案例目錄動態(tài)模型是與時(shí)間和變化有關(guān)的系統(tǒng)性質(zhì)。該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬間的、行為化的系統(tǒng)控制性質(zhì),它關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,它表示從對象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了對象的相互行為。該模型描述的系統(tǒng)屬性是觸發(fā)事件、事件序列、狀態(tài)、事件與狀態(tài)的組織。使用狀態(tài)圖作為描述工具。它涉及到事件、狀態(tài)、操作等重要概念。4.6建立動態(tài)模型事件;事件是指定時(shí)刻發(fā)生的某件事。狀態(tài);狀態(tài)是對象屬性值的抽象。對象的屬性值按照影響對象顯著行為的性質(zhì)將其歸并到一個(gè)狀態(tài)中去。狀態(tài)指明了對象對輸入事件的響應(yīng)。各對象之間相互觸發(fā)(即作用)就形成了一系列的狀態(tài)變化。把一個(gè)觸發(fā)行為稱作一個(gè)事件。狀態(tài)有持續(xù)性,它占用一段時(shí)間間隔。狀態(tài)與事件密不可分,一個(gè)事件分開兩個(gè)狀態(tài),一個(gè)狀態(tài)隔開兩個(gè)事件。事件表示時(shí)刻,狀態(tài)代表時(shí)間間隔。4.6建立動態(tài)模型狀態(tài)圖;狀態(tài)圖是一個(gè)標(biāo)準(zhǔn)的計(jì)算機(jī)概念,它是有限自動機(jī)的圖形表示,這里把狀態(tài)圖作為建立動態(tài)模型的圖形工具。狀態(tài)圖反映了狀態(tài)與事件的關(guān)系。當(dāng)接收一事件時(shí),下一狀態(tài)就取決于當(dāng)前狀態(tài)和所接收的該事件,由該事件引起的狀態(tài)變化稱為轉(zhuǎn)換。狀態(tài)圖是一種圖,用結(jié)點(diǎn)表示狀態(tài),結(jié)點(diǎn)用圓圈表示;圓圈內(nèi)有狀態(tài)名,用箭頭連線表示狀態(tài)的轉(zhuǎn)換,上面標(biāo)記事件名,箭頭方向表示轉(zhuǎn)換的方向。4.6建立動態(tài)模型4.6建立動態(tài)模型電話狀態(tài)圖建立動態(tài)模型的步驟:第一步,是編寫典型交互行為的腳本。雖然腳本中不可能包括每個(gè)偶然事件,但至少必須保證不遺漏常見的交互行為。第二步,從腳本中提取出事件,確定觸發(fā)每個(gè)事件的動作對象以及接受事件的目標(biāo)對象。第三步,排列事件發(fā)生的次序,確定每個(gè)對象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們。最后,比較各個(gè)對象的狀態(tài)圖,檢查它們之間的一致性,確保事件之間的匹配。4.6建立動態(tài)模型4.1面向?qū)ο蟮幕具^程 4.2面向?qū)ο蠓治龅奶攸c(diǎn) 4.3需求分析陳述

4.4面向?qū)ο蟮南到y(tǒng)分析活動 4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型

4.8案例目錄功能模型描述了系統(tǒng)的所有計(jì)算,著重于系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理,功能模型定義“做什么”,動態(tài)模型定義“何時(shí)做”,對象模型定義“對誰做”。功能模型表明一個(gè)計(jì)算如何從輸入值得到輸出值,它不考慮計(jì)算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖用來表示從源對象到目標(biāo)對象的數(shù)據(jù)值的流向,它不包含控制信息,控制信息在動態(tài)模型中表示,同時(shí)數(shù)據(jù)流圖也不表示對象中值的組織,值的組織在對象模型中表示。4.7建立功能模型公文發(fā)文數(shù)據(jù)流圖3種模型之間的關(guān)系:針對每個(gè)類建立的動態(tài)模型,描述了類實(shí)例的生命周期或運(yùn)行周期。狀態(tài)轉(zhuǎn)換驅(qū)使行為發(fā)生,這些行為在數(shù)據(jù)流圖中被映射成處理,在用例圖中被映射成用例,它們同時(shí)與類圖中的服務(wù)相對應(yīng)。功能模型中的處理(或用例)對應(yīng)于對象模型中的類所提供的服務(wù)。數(shù)據(jù)流圖中的數(shù)據(jù)存儲,以及數(shù)據(jù)的源點(diǎn)/終點(diǎn),通常是對象模型中的對象。4.7建立功能模型3種模型之間的關(guān)系:數(shù)據(jù)流圖中的數(shù)據(jù)流,往往是對象模型中對象的屬性值,也可能是整個(gè)對象。用例圖中的行為者,可能是對象模型中的對象。功能模型中的處理(或用例)可能產(chǎn)生動態(tài)模型中的事件。對象模型描述了數(shù)據(jù)流圖中的數(shù)據(jù)流、數(shù)據(jù)存儲以及數(shù)據(jù)源點(diǎn)/終點(diǎn)的結(jié)構(gòu)。4.7建立功能模型4.1面向?qū)ο蟮幕具^程 4.2面向?qū)ο蠓治龅奶攸c(diǎn) 4.3需求分析陳述

4.4面向?qū)ο蟮南到y(tǒng)分析活動 4.5建立對象模型4.6建立動態(tài)模型4.7建立功能模型4.8案例目錄項(xiàng)目概述

某建筑設(shè)計(jì)院立項(xiàng)開發(fā)工程設(shè)計(jì)綜合項(xiàng)目管理信息系統(tǒng),總體目標(biāo)是對設(shè)計(jì)院核心業(yè)務(wù)流程進(jìn)行梳理和優(yōu)化,規(guī)范工作流程和管理制度,并運(yùn)用計(jì)算機(jī)技術(shù)和信息技術(shù)實(shí)現(xiàn)設(shè)計(jì)院經(jīng)營管理和工程設(shè)計(jì)的信息化,提高運(yùn)營效率,以適應(yīng)不斷變化的市場需求,更好地為社會提供一流的產(chǎn)品和服務(wù)。辦公自動化系統(tǒng)是該系統(tǒng)的一個(gè)子系統(tǒng),其中公文管理模塊要求實(shí)現(xiàn)公文收、發(fā)文處理、審批、公告、督辦催辦、歸檔、查詢等功能。工作流技術(shù)采用JBPM工作流引擎,系統(tǒng)開發(fā)采用Struts2.0+Spring2.5+Hibernate3.2+DWR2.0框架技術(shù),服務(wù)器是JBoss服務(wù)器。4.8案例通過對用戶需求調(diào)研分析,公文發(fā)文業(yè)務(wù)流程如圖所示。4.8案例1.系統(tǒng)需求通過對問題域的認(rèn)真分析,識別出公文發(fā)文系統(tǒng)對象,如右圖所

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論