信息系統(tǒng)分析與設(shè)計-第六章-面向?qū)ο蟮南到y(tǒng)分析與設(shè)計課件_第1頁
信息系統(tǒng)分析與設(shè)計-第六章-面向?qū)ο蟮南到y(tǒng)分析與設(shè)計課件_第2頁
信息系統(tǒng)分析與設(shè)計-第六章-面向?qū)ο蟮南到y(tǒng)分析與設(shè)計課件_第3頁
信息系統(tǒng)分析與設(shè)計-第六章-面向?qū)ο蟮南到y(tǒng)分析與設(shè)計課件_第4頁
信息系統(tǒng)分析與設(shè)計-第六章-面向?qū)ο蟮南到y(tǒng)分析與設(shè)計課件_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課堂討論通過對結(jié)構(gòu)化方法的學(xué)習(xí),談?wù)勀愕捏w會。結(jié)構(gòu)化方法的基本原理;結(jié)構(gòu)化方法的工作階段;結(jié)構(gòu)化方法工作的重點和難點;結(jié)構(gòu)化方法的局限和不足。面向?qū)ο蠓椒ǖ幕驹?/p>

面向?qū)ο蠓椒ㄊ欠治鰡栴}和解決問題的新方法,其基本出發(fā)點就是盡可能按照人類認(rèn)識世界的方法和思維方式來分析和解決問題??陀^世界是由許多具體的事物或事件,抽象的概念和規(guī)則等組成的,因此,我們將任何感興趣或要加以研究的事、物、概念都稱為對象。面向?qū)ο蟮姆椒ㄕ且詫ο笞鳛樽罨镜脑?,這也是分析問題,解決問題的核心。面向?qū)ο笾械膸讉€概念*對象(Object):可以看作其自身所具有的狀態(tài)特征及可以對這些狀態(tài)施加的操作結(jié)合在一起所構(gòu)成的獨立實體。類:(Class):類是具有相同屬性和服務(wù)的一組對象的集合。消息(Message):消息是面向?qū)ο蟀l(fā)出的服務(wù)請求。封裝(Encapsulation):把對象的屬性和服務(wù)結(jié)合成一個獨立的系統(tǒng)單位,盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。繼承(Inheritance):即“自動地?fù)碛小?,特殊類可以自動地?fù)碛衅湟话泐惗x的所有屬性與服務(wù)。多態(tài)(Polymorphism):描述同一個消息可以根據(jù)發(fā)送消息對象的不同,采用多種不同的行為方式。問題背景:

