面向?qū)ο蠹夹g(shù)概述與UML簡(jiǎn)介李_第1頁(yè)
面向?qū)ο蠹夹g(shù)概述與UML簡(jiǎn)介李_第2頁(yè)
面向?qū)ο蠹夹g(shù)概述與UML簡(jiǎn)介李_第3頁(yè)
面向?qū)ο蠹夹g(shù)概述與UML簡(jiǎn)介李_第4頁(yè)
面向?qū)ο蠹夹g(shù)概述與UML簡(jiǎn)介李_第5頁(yè)
已閱讀5頁(yè),還剩129頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

UML與面向?qū)ο蠓治龊驮O(shè)計(jì)闞忠良黑龍江大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院&軟件學(xué)院1寫(xiě)在授課之前授課學(xué)時(shí)先修課程

-45學(xué)時(shí)-Java語(yǔ)言程序設(shè)計(jì)C++語(yǔ)言程序設(shè)計(jì)2教學(xué)目的與要求:了解面向?qū)ο螅∣OA/OOD)的發(fā)展歷史,面向?qū)ο蠓治雠c設(shè)計(jì)思想及其分析與設(shè)計(jì)建模方法

掌握OOA/OOD的基本理論及建模方法和分析與設(shè)計(jì)原則,包括類(lèi)的表示、靜態(tài)模型和動(dòng)態(tài)模型的建立、描述及使用;能利用UML語(yǔ)言按照面向?qū)ο蠓椒▽?duì)應(yīng)用系統(tǒng)進(jìn)行分析和設(shè)計(jì),并將面向?qū)ο蠹夹g(shù)應(yīng)用到軟件工程領(lǐng)域。

3參考教材UML基礎(chǔ)、案例與應(yīng)用人民郵電出版社設(shè)計(jì)模式精解清華大學(xué)出版社UML和統(tǒng)一過(guò)程實(shí)用面向?qū)ο蟮姆治龊驮O(shè)計(jì)[美]JimArlowUMLandtheUnifiedProcess機(jī)械工業(yè)出版社Object-orientedAnalysisandDesignwithApplications《面向?qū)ο蠓治雠c設(shè)計(jì)》[美]GradyBooch機(jī)械工業(yè)出版社ApplingUMLandpatternsAnIntroductiontoobject-orientedAnalysisandDesign《UML和模式應(yīng)用》[美]CraigLarman機(jī)械工業(yè)出版社4

第一章OO概述和UML簡(jiǎn)介軟件分析設(shè)計(jì)方法演變;面向?qū)ο笈c面向結(jié)構(gòu)方法的比較;什么是面向?qū)ο蠓治雠c設(shè)計(jì);

OOA/OOD的發(fā)展歷史

UML簡(jiǎn)介

5軟件分析設(shè)計(jì)方法演變結(jié)構(gòu)化分析SA(structuredanalysis):使用獨(dú)有的符號(hào),來(lái)確立描繪信息(數(shù)據(jù)和控制)流和內(nèi)容的模型,劃分系統(tǒng)的功能和行為,以及其他為確立模型不可缺少部分的描述。代表人物:Yourdon和Gane擴(kuò)充:Ward和Hatley等6軟件分析設(shè)計(jì)方法演變模塊化設(shè)計(jì):軟件被邏輯地劃分為能完成特定功能和子功能的構(gòu)件。采用自頂向下,逐步細(xì)化的方法。代表人物:Wirth等7軟件分析設(shè)計(jì)方法演變面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì):根據(jù)問(wèn)題域數(shù)據(jù)結(jié)構(gòu)定義一組映射,把問(wèn)題域的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為問(wèn)題解的程序結(jié)構(gòu)。代表人物:Jackson等8面向數(shù)據(jù)流與面向?qū)ο蟮南到y(tǒng)9軟件分析設(shè)計(jì)方法演變功能分解法10軟件分析設(shè)計(jì)方法演變數(shù)據(jù)流法11軟件分析設(shè)計(jì)方法演變信息建模法面向數(shù)據(jù)(數(shù)據(jù)與責(zé)任分離)12軟件分析設(shè)計(jì)方法演變面向?qū)ο蠓椒枋霈F(xiàn)實(shí)世界(數(shù)據(jù)與責(zé)任結(jié)合)13上升到面向?qū)ο笫潜厝?/p>

