版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第一章 面向?qū)ο蟮能浖こ毯喗橐弧?傳統(tǒng)軟件工程方法存在的問題軟件工程提出至今,并沒有從根本上解決軟件開發(fā)問題,軟件危機(jī)現(xiàn)象依然存在。就其原因:主要是隨著軟件應(yīng)用范圍的擴(kuò)大,軟件問題越來越復(fù)雜,但也有傳統(tǒng)軟件工程本身存在的問題,表現(xiàn)在:1、 預(yù)定義需求的假設(shè)是不現(xiàn)實(shí)的:需求是模糊的、變化的;需求的溝通是困難的。2、 結(jié)構(gòu)化分析和設(shè)計(jì)方法存在的問題:需求以功能為基礎(chǔ),分析和設(shè)計(jì)以過程為基礎(chǔ)。3、 思維方式(認(rèn)識(shí)、分析問題的思想方法)與人們平常的習(xí)慣不一致。為了解決這一問題,軟件工程有了新的發(fā)展:快速原型法和面向?qū)ο蠓?。下面只介紹面向?qū)ο蟮能浖こ谭椒?。二?面向?qū)ο蟮能浖こ谭椒ê喗?、 基本思
2、想:使軟件開發(fā)的過程、方法和思想與現(xiàn)實(shí)問題的結(jié)構(gòu)以及人類認(rèn)識(shí)和解決問題的方法相一致。要點(diǎn):l 認(rèn)為客觀世界是由各種對(duì)象組成的l 所有對(duì)象都劃分成各種對(duì)象類l 自然界中的所有類組成類的層次結(jié)構(gòu)l 對(duì)象之間通過消息相互聯(lián)系 面向?qū)ο?= 對(duì)象 + 類 + 繼承 + 通訊軟件開發(fā)的優(yōu)點(diǎn):l 與人類習(xí)慣的思維方式一致l 穩(wěn)定性好:傳統(tǒng)方法基于功能的分析和分解,功能的變化常常會(huì)引起軟件系統(tǒng)結(jié)構(gòu)的變化。而在OO方法中,功能的變化往往采用從已有類派生出新的子類的方法以實(shí)現(xiàn)功能的擴(kuò)充和修改。l 可重用性好:對(duì)象和類都是可重用的軟件“預(yù)制件”,通過參數(shù)化和實(shí)例化增加重用性。l 可維護(hù)性好:獨(dú)立性好,穩(wěn)定、易于修
3、改、修改造成的影響小、易于理解。2、 基本概念:l 對(duì)象:是現(xiàn)實(shí)中任何可以明確界定和區(qū)別的事物或其抽象的實(shí)體和概念。Object = < ID,MS,DS,MI >其中:ID:標(biāo)識(shí);MS:操作集合;DS:數(shù)據(jù)結(jié)構(gòu);MI:消息集合l 類:一組對(duì)象共同屬性(數(shù)據(jù)和操作)的抽象。l 實(shí)例:一個(gè)具體的個(gè)體。l 消息:對(duì)象操作的具體調(diào)用說明。l 方法:操作的具體算法。l 屬性:描述對(duì)象特性的數(shù)據(jù)。l 繼承:子類自動(dòng)共享父類中定義的數(shù)據(jù)和方法的機(jī)制。l 對(duì)象之間的關(guān)系:ISA(抽象),PART OF(聚合),關(guān)聯(lián)(除此之外)。l 多態(tài)性:類層次中不同對(duì)象對(duì)同一消息的響應(yīng)方式不同的機(jī)制(不同動(dòng)物
4、對(duì)“叫”不同響應(yīng))。l 重載:函數(shù)重載:同一作用域內(nèi)若干參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名 運(yùn)算符重載:同一運(yùn)算符可以施加于不同類的操作數(shù)上。3、 幾種主要的面向?qū)ο蟮能浖こ谭椒ǖ母艣rCoad/Yourdon :OOA/OOD方法;OOA的過程和步驟:標(biāo)識(shí)對(duì)象,標(biāo)識(shí)結(jié)構(gòu),標(biāo)識(shí)主題,定義屬性,定義服務(wù)。OOD設(shè)計(jì):系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)系統(tǒng)設(shè)計(jì):人機(jī)交互部分;問題域部分;任務(wù)管理部分;數(shù)據(jù)管理部分對(duì)象設(shè)計(jì):關(guān)聯(lián)設(shè)計(jì);服務(wù)設(shè)計(jì)Booch方法;基于四個(gè)主圖和兩個(gè)輔圖;主圖:類圖(類及其關(guān)系:P24),對(duì)象圖(對(duì)象和對(duì)象間消息),模塊圖(實(shí)現(xiàn)類和對(duì)象的程序構(gòu)件:P24)和進(jìn)程圖(分布環(huán)境下,進(jìn)程與C
5、PU及硬件的關(guān)系:P25)輔圖:狀態(tài)圖(描述一個(gè)類的狀態(tài)變化和變化條件:P25),時(shí)序圖(對(duì)象交互的時(shí)間特性:P26)方法的過程和步驟:P26Rambough:OMT方法(對(duì)象模型技術(shù),也叫三視點(diǎn)技術(shù));基于三個(gè)模型:對(duì)象模型;動(dòng)態(tài)模型和功能模型。(對(duì)象模型技術(shù):OMT,也叫三視點(diǎn)技術(shù))l 對(duì)象模型:表示問題域中的對(duì)象和類的組成以及它們之間的關(guān)系。類名屬性服務(wù)類名屬性服務(wù) 類 對(duì)象(加虛框)對(duì)象與對(duì)象之間的關(guān)系有:歸納(ISA);組合(Part of);其它關(guān)聯(lián)關(guān)系(數(shù)量、關(guān)聯(lián)性質(zhì):用鏈屬性、用限定以及消息關(guān)聯(lián)等)。它們的含義和表示方法此處略。具體表示方法與書上P277有一點(diǎn)差異。l 動(dòng)態(tài)模型
6、:對(duì)所有對(duì)象由于受外來事件的影響而產(chǎn)生的行為和狀態(tài)變化的抽象表示。表示形式:狀態(tài)圖(具體形式略)。事件(操作):表示某個(gè)特定時(shí)刻所發(fā)生的事情,它瞬間完成。狀態(tài):表示對(duì)象在生命期中某個(gè)特定階段所處的某種形態(tài),用對(duì)象屬性的一組取值表示,它是持續(xù)性的。行為(活動(dòng)):對(duì)象達(dá)到某種狀態(tài)時(shí)所做的一系列處理操作。l 功能模型:表示系統(tǒng)所完成的“功能”,用DFD來表示。三個(gè)模型的關(guān)系:對(duì)象模型表示是誰,動(dòng)態(tài)模型表示了在什么時(shí)候、什么情況下,功能模型表示做了什么,完成了什么功能。Jacboson:OOSE方法主要通過建立五個(gè)模型來完成系統(tǒng)的開發(fā),這五個(gè)模型是:l 需求模型(RM):主要包括用例圖(Use Cas
7、e,是OOSE的核心),問題域?qū)ο竽P鸵约叭伺c系統(tǒng)接口界面。l 分析模型(AM):通過定義實(shí)體對(duì)象、界面對(duì)象和控制對(duì)象來描述系統(tǒng)的邏輯關(guān)系,建立問題域?qū)ο笈cAM中三個(gè)對(duì)象之間的關(guān)系。l 設(shè)計(jì)模型(DM):考慮AM在真實(shí)環(huán)境中的實(shí)現(xiàn),并表現(xiàn)一個(gè)個(gè)類模塊,有較詳細(xì)的算法實(shí)現(xiàn)。l 實(shí)現(xiàn)模型(IM):對(duì)DM的基于某種語言的具體實(shí)現(xiàn)。l 測試模型(TM):類底層測試、組裝測試、集成測試等,依據(jù)RM和AM。OOSE開發(fā)的三個(gè)核心步驟:分析(RM、AM),構(gòu)造(DM、IM)和測試(TM)有關(guān)用例(Use Case)以及用例之間的擴(kuò)展和使用關(guān)系以后再介紹。UML:Unified Modeling Langua
8、ge來源:以Booch、OOSE以及OMT方法為基礎(chǔ),通過改進(jìn)和演化而來。軟件的開發(fā)過程就是以計(jì)算機(jī)能夠運(yùn)行的形式對(duì)現(xiàn)實(shí)問題及其問題的解法進(jìn)行建模的過程。UML不僅可以用來進(jìn)行軟件建模,也可以用于其它方面的建模。4、 面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法(Coad與Yourdon分析和設(shè)計(jì)方法)(基于OMT的OOA/OOD的方法)1)基本概念和基本方法:對(duì)象的五個(gè)層次:類-&-對(duì)象;結(jié)構(gòu)(關(guān)聯(lián)關(guān)系);主題;屬性;服務(wù)。主題:是指導(dǎo)讀者理解大型復(fù)雜模型的一種機(jī)制,通過主題將一個(gè)大型復(fù)雜的對(duì)象模型分解成一個(gè)個(gè)不同概念范疇。需求陳述:通過調(diào)研形成的,對(duì)系統(tǒng)應(yīng)做什么的一種自然語言描述。2)OOA的基本方法
9、:理解、表達(dá)與驗(yàn)證-反復(fù)的過程調(diào)研形成需求陳述-識(shí)別類-&-對(duì)象-識(shí)別結(jié)構(gòu)-劃分主題-定義屬性-定義動(dòng)態(tài)模型-定義功能模型-定義服務(wù)。l 建立對(duì)象模型:確定類-&-對(duì)象:從需求陳述中找名詞,找出侯選的類-&-對(duì)象,篩選出正確的類-&-對(duì)象。確定關(guān)聯(lián):從需求陳述中找動(dòng)詞詞組,找出侯選的關(guān)聯(lián),篩選出正確的關(guān)聯(lián)劃分主題:按問題域,不要按功能,對(duì)應(yīng)以后的子系統(tǒng)。確定屬性:從需求陳述中找名詞詞組或形容詞,找出侯選的屬性,篩選出正確的屬性。識(shí)別繼承:自底向上或自頂向下。反復(fù)驗(yàn)證和修改。l 建立動(dòng)態(tài)模型:編寫腳本(設(shè)想用戶界面)-提取事件-排列事件次序-畫事件跟蹤圖(原P27
10、9)-畫狀態(tài)圖(原P285)l 建立功能模型:畫數(shù)據(jù)流程圖(DFD)l 定義服務(wù):常見服務(wù):常規(guī)行為;從事件導(dǎo)出;與DFD中的處理框?qū)?yīng),利用繼承減少冗余服務(wù)。3)OOD的基本方法分析:建立問題域模型設(shè)計(jì):建立解空間模型。面向?qū)ο蟮脑O(shè)計(jì)分成:系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)兩部分系統(tǒng)設(shè)計(jì):主要完成目標(biāo)系統(tǒng)的高層結(jié)構(gòu)設(shè)計(jì)以及與實(shí)現(xiàn)策略有關(guān)的設(shè)計(jì)。主要包括:問題域子系統(tǒng)設(shè)計(jì);人-機(jī)交互子系統(tǒng)的設(shè)計(jì);任務(wù)管理子系統(tǒng)的設(shè)計(jì)以及數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì)等內(nèi)容:對(duì)象設(shè)計(jì):包括服務(wù)設(shè)計(jì)和關(guān)聯(lián)設(shè)計(jì)。面向?qū)ο笤O(shè)計(jì)結(jié)果的優(yōu)化處理。關(guān)于面向?qū)ο蟮脑O(shè)計(jì)今后就不再講了,本課程重點(diǎn)介紹基于UML的面向?qū)ο蟮姆治龇椒?。關(guān)于面向?qū)ο蟮膶?shí)現(xiàn)主要
11、是選擇一個(gè)語言和開發(fā)環(huán)境,按設(shè)計(jì)結(jié)果進(jìn)行實(shí)現(xiàn)。面向?qū)ο蟮臏y試有其特殊性和復(fù)雜性,以后再講第二章UML簡介一、 UML的出現(xiàn)和發(fā)展四個(gè)發(fā)展階段:l 各自為政(70年代中93年,尤其是89年以后):50多種,主要的以上介紹的四種,使用無所適從,統(tǒng)一成為需要和趨勢(shì)。l 統(tǒng)一階段(9496):Booch和OMT 結(jié)合形成UM0.8+OOSEUML0.9和UML0.91l 標(biāo)準(zhǔn)化(9697):企業(yè)參與,成立UML成員協(xié)會(huì),發(fā)布UML1.0(97.1)和UML1.1(97.10)l 工業(yè)化(97今):97.11,UML正式被OMG(Object Management Group)正式接受為標(biāo)準(zhǔn)后,大大推動(dòng)
12、了UML在工業(yè)界的應(yīng)用。二、 UML的主要內(nèi)容和特點(diǎn)1、 主要內(nèi)容:5大類9種圖形。l 用例圖:從用戶的角度描述系統(tǒng)的功能,一個(gè)用戶可以扮演多種角色。l 靜態(tài)圖:類圖(類及其類與類的關(guān)系,長期有效),對(duì)象圖(一段時(shí)間有效)和包圖。l 行為圖:狀態(tài)圖(對(duì)必要的類),活動(dòng)圖(對(duì)用例,可描述并發(fā)活動(dòng))l 交互圖:描述對(duì)象間的交互關(guān)系。包括:順序圖(強(qiáng)調(diào)時(shí)序)和合作圖(強(qiáng)調(diào)連接)l 實(shí)現(xiàn)圖:構(gòu)件圖(物理實(shí)現(xiàn)),配置圖(實(shí)現(xiàn)系統(tǒng)的體系結(jié)構(gòu))2、 特點(diǎn):l 統(tǒng)一性:統(tǒng)一了Booch、OMT和OOSE的概念和方法,帶來了廣泛的認(rèn)同,表達(dá)形式更加清晰、更加一致。l 發(fā)展性:不僅吸取了眾家之長,而且在演變過程中
13、有所發(fā)展,因而更加實(shí)用,表達(dá)能力更強(qiáng)。l 完整性:實(shí)用范圍更加廣泛(不僅用于信息系統(tǒng)建模,還可以用于機(jī)械系統(tǒng)、企業(yè)系統(tǒng)、商業(yè)系統(tǒng)等的建模);支持從需求、設(shè)計(jì)、實(shí)現(xiàn)直到系統(tǒng)的測試和維護(hù)的系統(tǒng)的全生命周期。三、 UML面向?qū)ο蠓治龅囊话氵^程1、 調(diào)研、交流形成系統(tǒng)的問題域描述2、 從用戶的角度,確定系統(tǒng)的邊界、主要功能和活動(dòng),建立用例模型3、 深入分析用例中用戶需求的功能,分析這些功能實(shí)現(xiàn)的活動(dòng)。使用順序圖、合作圖和活動(dòng)圖來輔助進(jìn)行。4、 分析用戶功能的完成基礎(chǔ),建立類和對(duì)象模型。5、 對(duì)某些具有復(fù)雜狀態(tài)變化關(guān)系的類建立狀態(tài)圖,深入分析它們的行為和狀態(tài)的變化。6、 在上述過程中,要收集并整理系統(tǒng)的
14、性能指標(biāo),研究系統(tǒng)的測試策略和測試方法,并對(duì)照用例模型檢測系統(tǒng)需求結(jié)果。注意:1、 用例驅(qū)動(dòng)2、 分析要建立系統(tǒng)的需求模型,主要包括靜態(tài)模型和動(dòng)態(tài)模型。3、 雖與設(shè)計(jì)無明顯的界限,但不要過早引入設(shè)計(jì)因素和實(shí)現(xiàn)細(xì)節(jié)。四、 有關(guān)本課程介紹內(nèi)容的幾點(diǎn)說明:1、 重點(diǎn)介紹基于UML的面向?qū)ο蟮姆治鼋?,有關(guān)設(shè)計(jì)和實(shí)現(xiàn)等較少涉及。2、 側(cè)重介紹UML面向?qū)ο蟮姆治鼋5膶?shí)踐操作,不介紹UML形式化的描述語言O(shè)CL(Object Constraint Language)。3、 以UML1.1為基礎(chǔ)進(jìn)行介紹,與UML1.3版在細(xì)節(jié)上有區(qū)別:如:用例的使用(uses)和擴(kuò)展(extends)關(guān)系在UML1.3
15、中已被用例的繼承關(guān)系所代替。4、 現(xiàn)有UML版本存在的問題:l 構(gòu)件圖和配置圖的描述能力不夠l 不支持用戶和系統(tǒng)交互界面建模l 不能有效支持?jǐn)?shù)據(jù)密集型應(yīng)用系統(tǒng)建模目前UML仍然在發(fā)展。第三章 UML靜態(tài)建模機(jī)制靜態(tài)建模:通過某些手段和方法對(duì)系統(tǒng)的靜態(tài)結(jié)構(gòu)進(jìn)行描述的過程。UML靜態(tài)建模機(jī)制:主要包括用例圖、類和對(duì)象圖、包圖以及構(gòu)件圖和配置圖。本章主要介紹用例圖、類和對(duì)象圖,簡單介紹包圖。構(gòu)件圖和配置圖與系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)有關(guān),而且UML中這兩類圖還不是很成熟,因此就不介紹了。一、用例圖(Use Case)1、 幾個(gè)概念:角色、用例、用例圖、擴(kuò)展關(guān)系、使用關(guān)系角色:是系統(tǒng)用戶為完成系統(tǒng)功能而表現(xiàn)的職
16、責(zé)體現(xiàn)。l 角色不同于用戶:一個(gè)用戶在一個(gè)系統(tǒng)中可承擔(dān)多個(gè)不同的角色,一個(gè)角色也有可能由多個(gè)用戶擔(dān)當(dāng)。l 角色與系統(tǒng)的功能實(shí)現(xiàn)有關(guān),也一定與系統(tǒng)具有交互行為。l 角色是一個(gè)類,而不是類的實(shí)例,因此角色之間可以具有繼承關(guān)系。l 角色的表示:稻草人(見P36)用例:是系統(tǒng)角色對(duì)系統(tǒng)的使用情況和過程,用來描述角色感受的完整的系統(tǒng)功能。UML定義為:“由系統(tǒng)執(zhí)行的一個(gè)動(dòng)作序列,并能產(chǎn)生可觀察的結(jié)果值給某個(gè)特定的角色”l 用例通常由某個(gè)角色來(直接或間接)驅(qū)動(dòng)(啟動(dòng))執(zhí)行。l 用例把執(zhí)行結(jié)果的值反饋給角色。l 用例在功能上具有完整性。應(yīng)包括用例執(zhí)行過程中可能產(chǎn)生的諸多變化情況、錯(cuò)誤處理以及異常情況處理等
17、。l 用例是一個(gè)類。用例的實(shí)例化通常稱為“場景”,它描述系統(tǒng)執(zhí)行的一個(gè)特定情況。例如:“李四去銀行用填單方式取了300元錢”,它是“取款”用例的實(shí)例。l 用例的表示:橢圓(見P51)用例圖:包括角色、系統(tǒng)邊界、用例以及用例和角色之間的關(guān)聯(lián)(驅(qū)動(dòng)執(zhí)行和返回結(jié)果)。如圖5.1,見P36。擴(kuò)展關(guān)系:表明用例間的一般/特殊化的關(guān)系,它反映用例的變化情況,它用UML的“擴(kuò)展”模板類型來表示,表示如圖5.6,見P42。指向的為“一般化用例”。是一種繼承關(guān)系(特殊繼承一般)。使用關(guān)系:表明用例間的相似和抽象的關(guān)系,它反映用例間的相似性,它用UML的“擴(kuò)展”模板類型來表示,表示如圖5.7,見P43。指向的為“
18、相似和抽象的用例”。是一種繼承關(guān)系(使用繼承被使用)。2、 角色的識(shí)別和描述角色識(shí)別是建立用例模型的第一步,具體步驟如下:l 和用戶深入交流,明確系統(tǒng)功能、用戶的工作和責(zé)任l 通過回答以下問題(P37上面)輔助角色識(shí)別:(1) 誰使用系統(tǒng)的主要功能?(2) 誰需要系統(tǒng)的支持以完成日常的工作?(3) 誰負(fù)責(zé)維護(hù)、管理并保持系統(tǒng)的正常的運(yùn)行?(4) 系統(tǒng)需要應(yīng)付(或處理)哪些硬件設(shè)備?(5) 系統(tǒng)需要和哪些外部系統(tǒng)交互?(6) 誰對(duì)系統(tǒng)產(chǎn)生的結(jié)果(值)感興趣?l 根據(jù)系統(tǒng)需求和角色的作用,合理確定系統(tǒng)的角色。例子見P37P38 ATM系統(tǒng)角色的表示與描述見P38。3、 用例的識(shí)別和描述在角色識(shí)別的
19、基礎(chǔ)上,進(jìn)一步識(shí)別用例是建立用例模型的關(guān)鍵,主要步驟如下:l 明確問題領(lǐng)域和系統(tǒng)業(yè)務(wù)流程,整理出系統(tǒng)的功能需求。l 結(jié)合識(shí)別出的角色以及其承擔(dān)的責(zé)任,輔助識(shí)別用例。相關(guān)問題(P39中間)如下:(1) 某個(gè)角色要求系統(tǒng)為其提供什么功能?該角色需要做哪些工作?(2) 角色需要閱讀、創(chuàng)建、銷毀、更新或存儲(chǔ)系統(tǒng)中的某些信息嗎?(3) 系統(tǒng)中的事件一定要告訴角色嗎?角色需要告訴系統(tǒng)一些什么嗎?那些系統(tǒng)內(nèi)部的事件從功能的角度代表什么?(4) 由于系統(tǒng)新功能的識(shí)別,角色的日常工作被簡化或效率提高了嗎?l 針對(duì)系統(tǒng)需求和功能要求,輔助識(shí)別用例。相關(guān)問題(P39下面)如下:(1) 系統(tǒng)需要什么樣的輸入/輸出?輸
20、入來自哪里?輸出去往哪里?(2) 該系統(tǒng)的當(dāng)前情況存在哪些主要問題?l 進(jìn)行用例描述(P40P41兩種描述形式)l 識(shí)別用例的擴(kuò)展和使用關(guān)聯(lián)l 按規(guī)范要求建立用例模型l 檢查、核對(duì)用例模型,重點(diǎn)檢查角色和用例之間的關(guān)系,有關(guān)問題(P43下面)如下:(1) 是否每個(gè)用例都明確地解決了某個(gè)角色的相關(guān)問題?(2) 用例對(duì)應(yīng)著一個(gè)完整的功能,在功能實(shí)現(xiàn)的業(yè)務(wù)步驟中是否包含了應(yīng)有的變化情況、出錯(cuò)情況以及異常處理情況?(3) 是否所有的角色都存在一個(gè)用例與之關(guān)聯(lián)?(4) 代表共同職責(zé)的角色間是否存在著相似性?如果有,則抽象出基類角色。(5) 某些用例間是否存在著相似性?如果有,則引入使用關(guān)系。(6) 某些
21、用例間是否存在著特殊和變化的情況?如果有,則引入擴(kuò)展關(guān)系。(7) 存在有任何角色或用例,它們沒有相關(guān)聯(lián)的用例或角色嗎?如果有,則一定有問題,要進(jìn)行處理。(8) 還有什么已知的系統(tǒng)功能沒有被用例處理嗎?如果有,則需要建立新的用例來處理這些功能。用例模型建立起來以后,要及早與用戶進(jìn)行交流和溝通;同時(shí)可安排人員進(jìn)行現(xiàn)場模擬系統(tǒng)的運(yùn)行,以驗(yàn)證系統(tǒng)用例模型的合理性和有效性,出現(xiàn)問題與用戶協(xié)商解決。實(shí)驗(yàn)一:用例模型實(shí)習(xí)l 實(shí)踐和討論:閱讀理解P43-P51定貨中心用例模型學(xué)會(huì)用Rose 工具畫出該用例模型自己看P179會(huì)議管理用例模型二、類圖(Class diagram)1、 幾個(gè)概念:(1)對(duì)象:是現(xiàn)實(shí)
22、中任何可以明確界定和區(qū)別的事物或其抽象的實(shí)體和概念。Object = < ID,MS,DS,MI >其中:ID:標(biāo)識(shí);MS:操作集合;DS:數(shù)據(jù)結(jié)構(gòu);MI:消息集合(2)類:一組對(duì)象共同屬性(數(shù)據(jù)和操作)的抽象。從面向?qū)ο蟮能浖_發(fā)的觀念看:需求分析階段主要是識(shí)別與問題域相關(guān)的類,設(shè)計(jì)階段可能要添加一些體現(xiàn)設(shè)計(jì)思想、方法的類,而到實(shí)現(xiàn)階段,還應(yīng)根據(jù)具體語言和環(huán)境的特點(diǎn),添加一些為方便實(shí)現(xiàn)的類,因此類的識(shí)別貫穿于整個(gè)開發(fā)過程。本課程我們重點(diǎn)關(guān)注與問題域相關(guān)的類。(3)實(shí)例:一個(gè)具體的個(gè)體。(4)屬性:描述對(duì)象特性的數(shù)據(jù)。在UML中,屬性的表示如下:可見性 屬性名稱:類型=默認(rèn)值約束特
23、性可見性包括:公有(public,+),受保護(hù)(protected,#),私有(private,-);名稱和類型是必須的(5)操作:對(duì)象的行為,表現(xiàn)為消息和方法。在UML中,操作的表示如下:可見性 操作名稱(參數(shù)表):返回類型約束特性(6)關(guān)聯(lián):是類之間實(shí)際存在關(guān)系的一種體現(xiàn),它反映類(對(duì)象)間的一種聯(lián)系,它要求相關(guān)聯(lián)的類之間必須有一種手段能彼此索引到對(duì)方,通常它是雙向的。例如:is-married。l 關(guān)聯(lián)的多樣性:類的對(duì)象之間的數(shù)目約束。表示(0。1),(1。*)等,缺省為1。l 關(guān)聯(lián)的方向性:缺省為雙向。l 關(guān)聯(lián)體現(xiàn)類對(duì)象的職責(zé):不同的關(guān)聯(lián)表示了類的對(duì)象在現(xiàn)實(shí)中擔(dān)當(dāng)了不同的角色和不同的職
24、責(zé),例如:P62圖5.14。l 遞歸關(guān)聯(lián):一個(gè)類到其本身的關(guān)聯(lián),如醫(yī)生例(P62圖5.14)。l 關(guān)聯(lián)的限定:通過一個(gè)屬性限定關(guān)聯(lián)數(shù)目。例如:文件目錄 * 1文件名l 關(guān)聯(lián)類:如果問題域需要關(guān)注關(guān)聯(lián)的屬性和操作,那么就要關(guān)聯(lián)表示為關(guān)聯(lián)類。如男人類與女人類之間的is-married 關(guān)系,如果問題本身要關(guān)心結(jié)婚時(shí)間、結(jié)婚年齡等內(nèi)容時(shí),就要引入關(guān)聯(lián)類(見P66,圖5.21)。另外,關(guān)聯(lián)類依賴于相應(yīng)的關(guān)聯(lián)而存在,關(guān)聯(lián)的消失必然引起關(guān)聯(lián)類的消失,而關(guān)聯(lián)類的消失可能會(huì)使問題域的某些信息丟失,從而使問題變得復(fù)雜化。例如:P66人和公司之間的顧傭關(guān)聯(lián),當(dāng)張三(具體對(duì)象)與四通公司(對(duì)象)之間存在顧傭關(guān)系時(shí),
25、顧傭關(guān)聯(lián)類有一個(gè)實(shí)例,而當(dāng)張三更換公司時(shí),即張三與四通公司之間不存在顧傭關(guān)系時(shí),關(guān)聯(lián)的消失至使關(guān)聯(lián)類的實(shí)例也隨之消失,按照這樣方式建立的關(guān)聯(lián)無法反映一個(gè)人的工作經(jīng)歷信息。解決的辦法是識(shí)別一個(gè)工作類,建立工作類與人之間的關(guān)系,把工作經(jīng)歷的信息作為工作類的屬性。(7)聚合(part-of):反映類之間的一種整體與部分的關(guān)系,表示見P68。聚合有以下集中形式:l 一般聚合:整體由部分(元素)組成,整體的撤消并不表示組成元素也一定要撤消,組成元素某一時(shí)刻只屬于某一個(gè)整體。例艦隊(duì)與艦。l 共享聚合:與一般聚合所不同的是:組成元素某一時(shí)刻可能會(huì)屬于多個(gè)整體。例人與組織。l 組成聚合:與以上兩種聚合不同的是
26、:整體的撤消其組成元素也一定要撤消。例:汽車與部件;論文與論文的組成部分等。(8)泛化(is-a):反映類(而非對(duì)象)之間的一種抽象與具體的關(guān)系,具體的類繼承了抽象類的所有屬性和行為,同時(shí)可以增加一些更具體的屬性和操作。表示見P69。l 繼承關(guān)系受抽象類中屬性和操作的性質(zhì)(公有、保護(hù)和私有)影響。l 一個(gè)類可以是某一抽象類的子類,同時(shí)也可以是其它一些具體類的抽象類。l 在抽象類中,其操作可以只定義其標(biāo)記和接口,不必一定要定義其實(shí)現(xiàn)方法。不定義操作實(shí)現(xiàn)方法的抽象類不會(huì)有任何對(duì)象。抽象類中操作的具體實(shí)現(xiàn)應(yīng)由其具體類實(shí)現(xiàn),不同的具體類對(duì)同一操作的實(shí)現(xiàn)可以由不同的方法,這就形成了“多態(tài)性”。例如:交通
27、工具中“駕駛”方法2、 類的識(shí)別方法:看起來容易,其實(shí)有難度:l 傳統(tǒng)的功能分解技術(shù)的影響l 把屬性當(dāng)作類具體方法:l 名詞識(shí)別方法:從系統(tǒng)描述中找名詞、名詞短語、名詞性代詞,單數(shù)名詞為對(duì)象,復(fù)數(shù)名詞為類。注意并非所有名詞都是類或?qū)ο?,有些可能作為屬性,看處理的問題。P53收音機(jī)例。l 實(shí)體識(shí)別方法:實(shí)體是系統(tǒng)中具有一定功能和狀態(tài)保持能力的信息體。這是一種直觀的識(shí)別方法,主要包括:系統(tǒng)處理的信息、系統(tǒng)內(nèi)處理的設(shè)備、與系統(tǒng)相關(guān)的外界交互系統(tǒng),系統(tǒng)中人員的職責(zé),系統(tǒng)中的部門或組織。關(guān)鍵是實(shí)體粒度的把握。P55超市例。l 使用分解技術(shù):從整體到部分,從大到小的梳理出一些具體類和對(duì)象,但原則上分解后的
28、類和對(duì)象一定要是系統(tǒng)所關(guān)心的。l 使用抽象技術(shù):根據(jù)相似性,抽象得到抽象類。l 從用例中識(shí)別類:針對(duì)每一個(gè)用例,輔助提出以下問題以識(shí)別類和對(duì)象:用例中出現(xiàn)了哪些實(shí)體?用例過程中產(chǎn)生并存儲(chǔ)了哪些信息?針對(duì)用例中的每個(gè)角色的輸入和輸出是什么?用例需要操作哪些硬設(shè)備?3、 類屬性的識(shí)別方法:類屬性的識(shí)別和確定與系統(tǒng)要處理的問題有關(guān),具體過程和方法如下:l 從通常的概念和語意完整性列出類的后選屬性。l 根據(jù)系統(tǒng)的問題域?qū)筮x屬性進(jìn)行一次初步的篩選。l 運(yùn)用Rumbaugh提出的7條原則檢查每個(gè)后選屬性。這7個(gè)原則見P58(是屬性還是類:地址;屬性存在是否合適:職業(yè);區(qū)分屬性名稱和關(guān)聯(lián)的職責(zé)名:教師;標(biāo)
29、識(shí)符問題;鏈接屬性:結(jié)婚日期;詳細(xì)程度;不一致或不相關(guān)的信息)。l 運(yùn)用Shlaer和Mellor推薦的6個(gè)原則來復(fù)查屬性,并進(jìn)行必要的調(diào)整。6個(gè)原則(見P59)是:屬性應(yīng)反映類在問題域的特征:編程年齡;屬性任何時(shí)刻只能有一個(gè)值:眼睛顏色;屬性不是實(shí)體組成部分的一個(gè)特征:屏幕尺寸;屬性不能有內(nèi)部結(jié)構(gòu):地址;屬性與該類對(duì)外關(guān)聯(lián)的類無關(guān);屬性與類之間的關(guān)系無關(guān)。4、 類操作的識(shí)別方法:通過用例來識(shí)別類的操作,具體通過回答以下問題:l 有哪些類與該類有交互?l 有交互的類與該類之間有哪些消息傳送?l 該類發(fā)送消息前或接受消息后要進(jìn)行怎樣的處理?l 該類本身或內(nèi)部有哪些操作要做?l 該類在系統(tǒng)中是否應(yīng)
30、具有另外一些職責(zé)?三、 包圖1、 概念:包圖實(shí)際上是依據(jù)問題域的特性和系統(tǒng)中模型元素的依賴性提供的對(duì)系統(tǒng)模型元素(類和用例)進(jìn)行管理的一種機(jī)制。有點(diǎn)類似于:主題或子系統(tǒng)等概念。表示見P72。2、 包之間存在依賴關(guān)系、泛化關(guān)系(具體和一般)以及細(xì)化關(guān)系。表示為帶尖頭的虛線。3、 包的可見性,有4級(jí):公共的、私有的、受保護(hù)的和實(shí)現(xiàn)級(jí)別(與私有類似),包接口的表示見P74圖5.36。實(shí)驗(yàn)二:類模型實(shí)習(xí)四、 實(shí)踐和討論:理解并熟悉會(huì)議管理系統(tǒng)的三個(gè)包,以及每個(gè)包的類圖。見P185-P186。學(xué)會(huì)用rose畫類圖和包圖。第四章 UML的動(dòng)態(tài)建模機(jī)制一、 概述動(dòng)態(tài)建模:識(shí)別、定義并描述系統(tǒng)元素的動(dòng)態(tài)特性和
31、行為的過程。在UML中主要包括:狀態(tài)圖、順序圖、合作圖和活動(dòng)圖。狀態(tài)圖:用來描述一個(gè)對(duì)象生命周期內(nèi)的狀態(tài)和狀態(tài)變化的條件。順序圖:描述對(duì)象間關(guān)于時(shí)間上的協(xié)作關(guān)系。合作圖:基于對(duì)象間的合作觀念描述的對(duì)象的協(xié)作關(guān)系?;顒?dòng)圖:描述多個(gè)對(duì)象間在交互時(shí)所采取的活動(dòng)。它是基于活動(dòng)的觀念來描述對(duì)象間的交互行為。對(duì)象間的交互都是基于消息的,幾中消息的表示見P76。消息:不同與日常的消息,它實(shí)際上是一種便于對(duì)象進(jìn)行交互的協(xié)議,消息是原語,不能分解、中斷,只能存儲(chǔ)、轉(zhuǎn)發(fā)。簡單消息:不重要的,不關(guān)心消息細(xì)節(jié)的消息。同步消息:發(fā)送者等待接受者回應(yīng)后才繼續(xù)執(zhí)行的消息。異步消息:發(fā)送者不必等待接受者回應(yīng)就可繼續(xù)執(zhí)行的消息
32、。要立刻返回的同步消息:強(qiáng)調(diào)接受者回應(yīng)的立即性的同步消息。二、 狀態(tài)圖1、 狀態(tài)圖有關(guān)概念及狀態(tài)圖的表示狀態(tài):是對(duì)象在生存周期過程中某一時(shí)間段的,具有穩(wěn)定性的存在狀況,表現(xiàn)為對(duì)象的外在形態(tài)和內(nèi)部特性兩個(gè)方面,其本質(zhì)是對(duì)象屬性的一組確定的取值。l 對(duì)象狀態(tài)的劃分與問題域所關(guān)注的問題以及關(guān)注問題的處理策略有關(guān)。例如:對(duì)于人,如果關(guān)注其生活狀態(tài),就可以分為:睡眠、休息和工作,如果關(guān)注其成長過程,就可以分成:幼兒、兒童、少年、青年、中年、老年等。l 對(duì)問題域的理解和問題域的本質(zhì)決定狀態(tài)的粒度大小。l 狀態(tài)的表示:初始狀態(tài):,終止?fàn)顟B(tài):,一般狀態(tài):圓角矩形。事件:系統(tǒng)中瞬間發(fā)生的事情,它是對(duì)象發(fā)生狀態(tài)變
33、化的前提條件。事件由對(duì)象響應(yīng),并發(fā)生狀態(tài)轉(zhuǎn)移,不被響應(yīng)的事件,事件就將丟失。為防止事件丟失,通常系統(tǒng)采用事件隊(duì)列來暫存事件。狀態(tài)轉(zhuǎn)移:由于事件的發(fā)生,對(duì)象狀態(tài)發(fā)生的變化叫狀態(tài)轉(zhuǎn)移。用: 表示。引起狀態(tài)轉(zhuǎn)移的事件標(biāo)在箭頭線之上,UML中的表示方法是:事件名(參數(shù)) 轉(zhuǎn)移條件/動(dòng)作表達(dá)式發(fā)送子句l 轉(zhuǎn)移條件表示狀態(tài)轉(zhuǎn)移的條件,當(dāng)事件和轉(zhuǎn)移條件都有時(shí),只有事件發(fā)生而且轉(zhuǎn)移條件滿足時(shí),狀態(tài)才發(fā)生轉(zhuǎn)移。例如:print(invoice)money>100。l 動(dòng)作表達(dá)式表示狀態(tài)轉(zhuǎn)移發(fā)生時(shí)對(duì)象要執(zhí)行的動(dòng)作,通常稱為:對(duì)象行為。執(zhí)行多個(gè)動(dòng)作時(shí)中間用“/”隔開。l 發(fā)送子句表示當(dāng)本次狀態(tài)轉(zhuǎn)移發(fā)生時(shí),同時(shí)
34、發(fā)生了影響其它對(duì)象狀態(tài)的事件。表示形式是:接收對(duì)象(組)·目標(biāo)事件名 (參數(shù))。例如:P81圖6.9中表示的當(dāng)電梯處于空閑狀態(tài)超時(shí)時(shí),電梯自動(dòng)運(yùn)行到一層:timer=timer-outself.下行(firstfloor).l 上述幾個(gè)部分都可以缺省。狀態(tài)變量:對(duì)象某一狀態(tài)下,與該狀態(tài)的變化或?qū)ο笤谠摖顟B(tài)下的動(dòng)作(或行為)緊密相關(guān)的變量叫狀態(tài)變量。如:電梯在空閑狀態(tài)時(shí)的timer變量。狀態(tài)活動(dòng):對(duì)象處于某一狀態(tài)時(shí),發(fā)生的動(dòng)作。包含狀態(tài)變量和狀態(tài)活動(dòng)的狀態(tài)的表示如P79圖6.5。電梯系統(tǒng)的狀態(tài)圖的解釋:l 初始的電梯狀態(tài)圖:P78 圖6.4l 帶有事件和狀態(tài)轉(zhuǎn)移條件的狀態(tài)圖:P81圖6
35、.8l 加入“發(fā)送子句”的狀態(tài)圖:P81圖6.9,減少一個(gè)狀態(tài):“行駛到一層”。l 擴(kuò)充的電梯狀態(tài):P82圖6.11,考慮“樓層按鈕”和“電梯”對(duì)象之間的關(guān)系。其它概念和表示:l 不同對(duì)象狀態(tài)圖之間的消息通訊(P84圖6.13);l 子狀態(tài)圖(或子狀態(tài),與子狀態(tài),P85圖6.15);l 狀態(tài)被異常中斷及其返回的處理(P85圖6.16)。2、 識(shí)別對(duì)象狀態(tài)空間l 識(shí)別對(duì)象在問題域的生命周期l 識(shí)別對(duì)象生命周期階段劃分策略l 按階段描述對(duì)象生命周期,得到后選狀態(tài)l 識(shí)別對(duì)象在每個(gè)狀態(tài)下的動(dòng)作,并調(diào)整狀態(tài)空間l 分析對(duì)象在每個(gè)狀態(tài)下的確定因素(對(duì)象數(shù)據(jù)屬性的取值)l 檢查對(duì)象狀態(tài)的確定性和狀態(tài)間的互
36、斥性3、 識(shí)別對(duì)象的狀態(tài)轉(zhuǎn)移l 按對(duì)象生命歷程識(shí)別簡單狀態(tài)轉(zhuǎn)移,形成狀態(tài)圖雛形。l 對(duì)初始狀態(tài)圖中的每個(gè)狀態(tài),仔細(xì)分析考慮狀態(tài)轉(zhuǎn)移的條件,得到詳細(xì)狀態(tài)圖。l 補(bǔ)充考慮一些其它因素:狀態(tài)轉(zhuǎn)移發(fā)生時(shí)是否發(fā)生動(dòng)作?是否會(huì)發(fā)生異常事件等?完善狀態(tài)圖。實(shí)驗(yàn)三:狀態(tài)模型實(shí)習(xí)電梯例子(P88-P91)的關(guān)鍵問題描述:l 問題描述l 電梯生命周期l 確定階段劃分策略:電梯運(yùn)行狀態(tài)l 5個(gè)狀態(tài):P89中間l 子狀態(tài):電梯停靠l 請(qǐng)求事件隊(duì)列:保存事件,體現(xiàn)電梯調(diào)度算法l 識(shí)別狀態(tài)轉(zhuǎn)移:關(guān)鍵是與事件隊(duì)列配合,實(shí)現(xiàn)上行捎帶和下行捎帶。注意:狀態(tài)圖只表示狀態(tài)及其狀態(tài)轉(zhuǎn)移,并不能記憶事件和歷史狀態(tài)。用Rose 畫出P9
37、0 圖6.17 電梯狀態(tài)圖。三、 交互模型1、有關(guān)概念狀態(tài)圖:反映的是一個(gè)對(duì)象在生命周期內(nèi)的狀態(tài)變化。交互模型:反映的對(duì)象間的交互行為。包括順序模型(順序圖)和合作模型(合作圖)。順序圖:既能反映對(duì)象之間(水平方向)的交互行為,又能反映對(duì)象的生命周期的時(shí)間順序(垂直方向),對(duì)象生命周期的結(jié)束用“X表示。消息:對(duì)象之間的交互行為用消息表示,消息有:同步、異步、簡單三種,消息表示可以帶有參數(shù),如:Change(CustomerData),也可帶有條件,如:print free print(file)。如需要考慮消息傳輸?shù)臅r(shí)間延遲,消息連線可以斜向下畫,如P95圖6.25。對(duì)象:對(duì)象的三種表示:Ob
38、ject :注明對(duì)象,而未注明類型:Class :注明類型,而未給出對(duì)象名稱Object:Class :既注明對(duì)象,又注明類型標(biāo)號(hào):在對(duì)象生命線旁邊標(biāo)注時(shí)間的符號(hào)和數(shù)字。有兩種含義:其一表示時(shí)間約束,如:P93圖6.21 ,其二表示消息的重復(fù)發(fā)送,如P94圖6.23。順序圖中新對(duì)象的創(chuàng)建與撤消:如緊急情況處理委員會(huì),P96圖6.27。合作圖:順序圖用于對(duì)象交互情況比較簡單,而且比較關(guān)心對(duì)象交互的時(shí)間特性的時(shí)候,但如果對(duì)象比較多,而且比較復(fù)雜,那么順序圖就非常龐大而雜亂,這時(shí)就要用合作圖來表示。合作圖與順序圖在表示形式上的異同:1、 對(duì)象的位置可以任意擺放,不必放在一行上。2、 對(duì)象的表示形式與
39、順序圖一致。3、 合作圖上對(duì)象之間的關(guān)系是一種連接關(guān)系,包括關(guān)聯(lián)和消息連接,并非順序圖上的單一的消息連接。4、 關(guān)聯(lián)無法象靜態(tài)結(jié)構(gòu)圖那樣,指明關(guān)聯(lián)的多樣性(因?yàn)楹献鲌D只有對(duì)象,沒有類),但可以注明對(duì)象在關(guān)聯(lián)中的職責(zé)。如P97圖6.29。5、 在合作圖中,消息連接以消息標(biāo)號(hào)形式表示。消息標(biāo)號(hào)的語法格式如下:前綴 消息條件 順序表達(dá)式 返回值=消息簽名前綴:用來指出那些在當(dāng)前消息發(fā)送之前要進(jìn)行處理和執(zhí)行的消息,表示形式是:序數(shù),/消息條件:同順序圖,表示本消息是否發(fā)送的條件。順序表達(dá)式:通過一定形式的編號(hào),描述消息的執(zhí)行順序和嵌套層次。其具體表示格式如下:整數(shù)|名字再現(xiàn)。整數(shù)是表示消息執(zhí)行順序的順
40、序碼,如:1,1.1,1.1.1等,名字表示兩個(gè)并發(fā)消息,如1.2a和1.2b。再現(xiàn)表示條件或重復(fù)執(zhí)行,有兩種表示形式:*重復(fù)表達(dá)式和條件表達(dá)式。如:*n:=1. .t。返回值:表示該消息的返回值。消息簽名:就是消息名稱和相應(yīng)的參數(shù)列表。消息標(biāo)號(hào)的例子見P99圖6.30。它反映了針對(duì)銷售員進(jìn)行定單和預(yù)算匯總過程的對(duì)象之間的合作關(guān)系。合作圖中的高級(jí)修飾:l 動(dòng)態(tài)創(chuàng)建和刪除對(duì)象:new和destroyed。臨時(shí)對(duì)象:transientl 其它高級(jí)修飾:global,local,parameter,self,vote等,含義見P99下面(略)。l 高級(jí)修飾除特別確定,否則不要指定,留到設(shè)計(jì)時(shí)進(jìn)行說明
41、。2、交互模型的識(shí)別 順序圖用于對(duì)象數(shù)目不多,且關(guān)注對(duì)象交互行為的時(shí)間特性。合作圖關(guān)注對(duì)象交互行為的空間特性(數(shù)量、關(guān)系),而與對(duì)象數(shù)目的多少無關(guān)。交互模型(即順序圖和合作圖)通常用來描述一個(gè)用例(是一個(gè)類),或一個(gè)場景(是一個(gè)實(shí)例);它描述的主體是對(duì)象,不是類,但在描述用例時(shí),有時(shí)就不能指定某個(gè)具體對(duì)象,描述交互行為時(shí),也要注意其一般性。交互模型的識(shí)別的步驟如下:l 識(shí)別用例相關(guān)的所有對(duì)象(類)l 根據(jù)用例活動(dòng)確定對(duì)象間的消息通訊(第一個(gè)消息由用例中的角色發(fā)出的)l 確定對(duì)象間的消息連接、消息格式和消息種類(同步、異步或簡單)l 排列消息發(fā)生的時(shí)間順序l 根據(jù)時(shí)間順序,確定消息編號(hào)(只對(duì)合作
42、圖)實(shí)驗(yàn)四:交互模型實(shí)習(xí)練習(xí):定貨系統(tǒng)交互模型識(shí)別過程和結(jié)果(P101-P103)用Rose畫出定貨用例的順序圖和合作圖,P103圖6.33和圖6.34。四、 活動(dòng)圖模型1、 為什么要活動(dòng)圖模型?l 狀態(tài)圖(一個(gè)對(duì)象)和交互模型(對(duì)象間)對(duì)于對(duì)象動(dòng)態(tài)行為的描述從理論上講是完備的。對(duì)象和系統(tǒng)的動(dòng)態(tài)行為表現(xiàn)為一系列有序的消息和消息響應(yīng)。l 從系統(tǒng)完成任務(wù)的角度看,系統(tǒng)的動(dòng)態(tài)行為表現(xiàn)為一系列有序的活動(dòng)。l 用例是用活動(dòng)的方式來描述系統(tǒng)任務(wù),但存在以下問題:(1) 用例中的活動(dòng)用文字描述(2) 無法描述系統(tǒng)中的并發(fā)活動(dòng)(3) 無法描述跨用例的任務(wù)和活動(dòng)(4) 流程圖無法描述并發(fā),也無法體現(xiàn)對(duì)象的觀念引
43、入活動(dòng)圖的主要目的是描述并發(fā)活動(dòng)和跨用例的系統(tǒng)任務(wù)。它是在參考Odell的事件圖和Petri網(wǎng)技術(shù)之上形成的支持并發(fā)活動(dòng)描述的工作流描述工具。2、 活動(dòng)圖的相關(guān)概念和表示活動(dòng):是完成系統(tǒng)任務(wù)所必須執(zhí)行的處理步驟,是系統(tǒng)流程中的一個(gè)活動(dòng)狀態(tài)?;顒?dòng)和狀態(tài)的表示是一致的:初始活動(dòng):黑色小圓圈;終止活動(dòng):牛眼;一般活動(dòng):圓角矩形。與狀態(tài)的區(qū)別:l 狀態(tài)與某一對(duì)象有關(guān),而活動(dòng)是與系統(tǒng)流程有關(guān)l 對(duì)象的狀態(tài)有活動(dòng)狀態(tài)(如電梯向上運(yùn)行)和靜止?fàn)顟B(tài)(如電梯空閑),活動(dòng)狀態(tài)可以對(duì)應(yīng)活動(dòng),而靜止?fàn)顟B(tài)不對(duì)應(yīng)活動(dòng)。l 靜止?fàn)顟B(tài)可以一直保持(如電梯空閑),而活動(dòng)狀態(tài)無法一直保持,因此狀態(tài)具有保持能力,而活動(dòng)無保持能力。
44、l 一個(gè)活動(dòng)結(jié)束,就會(huì)進(jìn)入下一個(gè)活動(dòng),而狀態(tài)的轉(zhuǎn)移需要事件的發(fā)生(狀態(tài)轉(zhuǎn)移),而活動(dòng)轉(zhuǎn)移(除第一個(gè)活動(dòng)轉(zhuǎn)移外),可能需要條件,但不一定有事件發(fā)生。如P105圖6.35。活動(dòng)轉(zhuǎn)移:表達(dá)從一個(gè)活動(dòng)進(jìn)入下一個(gè)活動(dòng)的觸發(fā)事件、條件或者執(zhí)行的動(dòng)作?;顒?dòng)轉(zhuǎn)移的表示: ;也可以指明動(dòng)作表達(dá)式和發(fā)送子句。如P106圖6.37。信號(hào):活動(dòng)轉(zhuǎn)移也可以用信號(hào)(實(shí)際上是消息傳遞的抽象)來表示,見P108圖6.42。并發(fā)和同步在活動(dòng)圖中的表示例:見P106圖6.38。在活動(dòng)圖中加入對(duì)象例:見P105圖6.36。泳道:對(duì)活動(dòng)圖中的活動(dòng)按完成這些活動(dòng)的對(duì)象(類)進(jìn)行分組的機(jī)制。見P107圖6.39。并發(fā)活動(dòng)建模例:烤箱例見
45、P110圖6.45。UML總共包含了5大類9種圖:一、 用例圖二、 靜態(tài)圖:類(對(duì)象)圖和包圖三、 行為圖:狀態(tài)圖和活動(dòng)圖四、 交互圖:順序圖和合作圖五、 實(shí)現(xiàn)圖:構(gòu)件圖和配置圖從面向?qū)ο蟮姆治鼋5慕嵌瓤?,只用到?類7種圖,而實(shí)現(xiàn)圖用于面向?qū)ο蟮脑O(shè)計(jì)。由于本課程重點(diǎn)介紹面向?qū)ο蟮姆治?,因此重點(diǎn)介紹前4類7種圖的相關(guān)概念和使用。構(gòu)件圖和配置圖的簡單介紹:構(gòu)件圖:描述組成系統(tǒng)的構(gòu)件以及相互之間的依賴關(guān)系。一個(gè)構(gòu)件包含了一個(gè)類(對(duì)象)的邏輯和實(shí)現(xiàn)兩個(gè)方面的信息。Rose 同樣支持構(gòu)件圖。配置圖:從計(jì)算機(jī)系統(tǒng)的軟、硬的物理組成上,描述要實(shí)現(xiàn)系統(tǒng)的設(shè)備、系統(tǒng)軟件、應(yīng)用軟件之間連接和依賴關(guān)系。Rose
46、 同樣支持配置圖,可顯示計(jì)算節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)和通信路徑,節(jié)點(diǎn)運(yùn)行的軟件構(gòu)件以及軟件構(gòu)件的邏輯單元等。有了以上就種圖的支持,就可以基于面向?qū)ο蟮母拍?,支持統(tǒng)一的軟件開發(fā)過程(RUP)。第五章 分析模型的測試一、分析模型測試概述1、 測試的對(duì)象不僅僅是程序代碼:傳統(tǒng)軟件工程中,需求和設(shè)計(jì)的復(fù)審,就可認(rèn)為是一種測試。分析模型測試主要用于驗(yàn)證和確認(rèn)系統(tǒng)分析模型的有效性和正確性,而代碼的測試主要用于驗(yàn)證代碼是否正確地實(shí)現(xiàn)了分析模型所規(guī)定的功能。2、 分析模型測試的重要性:需求、設(shè)計(jì)和編碼的時(shí)間順序特性;設(shè)計(jì)滿足了需求,代碼實(shí)現(xiàn)了設(shè)計(jì),雖然面向?qū)ο蟮能浖こ棠P鸵巡皇莻鹘y(tǒng)的瀑布模型,但遺留問題依然會(huì)給系統(tǒng)的修復(fù)帶來巨大的代價(jià)和成本。3、 測試方法:動(dòng)態(tài):依據(jù)代碼執(zhí)行的測試靜態(tài):基于代碼的靜態(tài)測試代碼走查;基于非代碼的需求和設(shè)計(jì)規(guī)格說明評(píng)審。依據(jù)測試代碼的邏輯和功能的不同分為:黑箱和白箱。評(píng)審:正式評(píng)審和非正式評(píng)審。正式評(píng)審:是一種
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年國家公務(wù)員錄用考試《申論》真題(地市卷)及答案解析
- 中班 秋天課件
- 2024年1月福建省普通高中學(xué)業(yè)水平合格性考試化學(xué)試題(原卷版)
- 社區(qū)少先隊(duì)課件
- 蘇教版科學(xué)課件
- 西南林業(yè)大學(xué)《材料研究及分析方法實(shí)驗(yàn)》2022-2023學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《新媒體短視頻運(yùn)營實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《前端開發(fā)技術(shù)》2021-2022學(xué)年期末試卷
- 頜下腺結(jié)石課件
- 西京學(xué)院《句法學(xué)概論》2022-2023學(xué)年期末試卷
- 物流中心崗位設(shè)置及崗位職責(zé)
- 九年級(jí)人自然社會(huì)教案
- 某市康復(fù)醫(yī)院建立的可行性報(bào)告
- 配位化學(xué) 第2章 配合物的結(jié)構(gòu)和成鍵理論
- 戰(zhàn)略合作框架協(xié)議(國企)
- 化妝品半成品成品檢驗(yàn)規(guī)程
- 2021年春二年級(jí)語文期中試卷
- 猴子撈月亮PPT課件
- 國防科技大學(xué)介紹(課堂PPT)
- 市政道路工程施工全套流程圖
- 空調(diào)設(shè)備維保前檢查報(bào)告
評(píng)論
0/150
提交評(píng)論