需要強(qiáng)調(diào)的是,面向?qū)ο蟛粌H是一種程序設(shè)計方法,更重要的是,它是一種對真實世界的抽象思維方式。隨著計算機(jī)應(yīng)用的飛速發(fā)展,軟件的復(fù)雜程度不斷提高,源代碼的規(guī)模越來越大,項目失敗的可能性也相應(yīng)增加。在長期的研究與實踐中,人們愈來愈深刻地認(rèn)識到,建立簡明準(zhǔn)確的()是把握復(fù)雜系統(tǒng)的關(guān)鍵。表示模型模型可以使人們從全局上把握系統(tǒng)的全貌及其相關(guān)部件之間的聯(lián)系,可以防止人們過早地陷入各個模塊的細(xì)節(jié)。因此,面向?qū)ο蟮姆治龊驮O(shè)計應(yīng)該從()開始。建模BoochOMTOOSEUML面對眾多的建模語言,用戶沒有能力區(qū)別不同語言之間的差別,因此很難找到一種比較適合其應(yīng)用特點的語言。另外,在眾多的建模語言中,實際上各有千秋,需要取長補(bǔ)短,日臻完善。第三,雖然不同的建模語言大多相同,但仍存在某些細(xì)微的差別。極大地妨礙了用戶之間的交流。因此,在客觀上,極有必要在精心比較不同建模語言的優(yōu)缺點及總結(jié)面向?qū)ο蠹夹g(shù)應(yīng)用實踐的基礎(chǔ)上,努力統(tǒng)一這些建模語言。例:使用Booch方法和OMT方法描述的系統(tǒng)用例圖。面向?qū)ο蟮南到y(tǒng)分析與設(shè)計一、UML簡介二、基于UML的面向?qū)ο蟮南到y(tǒng)分析1、定義基本用例--需求分析2、建立概念模型--概念類分析3、建立系統(tǒng)行為--順序圖4、定義系統(tǒng)操作契約三、基于UML的面向?qū)ο蟮南到y(tǒng)設(shè)計一、統(tǒng)一建模語言UML(Unifiedmodelinglanguage)定義:UML代表統(tǒng)一建模語言,是使用面向?qū)ο蟾拍钸M(jìn)行系統(tǒng)建模的一組表示法,它已成為面向?qū)ο箢I(lǐng)域標(biāo)準(zhǔn)的建模圖形。*1、什么是UML?2、與面向?qū)ο蠓椒ㄖg有何關(guān)系?設(shè)計者為UML設(shè)定的目標(biāo):(1)運用面向?qū)ο蟾拍顏順?gòu)造系統(tǒng)模型;(2)建立起從概念模型直到可執(zhí)行體之間明顯對應(yīng)關(guān)系;(3)為復(fù)雜的系統(tǒng)建立衡量標(biāo)準(zhǔn),同時應(yīng)著眼于那些有重大影響的問題;(4)創(chuàng)建一種對人和機(jī)器都適用的建模語言。關(guān)于UML的幾個要點:*1、UML是一種建模語言,而不是一種方法。2、UML統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語及其圖形符號。3、UML能夠有力地支持從需求分析開始的軟件開發(fā)的全過程。4、UML是標(biāo)準(zhǔn)的語言,而不是標(biāo)準(zhǔn)的開發(fā)過程。5、UML采用的是一種圖形表示法,是一種可視化的圖形建模語言。6、UML包含靜態(tài)建模機(jī)制和動態(tài)建模機(jī)制兩大類。RUP(RationalUnifiedProcess)

RUP也稱統(tǒng)一軟件開發(fā)過程,統(tǒng)一軟件過程。RUP是一個面向?qū)ο笄一诰W(wǎng)絡(luò)的程序開發(fā)方法論。根據(jù)Rational公司的說法,好像一個在線的指導(dǎo)者,它可以為所有方面和層次的程序開發(fā)提供指導(dǎo)方針,模版以及事例支持。RUP把開發(fā)中面向過程的方面(例如定義的階段,技術(shù)和實踐)和其他開發(fā)的組件(例如文檔,模型,手冊以及代碼等等)整合在一個統(tǒng)一的框架內(nèi)。

規(guī)劃分析設(shè)計實施運行傳統(tǒng)的流水線過程瀑布模型高級分析細(xì)節(jié)分析設(shè)計開發(fā)測試部署重復(fù)性的開發(fā)方法開發(fā)過程中的各個階段:*1.初始階段2.細(xì)化階段3.構(gòu)造階段4.交付階段

UML的主要內(nèi)容:(5類,共9種模型)*一、用例圖。它從用戶角度描述系統(tǒng)的功能,并指出各功能的執(zhí)行者。二、靜態(tài)圖。包括類圖、對象圖。類圖用于定義系統(tǒng)中的類,描述類之間的聯(lián)系以及類的內(nèi)部結(jié)構(gòu)。在系統(tǒng)的整個生命周期都有效。對象圖顯示類的實例,其只能在系統(tǒng)某一時間段存在。三、行為圖。描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。一種是狀態(tài)圖,它描述一類對象的所有可能的狀態(tài)以及事件發(fā)生時的狀態(tài)的轉(zhuǎn)移條件,通常狀態(tài)圖是對類圖的補(bǔ)充。另一種是活動圖,它描述為滿足用例要求所要進(jìn)行的活動以及活動間的約束關(guān)系。使用活動圖可以很方便地表示并行活動。例例例四、交互圖,描述對象間的交互關(guān)系。一種是順序圖,用以顯示對象之間的動態(tài)合作關(guān)系。它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時也顯示對象之間的交互過程。另一種是協(xié)作圖,它著重描述對象間的協(xié)作關(guān)系。如果強(qiáng)調(diào)時間和順序,使用順序圖。如果強(qiáng)調(diào)通信關(guān)系,使用合作圖。五、實現(xiàn)圖,包括構(gòu)件圖和配置圖。構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系。配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。例面向?qū)ο蠓治鲭A段的基本過程:*