需求變化時(shí)功能:最易變數(shù)據(jù):較穩(wěn)定對(duì)象:較穩(wěn)定--PeterCoad,EdwardYourdon穩(wěn)定性增加類(lèi)操作屬性14用較穩(wěn)定把不穩(wěn)定包起來(lái)15面向?qū)ο笈c面向功能分析與設(shè)計(jì)圖書(shū)館信息系統(tǒng)CatalogLibrarianBookLibrarySystemRecordLoansAddResourcesReportFines面向?qū)ο蟮姆治?設(shè)計(jì)結(jié)構(gòu)化的分析/設(shè)計(jì)按照對(duì)象或概念分解按照功能或過(guò)程分解16文件打印()打印隊(duì)列打印()排隊(duì)()圖形文件打印()文本文件打印()圖象文件打印()打印機(jī)打印()針打打印()激打打印()請(qǐng)打印打印控制程序隊(duì)列控制處理純文本打印處理圖文混合打印處理圖象打印處理17classDocumnet{ abstractvoidprint(){..... }.....}classTextDocumentextendsDocument{ ... voidprint(){ ... } ... }18面向?qū)ο蠓椒ㄋ膫€(gè)要點(diǎn)1)認(rèn)為客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象,復(fù)雜的對(duì)象可以由比較簡(jiǎn)單的對(duì)象以某種方式組合而成。按照這種觀點(diǎn),可以認(rèn)為整個(gè)世界就是一個(gè)最復(fù)雜的對(duì)象。因此,面向?qū)ο蟮能浖到y(tǒng)是由對(duì)象組成的,軟件中的任何元素都是對(duì)象,復(fù)雜的軟件對(duì)象由比較簡(jiǎn)單的對(duì)象組合而成。19面向?qū)ο蠓椒ㄋ膫€(gè)要點(diǎn)2)把所有對(duì)象都劃分成各種對(duì)象類(lèi)(類(lèi),Class),每個(gè)對(duì)象類(lèi)都具有相同的特征和方法。特征描述對(duì)象的狀態(tài)信息,類(lèi)中定義的方法是允許施加于該類(lèi)對(duì)象上的操作。20面向?qū)ο蠓椒ㄋ膫€(gè)要點(diǎn)3)按照子類(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ù)和方法),這種現(xiàn)象稱為繼承。21面向?qū)ο蠓椒ㄋ膫€(gè)要點(diǎn)4)對(duì)象彼此之間僅能通過(guò)傳遞消息互相聯(lián)系同時(shí)使用對(duì)象、類(lèi)、繼承和消息的方法,才是真正面向?qū)ο蟮姆椒?2面向?qū)ο蟊举|(zhì)面向?qū)ο蟮谋举|(zhì)就是程序設(shè)計(jì)應(yīng)該從實(shí)際看到、聽(tīng)到、觸摸到的人、事物或物體出發(fā),將程序在概念上與這些實(shí)際事物建立對(duì)應(yīng)的聯(lián)系。而面向?qū)ο蟮姆治龊驮O(shè)計(jì)就是建立它們之間映射的關(guān)系模型,并將模型轉(zhuǎn)化成計(jì)算機(jī)程序。需求分析時(shí)首先把握的應(yīng)該是名詞,而不是動(dòng)詞。名詞是主體,是事物的本質(zhì),而動(dòng)詞是附在名詞這個(gè)主體上的特征。這點(diǎn)與傳統(tǒng)的程序設(shè)計(jì)是截然不同的。23面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)與人習(xí)慣的思維方法一致傳統(tǒng)的程序設(shè)計(jì)技術(shù)是面向過(guò)程的設(shè)計(jì)方法,這種方法以算法為核心,把數(shù)據(jù)和過(guò)程作為相互獨(dú)立的部分,數(shù)據(jù)代表問(wèn)題空間中的客體,程序代碼則用于處理這些數(shù)據(jù)使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵(lì)開(kāi)發(fā)者在軟件開(kāi)發(fā)的絕大部分過(guò)程中都用應(yīng)用領(lǐng)域的概念去思考。面向?qū)ο蠓椒▽W(xué)的基本原則,是按照人們習(xí)慣的思維方式建立問(wèn)題域的模型,開(kāi)發(fā)出盡可能直觀、自然地表現(xiàn)求解方法的軟件系統(tǒng)24面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)穩(wěn)定性好傳統(tǒng)的軟件開(kāi)發(fā)方法基于功能分析和功能分解。用傳統(tǒng)方法所建立起來(lái)的軟件系統(tǒng)的結(jié)構(gòu)緊密依賴于系統(tǒng)所要完成的功能,當(dāng)功能需求發(fā)生變化時(shí)將引起軟件結(jié)構(gòu)的整體修改面向?qū)ο蟮能浖到y(tǒng)的結(jié)構(gòu)是根據(jù)問(wèn)題領(lǐng)域的模型建立起來(lái)的,而不是基于對(duì)系統(tǒng)應(yīng)完成的功能的分解,所以,當(dāng)系統(tǒng)的功能需求變化時(shí)并不會(huì)引起軟件實(shí)體和結(jié)構(gòu)的整體變化,往往僅需要作一些局部性的修改。現(xiàn)實(shí)世界中的實(shí)體是相對(duì)穩(wěn)定的,因此,以對(duì)象為中心構(gòu)造的軟件系統(tǒng)也是比較穩(wěn)定的25面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)可重用性好傳統(tǒng)的軟件重用技術(shù)是利用標(biāo)準(zhǔn)函數(shù)庫(kù)對(duì)象所固有的封裝性和信息隱藏等機(jī)理,使對(duì)象內(nèi)部的實(shí)現(xiàn)與外界隔離,具有較強(qiáng)的獨(dú)立性。一種方法是創(chuàng)建類(lèi)的實(shí)例;另一種方法是派生新類(lèi)26面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)可維護(hù)性好面向?qū)ο蟮能浖€(wěn)定性比較好面向?qū)ο蟮能浖容^容易修改面向?qū)ο蟮能浖容^容易理解

