




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
6.1面向?qū)ο笈c面向過(guò)程的比較6.2面向?qū)ο蟮母拍?.3面向?qū)ο蟮姆治鲞^(guò)程
6.4UML概述6.5基于UML的需求分析第6章面向?qū)ο蟮男枨蠓治?/p>
面向?qū)ο蠓椒ㄅc技術(shù)研究的發(fā)展起源于20世紀(jì)60年代中期;出發(fā)點(diǎn)和基本原則是使開(kāi)發(fā)軟件的方法與過(guò)程盡可能接近人類(lèi)認(rèn)識(shí)世界解決問(wèn)題的方法與過(guò)程,這樣更好的把客觀世界的問(wèn)題空間映射到軟件的解空間仿真語(yǔ)言simula6720世紀(jì)80年代初期:smalltalk語(yǔ)言是面向?qū)ο蠹夹g(shù)發(fā)展的重要里程碑
6.1面向?qū)ο笈c面向過(guò)程的比較面向?qū)ο蟮陌l(fā)展結(jié)構(gòu)化方法存在問(wèn)題它是一種新興的程序設(shè)計(jì)方法,其基本思想是使用對(duì)象、類(lèi)、繼承、封裝、消息等基本概念來(lái)進(jìn)行程序設(shè)計(jì)?,F(xiàn)在面向?qū)ο蠓椒ㄒ焉钊氲接?jì)算機(jī)領(lǐng)域的幾乎所有分支,遠(yuǎn)遠(yuǎn)超出了程序設(shè)計(jì)的語(yǔ)言和編程技術(shù)的范疇。面向?qū)ο蠓椒ㄊ菍?duì)軟件生命周期的各個(gè)階段(包括分析、設(shè)計(jì)、編程、測(cè)試和維護(hù)),以及它所涉及的各個(gè)領(lǐng)域(如人機(jī)界面、數(shù)據(jù)庫(kù)、軟件復(fù)用、形式化方法、CASE工具等)已形成或正在形成面向?qū)ο蟮睦碚摵图夹g(shù)體系OOA、OOD、OOP、OOSE、OOOS、OODBMS……需求分析通常的需求分析具有兩方面的意義:1.在認(rèn)識(shí)事物方面:具有分析、認(rèn)識(shí)問(wèn)題域的方法、原則和策略,使開(kāi)發(fā)人員對(duì)問(wèn)題域的理解比不遵循軟件工程方法時(shí)更為全面、深刻和有效。2.在描述事物方面:具有較完整的體系和文檔規(guī)范,這比自然語(yǔ)言更為準(zhǔn)確,更利于后期開(kāi)發(fā)。結(jié)構(gòu)化的軟件工程在需求分析這兩方面存在不足:1.它對(duì)問(wèn)題描述不是以問(wèn)題域中固有的事物作為基本單位。2.它是在全局范圍內(nèi),以功能、數(shù)據(jù)或數(shù)據(jù)流為中心來(lái)進(jìn)行分析。所以這些方法的分析結(jié)果不能直接地映射問(wèn)題域,而是經(jīng)過(guò)了不同程度的轉(zhuǎn)化和重新組合,因而容易隱蔽一些對(duì)問(wèn)題理解的偏差。
面向?qū)ο蟮陌l(fā)展結(jié)構(gòu)化方法存在問(wèn)題問(wèn)題域計(jì)算機(jī)需求分析總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編程測(cè)試編程語(yǔ)言自然語(yǔ)言分析與設(shè)計(jì)鴻溝傳統(tǒng)的軟件工程方法傳統(tǒng)的軟件過(guò)程學(xué)
——過(guò)程設(shè)計(jì)面向?qū)ο蠓治雠c結(jié)構(gòu)化分析的根本區(qū)別1)結(jié)構(gòu)化分析的實(shí)體關(guān)系圖,關(guān)注實(shí)體的屬性和相互間的關(guān)系;而面向?qū)ο蟮姆治?,除此之外還有非常主要的一點(diǎn),就是關(guān)注實(shí)體的行為。2)結(jié)構(gòu)化分析的數(shù)據(jù)流圖,將數(shù)據(jù)和加工處理分開(kāi);而面向?qū)ο蟮姆治鍪菍?shù)據(jù)實(shí)體和他們的處理動(dòng)作視為不可分割的整體來(lái)考慮的。3)結(jié)構(gòu)化分析建造系統(tǒng)的元素是基于過(guò)程的功能,或者加工處理;而面向?qū)ο蠓治鼋ㄔ煜到y(tǒng)的基本元素是封裝了操作的對(duì)象類(lèi)。編程和測(cè)試1.分析方法的缺陷很容易產(chǎn)生對(duì)問(wèn)題域的錯(cuò)誤理解;2.分析與設(shè)計(jì)的鴻溝容易造成設(shè)計(jì)人員對(duì)分析結(jié)果的錯(cuò)誤轉(zhuǎn)換,導(dǎo)致在編程的過(guò)程中,程序員往往需要對(duì)分析員已經(jīng)認(rèn)識(shí)過(guò)的問(wèn)題域重新進(jìn)行認(rèn)識(shí),并可能產(chǎn)生與分析員不同的理解。軟件維護(hù)1.對(duì)使用中發(fā)現(xiàn)的錯(cuò)誤進(jìn)行修改。由于結(jié)構(gòu)化程序強(qiáng)調(diào)以功能為模塊劃分的標(biāo)準(zhǔn),模塊功能單一,導(dǎo)致修改時(shí),會(huì)產(chǎn)生新的問(wèn)題。2.對(duì)因需求發(fā)生變化而進(jìn)行修改。由于程序不能映射問(wèn)題域以及各個(gè)階段文檔不能對(duì)應(yīng),每一步追溯或修改都存在許多理解障礙。
編程、測(cè)試和維護(hù)面向?qū)ο蟮陌l(fā)展結(jié)構(gòu)化方法存在問(wèn)題面向?qū)ο筌浖こ谭椒ㄊ敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面運(yùn)用。它包括
面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì)面向?qū)ο缶幊堂嫦驅(qū)ο鬁y(cè)試面向?qū)ο蟮能浖S護(hù)問(wèn)題域計(jì)算機(jī)OOAOODOOPOOT面向?qū)ο蟮木幊陶Z(yǔ)言自然語(yǔ)言面向?qū)ο蟮能浖こ谭椒?.2面向?qū)ο蟮母拍蠲嫦驅(qū)ο蠓椒ǖ幕舅枷胧菑默F(xiàn)實(shí)世界中客觀存在的事物出發(fā)構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類(lèi)的自然思維方式。Coad和Yourdon給出定義:“面向?qū)ο?對(duì)象+類(lèi)+繼承+通信”。如果一個(gè)軟件系統(tǒng)是使用這樣4個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則我們認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮?。領(lǐng)域分析的輸入輸出
領(lǐng)域知識(shí)源面向?qū)ο蠓治鲱I(lǐng)域分析領(lǐng)域分析----創(chuàng)建可以廣泛地用于整個(gè)應(yīng)用領(lǐng)域范疇的可復(fù)用類(lèi)(構(gòu)件)航空銀行電子設(shè)備多媒體視頻領(lǐng)域分析領(lǐng)域分析模型技術(shù)文件已有應(yīng)用客戶評(píng)定專(zhuān)家建議需求提取類(lèi)復(fù)用標(biāo)準(zhǔn)模型語(yǔ)言領(lǐng)域分析活動(dòng):?定義被調(diào)查的領(lǐng)域,相關(guān)的設(shè)計(jì)、規(guī)約、代碼、政策、標(biāo)準(zhǔn)、規(guī)程等項(xiàng)?對(duì)領(lǐng)域中提取的項(xiàng),劃分種類(lèi)并提取模式,命名,并且分層。?收集領(lǐng)域中應(yīng)用的代表性樣本?分析每個(gè)樣本中的應(yīng)用,標(biāo)識(shí)對(duì)象、說(shuō)明理由、定義適應(yīng)性、估算復(fù)用率等?開(kāi)發(fā)對(duì)象分析模型,作為設(shè)計(jì)和構(gòu)造類(lèi)的基礎(chǔ)OOA的職責(zé):OOA針對(duì)問(wèn)題域運(yùn)用OO方法,建立一反映問(wèn)題域的OOA模型,而不考慮與系統(tǒng)實(shí)現(xiàn)有關(guān)的因素(包括編程語(yǔ)言、圖形用戶界面、數(shù)據(jù)庫(kù)等),從而使OOA獨(dú)立于具體的實(shí)現(xiàn)。面向?qū)ο笤O(shè)計(jì)ObjectOrientedDesign,OODOOD的職責(zé):針對(duì)系統(tǒng)的一個(gè)具體實(shí)現(xiàn)運(yùn)用OO方法。其中包括兩方面工作,一是把OOA模型直接搬到OOD(不經(jīng)過(guò)轉(zhuǎn)換,僅作某些必要的修改和調(diào)整),作為OOD的一個(gè)部分;二是針對(duì)具體實(shí)現(xiàn)中的人機(jī)界面、數(shù)據(jù)存儲(chǔ)、任務(wù)管理等因素補(bǔ)充一些與實(shí)現(xiàn)有關(guān)的部分,這些部分與OOA采用相同的表示法和模型結(jié)構(gòu)。面向?qū)ο缶幊蹋∣OP)又稱(chēng)作面向?qū)ο髮?shí)現(xiàn)(OOI),OOP工作就是用同一種面向?qū)ο缶幊陶Z(yǔ)言把OOD模型中的每個(gè)成分,用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言實(shí)現(xiàn)。
面向?qū)ο缶幊?ObjectOrientedProgram,OOP面向?qū)ο鬁y(cè)試:ObjectOrientedTest,OOT面向?qū)ο鬁y(cè)試(OOT):對(duì)于用OO技術(shù)開(kāi)發(fā)的軟件,在測(cè)試過(guò)程中,運(yùn)用OO技術(shù)進(jìn)行以對(duì)象概念為中心的軟件測(cè)試。
在用OOP編寫(xiě)的程序中,對(duì)象的封裝性,把對(duì)象的靜態(tài)和動(dòng)態(tài)特征組合在一起,使對(duì)象成為一個(gè)獨(dú)立的程序單位,從而大大減少了錯(cuò)誤的影響范圍。OOT以對(duì)象的類(lèi)作為基本測(cè)試單位,查錯(cuò)范圍:1.類(lèi)定義之內(nèi)的屬性和服務(wù)。2.類(lèi)的繼承關(guān)系所產(chǎn)生的不同方法的測(cè)試。對(duì)基類(lèi)測(cè)試完成之后,派生類(lèi)的測(cè)試重點(diǎn)只是那些新定義的屬性和服務(wù)。
面向?qū)ο筌浖こ谭椒楦倪M(jìn)軟件維護(hù)提供了有效的途徑。1.程序與問(wèn)題域一致,各階段表示一致,從而降低了理解的難度。2.無(wú)論是程序錯(cuò)誤而逆向追溯到問(wèn)題域,還是需求發(fā)生變化而從問(wèn)題域正向追蹤到程序,道路都是比較平坦面向?qū)ο缶S護(hù)將系統(tǒng)中最容易變化的因素(功能)作為對(duì)象的服務(wù)封裝在對(duì)象內(nèi)部,使得一個(gè)對(duì)象的修改對(duì)其它影響很小。
面向?qū)ο缶S護(hù)ObjectOrientedMaintenance面向?qū)ο蠡靖拍睢獙?duì)象(Object)
客觀世界是由各種對(duì)象組成的,任何事物都是復(fù)雜的對(duì)象,可以由比較簡(jiǎn)單的對(duì)象以某種方式組合而成。這樣,可以把整個(gè)世界看做一個(gè)最復(fù)雜的對(duì)象。因此,對(duì)象是指一個(gè)實(shí)體,它能夠保存一個(gè)狀態(tài)(或稱(chēng)信息或數(shù)據(jù)),并且它能提供一系列操作(或稱(chēng)行為),這些操作或能檢查或能影響對(duì)象的狀態(tài)。對(duì)象具有封裝性(encapsulation)對(duì)象具有自治性(autonomy)對(duì)象具有通信性。對(duì)象具有被動(dòng)性。對(duì)象具有暫存性。對(duì)象可具有持久性(persistence)
objectchaircost$50texturewoodlocationsanctumcolorblackobjectMove()類(lèi)(Class)
把所有對(duì)象都劃分成各種對(duì)象類(lèi)(簡(jiǎn)稱(chēng)為類(lèi)),每個(gè)對(duì)象類(lèi)都定義了一組數(shù)據(jù)和一組方法。數(shù)據(jù)用于表示對(duì)象的靜態(tài)屬性,用于描述對(duì)象的當(dāng)前狀態(tài)。方法用于描述對(duì)象的動(dòng)態(tài)特征,用于描述對(duì)象狀態(tài)的改變過(guò)程。objectchaircost$50texturewoodlocationscantumcolorblackclassclassfurniturecosttexturelocationcolorobjectattributeabstractMove()Move()OO方法中的消息消息就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求,它應(yīng)含有下述信息:提供服務(wù)的對(duì)象標(biāo)識(shí)、服務(wù)標(biāo)識(shí)、輸入信息和回答信息。信息的接受者是提供服務(wù)的對(duì)象。在設(shè)計(jì)時(shí),它對(duì)外提供的每個(gè)服務(wù)都應(yīng)該規(guī)定消息的格式,這種規(guī)定稱(chēng)做消息協(xié)議。消息(Message)發(fā)送者對(duì)象屬性:操作:接收者對(duì)象屬性:操作:message:[sender,returnvalue(s)]面向?qū)ο蠡咎卣鳌庋b性(Encapsulation)對(duì)象是進(jìn)行處理的主體,必須發(fā)消息請(qǐng)求執(zhí)行它的某個(gè)操作,處理它的私有數(shù)據(jù),同時(shí)不能從外界直接對(duì)它的私有數(shù)據(jù)進(jìn)行操作。也就是說(shuō),一切局部于該對(duì)象的私有信息,都被封裝在該對(duì)象類(lèi)的定義中,在對(duì)象的外部是不可見(jiàn)的,即不能直接使用,這就是“封裝性”。數(shù)據(jù)和過(guò)程的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)對(duì)外界隱藏(信息隱藏),這將減少當(dāng)變化發(fā)生時(shí)副作用的傳播。數(shù)據(jù)結(jié)構(gòu)和操縱它們的操作被合并在單個(gè)命名實(shí)體(類(lèi))中,這將便于構(gòu)建復(fù)用。被封裝對(duì)象間的接口被簡(jiǎn)化。一個(gè)發(fā)送消息的對(duì)象不需要關(guān)心接收對(duì)象的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。因此,接口被簡(jiǎn)化,系統(tǒng)耦合度被降低。按照子類(lèi)(派生類(lèi))與父類(lèi)(基類(lèi))的關(guān)系,把若干個(gè)對(duì)象類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)。在這種層次結(jié)構(gòu)中,通常下層的派生類(lèi)具有和上層的基類(lèi)相同的特性(包括數(shù)據(jù)和方法),這種表示方法稱(chēng)為繼承。面向?qū)ο蠡咎卣鳌^承性(Inheritance)classhumanname,ID,sexTalking()classathleteclub,salarysport()classstudentlessons,SIDLearning()object:Hao
Haidongobject:WangNing面向?qū)ο蠡咎卣鳌鄳B(tài)性(Polymorphism)classvehicleappearancemoving()classcarappearancemoving()classplaneappearancemoving()對(duì)象的多態(tài)性是指在一般類(lèi)中定義的屬性或服務(wù)被特殊類(lèi)繼承之后,可以具有不同的數(shù)據(jù)類(lèi)型或表現(xiàn)出不同的行為。多態(tài)性的表示有靜態(tài)類(lèi)型和動(dòng)態(tài)類(lèi)型。動(dòng)態(tài)類(lèi)型(虛函數(shù))可以在程序執(zhí)行期間在實(shí)例之間進(jìn)行變化。靜態(tài)類(lèi)型(函數(shù)重載)是在程序上下文中由實(shí)體說(shuō)明決定的。classshipappearancemoving()虛基類(lèi)(純)虛函數(shù)類(lèi)/對(duì)象之間的關(guān)系——一般與特殊一般-特殊:是由一組具有一般-特殊關(guān)系的類(lèi)所組成的結(jié)構(gòu)。它是一個(gè)以類(lèi)為結(jié)點(diǎn),以繼承關(guān)系為邊的連通有向圖。如果由一些存在單繼承關(guān)系的類(lèi)形成的結(jié)構(gòu)又稱(chēng)作層次結(jié)構(gòu)或樹(shù)型結(jié)構(gòu),如果由一些存在多繼承關(guān)系的類(lèi)形成的結(jié)構(gòu)又稱(chēng)作網(wǎng)狀結(jié)構(gòu)。
學(xué)生中學(xué)生大學(xué)生初中生高中生樹(shù)型結(jié)構(gòu)客輪輪船客運(yùn)工具交通工具網(wǎng)狀結(jié)構(gòu)一個(gè)對(duì)象是另一個(gè)(組)對(duì)象的組成部或分。整體——部分結(jié)構(gòu)由一組彼此間存在著這種組成關(guān)系的對(duì)象構(gòu)成。整體-部分結(jié)構(gòu)又稱(chēng)做組裝結(jié)構(gòu)(CompositionStructure)。
類(lèi)/對(duì)象之間的關(guān)系——部分與整體汽車(chē)車(chē)身輪胎車(chē)外殼底盤(pán)組成結(jié)構(gòu)類(lèi)/對(duì)象之間的關(guān)系——實(shí)例連接實(shí)例連接反映對(duì)象與對(duì)象之間的靜態(tài)聯(lián)系。這種雙邊關(guān)系在實(shí)現(xiàn)中可以通過(guò)對(duì)象的屬性表達(dá)出來(lái)。所以這種關(guān)系稱(chēng)作實(shí)例連接。
教師教與學(xué)學(xué)生描述對(duì)象之間的動(dòng)態(tài)聯(lián)系是用消息連接。若一個(gè)對(duì)象在執(zhí)行自己的服務(wù)時(shí)需要請(qǐng)求另一個(gè)對(duì)象為它完成某個(gè)服務(wù)。那么這兩個(gè)對(duì)象之間存在著消息連接。消息連接是有向的,從消息的發(fā)送者指向消息的接受者。
類(lèi)/對(duì)象之間的關(guān)系——消息連接afun1()fun2()bfun3()fun4()dfun5()fun6()cfun7()fun8()消息面向過(guò)程開(kāi)發(fā)模式產(chǎn)生過(guò)程的抽象。這些抽象的基礎(chǔ)是把軟件視為處理流,并定義成由一系列步驟構(gòu)成的算法。每一步驟都是帶有預(yù)定輸入和特定輸出的一個(gè)過(guò)程,把這些步驟串聯(lián)在一起可產(chǎn)生合理的穩(wěn)定的貫通于整個(gè)程序的控制流,最終產(chǎn)生一個(gè)簡(jiǎn)單的具有靜態(tài)結(jié)構(gòu)的體系結(jié)構(gòu)。面向過(guò)程開(kāi)發(fā)模型面向過(guò)程開(kāi)發(fā)模型特點(diǎn)過(guò)程性開(kāi)發(fā)模式側(cè)重建立構(gòu)成問(wèn)題解決的處理流。數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)根據(jù)算法步驟的要求開(kāi)發(fā),它貫穿于過(guò)程,提供過(guò)程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個(gè)過(guò)程傳送到另一個(gè)過(guò)程。在面向過(guò)程開(kāi)發(fā)模式中優(yōu)先考慮的是過(guò)程抽象,在面向?qū)ο箝_(kāi)發(fā)模式中優(yōu)先考慮的是實(shí)體(問(wèn)題論域的對(duì)象)。在面向?qū)ο箝_(kāi)發(fā)模式中,把標(biāo)識(shí)和模型化問(wèn)題論域中的主要實(shí)體做為系統(tǒng)開(kāi)發(fā)的起點(diǎn),主要考慮對(duì)象的行為而不是必須執(zhí)行的一系列動(dòng)作。面向?qū)ο箝_(kāi)發(fā)模型面向?qū)ο箝_(kāi)發(fā)模型特點(diǎn)面向?qū)ο笙到y(tǒng)中的對(duì)象是數(shù)據(jù)抽象與過(guò)程抽象的綜合。系統(tǒng)的狀態(tài)保存在各個(gè)數(shù)據(jù)抽象的所定義的數(shù)據(jù)存儲(chǔ)中??刂屏靼诟鱾€(gè)數(shù)據(jù)抽象中的操作內(nèi)。在面向?qū)ο篌w系結(jié)構(gòu):消息從一個(gè)對(duì)象傳送到另一個(gè)對(duì)象;算法被分布到各種實(shí)體中。舉例:數(shù)據(jù)流圖銀行存取款子系統(tǒng)客戶信息驗(yàn)證密碼驗(yàn)證模塊帳戶新增模塊存取記帳模塊信息打印模塊記錄日志模塊舉例:系統(tǒng)層次結(jié)構(gòu)圖消息客戶姓名身份證號(hào)電話存款取款設(shè)置密碼掛失轉(zhuǎn)帳銀行職員姓名員工號(hào)權(quán)限檢驗(yàn)客戶信息收款付款收憑證付憑證錄入業(yè)務(wù)信息系統(tǒng)姓名身份證號(hào)電話校驗(yàn)用戶信息驗(yàn)證密碼更改帳戶信息增加帳戶注銷(xiāo)帳戶記錄日志打印收據(jù)消息消息消息舉例:類(lèi)對(duì)象關(guān)系圖面向?qū)ο箜?xiàng)目估算和進(jìn)度安排由于OOA的方法不同于傳統(tǒng)方法,因此,有必要對(duì)明顯設(shè)計(jì)用于OO軟件的方法補(bǔ)充傳統(tǒng)軟件成本估算:使用工作量分解、FP分析以及任何其它可應(yīng)用于傳統(tǒng)應(yīng)用的方法來(lái)進(jìn)行估算。使用OOA開(kāi)發(fā)場(chǎng)景腳本(use-case)并確定計(jì)數(shù)。使用OOA確定關(guān)鍵類(lèi)的數(shù)量。劃分應(yīng)用的界面類(lèi)型并確定支持類(lèi)的倍數(shù):將關(guān)鍵類(lèi)的數(shù)量和上面的倍數(shù)相乘可得到支持類(lèi)數(shù)量的估算。將整個(gè)類(lèi)的數(shù)量和每個(gè)類(lèi)的平均工作單元相乘,一般每個(gè)類(lèi)10~15個(gè)人日。通過(guò)乘上每個(gè)場(chǎng)景腳本的平均工作單元,對(duì)基于類(lèi)的估算進(jìn)行交叉檢查。面向?qū)ο蠓治龇椒≧ambaugh方法也稱(chēng)為對(duì)象建模技術(shù)(ObjectModelingTechnique,OMT),用于分析、系統(tǒng)設(shè)計(jì)和對(duì)象級(jí)設(shè)計(jì)。分析活動(dòng)創(chuàng)建三個(gè)模型:對(duì)象模型、動(dòng)態(tài)模型和功能模型。
Coad和Yourdon方法被認(rèn)為是最容易學(xué)習(xí)的OOA方法。建模符號(hào)簡(jiǎn)單,且開(kāi)發(fā)分析模型的指導(dǎo)原則是直接的。該方法OOA過(guò)程如下:標(biāo)識(shí)對(duì)象定義一般/特殊結(jié)構(gòu)定義整體/部分結(jié)構(gòu)標(biāo)識(shí)主題
定義屬性定義服務(wù)面向?qū)ο竽P偷慕M成_____對(duì)象模型、動(dòng)態(tài)模型、功能模型
面向?qū)ο蠓治龅年P(guān)鍵是識(shí)別出問(wèn)題領(lǐng)域內(nèi)的對(duì)象,并分析它們相互間的關(guān)系,最終建立起問(wèn)題域的簡(jiǎn)潔、精確、可理解的正確模型。在面向?qū)ο笥^點(diǎn)建立起的模型中,對(duì)象模型是最基本、最重要、最核心的模型。面向?qū)ο蠓治鲞^(guò)程從分析用戶需求陳述的文件開(kāi)始。面向?qū)ο蟮玫降哪P桶瑢?duì)象的三個(gè)要素:靜態(tài)結(jié)構(gòu)(對(duì)象模型)交互次序(動(dòng)態(tài)模型)數(shù)據(jù)變換(功能模型)對(duì)象模型的圖形符號(hào)“類(lèi)--&--對(duì)象”是一個(gè)專(zhuān)用術(shù)語(yǔ),它的含義是“一個(gè)類(lèi)及屬于該類(lèi)的對(duì)象”。類(lèi)名屬性服務(wù)“類(lèi)--&--對(duì)象”符號(hào)類(lèi)名屬性服務(wù)“類(lèi)”符號(hào)對(duì)象模型對(duì)象模型的命名1.使用標(biāo)準(zhǔn)術(shù)語(yǔ)2.使用具有確切含義的名詞3.必要時(shí)用名詞短語(yǔ)作名字
對(duì)象模型表示靜態(tài)的、結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)。它是對(duì)模擬客觀世界實(shí)體的對(duì)象以及對(duì)象彼此間的關(guān)系的映射,描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。面向?qū)ο蠓椒◤?qiáng)調(diào)圍繞對(duì)象而不是圍繞功能來(lái)構(gòu)造系統(tǒng)。對(duì)象模型為建立動(dòng)態(tài)模型和功能模型,提供了實(shí)質(zhì)性的框架。一般化類(lèi)具體類(lèi)2具體類(lèi)1一般-特殊關(guān)系整體部分2部分1整體-部分關(guān)系關(guān)聯(lián)關(guān)系經(jīng)理項(xiàng)目項(xiàng)目名預(yù)算優(yōu)先級(jí)1+主持對(duì)象模型——表示模型對(duì)象模型的層次大型系統(tǒng)的對(duì)象模型是由下述四個(gè)層次組成:主題層、對(duì)象層、特征層、關(guān)系層。主題層:所謂主題是把一些具有較強(qiáng)聯(lián)系的類(lèi)組織在一起而得的類(lèi)集合。(當(dāng)系統(tǒng)中類(lèi)較多時(shí),對(duì)整體模型的理解是很困難的。運(yùn)用力度控制原則,把它們組合為數(shù)量較少的幾個(gè)主題,就使得模型的開(kāi)發(fā)者和使用者都能在不同的粒度層次上表示或理解系統(tǒng)模型。當(dāng)系統(tǒng)規(guī)模不大時(shí),可以不用主題層。)對(duì)象層:給出系統(tǒng)中所有反映問(wèn)題域與系統(tǒng)責(zé)任的對(duì)象。(用類(lèi)符號(hào)表達(dá)屬于每一類(lèi)的對(duì)象。類(lèi)作為對(duì)象的抽象描述,是構(gòu)成系統(tǒng)的基本單位。)特征層:給出每一類(lèi)(及其所代表的對(duì)象)的內(nèi)部特征。即給出每個(gè)類(lèi)的屬性與服務(wù)。(這個(gè)層次描述了對(duì)象的內(nèi)部構(gòu)成狀況,以分析階段所能達(dá)到的程度為限給出對(duì)象的內(nèi)部細(xì)節(jié))關(guān)系層:給出各個(gè)類(lèi)(及其所代表的對(duì)象)彼此之間的關(guān)系。(包括繼承關(guān)系,用一般-特殊結(jié)構(gòu)表示;組裝關(guān)系,用整體-部分結(jié)構(gòu)表示;反映于屬性的靜態(tài)依賴關(guān)系,用實(shí)例連接表示;反映于服務(wù)的動(dòng)態(tài)依賴關(guān)系,用消息連接表示。這個(gè)層次描述了對(duì)象外部的聯(lián)系狀況。
對(duì)象層特征層關(guān)系層動(dòng)態(tài)模型動(dòng)態(tài)模型規(guī)定了對(duì)象模型中的對(duì)象的合法變化序列。事件:在某個(gè)特定時(shí)刻所發(fā)生的事情稱(chēng)為事件。它是對(duì)引起對(duì)象從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的現(xiàn)實(shí)世界中的事件的抽象。實(shí)際上事件就是引起對(duì)象狀態(tài)轉(zhuǎn)換的控制信息。狀態(tài):對(duì)象在某個(gè)特定階段所處的情形就是狀態(tài)。它是對(duì)象行為屬性值的一種抽象。行為:對(duì)象達(dá)到某種狀態(tài)時(shí)所作的一系列處理操作。通常用狀態(tài)圖來(lái)描繪對(duì)象的狀態(tài)、出發(fā)狀態(tài)轉(zhuǎn)換事件、以及對(duì)象的行為。
狀態(tài)1do:行為1狀態(tài)2do:行為2初始事件事件1[條件1]狀態(tài)圖中使用的符號(hào)要想對(duì)一個(gè)系統(tǒng)了解得比較清楚,還應(yīng)當(dāng)考察在任何時(shí)刻對(duì)象及其關(guān)系的改變。系統(tǒng)的這些涉及時(shí)序和改變狀況用動(dòng)態(tài)模型來(lái)描述。動(dòng)態(tài)模型著重于系統(tǒng)的控制邏輯。功能模型功能模型表示的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應(yīng)該“做什么”,因此更直觀的反映了用戶對(duì)系統(tǒng)的需求。通常,功能模型由一組數(shù)據(jù)流圖組成。在面向?qū)Ψ椒▽W(xué)中,數(shù)據(jù)流圖并沒(méi)有增加新的信息。功能模型指明了系統(tǒng)應(yīng)該“做什么”,動(dòng)態(tài)模型明確規(guī)定了什么時(shí)候(即在何種狀態(tài)下接受了什么事件的觸發(fā))做;對(duì)象模型則定義了做事情的實(shí)體。分析工作主要包括對(duì)問(wèn)題空間中對(duì)象的確定和對(duì)對(duì)象和對(duì)象之間的關(guān)聯(lián)的確定,對(duì)對(duì)象的確定包括對(duì)對(duì)象屬性和行為的確定,對(duì)連接的確定包括對(duì)對(duì)象結(jié)構(gòu)關(guān)系、實(shí)例連接關(guān)系和消息連接關(guān)系的確定,具體工作內(nèi)容和步驟如圖所示。面向?qū)ο蠓治霾襟E在概念上可以認(rèn)為,面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行:尋找問(wèn)題中事物尋找對(duì)象定義屬性與服務(wù)(類(lèi)或者對(duì)象內(nèi)部的事情)識(shí)別問(wèn)題中結(jié)構(gòu)識(shí)別主題建立動(dòng)態(tài)模型建立功能模型。1)
發(fā)現(xiàn)對(duì)象,定義它們的類(lèi)。2)
識(shí)別對(duì)象的內(nèi)部特征。(定義屬性和服務(wù))3)
識(shí)別對(duì)象的外部關(guān)系。A建立一般-特殊結(jié)構(gòu)。B建立整體-部分結(jié)構(gòu)。C建立實(shí)例連接。
D建立消息連接。以上活動(dòng)總目標(biāo)是建立面向?qū)ο蠓治龌灸P通D―類(lèi)圖面向?qū)ο蠓治鲞^(guò)程的主要活動(dòng)面向?qū)ο蠓治鲞^(guò)程的主要活動(dòng)4)
劃分主題,建立主題圖。5)
定義usecase,建立交互圖。A發(fā)現(xiàn)活動(dòng)者。
B定義usecase。
C建立交互圖。6)
建立詳細(xì)說(shuō)明這是對(duì)模型的詳細(xì)定義與解釋?zhuān)梢宰鳛橐粋€(gè)獨(dú)立的活動(dòng),更自然的作法是分散在其它活動(dòng)中。7)
原型開(kāi)發(fā)這個(gè)活動(dòng)應(yīng)該在面向?qū)ο蠓治鲞^(guò)程中反復(fù)進(jìn)行。對(duì)象的發(fā)現(xiàn)與標(biāo)識(shí)發(fā)現(xiàn)對(duì)象的根本出發(fā)點(diǎn)是問(wèn)題域和系統(tǒng)任務(wù)。分析員的主要工作就是:通過(guò)不斷地研究問(wèn)題域,建立一個(gè)能滿足用戶需求的系統(tǒng)模型。
找出候選的類(lèi)—&—對(duì)象。通常包括:
外部實(shí)體:它們生產(chǎn)或消費(fèi)被基于計(jì)算機(jī)的系統(tǒng)使用的信息。例如系統(tǒng)、設(shè)備、人員等。
事物:它們時(shí)問(wèn)題的細(xì)細(xì)域的一部分。例如報(bào)告、顯示、文字、信號(hào)
發(fā)生的事情或事件:它們出現(xiàn)咱系統(tǒng)運(yùn)行的語(yǔ)境內(nèi)。角色:指由與系統(tǒng)交互的人員所扮演的角色。例如管理者、工程師、銷(xiāo)售人員等。組織單位:例如分支、小組、小隊(duì)
結(jié)構(gòu):它們定義一個(gè)對(duì)象類(lèi),或者在極端情況下定義對(duì)象的相關(guān)關(guān)系。例如:傳感器、四輪交通工具
其它潛在對(duì)象對(duì)象的屬性只能由這個(gè)對(duì)象的服務(wù)存取。其內(nèi)部服務(wù)只供對(duì)象內(nèi)部的其它服務(wù)使用,不對(duì)外提供;外部服務(wù)對(duì)外提供一個(gè)消息接口,通過(guò)這個(gè)接口接收對(duì)象外部的消息并為之提供服務(wù)。
對(duì)象的某些屬性可以根據(jù)常識(shí)來(lái)定義。某些屬性可以根據(jù)系統(tǒng)責(zé)任來(lái)定義某些屬性是為了在對(duì)象服務(wù)中實(shí)現(xiàn)某些功能,而需要增設(shè)輔助屬性如果有些問(wèn)題與實(shí)現(xiàn)條件有關(guān),就要考慮這些問(wèn)題可以推遲到設(shè)計(jì)階段
類(lèi)名屬性1……..屬性n服務(wù)1…....服務(wù)n定義屬性
對(duì)象的一系列行為都可以說(shuō)是對(duì)象的服務(wù):1.系統(tǒng)行為
系統(tǒng)分析中,與對(duì)象有關(guān)的某些行為實(shí)際上不是對(duì)象自身的行為,而是系統(tǒng)把對(duì)象看作一個(gè)整體來(lái)處理時(shí)施加于對(duì)象的行為。例如“教師”對(duì)象,自身并沒(méi)有刪除、建立、更新等行為,而是系統(tǒng)給對(duì)象增加的系統(tǒng)行為。2.對(duì)象的基本服務(wù)
根據(jù)面向?qū)ο蠓庋b原則,對(duì)象外部的行為不能對(duì)對(duì)象內(nèi)部的屬性作任何讀、寫(xiě)直接操作。而只能由對(duì)象內(nèi)部的行為(服務(wù))向外提供相應(yīng)的服務(wù)。于是每個(gè)對(duì)象都要設(shè)立許多讀取或設(shè)置屬性的值的服務(wù)。這類(lèi)服務(wù)的算法都是簡(jiǎn)單的。3.對(duì)象的特殊服務(wù)
面向?qū)ο蟮闹攸c(diǎn)就是發(fā)現(xiàn)和描述這類(lèi)服務(wù),此類(lèi)服務(wù)描述了對(duì)象所映射事物的固有行為,其算法是進(jìn)行某些計(jì)算或監(jiān)控操作。
定義行為1.按領(lǐng)域知識(shí)、常識(shí)分類(lèi)。2.分析類(lèi)的屬性和服務(wù)。有些類(lèi)之間的一般-特殊結(jié)構(gòu)是由于他們的屬性與服務(wù)的特點(diǎn)產(chǎn)生的。所以要發(fā)現(xiàn)系統(tǒng)中類(lèi)的結(jié)構(gòu)關(guān)系:首先分析類(lèi)的屬性服務(wù)是否適合這個(gè)類(lèi)的全部對(duì)象。如果有些類(lèi)屬性服務(wù)僅適合該類(lèi)的一部分對(duì)象,那么就要建立一般-特殊結(jié)構(gòu)。
多邊形
邊數(shù)頂點(diǎn)數(shù)據(jù)繪圖正多邊形
*頂點(diǎn)數(shù)據(jù)*繪圖軸向矩形
×邊數(shù)*頂點(diǎn)數(shù)據(jù)*繪圖發(fā)現(xiàn)一般——特殊結(jié)構(gòu)從特殊類(lèi)發(fā)現(xiàn)一般類(lèi)公司職員股東姓名身分證號(hào)碼……股份……職員工資……………………股東姓名身分證號(hào)碼股份…………職員姓名身分證號(hào)碼工資…………?收款機(jī)ABC現(xiàn)鈔收款機(jī)DEF現(xiàn)鈔收款機(jī)ABCDEFXYZZXY為支持復(fù)用建立結(jié)構(gòu)收款機(jī)類(lèi)成為可供本領(lǐng)域其它系統(tǒng)復(fù)用的領(lǐng)域構(gòu)件大學(xué)生研究生研究方向指導(dǎo)教師……學(xué)生姓名學(xué)號(hào)班級(jí)…………研究生研究方向指導(dǎo)教師……學(xué)生姓名學(xué)號(hào)班級(jí)…………取消沒(méi)有特殊屬性的特殊類(lèi)通過(guò)增加屬性簡(jiǎn)化一般-特殊結(jié)構(gòu)人員…………男人…………女人…………中國(guó)人…………美國(guó)人…………日本人…………人員性別國(guó)籍…………兩種結(jié)構(gòu)的變通冷藏車(chē)…………汽車(chē)…………制冷設(shè)備…………冷藏車(chē)…………汽車(chē)…………制冷設(shè)備…………僅用一般-特殊結(jié)構(gòu)兩種結(jié)構(gòu)同用冷藏車(chē)…………汽車(chē)…………制冷設(shè)備…………僅用整體-部分結(jié)構(gòu)1.組織機(jī)構(gòu)(學(xué)校)2.空間上的包容關(guān)系(教室)3.物理上整體-部分關(guān)系(電梯)4.集合與成員關(guān)系5.對(duì)象與個(gè)別抽象關(guān)系6.抽象事物的整體與部分(學(xué)科和分支學(xué)科)
0.11教室桌椅顯示板整體-部分關(guān)系33.880.1發(fā)現(xiàn)整體——部分結(jié)構(gòu)用整體-部分結(jié)構(gòu)實(shí)現(xiàn)復(fù)用車(chē)床…………機(jī)床…………刨床…………起重機(jī)…………電動(dòng)機(jī)…………鉆床…………送料車(chē)…………實(shí)例連接實(shí)例連接是用于表達(dá)對(duì)象之間的靜態(tài)關(guān)系。這種靜態(tài)關(guān)系是指最終可通過(guò)對(duì)象屬性來(lái)表示的一個(gè)對(duì)象對(duì)另一個(gè)對(duì)象的依賴關(guān)系。1.復(fù)雜的實(shí)例連接概念對(duì)象之間的關(guān)系有時(shí)通過(guò)一個(gè)由對(duì)象實(shí)例構(gòu)成的二元組不能充分表達(dá),可以允許實(shí)。例連接帶有一組屬性,這些屬性通過(guò)關(guān)聯(lián)(association)來(lái)描述。
2.用對(duì)象表示實(shí)例連接帶有復(fù)雜信息的兩類(lèi)對(duì)象之間的聯(lián)系是否說(shuō)明它們之間存在著某種事物。10,m教師學(xué)生指導(dǎo)論文論文題目答辯時(shí)間成績(jī)10,m教師學(xué)生指導(dǎo)畢業(yè)論文論文題目答辯時(shí)間成績(jī)11寫(xiě)作建立實(shí)例連接的方法1對(duì)象之間的靜態(tài)聯(lián)系從問(wèn)題域和系統(tǒng)責(zé)任考慮,分析對(duì)象之間是否存在著某種靜態(tài)聯(lián)系。主要是系統(tǒng)責(zé)任考慮這種關(guān)系是否提供了某些與系統(tǒng)責(zé)任有關(guān)的信息。2實(shí)例連接的屬性和服務(wù)進(jìn)一步分析實(shí)例連接是否應(yīng)該帶有某些屬性和操作。分析這些屬性和對(duì)象可以用什么對(duì)象來(lái)表示,增設(shè)這個(gè)對(duì)象類(lèi),并分別建立它與原有的兩個(gè)類(lèi)之間的簡(jiǎn)單實(shí)例連接。
1m類(lèi)1類(lèi)2n1nm類(lèi)1類(lèi)2連接名稱(chēng)關(guān)聯(lián)名連接屬性……連接操作……可缺省類(lèi)3連接屬性……連接操作……實(shí)例連接轉(zhuǎn)換圖示
一般面向?qū)ο筮^(guò)程模型定義侯選類(lèi)在庫(kù)中查找類(lèi)若存在則提取類(lèi)若不存在則構(gòu)造類(lèi)新構(gòu)造的類(lèi)入庫(kù)構(gòu)造系統(tǒng)第n次迭代
OOAOODOOPOOT
構(gòu)件復(fù)用建立對(duì)象模型舉例
識(shí)別對(duì)象與類(lèi)建立數(shù)據(jù)字典識(shí)別對(duì)象的關(guān)聯(lián)確定對(duì)象和鏈的屬性分析繼承關(guān)系,改進(jìn)對(duì)象模型核實(shí)可預(yù)期查詢的訪問(wèn)路徑迭代并反復(fù)修改模型標(biāo)識(shí)主題(將類(lèi)分組成模塊)識(shí)別類(lèi)與對(duì)象
(1)發(fā)現(xiàn)對(duì)象主要策略:
考慮問(wèn)題域人員組織物品設(shè)備事件表格結(jié)構(gòu)
考慮系統(tǒng)邊界人員設(shè)備外系統(tǒng)
考慮系統(tǒng)責(zé)任系統(tǒng)必須觀測(cè)、記憶的與時(shí)間有關(guān)的事件可作為候選的類(lèi)及對(duì)象;如:購(gòu)買(mǎi)日期、打開(kāi)一個(gè)帳戶等與系統(tǒng)發(fā)生交互的人及系統(tǒng)必須保留其信息的人,可作為候選的類(lèi)及對(duì)象;如:收款員、客戶等這些人所屬的組織單位,可作為候選的類(lèi)及對(duì)象;如:購(gòu)買(mǎi)、商品等系統(tǒng)必須記憶、且不在問(wèn)題域約束中的順序操作過(guò)程(為了指導(dǎo)人機(jī)交互)可作為候選的類(lèi)及對(duì)象;如:事務(wù)、遠(yuǎn)程事務(wù)等。其中屬性是操作過(guò)程名,操作特權(quán)及操作步驟的描述;系統(tǒng)需了解掌握的物理位置、辦公地點(diǎn)等可作為候選的類(lèi)及對(duì)象;如:收款機(jī)、帳冊(cè)等(2)審查和篩選
舍棄無(wú)用的類(lèi)
對(duì)象的精簡(jiǎn)只有一個(gè)屬性的對(duì)象只有一個(gè)服務(wù)的對(duì)象
推遲到OOD考慮對(duì)象,帳冊(cè)@上級(jí)系統(tǒng)接口供貨員銷(xiāo)售事件商品特價(jià)商品計(jì)量商品@收款機(jī)商品一覽表超市銷(xiāo)售管理系統(tǒng)(對(duì)象層)3)識(shí)別主動(dòng)對(duì)象例:超市銷(xiāo)售管理系統(tǒng)(對(duì)象層)定義屬性、定義服務(wù):對(duì)象的狀態(tài)與狀態(tài)轉(zhuǎn)換圖例:棧的狀態(tài)/服務(wù)對(duì)照表空半滿滿壓入可執(zhí)行可執(zhí)行不可執(zhí)行彈出不可執(zhí)行可執(zhí)行可執(zhí)行步驟2:定義屬性與服務(wù)空半滿滿創(chuàng)建壓入(未滿)彈出(未空)壓入(報(bào)錯(cuò))彈出(報(bào)錯(cuò))彈出(已空)壓入彈出壓入(已滿)例:棧狀態(tài)轉(zhuǎn)換圖定義服務(wù)對(duì)象行為分類(lèi)發(fā)現(xiàn)服務(wù)的策略審查與調(diào)整識(shí)別對(duì)象的主動(dòng)行為服務(wù)的詳細(xì)說(shuō)明(服務(wù)解釋、消息協(xié)議、消息發(fā)送、約束條件、服務(wù)流程圖)定義屬性例:超市銷(xiāo)售管理系統(tǒng)(特征層)帳冊(cè)前班節(jié)余銷(xiāo)售事件表收入累計(jì)上交款本班節(jié)余接班計(jì)帳報(bào)帳交班@上級(jí)系統(tǒng)接口帳目目?jī)?cè)@消息發(fā)送查帳報(bào)帳價(jià)格更新種類(lèi)增刪供貨員缺貨登記表缺貨登記供貨銷(xiāo)售事件收款人購(gòu)物清單應(yīng)收款……銷(xiāo)售計(jì)劃入帳商品編號(hào)名稱(chēng)單價(jià)架上數(shù)量下限售出補(bǔ)充價(jià)格更新特價(jià)商品開(kāi)始日期結(jié)束日期計(jì)量商品*單價(jià)計(jì)量單位計(jì)價(jià)方式*售出*補(bǔ)充*價(jià)格更新@收款機(jī)本班收款員開(kāi)始時(shí)間結(jié)束時(shí)間@登錄售貨結(jié)帳商品一覽表商品目錄檢索種類(lèi)增刪超市銷(xiāo)售管理系統(tǒng)(特征層)建立數(shù)據(jù)字典為所有模型實(shí)體準(zhǔn)備一個(gè)數(shù)據(jù)字典,精確描述每一個(gè)對(duì)象類(lèi),包括:成員約束關(guān)聯(lián)、屬性、操作類(lèi)名父類(lèi)提供的服務(wù)需要的服務(wù)帳冊(cè)
……
……
……收款機(jī)
……
……
……商品
……
……
……供貨員……
……
…………
……
……
……對(duì)象字典舉例步驟3:定義結(jié)構(gòu)域連接初步確定關(guān)聯(lián)對(duì)應(yīng)于描述性動(dòng)詞或動(dòng)詞短語(yǔ)需求陳述中隱含根據(jù)問(wèn)題域知識(shí)得出篩選完善分析標(biāo)識(shí)對(duì)象之間的關(guān)系對(duì)象之間的分類(lèi)關(guān)系:一般-特殊結(jié)構(gòu)對(duì)象之間的組成關(guān)系:整體-部分結(jié)構(gòu)對(duì)象之間的靜態(tài)聯(lián)系:實(shí)例連接對(duì)象之間的動(dòng)態(tài)關(guān)系:消息連接篩選:刪除下列關(guān)聯(lián)已刪去的類(lèi)間的關(guān)聯(lián)無(wú)關(guān)或?qū)崿F(xiàn)關(guān)聯(lián)瞬時(shí)事件三元關(guān)聯(lián)派生關(guān)聯(lián)中央計(jì)算機(jī)總行通信銀行代碼ATM擁有分行計(jì)算機(jī)出納工作站遠(yuǎn)程業(yè)務(wù)現(xiàn)金卡分行帳戶儲(chǔ)戶出納員出納業(yè)務(wù)
通信授權(quán)存取擁有擁有持有組成擁有擁有雇傭進(jìn)入被進(jìn)入修改修改進(jìn)入ATM系統(tǒng)的初始對(duì)象圖步驟4:定義服務(wù)及消息連接順序系統(tǒng)中的消息傳遞分析和認(rèn)識(shí)對(duì)象之間在行為上的往來(lái)關(guān)系。主動(dòng)對(duì)象Aa被動(dòng)對(duì)象Bb被動(dòng)對(duì)象Cc被動(dòng)對(duì)象Dd1d2運(yùn)行開(kāi)始運(yùn)行結(jié)束服務(wù)執(zhí)行消息發(fā)送控制點(diǎn)返回示意并發(fā)系統(tǒng)中的消息傳遞主動(dòng)對(duì)象A主動(dòng)對(duì)象B被動(dòng)對(duì)象D任務(wù)Task1
線程Ta控制線程之間的消息連接控制點(diǎn)返回示意被動(dòng)對(duì)象C被動(dòng)對(duì)象E控制線程內(nèi)部的消息連接任務(wù)Task2
線程Tb多個(gè)控制線程之間消息與順序系統(tǒng)中消息的不同之處(1)并發(fā)執(zhí)行的控制線程之間傳送的消息的不同用途:向接收者發(fā)出訪問(wèn)請(qǐng)求向接收者提交數(shù)據(jù)向接收者發(fā)布通知或事件信息向接收者傳遞同步控制信號(hào)(2)消息的同步與異步(3)接收者對(duì)消息的不同響應(yīng)方式(4)發(fā)送者對(duì)消息處理結(jié)果的不同期待方式(5)消息的接收者是否唯一定向消息廣播消息OOA對(duì)消息的表示-消息連接消息連接是OOA(或OOD)模型中對(duì)對(duì)象之間行為依賴關(guān)系的表示
識(shí)別和表示的主要問(wèn)題:對(duì)象之間是否存在消息?消息是同一線程內(nèi)部的還是不同線程之間每一種消息是從發(fā)送者哪個(gè)服務(wù)發(fā)出的?由接收者哪個(gè)服務(wù)響應(yīng)處理的?消息是同步還是異步?發(fā)送者是否等待消息的處理結(jié)果?如何建立消息連接(1)建立控制線程內(nèi)部的消息連接基本策略:“服務(wù)模擬”、“執(zhí)行路線追蹤”具體做法:人為地模擬當(dāng)前服務(wù)的執(zhí)行,通過(guò)考慮需要請(qǐng)求其它對(duì)象的服務(wù)來(lái)發(fā)現(xiàn)新消息。分析該消息發(fā)送者與接收者在執(zhí)行時(shí)是否屬于同一控制線程(2)建立控制線程之間的消息連接對(duì)每個(gè)控制線程考慮:它在執(zhí)行時(shí)是否需要請(qǐng)求其它控制線程中的對(duì)象為它提供服務(wù)?由哪個(gè)對(duì)象發(fā)出?由哪個(gè)對(duì)象中的服務(wù)處理?它在執(zhí)行時(shí)是否要向其它控制線程中的對(duì)象提供或索取數(shù)據(jù)?它在執(zhí)行時(shí)是否將產(chǎn)生對(duì)其它控制線程的執(zhí)行有影響的事件?各個(gè)控制線程的并發(fā)執(zhí)行是否要傳遞同步控制信號(hào)一個(gè)控制線程在何種條件下中止執(zhí)行?中止后在何種條件下由其它控制線程用何法喚醒?(3)對(duì)象分布問(wèn)題及對(duì)消息的影響每臺(tái)處理機(jī)上分布的一組對(duì)象中至少應(yīng)有一個(gè)主動(dòng)對(duì)象;同一臺(tái)處理機(jī)上的對(duì)象之間的消息通信既可能是一個(gè)控制線程內(nèi)部的,也可能是不同控制線程之間的。帳冊(cè)前班節(jié)余銷(xiāo)售事件表收入累計(jì)上交款本班節(jié)余接班計(jì)帳報(bào)帳交班@上級(jí)系統(tǒng)接口帳目目?jī)?cè)@消息發(fā)送查帳報(bào)帳價(jià)格更新種類(lèi)增刪供貨員缺貨登記表缺貨登記供貨銷(xiāo)售事件收款人購(gòu)物清單應(yīng)收款……銷(xiāo)售計(jì)劃入帳商品編號(hào)名稱(chēng)單價(jià)架上數(shù)量下限售出補(bǔ)充價(jià)格更新特價(jià)商品開(kāi)始日期結(jié)束日期計(jì)量商品*單價(jià)計(jì)量單位計(jì)價(jià)方式*售出*補(bǔ)充*價(jià)格更新1m商品一覽表商品目錄檢索種類(lèi)增刪1m(關(guān)系層,完整的類(lèi)圖)@收款機(jī)本班收款員開(kāi)始時(shí)間結(jié)束時(shí)間@登錄
售貨結(jié)帳步驟4:標(biāo)識(shí)主題(主體)
Coad/Yourdon方法中主題的概念:主題是把一組具有較強(qiáng)聯(lián)系的類(lèi)組織在一起而得到的類(lèi)的集合。
主題概念及其用途主題層是在OOA基本模型(類(lèi)圖)之上建立一個(gè)能幫助人們從不同的認(rèn)識(shí)層次來(lái)理解系統(tǒng)的補(bǔ)充模型;主題一種比類(lèi)和對(duì)象抽象層次更高、粒度更大的概念,用以建立系統(tǒng)的高層抽象視圖;主題有助于指導(dǎo)系統(tǒng)設(shè)計(jì)者或用戶等理解一個(gè)大的系統(tǒng)模型,有助于組織一個(gè)大項(xiàng)目的工作。
主題概念的特點(diǎn)是由一組類(lèi)構(gòu)成的集合一個(gè)主題內(nèi)部的對(duì)象類(lèi)應(yīng)具有某種意義上的內(nèi)在聯(lián)系描述系統(tǒng)中相對(duì)獨(dú)立的組成部分(如一個(gè)子系統(tǒng))描述系統(tǒng)中某一方面的事物(如人員、設(shè)備)解決系統(tǒng)中某一方面的問(wèn)題(如輸入輸出)主題的劃分有一定的靈活性和隨意性三種表示方式:壓縮方式半展開(kāi)方式全展開(kāi)方式編號(hào)主題名壓縮方式編號(hào)主題名半展開(kāi)方式:類(lèi)名類(lèi)名
……類(lèi)名主題名主題名……下層主題主題的表示法把每個(gè)結(jié)構(gòu)作為一個(gè)主題;(選取結(jié)構(gòu)中最上層的類(lèi)作為一主題)通過(guò)實(shí)例連接互相聯(lián)系的類(lèi)可劃分到一個(gè)主題;把不屬于任何結(jié)構(gòu),也沒(méi)有實(shí)例連接的類(lèi)作為一個(gè)主題。如何劃分主題如何精練主題從問(wèn)題域和接口復(fù)雜性兩方面入手:使用問(wèn)題域精練主題,即用整體/部分結(jié)構(gòu)對(duì)問(wèn)題域進(jìn)行劃分,而不是按功能分解方法劃分.按高內(nèi)聚低偶合原則,通過(guò)使主題間依賴性和交互性最小原則保留能反映子問(wèn)題域的主題.主題數(shù)目>7個(gè)左右,則進(jìn)一步精練主題.何時(shí)引入主題小系統(tǒng):不需引入主題;中等系統(tǒng):先標(biāo)識(shí)類(lèi)及對(duì)象,然后引入主題;大系統(tǒng):先標(biāo)識(shí)主題,對(duì)問(wèn)題域進(jìn)行劃分,分給不同的任務(wù)組;主題層次的控制中小型系統(tǒng)可只設(shè)一層主題,最多不超過(guò)兩層;大型系統(tǒng)可只設(shè)兩層主題,最多不超過(guò)三層。帳冊(cè)前班節(jié)余銷(xiāo)售事件表收入累計(jì)上交款本班節(jié)余接班計(jì)帳報(bào)帳交班@上級(jí)系統(tǒng)接口帳目目?jī)?cè)@消息發(fā)送查帳報(bào)帳價(jià)格更新種類(lèi)增刪供貨員缺貨登記表缺貨登記供貨銷(xiāo)售事件收款人購(gòu)物清單應(yīng)收款……銷(xiāo)售計(jì)劃入帳商品編號(hào)名稱(chēng)單價(jià)架上數(shù)量下限售出補(bǔ)充價(jià)格更新特價(jià)商品開(kāi)始日期結(jié)束日期計(jì)量商品*單價(jià)計(jì)量單位計(jì)價(jià)方式*售出*補(bǔ)充*價(jià)格更新1m商品一覽表商品目錄檢索種類(lèi)增刪1m(關(guān)系層,完整的類(lèi)圖)@收款機(jī)本班收款員開(kāi)始時(shí)間結(jié)束時(shí)間@登錄售貨結(jié)帳111133332222為什么有必要統(tǒng)一建模語(yǔ)言面對(duì)眾多的建模語(yǔ)言,用戶很難區(qū)別不同語(yǔ)言之間的差別。在眾多的建模語(yǔ)言中,實(shí)際上各有千秋,需要取長(zhǎng)補(bǔ)短,日臻完善。雖然不同的建模語(yǔ)言大多相同,但仍存在某些細(xì)微的差別,這極大地妨礙了用戶之間的交流。6.3UML概述
UML的設(shè)計(jì)目標(biāo)UML是由Booch,Rumbaugh和Jacobson發(fā)起,在Booch方法、OMT方法和OOSE方法的基礎(chǔ)上,集眾家之長(zhǎng),幾經(jīng)修改而成。UML的設(shè)計(jì)目標(biāo)是:運(yùn)用面向?qū)ο蟾拍顏?lái)構(gòu)造系統(tǒng)模型(不僅是針對(duì)軟件)。建立起從概念模型直至可執(zhí)行體之間明顯的對(duì)應(yīng)關(guān)系。著眼于那些有重大影響的問(wèn)題。創(chuàng)建一種對(duì)人和機(jī)器都適用的建模語(yǔ)言。
UML的主要特點(diǎn)UML統(tǒng)一了Booch,OMT和OOSE等方法中的基本概念:用例圖從OOSE來(lái);類(lèi)圖從OMT和Booch等方法來(lái);實(shí)現(xiàn)圖(構(gòu)件圖和配置圖)從Booch的模塊圖和過(guò)程圖來(lái)。UML吸取了OO技術(shù)領(lǐng)域各流派的長(zhǎng)處:狀態(tài)圖從Harel
而來(lái);活動(dòng)圖從工作流圖而來(lái);合作圖從Booch的對(duì)象圖和Fusion的對(duì)象交互作用圖等而來(lái);等等。在演變過(guò)程中UML提出了一些新的概念。
UML的發(fā)展歷程1994.10,Booch
和Rumbaugh
將Booch93和OMT-2統(tǒng)一,1995.10.發(fā)布UM0.8。1995年秋,經(jīng)過(guò)Booch
等三人的努力,1996.6和1996.10發(fā)布UML0.9和UML0.91。1996年成立UML成員協(xié)會(huì),有700多公司支持UML,占領(lǐng)OO市場(chǎng)的85%。1997.1發(fā)布UML1.0,1997.9發(fā)布UML1.1。1997.11OMG采納UML1.1作為OO技術(shù)的標(biāo)準(zhǔn)建模語(yǔ)言。此后,UML的維護(hù)工作由Cris
Kobryn領(lǐng)導(dǎo)的OMG版本修改小組RTF(RevisionTaskForce)負(fù)責(zé).1998.6:UMLV.1.1(編輯修改版).1999.6:UMLV.1.3(技術(shù)終訂版).2001.:UMLV.2.0.
UML是一種建模語(yǔ)言建模方法=建模語(yǔ)言+建模過(guò)程。建模語(yǔ)言定義了用于表示設(shè)計(jì)的符號(hào)(通常是圖形符號(hào));建模過(guò)程描述進(jìn)行設(shè)計(jì)所需要遵循的步驟。標(biāo)準(zhǔn)建模語(yǔ)言UML是一種建模語(yǔ)言,而不是一種方法,它統(tǒng)一了面向?qū)ο蠼5幕靖拍?、術(shù)語(yǔ)及其圖形符號(hào),為人們建立了便于交流的共同語(yǔ)言。建模能力:建模方法+領(lǐng)域知識(shí)+實(shí)踐
UML的建模技術(shù)
構(gòu)造模型的目的
建模技術(shù)要點(diǎn)系統(tǒng)的多態(tài)性構(gòu)造模型的目的模型是對(duì)事物的抽象。人們常常在正式建造實(shí)物之前,先建立模型,以便更透徹地了解它的本質(zhì),抓住問(wèn)題的要害。(1)在著手解決一個(gè)復(fù)雜問(wèn)題之前,對(duì)解決方案進(jìn)行檢測(cè)。(2)用于同客戶和其他相關(guān)人員進(jìn)行交流(3)加強(qiáng)視覺(jué)效果。(4)對(duì)復(fù)雜問(wèn)題進(jìn)行適度簡(jiǎn)化建模技術(shù)要點(diǎn)構(gòu)造模型的基本技術(shù)是抽象,應(yīng)突出與問(wèn)題有關(guān)的特征,將與問(wèn)題無(wú)關(guān)的性質(zhì)略去。不必追求絕對(duì)的真實(shí)和完全,只需從期望的目的角度看其是否充分。應(yīng)當(dāng)刻畫(huà)問(wèn)題的關(guān)鍵方面,略去相對(duì)次要的因素。建模語(yǔ)言應(yīng)支持人的由模糊到清晰、由粗到細(xì)逐漸完善的認(rèn)識(shí)過(guò)程。應(yīng)采用可視化圖形建模語(yǔ)言。系統(tǒng)的多態(tài)性一個(gè)系統(tǒng)應(yīng)具有多方面的特點(diǎn):在功能和性能方面:功能正確,性能良好(效率要高)。在非功能方面:魯棒性、可擴(kuò)充性、可重用性、兼容性、可移值性、可驗(yàn)證性、完整性以及易使用性等方面要好。一個(gè)系統(tǒng)要從多個(gè)視角去描述。一個(gè)視圖可能包含多個(gè)模型圖,每張模型圖都應(yīng)當(dāng)簡(jiǎn)單明了,易于交流。UML:重點(diǎn)是針對(duì)系統(tǒng)的“功能性”
UML模型圖
用例圖(use_case)描述系統(tǒng)實(shí)現(xiàn)的功能
類(lèi)、對(duì)象圖(class_object)描述系統(tǒng)的靜態(tài)結(jié)構(gòu)
靜態(tài)建模機(jī)制圖構(gòu)件圖(component)描述系統(tǒng)在某時(shí)刻的靜態(tài)結(jié)構(gòu)
配置圖(deployment)描述系統(tǒng)運(yùn)行環(huán)境的配置情況
包圖(package)包或類(lèi)組成狀態(tài)圖(statechart)描述某個(gè)用例的工作流
活動(dòng)圖(activity)描述某個(gè)類(lèi)的動(dòng)態(tài)行為
動(dòng)態(tài)建模機(jī)制圖順序圖(sequence)描述系統(tǒng)某些元素在時(shí)間上的交互
合作圖(collaboration)描述系統(tǒng)某些元素之間的協(xié)作關(guān)系UML靜態(tài)建模機(jī)制用例圖(use_case):從用戶角度描述系統(tǒng)的行為,并指出各功能的操作者顯示使用案例與角色之間的交互,從用戶的角度對(duì)系統(tǒng)的要求。
使用案例:
表示功能
角色:
表示系統(tǒng)功能的直接使用者。可換成
關(guān)系說(shuō)明:《use》使用關(guān)系
《include》包含關(guān)系
《extend》擴(kuò)展關(guān)系關(guān)系連線:UseCase框圖〈使用場(chǎng)景圖〉UML模型符號(hào)(1)
用例圖示例(ATM系統(tǒng))
數(shù)據(jù)查詢柜員更新帳目賬目管理系統(tǒng)數(shù)據(jù)更新查詢系統(tǒng)管理員提取現(xiàn)金存款領(lǐng)取ATM卡開(kāi)戶查詢余額轉(zhuǎn)帳儲(chǔ)戶
類(lèi)圖(class):用于定義系統(tǒng)中的類(lèi),包括描述類(lèi)之間的聯(lián)系(如關(guān)聯(lián)、依賴、聚合等)以及類(lèi)的內(nèi)部結(jié)構(gòu),即類(lèi)的屬性和操作。
對(duì)象圖:顯示類(lèi)的對(duì)象實(shí)例,一個(gè)對(duì)象圖是類(lèi)圖的一個(gè)實(shí)例。類(lèi)圖展示類(lèi)使用0..11..*計(jì)算機(jī)名字:String內(nèi)存:Integer作者名字:String年齡:Integer小影:作者名字=“王小影”年齡=32小影的家用PC:計(jì)算機(jī)名字=“Dell486”內(nèi)存=64小影的工作PC:計(jì)算機(jī)名字=“CompaqX”內(nèi)存=32對(duì)象圖展示類(lèi)的實(shí)例使用使用用戶服務(wù)
業(yè)務(wù)服務(wù)數(shù)據(jù)服務(wù)訂單系統(tǒng)包圖包圖(package):包圖由包或類(lèi)組成,主要表示包與包、或包與類(lèi)之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。
順序圖的基本要素順序圖描述對(duì)象之間的動(dòng)態(tài)交互關(guān)系,著重體現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。順序圖的基本要素:對(duì)象:對(duì)象、對(duì)象的生命線、激活的對(duì)象和對(duì)象的刪除。消息:簡(jiǎn)單消息、同步消息、異步消息、返回消息。條件、注釋體和注釋連接。順序圖:用以顯示對(duì)象之間在時(shí)間順序方面的動(dòng)態(tài)合作關(guān)系。因此,如果強(qiáng)調(diào)時(shí)間和順序,應(yīng)當(dāng)使用順序圖。順序圖的可視化圖符激活的對(duì)象帶有生命線的對(duì)象Object:Class分支生命線刪除標(biāo)志簡(jiǎn)單消息用于表示對(duì)象正執(zhí)行某一動(dòng)作,在對(duì)象的生命線之間發(fā)送消息的同時(shí)即激活對(duì)象。用于表示順序圖中參與交互的對(duì)象,每個(gè)對(duì)象的下方都帶有生命線,用于表示該對(duì)象在某段時(shí)間內(nèi)是存在的。生命線可以劈分成多條生命線,用于表示條件,接收分支消息。標(biāo)于生命線或激活上。表示已刪除該對(duì)象或活動(dòng)的執(zhí)行。表示簡(jiǎn)單的控制流。用于描述控制如何在對(duì)象間進(jìn)行傳遞,不考慮通信的細(xì)節(jié)。名稱(chēng)描述可視化圖符注釋連接注釋體返回消息異步消息同步消息名稱(chēng)可視化圖符注釋連接將注釋體與要描述的實(shí)體相連。說(shuō)明該注釋體是對(duì)該實(shí)體所進(jìn)行的描述。用于對(duì)UML實(shí)體進(jìn)行文字描述。用于表示從同步消息激活的動(dòng)作返回到調(diào)用者的消息。表示異步控制流。當(dāng)調(diào)用者發(fā)出消息后不要等待消息的返回即可繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實(shí)時(shí)系統(tǒng)中的并發(fā)行為。表示嵌套的控制流。操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息的返回;當(dāng)處理消息的操作執(zhí)行完畢,調(diào)用者才可繼續(xù)執(zhí)行自己的操作。描述順序圖畫(huà)法的通用準(zhǔn)則盡力保持消息的順序從左到右排列。用和你的用例圖一致的名稱(chēng)命名角色。用和你的類(lèi)圖一致的名稱(chēng)命名類(lèi)。一個(gè)角色的名稱(chēng)可以和類(lèi)的名稱(chēng)相同。包含一個(gè)邏輯的敘述性描述。在圖的最左邊放置初始的角色。在圖的最左邊放置人和組織角色。在圖的最右邊放置系統(tǒng)角色。只在合適的時(shí)候才建模對(duì)象的Destruction。
:計(jì)算機(jī):打印服務(wù)程序:打印機(jī):打印隊(duì)列[打印機(jī)空閑]打?。ㄎ募打印機(jī)忙]保存(文件)打?。ㄎ募┐蛴C(jī)場(chǎng)景順序圖
合作圖:著重描述對(duì)象間的通信方面的動(dòng)態(tài)合作關(guān)系。因此,如果強(qiáng)調(diào)通信關(guān)系,則可以選擇合作圖。[打印機(jī)忙]1.2保存(文件):計(jì)算機(jī):打印隊(duì)列1:打?。ㄎ募?打印服務(wù)程序:打印機(jī)[打印機(jī)空閑]1.1打?。ㄎ募┮慌_(tái)打印機(jī)服務(wù)器的合作圖狀態(tài)圖:描述一類(lèi)對(duì)象的所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。即:研究類(lèi)、角色、子系統(tǒng)、或組件的復(fù)雜行為。上升(樓層)在第一層上升(樓層)向第一層下降下降狀態(tài)空閑狀態(tài)上升狀態(tài)到達(dá)(樓層)到達(dá)(樓層)下降(樓層)超時(shí)一部電梯的狀態(tài)圖畫(huà)狀態(tài)圖的通用準(zhǔn)則當(dāng)行為的改變和狀態(tài)有關(guān)時(shí)才創(chuàng)建狀態(tài)圖。把初始狀態(tài)放置在左上角。把最終狀態(tài)放置在右下角。活動(dòng)圖:描述為滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系。使用活動(dòng)圖可以很方便地表示并行活動(dòng)。一臺(tái)打印機(jī)服務(wù)器的活動(dòng)圖創(chuàng)建附加文件顯示"磁盤(pán)已滿"的信息顯示"正在打印"的信息[磁盤(pán)已滿][尚有磁盤(pán)空間]打印機(jī).打印(文件)刪除顯示信息的對(duì)話框帳務(wù)憑證處理記帳憑證匯總報(bào)表構(gòu)件圖(component):描述部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系。配置圖:定義系統(tǒng)中(特別是在分布式及網(wǎng)絡(luò)環(huán)境中)軟硬件的物理構(gòu)架。描述系統(tǒng)物理構(gòu)架的配置圖《DecNet協(xié)議》客戶A:個(gè)人電腦PC客戶B:個(gè)人電腦PC《TCP/IP協(xié)議》《TCP/IP協(xié)議》服務(wù)器:02數(shù)據(jù)庫(kù)服務(wù)器:VAX基于UML的軟件開(kāi)發(fā)過(guò)程6.4基于UML的需求分析1)分析使用場(chǎng)景,畫(huà)UseCase2)標(biāo)識(shí)對(duì)象類(lèi)3)畫(huà)Class對(duì)象類(lèi)圖4)組織類(lèi)結(jié)構(gòu)(繼承、聚合關(guān)系)5)定義主題(子系統(tǒng))6)畫(huà)Sequence順序圖(軌跡圖)7)畫(huà)StateTransition狀態(tài)圖8)畫(huà)Collaboration協(xié)作圖面向?qū)ο蟮姆治龇椒ê筒襟E確定系統(tǒng)結(jié)構(gòu)確定系統(tǒng)行為系統(tǒng)結(jié)構(gòu):體現(xiàn)在實(shí)體之間的關(guān)系上系統(tǒng)行為:體現(xiàn)在作用于實(shí)體屬性的操作上當(dāng)初步的業(yè)務(wù)需求描述已經(jīng)形成的前提下,基于UML的需求分析大致可分為如下步驟:(1)利用用例及用例圖表示需求。(2)利用包圖及類(lèi)圖表示目標(biāo)軟件系統(tǒng)的總體框架結(jié)構(gòu)。上述兩個(gè)步驟并沒(méi)有時(shí)序關(guān)系,它們可以并行展開(kāi)。領(lǐng)域?qū)<曳治鰩煒I(yè)務(wù)需求描述用例用例圖類(lèi)圖頂層架構(gòu)領(lǐng)域概念模型場(chǎng)景需求分析過(guò)程用例的一些基本特點(diǎn)用例描述了用戶提出的一些可見(jiàn)需求;用例可大可小例:10人年的項(xiàng)目,20-100個(gè)用例用例對(duì)應(yīng)一個(gè)具體的用戶目標(biāo)從本質(zhì)上講,一個(gè)用例是用戶與計(jì)算機(jī)之間為達(dá)到某個(gè)目的的一次典型交互。以字處理程序?yàn)槔?,“將某些正文置為黑體”和“創(chuàng)建一個(gè)索引”便是兩個(gè)典型的用例。從這兩個(gè)例子中可以了解用例的一些特點(diǎn):對(duì)用例模型關(guān)心的人員客戶:他關(guān)心如何使用系統(tǒng)的功能;充當(dāng)模型中的哪一個(gè)角色;如何調(diào)整模型可以更好地適應(yīng)他們的愿望。開(kāi)發(fā)人員:他需要理解系統(tǒng)的功能,以作為今后工作的基礎(chǔ)和依據(jù);在系統(tǒng)集成測(cè)試期間,可以使用這些用例測(cè)試系統(tǒng)。其他人員:銷(xiāo)售人員,技術(shù)支持人員,文檔編寫(xiě)人員等也關(guān)心用例圖。就前面例子畫(huà)用例圖,順序圖
用例圖中的圖符(UML1.3)執(zhí)行者系統(tǒng)用例關(guān)聯(lián)《擴(kuò)展》注釋體注釋連接《包含》泛化包含關(guān)系與泛化關(guān)系包含關(guān)系:描述在多個(gè)用例中都有的公共行為泛化關(guān)系:一個(gè)用例類(lèi)似與另一個(gè)用例,但多一些內(nèi)容。擴(kuò)展關(guān)系類(lèi)似與泛化關(guān)系,但添加了一些新規(guī)則擴(kuò)展用例可以在基用例之上添加新的行為,但是基用例必須生命某些特定的“擴(kuò)展點(diǎn)”,并且擴(kuò)展用例只能在這些擴(kuò)展點(diǎn)上擴(kuò)展新的行為。固定顧客購(gòu)買(mǎi)商品擴(kuò)展點(diǎn):付款信息購(gòu)物信息《擴(kuò)展》用例圖舉例《包含》《包含》風(fēng)險(xiǎn)分析交易估價(jià)進(jìn)行交易超越邊界評(píng)價(jià)營(yíng)銷(xiāo)人員銷(xiāo)售人員泛化用例的獲取首先獲取簡(jiǎn)單的、常規(guī)的用例作為基本用例(在上例中,基本用例是進(jìn)行交易)。當(dāng)一個(gè)用例與另一個(gè)用例相似,但比另一個(gè)用例做的動(dòng)作要多,采用擴(kuò)展關(guān)系:對(duì)用例中的每一步,問(wèn)一下“這兒可能出現(xiàn)什么異常情況”以及“是否需要采取不同的解決方法”;將所有出現(xiàn)變動(dòng)的部分列出,作為給定用例的擴(kuò)展。一旦獲取了系統(tǒng)的執(zhí)行者,就可對(duì)每個(gè)執(zhí)行者提出一些問(wèn)題,然后從執(zhí)行者對(duì)這些問(wèn)題的答案中獲取
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)險(xiǎn)委托代理合同書(shū)(22篇)
- 書(shū)憤(課件)-中職高二語(yǔ)文教學(xué)資源(高教版2023職業(yè)模塊)
- 2025年幼兒園教育:《水果拼盤(pán)》教案實(shí)踐
- 房地產(chǎn)估價(jià)委托協(xié)議書(shū)(6篇)
- 肉雞蛋雞養(yǎng)殖安全體系
- 江蘇衡山置業(yè)昆山商業(yè)綜合體項(xiàng)目整體定位與發(fā)展戰(zhàn)略報(bào)告
- 三農(nóng)產(chǎn)品衛(wèi)生標(biāo)準(zhǔn)與監(jiān)管辦法
- 公司日常運(yùn)營(yíng)規(guī)章制度
- 2025年國(guó)際轉(zhuǎn)化醫(yī)學(xué)大會(huì)課件
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)架構(gòu)設(shè)計(jì)與實(shí)施方案設(shè)計(jì)
- 椎管打骨水泥后的護(hù)理
- 學(xué)習(xí)與科技的融合主題班會(huì)
- 《直播銷(xiāo)售》課件-項(xiàng)目一 認(rèn)識(shí)直播與直播銷(xiāo)售
- 2025年南京科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025-2030年中國(guó)航空配餐行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資前景規(guī)劃研究報(bào)告
- 新課標(biāo)背景下的跨學(xué)科學(xué)習(xí)內(nèi)涵、設(shè)置邏輯與實(shí)踐原則
- 母嬰分離產(chǎn)婦的護(hù)理
- 2025教科版一年級(jí)科學(xué)下冊(cè)教學(xué)計(jì)劃
- 人教版高一上學(xué)期數(shù)學(xué)(必修一)期末考試卷(附答案)
- DBJT14-100-2013 外墻外保溫應(yīng)用技術(shù)規(guī)程(改性酚醛泡沫板薄抹灰外墻外保溫系統(tǒng))
- 2024解析:第六章質(zhì)量和密度-講核心(解析版)
評(píng)論
0/150
提交評(píng)論