1、基于用例模型從外部用戶的角度捕獲系統(tǒng)的行為,即系統(tǒng)應(yīng)該響應(yīng)的主要事件

2、使用類圖定義系統(tǒng)領(lǐng)域主要概念之間的關(guān)系,形成系統(tǒng)的概念模型,它表達(dá)了系統(tǒng)對應(yīng)的事物部分

3、采用順序圖對系統(tǒng)操作行為進(jìn)行描述,系統(tǒng)行為描述了系統(tǒng)做什么,而不解釋系統(tǒng)怎么做

4、基于概念模型、系統(tǒng)順序圖和系統(tǒng)操作建立系統(tǒng)操作的契約。二、基于UML的面向?qū)ο蠓治?、定義基本用例--需求分析需求包括三個不同的層次:業(yè)務(wù)需求、用戶需求和功能需求。*業(yè)務(wù)需求反映了組織機(jī)構(gòu)或客戶對系統(tǒng)高層次的目標(biāo)要求,它們在系統(tǒng)的視圖與范圍文檔中予以說明;用戶需求描述了用戶使用系統(tǒng)必須要完成的任務(wù),它使用用例(usecase)及其用例場景予以說明;功能需求定義了開發(fā)人員必須實現(xiàn)的軟件功能。業(yè)務(wù)需求視圖與范圍文檔用戶需求質(zhì)量屬性其他非功能需求約束條件功能需求用例文檔需求規(guī)格說明需求分類

用包圖來描述信息系統(tǒng)的業(yè)務(wù)需求結(jié)構(gòu)。每一個需求用一個需求包來表示,包與包之間用組成關(guān)系關(guān)聯(lián)起來,包可以逐層分解,構(gòu)成分層信息系統(tǒng)需求結(jié)構(gòu)。

※用戶需求分析--用例圖*用例圖:描述系統(tǒng)外部角色(執(zhí)行者)與系統(tǒng)提供的用例之間的某種聯(lián)系。用例的作用?--面向?qū)ο蟮乃泄ぷ魇怯美?qū)動的。用例(UseCase):是指對系統(tǒng)提供的功能的一種描述。用例按詳細(xì)程度可以分為:高層用例和擴(kuò)展用例。

高層用例以簡潔的方式來描述一個過程,可快速獲得對系統(tǒng)整體過程的理解。而擴(kuò)展用例也叫用例場景,對一個過程的描述要比高層用例詳細(xì)得多,在格式上具有典型的事件發(fā)生過程。

此外,用例按重要程度分為主要用例、次要用例和可選用例三種。主要用例:代表了那些主要的過程;次要用例:代表那些不重要的或者是不常見的用例;可選用例:代表那些可以處理也可以不處理的用例。用例注冊選課角色學(xué)生(發(fā)起者)類型主要的描述學(xué)生從所開設(shè)的課程列表中選擇課程,并生成課程表例:“注冊選課”的高層用例用例圖:顯示了

、