易于調(diào)試和測(cè)試

27什么是面向?qū)ο蟮姆治龊驮O(shè)計(jì)?OOA是一種分析方法,它以可在問(wèn)題域的詞匯表中找到的類(lèi)和對(duì)象的觀點(diǎn)來(lái)審視需求。OOD是一種設(shè)計(jì)方法,它包含面向?qū)ο蠓纸獾倪^(guò)程,以及一種表示方法,用來(lái)描寫(xiě)設(shè)計(jì)中的系統(tǒng)的邏輯模型與物理模型和靜態(tài)模型與動(dòng)態(tài)模型。28面向?qū)ο蟮姆治雠c設(shè)計(jì)的精髓是按照對(duì)象(事物、概念、或?qū)嶓w)的觀點(diǎn)考慮問(wèn)題域和邏輯解決方案。29面向?qū)ο蠓治雠c設(shè)計(jì)(續(xù))面向?qū)ο蠓治鲋攸c(diǎn)在于發(fā)現(xiàn)并描述問(wèn)題域中的對(duì)象(或概念)面向?qū)ο蟮脑O(shè)計(jì)重點(diǎn)在于定義那些能最終用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言實(shí)現(xiàn)的邏輯軟件對(duì)象。分析設(shè)計(jì)構(gòu)造對(duì)問(wèn)題的調(diào)查邏輯解決方案編碼30OOA/D的發(fā)展歷史OO編程語(yǔ)言起源于挪威人KristenNgaard于1962年發(fā)明的Simula語(yǔ)言和美國(guó)人AlanKay于1970年發(fā)明的Smalltalk語(yǔ)言。到1980年,RussellAbbott出版“ReportonTeachingAda”,有關(guān)OOA/D著作面世。里程碑式的論文是GradyBooch的”DescribingSoftwareDesigninAda”1995年UML語(yǔ)言誕生31OOA/D常用工件OOA的常用工件是“域模型”,并可以用UML的類(lèi)圖來(lái)可視化表示域模型。OOD常用的工件是“設(shè)計(jì)模型”,可以用UML的包圖、類(lèi)圖和交互圖來(lái)可視化表示設(shè)計(jì)模型。32需要注意的幾個(gè)方面成功運(yùn)用OOA/D重點(diǎn)不在表示符號(hào)(如UML)上而在于如何用對(duì)象來(lái)思考,也就是要掌握對(duì)象設(shè)計(jì)時(shí)要應(yīng)用的原則和模式。OOA/D不適合“瀑布”式的開(kāi)發(fā)流程,而應(yīng)在“迭代”過(guò)程里應(yīng)用OOA/D,如RUP或XP。開(kāi)發(fā)者學(xué)習(xí)多種編程語(yǔ)言非常有價(jià)值,這樣做的目的是真正理解編程問(wèn)題有多種不同的方法。33管理環(huán)境商業(yè)建模實(shí)現(xiàn)測(cè)試分析設(shè)計(jì)Preliminary

Iteration(s)Iter.

#1階段過(guò)程工作流迭代支持工作流Iter.

#2Iter.

#nIter.

#n+1Iter.

#n+2Iter.

#mIter.

#m+1擴(kuò)展配置管理需求細(xì)化移交初始構(gòu)造迭代開(kāi)發(fā):工作模式34UML簡(jiǎn)介35面向?qū)ο蠓治鲈O(shè)計(jì)領(lǐng)域著名學(xué)派Coad和Yourdon學(xué)派,代表作為[Coad91]Booch學(xué)派,代表作為[Booc94]Jocabson學(xué)派,代表作為[Jocabson92]Rumbaugh學(xué)派,代表作為[Rumbaugh91]36面向?qū)ο蟠髱熀?jiǎn)介37Rational三劍客GradyBooch

