版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
統(tǒng)一建模語言基礎(chǔ)知識(shí)第1頁(yè),共66頁(yè)。本章教學(xué)內(nèi)容UML簡(jiǎn)介類圖順序圖狀態(tài)圖第2頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的誕生在一個(gè)現(xiàn)代化的工程中,人們要相互溝通和合作,就必須使用標(biāo)準(zhǔn)的工業(yè)化設(shè)計(jì)語言,用這些語言來對(duì)待開發(fā)的產(chǎn)品進(jìn)行建模。建模過程把復(fù)雜的問題分解成為易于理解的小問題,以達(dá)到問題的求解。建模是開發(fā)優(yōu)秀軟件的所有活動(dòng)中核心部分之一,其目的是把所要設(shè)計(jì)的結(jié)構(gòu)和系統(tǒng)的行為聯(lián)系起來,并對(duì)系統(tǒng)的結(jié)構(gòu)進(jìn)行可視化控制。第3頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的誕生從1994年起,GradyBooch和JamesRumbaugh在Rational軟件公司開始了UML的創(chuàng)建工作。1995年,OOSE方法和Objectory方法的創(chuàng)建者IvarJacobson也加入其中。UML三位創(chuàng)始人正式聯(lián)手,共同為創(chuàng)建一種標(biāo)準(zhǔn)的建模語言而一起工作,他們將開發(fā)出來的產(chǎn)品名稱定為UML(UnifiedModelingLanguage,統(tǒng)一建模語言)。第4頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的誕生1997年11月,在IvarJacoboson、GradyBooch以及JamesRumbaugh的共同努力下,UML1.1版本提交給OMG(ObjectManagementGroup,對(duì)象管理組織)并獲得通過,UML1.1成為業(yè)界標(biāo)準(zhǔn)的建模語言。2003年6月,OMG技術(shù)會(huì)議上UML2.0獲得正式通過,UML的發(fā)展與應(yīng)用也上升到一個(gè)新的高度,越來越多的人開始學(xué)習(xí)和使用UML來進(jìn)行軟件建模。第5頁(yè),共66頁(yè)。UML簡(jiǎn)介UMLUnifiedModelingLanguage統(tǒng)一建模語言統(tǒng)一建模語言統(tǒng)一建模語言第6頁(yè),共66頁(yè)。UML簡(jiǎn)介IvarJacobosonGradyBoochJamesRumbaughObjectModelingTechnique(OMT)Booch開發(fā)方法Object-OrientedSoftwareEngineering(OOSE)UML第7頁(yè),共66頁(yè)。UML簡(jiǎn)介你應(yīng)該使用UML嗎?是!舊的面向?qū)ο蠓?hào)正在快速消失,新的書、文章將全部采用UML作為符號(hào)。如果你正要開始使用建模符號(hào),你就該直接學(xué)習(xí)UML。--MartinFowler第8頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)視圖(View)用戶視圖:以用戶的觀點(diǎn)表示系統(tǒng)的目標(biāo),它是所有視圖的核心,該視圖描述系統(tǒng)的需求。結(jié)構(gòu)視圖:表示系統(tǒng)的靜態(tài)行為,描述系統(tǒng)的靜態(tài)元素,如包、類與對(duì)象,以及它們之間的關(guān)系。行為視圖:表示系統(tǒng)的動(dòng)態(tài)行為,描述系統(tǒng)的組成元素如對(duì)象在系統(tǒng)運(yùn)行時(shí)的交互關(guān)系。實(shí)現(xiàn)視圖:表示系統(tǒng)中邏輯元素的分布,描述系統(tǒng)中物理文件以及它們之間的關(guān)系。環(huán)境視圖:表示系統(tǒng)中物理元素的分布,描述系統(tǒng)中硬件設(shè)備以及它們之間的關(guān)系。第9頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)用例圖(UseCaseDiagram):
又稱為用況圖,對(duì)應(yīng)于用戶視圖。在用例圖中,使用用例來表示系統(tǒng)的功能需求,用例圖用于表示多個(gè)外部執(zhí)行者與系統(tǒng)用例之間以及用例與用例之間的關(guān)系。用例圖與用例說明文檔(UseCaseSpecification)是常用的需求建模工具,也稱之為用例建模。第10頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)類圖(ClassDiagram):對(duì)應(yīng)于結(jié)構(gòu)視圖。類圖使用類來描述系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖包含類和它們之間的關(guān)系,它描述系統(tǒng)內(nèi)所聲明的類,但它沒有描述系統(tǒng)運(yùn)行時(shí)類的行為。用例圖與類圖是UML13種圖中使用頻率最高的兩種圖。第11頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)對(duì)象圖(ObjectDiagram):對(duì)應(yīng)于結(jié)構(gòu)視圖。對(duì)象圖是類圖在某一時(shí)刻的一個(gè)實(shí)例,用于表示類的對(duì)象實(shí)例之間的關(guān)系。包圖(PackageDiagram):UML2.0新增圖,對(duì)應(yīng)于結(jié)構(gòu)視圖。包圖用于描述包與包之間的關(guān)系,包是一種把元素組織到一起的通用機(jī)制,如可以將多個(gè)類組織成一個(gè)包。第12頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)組合結(jié)構(gòu)圖(CompositeStructureDiagram):UML2.0新增圖,對(duì)應(yīng)于結(jié)構(gòu)視圖。組合結(jié)構(gòu)圖將每一個(gè)類放在一個(gè)整體中,從類的內(nèi)部結(jié)構(gòu)來審視一個(gè)類。組合結(jié)構(gòu)圖可用于表示一個(gè)類的內(nèi)部結(jié)構(gòu),用于描述一些包含復(fù)雜成員或內(nèi)部類的類結(jié)構(gòu)。狀態(tài)圖(StateDiagram):對(duì)應(yīng)于行為視圖。狀態(tài)圖用來描述一個(gè)特定對(duì)象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。一個(gè)狀態(tài)圖包括一系列對(duì)象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)換。第13頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)活動(dòng)圖(ActivityDiagram):對(duì)應(yīng)于行為視圖。活動(dòng)圖用來表示系統(tǒng)中各種活動(dòng)的次序,它的應(yīng)用非常廣泛,既可用來描述用例的工作流程,也可以用來描述類中某個(gè)方法的操作行為。順序圖(SequenceDiagram):又稱為時(shí)序圖或序列圖,對(duì)應(yīng)于行為視圖。順序圖用于表示對(duì)象之間的交互,重點(diǎn)表示對(duì)象之間發(fā)送消息的時(shí)間順序。第14頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)通信圖(CommunicationDiagram):在UML1.x中稱為協(xié)作圖,對(duì)應(yīng)于行為視圖。通信圖展示了一組對(duì)象、這些對(duì)象間的連接以及它們之間收發(fā)的消息。它與順序圖是同構(gòu)圖,也就是它們包含了相同的信息,只是表達(dá)方式不同而已,通信圖與順序圖可以相互轉(zhuǎn)換。
定時(shí)圖(TimingDiagram):UML2.0新增圖,對(duì)應(yīng)于行為視圖。定時(shí)圖采用一種帶數(shù)字刻度的時(shí)間軸來精確地描述消息的順序,而不是像順序圖那樣只是指定消息的相對(duì)順序,而且它還允許可視化地表示每條生命線的狀態(tài)變化,當(dāng)需要對(duì)實(shí)時(shí)事件進(jìn)行定義時(shí),定時(shí)圖可以很好地滿足要求。
第15頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)交互概覽圖(InteractionOverviewDiagram):UML2.0新增圖,對(duì)應(yīng)于行為視圖。交互概覽圖是交互圖與活動(dòng)圖的混合物,可以把交互概覽圖理解為細(xì)化的活動(dòng)圖,在其中的活動(dòng)都通過一些小型的順序圖來表示;也可以將其理解為利用標(biāo)明控制流的活動(dòng)圖分解過的順序圖。在UML中,順序圖、通信圖、定時(shí)圖和交互概覽圖又統(tǒng)稱交互圖(InteractiveDiagram),交互圖是表示各對(duì)象如何依據(jù)某種行為進(jìn)行協(xié)作的模型,通??梢允褂靡粋€(gè)交互圖來表示和說明一個(gè)用例的行為。第16頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)圖(Diagram)組件圖(ComponentDiagram):又稱為構(gòu)件圖,對(duì)應(yīng)于實(shí)現(xiàn)視圖。組件圖用于描述每個(gè)功能所在的組件位置以及它們之間的關(guān)系。部署圖(DeploymentDiagram):又稱為實(shí)施圖,對(duì)應(yīng)于環(huán)境視圖。部署圖用于描述軟件中各個(gè)組件駐留的硬件位置以及這些硬件之間的交互關(guān)系。第17頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)模型元素(Modelelement)在UML中,模型元素包括事物以及事物與事物之間的聯(lián)系。事物是UML的重要組成部分,它代表任何可以定義的東西。事物之間的關(guān)系把事物聯(lián)系在一起,組成有意義的結(jié)構(gòu)模型。每一個(gè)模型元素都有一個(gè)與之相對(duì)應(yīng)的圖形元素。同一個(gè)模型元素可以在不同的UML圖中使用,但是,無論在哪個(gè)圖中,同一個(gè)模型元素都保持相同的意義和符號(hào)。第18頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的結(jié)構(gòu)通用機(jī)制(Generalmechanism)UML提供的通用機(jī)制為模型元素提供額外的注釋、修飾和語義等,主要包括規(guī)格說明、修飾、公共分類和擴(kuò)展機(jī)制四種。擴(kuò)展機(jī)制允許用戶對(duì)UML進(jìn)行擴(kuò)展,以便一個(gè)特定的方法、過程、組織或用戶來使用。第19頁(yè),共66頁(yè)。UML簡(jiǎn)介UML的特點(diǎn)
工程化
規(guī)范化
可視化
系統(tǒng)化
文檔化
智能化文字能描述的需求UML能描述的需求其他符號(hào)能描述的需求第20頁(yè),共66頁(yè)。類圖類與類圖類(Class)封裝了數(shù)據(jù)和行為,是面向?qū)ο蟮闹匾M成部分,它是具有相同屬性、操作、關(guān)系的對(duì)象集合的總稱。在系統(tǒng)中,每個(gè)類具有一定的職責(zé),職責(zé)指的是類所擔(dān)任的任務(wù),即類要完成什么樣的功能,要承擔(dān)什么樣的義務(wù)。一個(gè)類可以有多種職責(zé),設(shè)計(jì)得好的類一般只有一種職責(zé),在定義類的時(shí)候,將類的職責(zé)分解成為類的屬性和操作(即方法)。類的屬性即類的數(shù)據(jù)職責(zé),類的操作即類的行為職責(zé)。第21頁(yè),共66頁(yè)。類圖類與類圖在UML類圖中,類一般由三部分組成:類名:每個(gè)類都必須有一個(gè)名字,類名是一個(gè)字符串。屬性(Attributes):屬性是指類的性質(zhì),即類的成員變量。類可以有任意多個(gè)屬性,也可以沒有屬性。操作(Operations):操作是類的任意一個(gè)實(shí)例對(duì)象都可以使用的行為,操作是類的成員方法??梢娦悦Q:類型[=默認(rèn)值]可見性名稱(參數(shù)列表):返回類型第22頁(yè),共66頁(yè)。類圖類之間的關(guān)系關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系(Association)是類與類之間最常用的一種關(guān)系,它是一種結(jié)構(gòu)化關(guān)系,用于表示一類對(duì)象與另一類對(duì)象之間有聯(lián)系。在UML類圖中,用實(shí)線連接有關(guān)聯(lián)的對(duì)象所對(duì)應(yīng)的類,在使用Java、C#和C++等編程語言實(shí)現(xiàn)關(guān)聯(lián)關(guān)系時(shí),通常將一個(gè)類的對(duì)象作為另一個(gè)類的屬性。在使用類圖表示關(guān)聯(lián)關(guān)系時(shí)可以在關(guān)聯(lián)線上標(biāo)注角色名。第23頁(yè),共66頁(yè)。類圖類之間的關(guān)系關(guān)聯(lián)關(guān)系publicclassLoginForm{privateJButtonloginButton;……}publicclassJButton{
……}第24頁(yè),共66頁(yè)。類圖類之間的關(guān)系雙向關(guān)聯(lián)默認(rèn)情況下,關(guān)聯(lián)是雙向的。publicclassCustomer{privateProduct[]products;……}publicclassProduct{privateCustomercustomer;……}第25頁(yè),共66頁(yè)。類圖類之間的關(guān)系單向關(guān)聯(lián)類的關(guān)聯(lián)關(guān)系也可以是單向的,單向關(guān)聯(lián)用帶箭頭的實(shí)線表示。publicclassCustomer{privateAddressaddress;……}publicclassAddress{……}第26頁(yè),共66頁(yè)。類圖類之間的關(guān)系自關(guān)聯(lián)在系統(tǒng)中可能會(huì)存在一些類的屬性對(duì)象類型為該類本身,這種特殊的關(guān)聯(lián)關(guān)系稱為自關(guān)聯(lián)。publicclassNode{privateNodesubNode;……}第27頁(yè),共66頁(yè)。類圖類之間的關(guān)系重?cái)?shù)性關(guān)聯(lián)重?cái)?shù)性關(guān)聯(lián)關(guān)系又稱為多重性關(guān)聯(lián)關(guān)系(Multiplicity),表示一個(gè)類的對(duì)象與另一個(gè)類的對(duì)象連接的個(gè)數(shù)。在UML中多重性關(guān)系可以直接在關(guān)聯(lián)直線上增加一個(gè)數(shù)字表示與之對(duì)應(yīng)的另一個(gè)類的對(duì)象的個(gè)數(shù)。表示方式多重性說明1..1表示另一個(gè)類的一個(gè)對(duì)象只與一個(gè)該類對(duì)象有關(guān)系0..*表示另一個(gè)類的一個(gè)對(duì)象與零個(gè)或多個(gè)該類對(duì)象有關(guān)系1..*表示另一個(gè)類的一個(gè)對(duì)象與一個(gè)或多個(gè)該類對(duì)象有關(guān)系0..1表示另一個(gè)類的一個(gè)對(duì)象沒有或只與一個(gè)該類對(duì)象有關(guān)系m..n表示另一個(gè)類的一個(gè)對(duì)象與最少m、最多n個(gè)該類對(duì)象有關(guān)系(m<=n)第28頁(yè),共66頁(yè)。類圖類之間的關(guān)系重?cái)?shù)性關(guān)聯(lián)publicclassForm{
privateButtonbuttons[];……}publicclassButton{…}第29頁(yè),共66頁(yè)。類圖類之間的關(guān)系聚合關(guān)系聚合關(guān)系(Aggregation)表示一個(gè)整體與部分的關(guān)系。通常在定義一個(gè)整體類后,再去分析這個(gè)整體類的組成結(jié)構(gòu),從而找出一些成員類,該整體類和成員類之間就形成了聚合關(guān)系。在聚合關(guān)系中,成員類是整體類的一部分,即成員對(duì)象是整體對(duì)象的一部分,但是成員對(duì)象可以脫離整體對(duì)象獨(dú)立存在。在UML中,聚合關(guān)系用帶空心菱形的直線表示。第30頁(yè),共66頁(yè)。類圖類之間的關(guān)系聚合關(guān)系publicclassCar{privateEngineengine;publicCar(Engineengine){this.engine=engine;}
publicvoidsetEngine(Engineengine){this.engine=engine;}……}publicclassEngine{
……}第31頁(yè),共66頁(yè)。類圖類之間的關(guān)系組合關(guān)系組合關(guān)系(Composition)也表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對(duì)象不存在,部分對(duì)象也將不存在,部分對(duì)象與整體對(duì)象之間具有同生共死的關(guān)系。在組合關(guān)系中,成員類是整體類的一部分,而且整體類可以控制成員類的生命周期,即成員類的存在依賴于整體類。在UML中,組合關(guān)系用帶實(shí)心菱形的直線表示。第32頁(yè),共66頁(yè)。類圖類之間的關(guān)系組合關(guān)系publicclassHead{privateMouthmouth;publicHead(){ mouth=newMouth();}……}publicclassMouth{
……}第33頁(yè),共66頁(yè)。類圖類之間的關(guān)系依賴關(guān)系依賴關(guān)系(Dependency)是一種使用關(guān)系,特定事物的改變有可能會(huì)影響到使用該事物的其他事物,在需要表示一個(gè)事物使用另一個(gè)事物時(shí)使用依賴關(guān)系。大多數(shù)情況下,依賴關(guān)系體現(xiàn)在某個(gè)類的方法使用另一個(gè)類的對(duì)象作為參數(shù)。在UML中,依賴關(guān)系用帶箭頭的虛線表示,由依賴的一方指向被依賴的一方。第34頁(yè),共66頁(yè)。類圖類之間的關(guān)系依賴關(guān)系publicclassDriver{publicvoiddrive(Carcar){car.move();}
……}publicclassCar{publicvoidmove(){......}
……}第35頁(yè),共66頁(yè)。類圖類之間的關(guān)系泛化關(guān)系泛化關(guān)系(Generalization)也就是繼承關(guān)系,也稱為“is-a-kind-of”關(guān)系,泛化關(guān)系用于描述父類與子類之間的關(guān)系,父類又稱作基類或超類,子類又稱作派生類。在UML中,泛化關(guān)系用帶空心三角形的直線來表示。在代碼實(shí)現(xiàn)時(shí),使用面向?qū)ο蟮睦^承機(jī)制來實(shí)現(xiàn)泛化關(guān)系,如在Java語言中使用extends關(guān)鍵字、在C++/C#中使用冒號(hào)“:”來實(shí)現(xiàn)。第36頁(yè),共66頁(yè)。類圖類之間的關(guān)系泛化關(guān)系publicclassPerson{protectedStringname;protectedintage;publicvoidmove(){
……}publicvoidsay(){
……}}publicclassStudentextendsPerson{privateStringstudentNo;publicvoidstudy(){
……}}第37頁(yè),共66頁(yè)。類圖類之間的關(guān)系接口與實(shí)現(xiàn)關(guān)系接口之間也可以有與類之間關(guān)系類似的繼承關(guān)系和依賴關(guān)系,但是接口和類之間還存在一種實(shí)現(xiàn)關(guān)系(Realization),在這種關(guān)系中,類實(shí)現(xiàn)了接口,類中的操作實(shí)現(xiàn)了接口中所聲明的操作。在UML中,類與接口之間的實(shí)現(xiàn)關(guān)系用帶空心三角形的虛線來表示。
第38頁(yè),共66頁(yè)。類圖類之間的關(guān)系接口與實(shí)現(xiàn)關(guān)系publicinterfaceVehicle{publicvoidmove();}publicclassShipimplementsVehicle{publicvoidmove(){
……}}publicclassCarimplementsVehicle{publicvoidmove(){
……}}第39頁(yè),共66頁(yè)。類圖類圖實(shí)例實(shí)例說明某基于Java語言的C/S軟件需要提供注冊(cè)功能,該功能簡(jiǎn)要描述如下:用戶通過注冊(cè)界面(RegisterForm)輸入個(gè)人信息,用戶點(diǎn)擊“注冊(cè)”按鈕后將輸入的信息通過一個(gè)封裝用戶輸入數(shù)據(jù)的對(duì)象(UserDTO)傳遞給操作數(shù)據(jù)庫(kù)的數(shù)據(jù)訪問類(DAO),為了提高系統(tǒng)的擴(kuò)展性,針對(duì)不同的數(shù)據(jù)庫(kù)可能需要提供不同的數(shù)據(jù)訪問類,因此提供了數(shù)據(jù)訪問類接口,如IUserDAO,每一個(gè)具體數(shù)據(jù)訪問類都是某一個(gè)數(shù)據(jù)訪問類接口的實(shí)現(xiàn)類,如OracleUserDAO就是一個(gè)專門用于訪問Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)訪問類。根據(jù)以上描述繪制類圖。為了簡(jiǎn)化類圖,個(gè)人信息僅包括賬號(hào)(userAccount)和密碼(userPassword),且界面類無須涉及界面細(xì)節(jié)元素。第40頁(yè),共66頁(yè)。類圖類圖實(shí)例實(shí)例解析第41頁(yè),共66頁(yè)。類圖注釋(Comment)第42頁(yè),共66頁(yè)。順序圖順序圖是最常用的系統(tǒng)動(dòng)態(tài)建模工具之一,也是使用頻率最高的交互圖。它用于表示對(duì)象之間的動(dòng)態(tài)交互,而且以圖形化的方式描述了對(duì)象間消息傳遞的時(shí)間順序。
第43頁(yè),共66頁(yè)。順序圖順序圖定義
順序圖(SequenceDiagram)是一種強(qiáng)調(diào)對(duì)象間消息傳遞次序的交互圖,又稱為時(shí)序圖或序列圖。順序圖以圖形化的方式描述了在一個(gè)用例或操作的執(zhí)行過程中對(duì)象如何通過消息相互交互,說明了消息如何在對(duì)象之間被發(fā)送和接收以及發(fā)送的順序。順序圖允許直觀地表示出對(duì)象的生存期,在生存期內(nèi),對(duì)象可以對(duì)輸入消息做出響應(yīng),還可以發(fā)送信息。第44頁(yè),共66頁(yè)。順序圖順序圖定義
在軟件系統(tǒng)建模中,順序圖的使用很靈活,通常包括如下兩種順序圖:需求分析階段的順序圖:主要用于描述用例中對(duì)象之間的交互,可以使用自然語言來繪制,用于細(xì)化需求,它從業(yè)務(wù)的角度進(jìn)行建模,用描述性的文字?jǐn)⑹鱿⒌膬?nèi)容。系統(tǒng)設(shè)計(jì)階段的順序圖:確切表示系統(tǒng)設(shè)計(jì)中對(duì)象之間的交互,考慮到具體的系統(tǒng)實(shí)現(xiàn),對(duì)象之間通過方法調(diào)用傳遞消息。第45頁(yè),共66頁(yè)。順序圖順序圖組成元素與繪制在UML中,順序圖將交互關(guān)系表示為一個(gè)二維圖,縱向是時(shí)間軸,時(shí)間沿豎線向下延伸;橫向軸表示了在交互過程中的獨(dú)立對(duì)象,對(duì)象的活動(dòng)用生命線表示。順序圖由執(zhí)行者(Actor)、生命線(Lifeline)、對(duì)象(Object)、激活框(Activation)和消息(Message)等元素組成。第46頁(yè),共66頁(yè)。順序圖順序圖組成元素與繪制執(zhí)行者是交互的發(fā)起人,使用與用例圖一樣的“小人”符號(hào)表示,在有些交互過程中無須使用執(zhí)行者。生命線用一條縱向虛線表示。對(duì)象表示為一個(gè)矩形,其中對(duì)象名稱標(biāo)有下劃線。激活是過程的執(zhí)行,包括等待過程執(zhí)行的時(shí)間。在順序圖中激活部分替換生命線,使用長(zhǎng)條的矩形表示。消息是對(duì)象之間的通信,是兩個(gè)對(duì)象之間的單路通信,是從發(fā)送者到接收者之間的控制信息流。消息在順序圖中由有標(biāo)記的箭頭表示,箭頭從一個(gè)對(duì)象的生命線指向另一個(gè)對(duì)象的生命線,消息按時(shí)間順序在圖中從上到下排列。第47頁(yè),共66頁(yè)。順序圖順序圖組成元素與繪制一個(gè)復(fù)雜的順序圖可以劃分為幾個(gè)小塊,每一個(gè)小塊稱為一個(gè)交互片段(InteractionFragment)。每個(gè)交互片段由一個(gè)大方框包圍,在方框左上角的間隔區(qū)內(nèi)標(biāo)注該交互片段的操作類型,該操作類型用操作符表示,常用的操作符包括:1)alt:多條路徑,條件為真時(shí)執(zhí)行。2)opt:任選,僅當(dāng)條件為真時(shí)執(zhí)行。3)par:并行,每一片段都并發(fā)執(zhí)行。4)loop:循環(huán),片段可多次執(zhí)行。第48頁(yè),共66頁(yè)。順序圖順序圖組成元素與繪制實(shí)例第49頁(yè),共66頁(yè)。順序圖順序圖組成元素與繪制在順序圖中,有的消息對(duì)應(yīng)于激活,表示它將會(huì)激活一個(gè)對(duì)象,這種消息稱為調(diào)用消息(CallMessage);如果消息沒有對(duì)應(yīng)激活框,表示它不是一個(gè)調(diào)用消息,不會(huì)引發(fā)其他對(duì)象的活動(dòng),這種消息稱為發(fā)送消息(SendMessage);如果對(duì)象的一個(gè)方法調(diào)用了自己的另一個(gè)方法時(shí),消息是由對(duì)象發(fā)送給自身,這種消息稱為自身消息(SelfCallMessage)。順序圖中的消息還包括創(chuàng)建消息和銷毀消息,創(chuàng)建消息用于使用new關(guān)鍵字創(chuàng)建另一個(gè)對(duì)象,而銷毀消息用于調(diào)用對(duì)象的銷毀方法將一個(gè)對(duì)象從內(nèi)存中銷毀。第50頁(yè),共66頁(yè)。順序圖順序圖實(shí)例實(shí)例說明某基于JavaEE的B/S系統(tǒng)需要提供登錄功能,該功能簡(jiǎn)要描述如下:用戶打開登錄界面login.jsp輸入數(shù)據(jù),向系統(tǒng)提交請(qǐng)求,系統(tǒng)通過Servlet獲取請(qǐng)求數(shù)據(jù),將數(shù)據(jù)傳遞給業(yè)務(wù)對(duì)象,業(yè)務(wù)對(duì)象接收數(shù)據(jù)后再將數(shù)據(jù)傳遞給數(shù)據(jù)訪問對(duì)象,數(shù)據(jù)訪問對(duì)象對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,查詢用戶信息,再返回查詢結(jié)果。根據(jù)以上描述繪制順序圖。第51頁(yè),共66頁(yè)。順序圖順序圖實(shí)例實(shí)例解析需求分析第52頁(yè),共66頁(yè)。順序圖順序圖實(shí)例實(shí)例解析-系統(tǒng)設(shè)計(jì)第53頁(yè),共66頁(yè)。狀態(tài)圖對(duì)于系統(tǒng)中那些具有多種狀態(tài)的對(duì)象,狀態(tài)圖是一種常用的建模手段。狀態(tài)圖用于描述對(duì)象的各種狀態(tài)以及狀態(tài)之間的轉(zhuǎn)換。右圖:某OA系統(tǒng)請(qǐng)假條對(duì)象狀態(tài)圖第54頁(yè),共66頁(yè)。狀態(tài)圖狀態(tài)圖定義狀態(tài)圖(StatechartDiagram)用來描述一個(gè)特定對(duì)象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。我們通常用狀態(tài)圖來描述單個(gè)對(duì)象的行為,它確定了由事件序列引出的狀態(tài)序列,但并不是所有的類都需要使用狀態(tài)圖來描述它的行為,只有那些具有重要交互行為的類,我們才會(huì)使用狀態(tài)圖來描述,一個(gè)狀態(tài)圖包括一系列的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移。第55頁(yè),共66頁(yè)。狀態(tài)圖狀態(tài)圖定義大多數(shù)面向?qū)ο蠹夹g(shù)都使用狀態(tài)圖來描述一個(gè)對(duì)象在其生命周期中的行為,對(duì)象從產(chǎn)生到結(jié)束,可以處于一系列不同的狀態(tài)。狀態(tài)影響對(duì)象的行為,當(dāng)這些狀態(tài)的數(shù)目有限時(shí),就可以用狀態(tài)圖來建模對(duì)象的行為,狀態(tài)圖顯示了單個(gè)類的生命周期,在不同狀態(tài)下對(duì)象可能具有不同的行為。狀態(tài)圖適用于描述在不同用例之間的對(duì)象行為,但并不適合于描述包括若干協(xié)作的對(duì)象行為,因?yàn)橐粋€(gè)狀態(tài)圖只能用于描述一個(gè)類的對(duì)象狀態(tài),如果涉及到多個(gè)不同類的對(duì)象,則需要使用活動(dòng)圖。第56頁(yè),共66頁(yè)。狀態(tài)圖狀態(tài)圖組成元素與繪制狀態(tài)(State):又稱為中間狀態(tài),用圓角矩形框表示,在一個(gè)狀態(tài)圖中可有多個(gè)狀態(tài),每個(gè)狀態(tài)包含兩格:上格放置狀態(tài)名稱,下格說明處于該狀態(tài)時(shí)對(duì)象可以進(jìn)行的活動(dòng)(Action)。初始狀態(tài)(InitialState):又稱為初態(tài),用一個(gè)黑色的實(shí)心圓圈表示,在一個(gè)狀態(tài)圖中只能夠有一個(gè)初始狀態(tài)。結(jié)束狀態(tài)(FinalState):又稱為終止?fàn)顟B(tài)或終態(tài),用一個(gè)實(shí)心圓外加一個(gè)圓圈表示,在一個(gè)狀態(tài)圖中可能有多個(gè)結(jié)束狀態(tài)。轉(zhuǎn)移(Transition):用從一個(gè)狀態(tài)到另一個(gè)狀態(tài)之間的連線和箭頭說明狀態(tài)的轉(zhuǎn)移情況,并用文字說明引發(fā)這個(gè)狀態(tài)變化的相應(yīng)事件是什么。事件有可能在特定的條件下發(fā)生,在UML中這樣的條件稱為守護(hù)條件(GuardCondition),發(fā)生事件時(shí)的處理也稱為動(dòng)作(Action)。狀態(tài)之間的轉(zhuǎn)移可帶有標(biāo)注,由三部分組成(每一部分都可省略),其語法為:事件名[條件]/動(dòng)作名。第57頁(yè),共66頁(yè)。狀態(tài)圖狀態(tài)圖組成元素與繪制在一個(gè)狀態(tài)圖中,一個(gè)狀態(tài)也可以被細(xì)分為多個(gè)子狀態(tài),包含多個(gè)子狀態(tài)的狀態(tài)稱為復(fù)合狀態(tài)。第58頁(yè),共66頁(yè)。狀態(tài)圖狀態(tài)圖組成元素與繪制在繪制對(duì)象的狀態(tài)圖時(shí),需要考慮如下三個(gè)問題:對(duì)象有哪些有意義的狀態(tài)?不同狀態(tài)下對(duì)象具有哪些行為?這些狀態(tài)之間如何轉(zhuǎn)換?第59頁(yè),共66頁(yè)。狀態(tài)圖狀態(tài)圖實(shí)例實(shí)例說明某信用卡系統(tǒng)賬戶具有使用狀態(tài)和凍結(jié)狀態(tài),其中使用狀態(tài)又包括正常狀態(tài)和透支狀態(tài)兩種子狀態(tài)。如果賬戶余額小于零則進(jìn)入透支狀態(tài),透支狀態(tài)時(shí)既可以存款又可以取款,但是透支金額不能超過5000元;如果余額大于零則進(jìn)入正常狀態(tài),正常狀態(tài)時(shí)既可以存款又可以取款;如果連續(xù)透支100天,則進(jìn)入凍結(jié)狀態(tài),凍結(jié)狀態(tài)下既不能存款又不能取款,必須要求銀行工作人員解凍。用戶可以在使用狀態(tài)或凍結(jié)狀態(tài)下請(qǐng)求注銷賬戶。根據(jù)上述要求,繪制賬戶類的狀態(tài)圖。第60頁(yè),共66頁(yè)。狀態(tài)圖狀態(tài)圖實(shí)例實(shí)例解析第61頁(yè),共66頁(yè)。本章小結(jié)UML是一種分析設(shè)計(jì)語言,即一種建模語言。UML是由圖形符號(hào)表達(dá)的建模語言,其結(jié)構(gòu)主要包括視圖、圖、模型元素和通用機(jī)制四部分。UML包括5種視圖,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能行業(yè)員工待崗協(xié)議
- 機(jī)場(chǎng)物業(yè)經(jīng)理招聘協(xié)議樣本
- 漁業(yè)養(yǎng)殖企業(yè)會(huì)計(jì)招聘合同
- 網(wǎng)絡(luò)安全兼職會(huì)計(jì)服務(wù)合同
- 船舶工程師聘用合同范本
- 生態(tài)居住區(qū)大樓施工協(xié)議
- 實(shí)驗(yàn)室硅藻泥施工合同
- 糧食收購(gòu)地磅租賃合同
- 家政服務(wù)公司員工聘用合同
- 綠化帶步道鋪設(shè)合同范本
- 2024年四川省網(wǎng)格員招聘理論考試復(fù)習(xí)題庫(kù)(含答案)
- 江南音樂文化之美智慧樹知到期末考試答案2024年
- 中建測(cè)評(píng)2024二測(cè)題庫(kù)及答案
- 低代碼開發(fā)智慧樹知到期末考試答案2024年
- 創(chuàng)業(yè)修煉智慧樹知到期末考試答案2024年
- 離職分析課件
- 學(xué)前教育中的體驗(yàn)式教學(xué)與實(shí)踐
- 新能源船舶發(fā)展現(xiàn)狀與趨勢(shì)探討
- 湖南長(zhǎng)沙市湘一芙蓉二中學(xué)2023-2024學(xué)年數(shù)學(xué)七年級(jí)第一學(xué)期期末檢測(cè)試題含解析
- 高速鐵路牽引供電系統(tǒng)概論全套教學(xué)課件
- 科技館科普服務(wù)工作總結(jié)報(bào)告
評(píng)論
0/150
提交評(píng)論