的圖形。各個部分的關(guān)系:(1)關(guān)聯(lián)關(guān)系(2)包含(Include)關(guān)系(3)擴(kuò)展(Extend)關(guān)系(4)泛化關(guān)系<<include>><<extend>>角色:是系統(tǒng)之外的人員或外部系統(tǒng)用例:是系統(tǒng)需要完成的各項功能*掌握其圖形表示及使用對象角色用例用例之間的關(guān)系用例中各種關(guān)系的說明:*1、關(guān)聯(lián)關(guān)系是指兩者之間有信息交流。只能用于角色和用例之間的“通信”。2、包含關(guān)系也叫使用關(guān)系,只能用于兩個用例之間。一般是指一個用例使用了另一個用例的行為或功能,它允許將不同用例中的共同行為抽取出來放到另一個獨立的用例當(dāng)中。(例)3、擴(kuò)展關(guān)系是指一個用例與另一個用例相似,但比另外一個所做的動作多一些,或者將常規(guī)的動作放在基本用例中,將非常規(guī)動作放在它的擴(kuò)展中。擴(kuò)展關(guān)系只能用于兩個用例之間。4、泛化關(guān)系指抽象與具體的關(guān)系。既可以用在角色之間也可以用在用例之間。說明:“注冊選課”用例使用了“登錄”用例,它表示在執(zhí)行“注冊選課”流程過程中,同時執(zhí)行了“注冊選課”和“登錄”兩個用例。銀行系統(tǒng)用例圖擴(kuò)展關(guān)系泛化關(guān)系練習(xí):1:在很多業(yè)務(wù)中,總是存在著維護(hù)某某信息的功能,如果將它作為一個用例,那添加、編輯以及修改都要在用例詳述中描述,過于復(fù)雜;如果分成添加用例、編輯用例和刪除用例,則劃分太細(xì)。這時()關(guān)系可以用來理清關(guān)系。包含2:系統(tǒng)中允許用戶對查詢的結(jié)果進(jìn)行導(dǎo)出、打印。對于查詢而言,能不能導(dǎo)出、打印,查詢都是一樣的,導(dǎo)出、打印是不可見的。導(dǎo)入、打印和查詢相對獨立,而且為查詢添加了新行為。因此可以采用()關(guān)系來描述。擴(kuò)展包含用例事件流的執(zhí)行過程基用例事件流被包含的用例事件流說明:基用例中所包含中事件流肯定被執(zhí)行,被包含的用例事件被看作是基用例的一部分。兩者是包含的關(guān)系?;美录鲾U(kuò)展用例的執(zhí)行過程A序列行為擴(kuò)展點B擴(kuò)展的用例事件流B序列行為擴(kuò)展點A說明:1、系統(tǒng)將可選的新增功能放入擴(kuò)展用例中,不影響基用例的執(zhí)行。兩者具有較高的獨立性。2、擴(kuò)展用例是對基用例增加的額外行為。3、擴(kuò)展點過多,使基用例行為難以理解。高層用例圖直觀地描述了信息系統(tǒng)功能。但不能反映各功能的詳細(xì)內(nèi)容,以及用戶在使用這個功能時與信息系統(tǒng)交互的內(nèi)容和交互過程。而這些內(nèi)容又是理解功能的必要材料,所以需要對每一個用例進(jìn)行說明。用例描述是對用例圖中的用例做出的說明。在用例說明中,需要描述用例的編號、名稱、角色和用例的功能以及交互過程。想一想:以上繪制的用例圖的作用是什么?是否還存在一定的缺陷。黑盒方法和白盒方法*對用例圖繪制持有的兩種觀點:一種是認(rèn)為僅需從“外部”視圖描述系統(tǒng)即可,另外一種認(rèn)為僅僅有外部描述還遠(yuǎn)遠(yuǎn)不夠,用例中還必須包括一些重要的系統(tǒng)行為。僅從外部視圖描述用例,采用的是黑盒方法(blackbox)。在用例描述中包括對支持達(dá)到外部角色的目標(biāo)所需要的系統(tǒng)行為,采用的是白盒方法(whitebox)。通過黑盒方法繪制了高層用例后,還需采用白盒法在用例場景中采用文字書寫該用例的實現(xiàn)過程。而對于復(fù)雜的用例,由于處理流程復(fù)雜,可以采用活動圖來描述用例場景的內(nèi)容。*帶有備選流程的用例活動圖起始動作狀態(tài)決策結(jié)束轉(zhuǎn)移活動1活動2活動3.1活動3.2活動4.1活動4.2活動5.1學(xué)籍管理系統(tǒng)查詢成績用例描述樣例用例名查詢成績角色學(xué)生(發(fā)起者)描述描述學(xué)生查詢成績的過程.查詢成功返回成績列表;失敗返回錯誤信息角色操作系統(tǒng)響應(yīng)基本操作過程步驟1.學(xué)生提交查詢成績的請求,輸入要查詢的課程號步驟5.查詢成績完畢步驟2.確認(rèn)學(xué)號與課程號的對應(yīng)關(guān)系步驟3.對每門課程,確認(rèn)成績是否有效步驟4.打印有成績的課程、學(xué)分和相應(yīng)成績可選操作流程步驟2.課程號與學(xué)號不匹配,輸出錯誤信息”該生未選此課!”步驟3.課程成績未出或被覆蓋,輸出信息”無成績!”前置條件只有在校學(xué)生才能查詢成績后置條件學(xué)生獲得成績單假設(shè)不輸入課程號,則認(rèn)為是查詢?nèi)砍煽兒诤幸晥D白盒視圖用例的開發(fā)過程(1)依據(jù)系統(tǒng)事件列出系統(tǒng)功能,定義系統(tǒng)邊界,識別出角色和用例。例:以商店作為系統(tǒng)和以商店中的POS作為系統(tǒng),角色是否一致?(2)用高層用例寫出所有用例,將它們分成主要的、次要的和可選的三類。(3)繪制用例圖。(4)使用例之間相互關(guān)聯(lián)并在用例圖中顯示出來。(5)對于最關(guān)鍵、影響最大和最具開發(fā)風(fēng)險的那些用例寫出其主要的用例場景,以便能夠更好地理解和估計出問題的性質(zhì)和規(guī)模。(6)使用包含、擴(kuò)展關(guān)系精化用例,并劃分用例的層次。三、建立概念模型