Rational公司首席科學(xué)家

Booch方法的發(fā)明人

《面向?qū)ο蟮姆治?、設(shè)計(jì)和應(yīng)用》JimRumbaugh

Rational公司高級(jí)研究員

OMT方法的主創(chuàng)人

《面向?qū)ο蟮慕Ec設(shè)計(jì)》IvarJacobson

Rational公司副總裁

OOSE方法的發(fā)明人

《面向?qū)ο筌浖こ獭猆seCase方法》這些學(xué)派的掌門(mén)人就像上帝、真主、如來(lái)佛,他們用各自的方式定義了這個(gè)世界,并定義一堆經(jīng)書(shū)來(lái)解釋這個(gè)世界。叫苦的是軟件企業(yè)和開(kāi)發(fā)人員:沒(méi)有統(tǒng)一的方法,不好干活呀!42UML歷史MellorBoochRumbaughJacobsonCoad史前Fusion首次嘗試統(tǒng)一OMT、Booch、CRCUMLOMGRFPUML被OMG采納19941995199619972001Booch和RumbaughJacobsonUML成為工業(yè)標(biāo)準(zhǔn)UML1.4UML發(fā)展43MeyerBeforeandafterconditionsHarelStatechartsWirfs-BrockResponsibilitiesOdellClassificationShlaer-MellorObjectLifecyclesGamma,et.alFrameworks,patterns,notesBoochJacobsonRumbaugh44UML統(tǒng)一了Booch、OMT和OOSE等方法中的基本概念。UML還吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其他流派的長(zhǎng)處,其中也包括非OO方法的影響。UML符號(hào)表示考慮了各種方法的圖形表示,刪掉了大量易引起混亂的、多余的和極少使用的符號(hào),也添加了一些新符號(hào)。因此,在UML中匯入了面向?qū)ο箢I(lǐng)域中很多人的思想。這些思想并不是UML的開(kāi)發(fā)者們發(fā)明的,而是開(kāi)發(fā)者們依據(jù)最優(yōu)秀的OO方法和豐富的計(jì)算機(jī)科學(xué)實(shí)踐經(jīng)驗(yàn)綜合提煉而成的。45UML在演變過(guò)程中還提出了一些新的概念。在UML標(biāo)準(zhǔn)中新加了構(gòu)造型(Stereotypes)、職責(zé)(Responsibilities)、擴(kuò)展機(jī)制(Extensibilitymechanisms)、線程(Threads)、過(guò)程(Processes)、分布式(Distribution)、并發(fā)(Concurrency)、模式(Patterns)、協(xié)作(Collaborations)、活動(dòng)圖(Activitydiagram)等新概念,并清晰地區(qū)分類(lèi)型(Type)、類(lèi)(Class)和實(shí)例(Instance)、精化(Refinement)、接口(Interfaces)和構(gòu)件(Components)等概念。46UML(UnifiedModelingLanguage)UML是一種標(biāo)準(zhǔn)的圖形化的建模語(yǔ)言,它是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示.它:不是一種可視化的程序設(shè)計(jì)語(yǔ)言,而是一種可視化建模語(yǔ)言;不是工具或知識(shí)庫(kù)的規(guī)格說(shuō)明,而是一種建模語(yǔ)言規(guī)格說(shuō)明,是一種表示的標(biāo)準(zhǔn);47不是過(guò)程,也不是方法,但允許任何一種過(guò)程或方法使用它;48UML的目標(biāo)易于使用、表達(dá)能力強(qiáng),進(jìn)行可視化建模;與具體的實(shí)現(xiàn)無(wú)關(guān),可應(yīng)用于任何語(yǔ)言平臺(tái)和工具平臺(tái);與具體的過(guò)程無(wú)關(guān),可應(yīng)用于任何軟件開(kāi)發(fā)的過(guò)程;簡(jiǎn)單并且可擴(kuò)展;為面向?qū)ο蟮脑O(shè)計(jì)與開(kāi)發(fā)中涌現(xiàn)出的高級(jí)概念提供支持。強(qiáng)調(diào)在軟件開(kāi)發(fā)中對(duì)構(gòu)架、框架、模式和組件的重用;與最好的軟件工程時(shí)間經(jīng)驗(yàn)集成;49UML結(jié)構(gòu)UML構(gòu)造塊公共機(jī)制構(gòu)架50UML構(gòu)造塊物件關(guān)系圖建模元素本身物件如何語(yǔ)義相關(guān)UML模型視圖、是我們可視化系統(tǒng)做什么和如何做的方法51物件結(jié)構(gòu)物件:UML模型的名詞,如類(lèi)、接口、協(xié)作、用例、活動(dòng)類(lèi)、組件、節(jié)點(diǎn)行為物件:UML模型的動(dòng)詞,如交互、狀態(tài)機(jī)分組物件:包注解物件:注解52關(guān)系關(guān)系關(guān)聯(lián)依賴泛化實(shí)現(xiàn)53圖類(lèi)圖組件圖部署圖狀態(tài)圖協(xié)作圖順序圖用例圖對(duì)象圖靜態(tài)模型(系統(tǒng)結(jié)構(gòu))動(dòng)態(tài)模型(系統(tǒng)行為)組成結(jié)構(gòu)圖交互縱覽圖計(jì)時(shí)圖54公共機(jī)制規(guī)格說(shuō)明公共分類(lèi)修飾擴(kuò)展機(jī)制55規(guī)格說(shuō)明圖形維度:使用圖或圖標(biāo)可視化模型。文本維度:各種建模元素的規(guī)格說(shuō)明。 規(guī)格說(shuō)明是模型的“肉”常見(jiàn)的錯(cuò)誤:由于圖形而死亡—模型被過(guò)度圖形化而沒(méi)有說(shuō)明56修飾無(wú)修飾有修飾571)可使用少量修飾建高級(jí)視圖,以增強(qiáng)圖的整體清晰性和可讀性。2)需要時(shí)再添加修飾以使模型元素足夠詳細(xì)58公共分類(lèi)類(lèi)元和實(shí)例接口和實(shí)現(xiàn)ActorClassComponentDatatypeInterfaceNodeSignalSubsystemUsecase59擴(kuò)展機(jī)制約束:添加新規(guī)則來(lái)擴(kuò)展元素的語(yǔ)義構(gòu)造型:允許基于已有的模型元素定義新的UML建模元素標(biāo)記值:通過(guò)添加新的特殊信息來(lái)擴(kuò)展模型元素的規(guī)格說(shuō)明60架構(gòu)邏輯視圖實(shí)現(xiàn)視圖進(jìn)程視圖部署視圖類(lèi)圖狀態(tài)圖對(duì)象圖用例視圖組件圖類(lèi)圖對(duì)象圖部署圖用例圖交互圖61場(chǎng)景邏輯視圖實(shí)現(xiàn)視圖進(jìn)程視圖部署視圖描述設(shè)計(jì)的對(duì)象模型,關(guān)注軟件抽象功能性需求描述設(shè)計(jì)的并發(fā)和同步等特性,關(guān)注系統(tǒng)非功能性需求描述軟件和硬件的映射問(wèn)題,關(guān)注系統(tǒng)非功能性需求(性能、可靠性等)關(guān)注軟件代碼的靜態(tài)組織與管理對(duì)系統(tǒng)中的重要活動(dòng)的抽象,使四個(gè)視圖有機(jī)地聯(lián)系起來(lái)軟件體系結(jié)構(gòu)的:“4+1”視圖62UML的模型、視圖、圖與系統(tǒng)構(gòu)架建模UML是用來(lái)描述模型的,它用模型來(lái)描述系統(tǒng)的結(jié)構(gòu)或靜態(tài)特征,以及行為或動(dòng)態(tài)特征。它從不同的視角為系統(tǒng)的構(gòu)架建模,形成系統(tǒng)的不同視圖(view),包括:Usecaseview(用例視圖):強(qiáng)調(diào)從用戶的角度看到的或需要的系統(tǒng)功能;63Logicalview(邏輯視圖):展現(xiàn)系統(tǒng)的靜態(tài)結(jié)構(gòu)組成及特征,也稱為structuralview或staticview。通常捕獲的是問(wèn)題域的詞匯。processview(進(jìn)程視圖):體現(xiàn)系統(tǒng)的動(dòng)態(tài)行為特征,也稱為:behavioralmodelview,Concurrentview,collaborativeview。64Componentview(組件視圖):體現(xiàn)系統(tǒng)實(shí)現(xiàn)的結(jié)構(gòu)和行為特征,也稱為implementationmodelview或developmentview。對(duì)物理代碼+組件建模。Deploymentview體現(xiàn)系統(tǒng)實(shí)現(xiàn)環(huán)境的結(jié)構(gòu)和行為特征,也稱為physicalview65每一種UML的視圖都由一個(gè)或多個(gè)圖(diagram)組成的,一個(gè)圖就是系統(tǒng)構(gòu)架在某個(gè)側(cè)面的表示,所有的圖一起組成系統(tǒng)的完整視圖。1.5之前UML九種圖,兩類(lèi),一類(lèi)靜態(tài)圖:用例圖、類(lèi)圖、對(duì)象圖、組件圖,配置圖;另一類(lèi)動(dòng)態(tài)圖,包括:序列圖、協(xié)作圖、狀態(tài)圖和活動(dòng)圖。2.0新增加圖:組成結(jié)構(gòu)圖、交互縱覽圖、計(jì)時(shí)圖66在軟件開(kāi)發(fā)的不同階段的應(yīng)用UML的應(yīng)用貫穿在系統(tǒng)開(kāi)發(fā)的五個(gè)階段:需求分析。UML的用例視圖可以表示客戶的需求。通過(guò)用例建模,可以對(duì)外部的角色以及它們所需要的系統(tǒng)功能建模。分析。分析階段主要考慮所要解決的問(wèn)題,用UML的邏輯視圖和動(dòng)態(tài)視圖來(lái)描述:類(lèi)圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),協(xié)作圖、狀態(tài)圖、序列圖、活動(dòng)圖描述系統(tǒng)的動(dòng)態(tài)特征。在分析階段,只為問(wèn)題領(lǐng)域的類(lèi)建模,不定義軟件系統(tǒng)的解決方案的細(xì)節(jié)。67設(shè)計(jì)。在設(shè)計(jì)階段,把分析階段的結(jié)果擴(kuò)展成技術(shù)解決方案。加入新的類(lèi)來(lái)提供技術(shù)基礎(chǔ)結(jié)構(gòu)——用戶接口,數(shù)據(jù)庫(kù)操作等。設(shè)計(jì)階段的結(jié)果是構(gòu)造階段的詳細(xì)的規(guī)格說(shuō)明;構(gòu)造?;虺绦蛟O(shè)計(jì)階段,把設(shè)計(jì)階段的類(lèi)轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的代碼。68測(cè)試。分單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和接收測(cè)試。不同的測(cè)試小組使用不同的UML圖作為他們工作的基礎(chǔ):?jiǎn)卧獪y(cè)試使用類(lèi)圖和類(lèi)的規(guī)格說(shuō)明,集成測(cè)試使用組件圖和協(xié)作圖,而系統(tǒng)測(cè)試使用用例圖來(lái)確認(rèn)系統(tǒng)的行為是否符合這些圖中的定義。69UML與軟件開(kāi)發(fā)成功經(jīng)驗(yàn)集成在眾多成功的軟件設(shè)計(jì)與實(shí)現(xiàn)的經(jīng)驗(yàn)中,最突出的兩條:一是注重系統(tǒng)構(gòu)架的開(kāi)發(fā),一是注重過(guò)程的迭代與遞增性。UML本身沒(méi)有對(duì)過(guò)程有任何定義,但要求使用它的方法:支持用例驅(qū)動(dòng)、以構(gòu)架為中心,以及遞增和迭代開(kāi)發(fā)。70統(tǒng)一的意義