概念模型用于對系統(tǒng)中的各個部分進(jìn)行建模。在UML中,不使用“概念”這一術(shù)語,而使用“類”這個術(shù)語。類是具有相同的屬性、操作、方法、關(guān)系和語義的一組對象的描述。

用例模型捕獲系統(tǒng)的行為,而類、對象模型描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。作為對用例模型的補(bǔ)充,由關(guān)聯(lián)、聚集、泛化等概念組成的靜態(tài)模型表示了系統(tǒng)需求的另一個方面。這兩者是組成完整分析模型不可缺少的一部分。概念類的表示概念類的類型:*

UML把概念類分為實體類、邊界類和控制類三種類型。1)實體類實體類(EntityClass)是信息系統(tǒng)表示客觀實體的抽象要素。實體類一般對應(yīng)著在業(yè)務(wù)領(lǐng)域中的客觀事物,或者是具有較穩(wěn)定信息內(nèi)容的系統(tǒng)元素。實體類來源于業(yè)務(wù)分析中所確定的實體。

2)邊界類邊界類(BoundaryClass)是描述系統(tǒng)與角色之間交互的抽象要素。邊界類只是對信息系統(tǒng)與角色之間交互的抽象建模,并不表示交互的具體內(nèi)容及交互界面的具體形式。

3)控制類控制類(ControlClass)是表示信息系統(tǒng)對其它對象實施協(xié)調(diào)處理、邏輯運算的抽象要素。例:售書售貨員通過售書界面,進(jìn)行售書的控制,即:管理架存圖書和售出圖書。在UML中,類的可視化表示為一個劃分成三個格子的長方形(下面兩個格子可省略)。最頂部的格子包含類的名字。中間的格子包含類的屬性,用以描述該類對象的共同特點。最下面一行表示類的操作(Operation)。*

類之間的聯(lián)系:(1)關(guān)聯(lián)(Association)。關(guān)聯(lián)表示兩個類之間存在某種語義上的聯(lián)系。圖形表示:用一根連接類的實線表示,用箭頭表示關(guān)聯(lián)的方向;如果不明確指明方向,則默認(rèn)關(guān)聯(lián)是雙向的管理關(guān)聯(lián)多重性的表示方法:*A和一個B關(guān)聯(lián)A和一個或多個B關(guān)聯(lián)A和零個或一個B關(guān)聯(lián)A和零個、一個或多個B關(guān)聯(lián)AB1AB1..*AB0..1AB*關(guān)聯(lián)多重性:關(guān)聯(lián)的一端可連接任意個數(shù)的對象實例。分析兩者之間的關(guān)聯(lián),并進(jìn)行描述多邊形點3..*(2)聚集(aggregation)

定義:類之間的一種整體與部分的關(guān)系。體現(xiàn)了一種層次結(jié)構(gòu),整體類位于部分類的上層,多個部分類處于并列的層次。圖形表示:尾端帶一個菱形的單箭頭直線,菱形指向整體部分。當(dāng)部分是整體不可分割的一部分時,稱為組成(composition)關(guān)聯(lián)。組成關(guān)系擁有其被關(guān)聯(lián)的部分,兩者之間可能擁有“終身關(guān)系”,即,它們被同時建立和清除。聚集和組成都具有傳遞性。銀行賬戶雇員0..*1..*(3)泛化(generalization)定義:泛化關(guān)系是繼承機(jī)制中產(chǎn)生的類與類之間的關(guān)系“isapartof”關(guān)系:一個事物是另一個事物的種類。圖形表示:一條帶有空心大箭頭的有向?qū)嵕€,箭頭指向父類。例:分析下面各類之間的關(guān)系。用類圖表示出來。1、電腦、主板、CPU、內(nèi)存之間的關(guān)系。2、動物、老虎、狗之間的關(guān)系。類圖和對象圖的區(qū)別:類圖

:類具有3個分欄:名稱、屬性和操作;在類的名稱分欄中只有類名;類的屬性分欄定義了所有屬性的特征;類中列出了操作;類使用關(guān)聯(lián)連接,關(guān)聯(lián)使用名稱、角色、多重性以及約束等特征定義;類代表的是對對象的分類所以必須說明可以參與關(guān)聯(lián)的對象的數(shù)目。對象圖:對象只有兩個分欄:名稱和屬性

對象的名稱形式為“對象名:類名”,匿名對象的名稱形式為“:類名”

對象則只定義了屬性的當(dāng)前值,以便用于測試用例或例子中;對象圖中不包括操作,因為對于同屬于同一個類的對象而言,其操作是相同的;