在以往出現(xiàn)的方法和表示法方面。UML可以對(duì)已有的用各種方法建立的模型進(jìn)行描述,并比原來(lái)的方法描述得更好。開(kāi)發(fā)的生命期——UML對(duì)于開(kāi)發(fā)的要求具有無(wú)縫性。開(kāi)發(fā)過(guò)程的不同階段可以采用相同的一套概念和表示法,在同一個(gè)模型中它們可以混合使用。在開(kāi)發(fā)的不同階段,不必轉(zhuǎn)換概念和表示。這種無(wú)縫性對(duì)迭代式的、增量式軟件開(kāi)發(fā)是至關(guān)重要的。

71應(yīng)用領(lǐng)域——UML適用于各種應(yīng)用領(lǐng)域的建模,包括大型的、復(fù)雜的、實(shí)時(shí)的、分布式的、集中式數(shù)據(jù)或計(jì)算的、嵌入式的系統(tǒng)。也許用某種專用語(yǔ)言來(lái)描述一些專門(mén)領(lǐng)域更有用,但在大部分應(yīng)用領(lǐng)域中,UML

不但不比其他的通用語(yǔ)言遜色并且更好。72實(shí)現(xiàn)語(yǔ)言和開(kāi)發(fā)平臺(tái)——

UML可應(yīng)用于運(yùn)行各種不同的編程實(shí)現(xiàn)語(yǔ)言和開(kāi)發(fā)平臺(tái)的系統(tǒng)。其中包括程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)、4GL、組織文檔及固件等。在各種情況下,前部分工作應(yīng)當(dāng)相同或相似,后部分工作因各種開(kāi)發(fā)媒介的不同而有某種程度上的不同。

73開(kāi)發(fā)全過(guò)程——UML是一個(gè)建模語(yǔ)言,不是對(duì)開(kāi)發(fā)過(guò)程的細(xì)節(jié)進(jìn)行描述的工具。就像通用程序設(shè)計(jì)語(yǔ)言可以用于許多風(fēng)格的程序設(shè)計(jì)一樣,UML適用于大部分現(xiàn)有的或新出現(xiàn)的開(kāi)發(fā)過(guò)程。尤其適用于我們所推薦的迭代式增量開(kāi)發(fā)過(guò)程。

74內(nèi)部概念——在構(gòu)建UML元模型的過(guò)程中,特別注意揭示和表達(dá)各種概念之間的內(nèi)在聯(lián)系并試圖用多種適用于已知和未知情況的辦法去把握建模中的概念。這個(gè)過(guò)程會(huì)增強(qiáng)對(duì)概念及其適用性的理解。這不是統(tǒng)一各種標(biāo)準(zhǔn)的初衷,但卻是統(tǒng)一各種標(biāo)準(zhǔn)最重要的結(jié)果之一。

75UML的現(xiàn)狀UML已經(jīng)取得重要成功,它已成為在軟件工業(yè)中占支配地位的建模語(yǔ)言。UML還存在許多問(wèn)題,自它產(chǎn)生之日起就從未離開(kāi)過(guò)批評(píng):用戶和教師抱怨它內(nèi)容龐大、難學(xué)難教而且太過(guò)復(fù)雜;學(xué)者認(rèn)為它缺少一個(gè)精練的核心和定義良好的外圍,有些語(yǔ)義定義得不夠精確而且?guī)в卸x性;建模實(shí)踐者認(rèn)為它缺少支持自己領(lǐng)域建模要求的機(jī)制;工具開(kāi)發(fā)商則因?yàn)橐?guī)范本身的不確定性而產(chǎn)生理解上的偏差,它們對(duì)UML的自行詮釋有可能誤導(dǎo)用戶。76UML的關(guān)鍵問(wèn)題是過(guò)于龐大和復(fù)雜,以及在語(yǔ)言體系結(jié)構(gòu)、語(yǔ)義等方面存在理論缺陷。產(chǎn)生這些問(wèn)題的一個(gè)重要原因是,在形成規(guī)范的過(guò)程中不得不照顧多種方法流派的觀點(diǎn)和多家公司的利益。