對象使用鏈連接、鏈擁有名稱、角色,但是沒有多重性。對象代表的是單獨的實體,所有的鏈都是一對一的,因此不涉及到多重性。類名屬性服務(wù)類名類的完整和簡化表示符號對象名:類名屬性對象名:類名對象的完整和簡化表示符號想一想,在我們通過黑盒方法繪制了高層用例后,還需采用白盒法在用例場景中采用文字書寫該用例的實現(xiàn)過程。而對于復(fù)雜的用例,由于處理流程復(fù)雜,可以采用()來描述用例場景的內(nèi)容?;顒訄D活動圖被設(shè)計用于簡化描述一個過程或操作的工作步驟?;顒訄D既可以描述普通的順序活動,也可以描述在不同條件下的分支選擇活動,具體可以使用一個菱形的判斷標(biāo)志來實現(xiàn)。另外,活動圖對表示并發(fā)行為也很有用。在活動圖中,使用一個稱為同步條的水平粗線可以將一條轉(zhuǎn)移分為多個并發(fā)執(zhí)行的分支,或?qū)⒍鄠€轉(zhuǎn)移合為一條轉(zhuǎn)移。此時,只有輸入的轉(zhuǎn)移全部有效,同步條才會觸發(fā)轉(zhuǎn)移,進(jìn)而執(zhí)行后面的活動。狀態(tài)圖(StateDiagram)用來描述一個特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個對象在其生命周期中的行為。一個狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。狀態(tài)所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化。狀態(tài)圖中定義的狀態(tài)有:初態(tài)、終態(tài)、中間狀態(tài)、復(fù)合狀態(tài)。其中,初態(tài)是狀態(tài)圖的起始點,而終態(tài)則是狀態(tài)圖的終點。一個狀態(tài)圖只能有一個初態(tài),而終態(tài)則可以有多個。狀態(tài)名轉(zhuǎn)移條件初態(tài)終態(tài)簡化狀態(tài)狀態(tài)轉(zhuǎn)移狀態(tài)圖模型元素的表示符號三、定義系統(tǒng)行為順序圖:順序圖是交互圖的一種,用以顯示對象之間的動態(tài)合作關(guān)系。它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時也顯示對象之間的交互過程??梢酝ㄟ^交互圖來定義系統(tǒng)行為。它主要是用來描述對象之間的動態(tài)合作關(guān)系以及合作過程的行為次序。它常常用來顯示用例中所涉及的對象和這些對象之間的消息傳遞情況。交互圖有兩種形式,即順序圖和合作圖。它們分別從不同的側(cè)面來描述對象間的交互關(guān)系。

順序圖有兩個軸:水平軸表示不同的對象,垂直軸表示時間。在順序圖中,對象用一個帶有垂直虛線的矩形框表示,在矩形框內(nèi)標(biāo)有對象名和類名。垂直虛線稱為對象的生命線,它代表在對象之間的交互作用中該對象的生命周期。兩根對象的生命線之間的箭頭表示消息。消息的箭頭形狀指明消息的類型是發(fā)送還是返回。消息按發(fā)生的時間順序從上到下排列。每個消息旁注明消息名稱。返回自身生命線的消息箭頭叫回授,表示對象發(fā)送消息給自己。一個申請貸款的順序圖選擇座位遞交服務(wù)請求完成貸款服務(wù)順序圖

和合作圖之間的聯(lián)系與區(qū)別*順序圖和合作圖適合描述單個用例中幾個對象的行為。順序圖:強(qiáng)調(diào)事情發(fā)生的順序;能明顯地顯示消息的順序;更適于觀察整個工作流,更適于實時、復(fù)雜的系統(tǒng)。合作圖:強(qiáng)調(diào)對象的布局;顯示交互關(guān)系;更適于協(xié)作模式

UML中用于描述系統(tǒng)動態(tài)行為的四個圖(狀態(tài)圖、順序圖、合作圖和活動圖)均可用于系統(tǒng)的動態(tài)建模,但它們各自的側(cè)重點不同,分別用于不同的目的。首先,不要對系統(tǒng)中的每個類都畫狀態(tài)圖。盡管這樣做很完美,但太浪費精力,其實你可能只關(guān)心某些類的行為。正確的做法是:為幫助理解類而畫它的狀態(tài)圖。狀態(tài)圖描述跨越多個用例的單個對象的行為,而不適合描述多個對象間的行為合作。為此,常將狀態(tài)圖與其它技術(shù)(如順序圖、合作圖和活動圖)組合使用。

順序圖和合作圖適合描述單個用例中幾個對象的行為。其中順序圖突出對象間交互的順序,而合作圖的布局方法能更清楚地表示出對象之間靜態(tài)的連接關(guān)系。當(dāng)行為較為簡單時,順序圖和合作圖是最好的選擇。但當(dāng)行為比變復(fù)雜時,這兩個圖將失去其清晰度。因

溫馨提示

  • 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

提交評論