77UML建模工具Visio微軟VisualUMLVisualObjectModelers公司RationalRoseRational公司TogetherBorland公司ArgoUML開(kāi)放源碼PoseidonforUMLGentleware公司BridgePointProjectTechnology公司SmartDraw7879VisualUMLVisualObjectModelers公司2003年9月發(fā)布3.21版支持VB,C#,Java的雙向工程,支持業(yè)務(wù)建模、數(shù)據(jù)建模、XML建模、Web建模。http:://80TogetherBorland公司出品。Java開(kāi)發(fā)。最新版本7.02005支持UML所有類(lèi)型的圖,支持HTML生成、代碼調(diào)試、重構(gòu)、java的雙向工程、EJB開(kāi)發(fā)和部署、GoF設(shè)計(jì)模式等http::///together/index.html81MagicDrawUMLNoMagic公司開(kāi)發(fā)最新7.0。支持全部UML圖,還支持XML建模、Web應(yīng)用圖、WSDL圖、CORBAIDL圖。支持java、C++、C#、CORBAIDL、EJB雙向工程。http:://82PoseidonforUML德國(guó)Gentleware公司開(kāi)發(fā),版本2.0除支持UML外,還可以根據(jù)狀態(tài)圖生成代碼,及OCL.http:://83BridgePointProjectTechnology公司開(kāi)發(fā)特色是在建模的早期可以執(zhí)行模型,觀察模型是否符合要求,并把模型編譯為可執(zhí)行代碼。其他工具都做不到UML為XTUML(ExecutableandTranslatableUML)http:://84SmartDraw8586RationalRose簡(jiǎn)介目前,是世界知名的優(yōu)秀建模工具之一。Rose提供對(duì)工業(yè)標(biāo)準(zhǔn)的支持,其中包括統(tǒng)一建模語(yǔ)言(UML)。Rose具有建立、瀏覽、修改和保存模型的能力,保證不同模型視圖之間、模型與代碼之間轉(zhuǎn)化的一致性,它具有支持正/反向建模的能力。87Rose工具主要針對(duì)企業(yè)信息系統(tǒng)建模。企業(yè)面對(duì)多變的市場(chǎng),要求企業(yè)信息系統(tǒng)有較大的靈活性、可伸縮性。Rose工具與Rational統(tǒng)一過(guò)程結(jié)合提供了一種企業(yè)應(yīng)用的“模式”。88Rose擴(kuò)充了UML中相應(yīng)的概念、術(shù)語(yǔ)和圖素,引入一些自己的概念、術(shù)語(yǔ)和圖素,這些概念、術(shù)語(yǔ)和圖素使企業(yè)信息系統(tǒng)更利于建模。在閱讀中把這些概念、術(shù)語(yǔ)與UML相應(yīng)的概念、術(shù)語(yǔ)和圖素比較是有益的。89RationalRose版本

RoseModeler。提供建模功能,但是不支持代碼生成和由代碼逆向生成模型(逆向工程)。RoseProfessional。支持生成一種語(yǔ)言的代碼。RoseEnterprice。支持VC++、Java、Ada、CORBA、VisualBasic、COM、Oracle8與XML架構(gòu)下生成代碼,模型的組件可以用不同語(yǔ)言生成代碼。支持J2EE的部署,支持EJB(EnterpriceJavaBeans)逆向工程90啟動(dòng)Rose91RationalRose界面標(biāo)準(zhǔn)工具條瀏覽區(qū)文檔描述窗口狀態(tài)條圖形工具條圖形窗口92Rose圖形界面構(gòu)成

菜單欄瀏覽框(Brower)標(biāo)準(zhǔn)工具欄(Standardtoolbar)圖素工具欄(Diagramtoolbar)圖形窗口(Diagramwindow)文檔窗口(DocumentationWindow)日志欄(log)狀態(tài)欄(status)規(guī)范對(duì)話框(Specification)93Rose標(biāo)準(zhǔn)工具條Rose的工具條獨(dú)立于當(dāng)前打開(kāi)的圖形窗口界面建立新的模型存儲(chǔ)模型或目錄復(fù)制打印瀏覽文檔瀏覽交互圖瀏覽拓?fù)鋱D瀏覽前一幅圖放大取消操作打開(kāi)已存在的模型剪切粘貼內(nèi)容感知幫助瀏覽類(lèi)圖瀏覽組件圖瀏覽雙親圖縮小缺省窗口9495

9697Rose的四種視圖

98UseCase視圖包括系統(tǒng)中所有的角色、用例和用例圖可能包括:序列圖、協(xié)作圖和活動(dòng)圖99在邏輯視圖中的元素可以包括多種模型圖1)類(lèi)圖、包、類(lèi)和類(lèi)的關(guān)系;2)交互圖、對(duì)象、鏈和消息;3)行為圖、對(duì)象、活動(dòng)、狀態(tài)、事件和轉(zhuǎn)換關(guān)系100邏輯視圖101組件視圖組件視圖包括模型代碼庫(kù)、可執(zhí)行文件、運(yùn)行庫(kù)和其他組件的信息102部署視圖描述構(gòu)成系統(tǒng)的計(jì)算機(jī)(處理機(jī))、設(shè)備及它們之間的通訊聯(lián)系103學(xué)生成績(jī)管理系統(tǒng)用例圖104求根用例圖105一元二次方程求根的活動(dòng)圖

106與類(lèi)圖有關(guān)的圖素107一元二次方程求根的類(lèi)圖

108109序列圖基本圖素110對(duì)象、生命線、活動(dòng)焦點(diǎn)111求一元二次方程根無(wú)異常情況下的序列圖112(1)求根者利用窗口提交一元二次方程的3個(gè)系數(shù),然后單擊求根按鈕(Root_click()).(2)系統(tǒng)引發(fā)建立求根對(duì)象(rootx1x2:Rootx1x2),檢查系數(shù)是否正確,如正確進(jìn)入求判別式的值(b24ac())。(3)求根(root_x1x2())。(3)向窗口輸出求根結(jié)果(show())。113協(xié)作圖基本圖素協(xié)作圖描述對(duì)象、對(duì)象間的鏈接以及鏈接對(duì)象之間如何發(fā)送消息114求根協(xié)作圖協(xié)作圖描述對(duì)象、對(duì)象間的鏈接以及鏈接對(duì)象之間如何發(fā)送消息115狀態(tài)圖基本圖素116一元二次方程求根狀態(tài)圖狀態(tài)圖主要用來(lái)描述對(duì)象、子系統(tǒng)和系統(tǒng)的生命周期117一元二次方程求根系統(tǒng)的組件視圖118一元二次方程求根系統(tǒng)的組件視圖119身份驗(yàn)證的源文件和中間文件的組件圖120部署圖:計(jì)算機(jī)、設(shè)備、組件分布建模121。

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論