第10章 UML 和統(tǒng)一軟件開(kāi)發(fā)過(guò)程
單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,*,第10章 UML和統(tǒng)一軟件開(kāi)發(fā)過(guò)程,10.1 UML概述,10.1.1.UML概述,UMLUnified Modeling Language的縮寫(xiě)統(tǒng)一建模語(yǔ)言,是用來(lái)對(duì)軟件密集系統(tǒng)進(jìn)行可視化建模的一種語(yǔ)言。UML為面向?qū)ο箝_(kāi)發(fā)系統(tǒng)的產(chǎn)品進(jìn)行說(shuō)明、可視化、和編制文檔的一種標(biāo)準(zhǔn)語(yǔ)言。,統(tǒng)一建模語(yǔ)言(UML)是非專(zhuān)利的第三代建模和規(guī)fan語(yǔ)言。UML是在開(kāi)發(fā)階段,說(shuō)明,可視化,構(gòu)建和書(shū)寫(xiě)一個(gè)面向?qū)ο筌浖芗到y(tǒng)的制品的開(kāi)放方法。UML展現(xiàn)了一系列最正確工程實(shí)踐,這些最正確實(shí)踐在對(duì)大規(guī)模,復(fù)雜系統(tǒng)進(jìn)行建模方面,特別是在軟件架構(gòu)層次已經(jīng)被驗(yàn)證有效。,UML可以貫穿軟件開(kāi)發(fā)周期中的每一個(gè)階段。被OMG采納作為業(yè)界的標(biāo)準(zhǔn)。,UML最適于數(shù)據(jù)建模,業(yè)務(wù)建模,對(duì)象建模,組件建模。,UML作為一種模型語(yǔ)言,它使開(kāi)發(fā)人員專(zhuān)注于建立產(chǎn)品的模型和結(jié)構(gòu),而不是選用什么程序語(yǔ)言和算法實(shí)現(xiàn)。當(dāng)模型建立之后,模型可以被UML工具轉(zhuǎn)化成指定的程序語(yǔ)言代碼。,UML面向?qū)ο蟮姆治龊驮O(shè)計(jì),10.1.2 模型元素,UML建模過(guò)程中所使用的作圖元素稱(chēng)為模型元素,包、類(lèi)、數(shù)據(jù)類(lèi)型、接口、泛化,圖10-1,參考,10.1.3 UML圖,UML-Unified Model Language 統(tǒng)一建模語(yǔ)言.,是用來(lái)對(duì)軟件密集系統(tǒng)進(jìn)行可視化建模的一種語(yǔ)言。,UML是在開(kāi)發(fā)階段,說(shuō)明,可視化,構(gòu)建和書(shū)寫(xiě)一個(gè)面向?qū)ο筌浖芗到y(tǒng)的制品的開(kāi)放方法。最正確的應(yīng)用是工程實(shí)踐,對(duì)大規(guī)模,復(fù)雜系統(tǒng)進(jìn)行建模方面,特別是在軟件架構(gòu)層次,已經(jīng)被驗(yàn)證有效。,UML的主要的模型,在UML系統(tǒng)開(kāi)發(fā)中有三個(gè)主要的模型:,功能模型:從用戶(hù)的角度展示系統(tǒng)的功能,包括用例圖。,對(duì)象模型:采用對(duì)象,屬性,操作,關(guān)聯(lián)等概念展示系統(tǒng)的結(jié)構(gòu)和根底,包括類(lèi)圖。,動(dòng)態(tài)模型:展現(xiàn)系統(tǒng)的內(nèi)部行為。包括序列圖,活動(dòng)圖,狀態(tài)圖。,是數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中,在E-R圖實(shí)體-聯(lián)系圖的設(shè)計(jì)后的進(jìn)一步建模。,簡(jiǎn)單地了解一下UML設(shè)計(jì)中有的圖例及根本作用。首先對(duì)UML中的各個(gè)圖的功用做一個(gè)簡(jiǎn)單介紹:,1、用例圖,描述角色以及角色與用例之間的連接關(guān)系。說(shuō)明的是誰(shuí)要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。一個(gè)用例圖包含了多個(gè)模型元素,如系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關(guān)系,如泛化、關(guān)聯(lián)和依賴(lài)。,2、類(lèi)圖,類(lèi)圖是描述系統(tǒng)中的類(lèi),以及各個(gè)類(lèi)之間的關(guān)系的靜態(tài)視圖。能夠讓我們?cè)谡_編寫(xiě)代碼以前對(duì)系統(tǒng)有一個(gè)全面的認(rèn)識(shí)。類(lèi)圖是一種模型類(lèi)型,確切的說(shuō),是一種靜態(tài)模型類(lèi)型。,3、對(duì)象圖,與類(lèi)圖極為相似,它是類(lèi)圖的實(shí)例,對(duì)象圖顯示類(lèi)的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類(lèi)。它描述的不是類(lèi)之間的關(guān)系,而是對(duì)象之間的關(guān)系。,4、活動(dòng)圖,描述用例要求所要進(jìn)行的活動(dòng),以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿(mǎn)足前面使用用例圖建模的商務(wù)需求。,5、狀態(tài)圖,描述類(lèi)的對(duì)象所有可能的狀態(tài),以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件??梢圆东@對(duì)象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個(gè)對(duì)象可以擁有的狀態(tài),并且事件(如消息的接收、時(shí)間的流逝、錯(cuò)誤、條件變?yōu)檎娴?會(huì)怎么隨著時(shí)間的推移來(lái)影響這些狀態(tài)。一個(gè)狀態(tài)圖應(yīng)該連接到所有具有清晰的可標(biāo)識(shí)狀態(tài)和復(fù)雜行為的類(lèi);該圖可以確定類(lèi)的行為,以及該行為如何根據(jù)當(dāng)前的狀態(tài)變化,也可以展示哪些事件將會(huì)改變類(lèi)的對(duì)象的狀態(tài)。狀態(tài)圖是對(duì)類(lèi)圖的補(bǔ)充。,6、序列圖 順序圖,序列圖是用來(lái)顯示你的參與者如何以一系列順序的步驟與系統(tǒng)的對(duì)象交互的模型。順序圖可以用來(lái)展示對(duì)象之間是如何進(jìn)行交互的。順序圖將顯示的重點(diǎn)放在消息序列上,即強(qiáng)調(diào)消息是如何在對(duì)象之間被發(fā)送和接收的。,7、協(xié)作圖,和序列圖相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。可以看成是類(lèi)圖和順序圖的交集,協(xié)作圖建模對(duì)象或者角色,以及它們彼此之間是如何通信的。如果強(qiáng)調(diào)時(shí)間和順序,那么使用序列圖;如果強(qiáng)調(diào)上下級(jí)關(guān)系,那么選擇協(xié)作圖;這兩種圖合稱(chēng)為交互圖。,8、構(gòu)件圖 組件圖,描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴(lài)關(guān)系。用來(lái)建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)件標(biāo)記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件時(shí)軟件單個(gè)組成局部,它可以是一個(gè)文件,產(chǎn)品、可執(zhí)行文件和腳本等。,9、部署圖 配置圖,是用來(lái)建模系統(tǒng)的物理部署。例如計(jì)算機(jī)和設(shè)備,以及它們之間是如何連接的。部署圖的使用者是開(kāi)發(fā)人員、系統(tǒng)集成人員和測(cè)試人員。,9.1.3 面向?qū)ο蠓治雠c設(shè)計(jì)和統(tǒng)一建模語(yǔ)言,Unified Modeling Language(UML)又稱(chēng)統(tǒng)一建模語(yǔ)言或標(biāo)準(zhǔn)建模語(yǔ)言,是始于1997年一個(gè)OMG標(biāo)準(zhǔn).,它是一個(gè)支持模型化和軟件系統(tǒng)開(kāi)發(fā)的圖形化語(yǔ)言,為軟件開(kāi)發(fā)的所有階段提供模型化和可視化支持,包括由需求分析到規(guī)格,到構(gòu)造和配置。,面向?qū)ο蟮姆治雠c設(shè)計(jì)(OOAD)方法的開(kāi)展在80年代末至90年代中出現(xiàn)了一個(gè)高潮,UML是這個(gè)高潮的產(chǎn)物。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且對(duì)其作了進(jìn)一步的開(kāi)展,并最終統(tǒng)一為群眾所接受的標(biāo)準(zhǔn)建模語(yǔ)言。,1統(tǒng)一了概念:Booch、OMT和OOSE等方法中的概念根本。,2統(tǒng)一了符號(hào):UML吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其他流派的長(zhǎng)處,其中也包括非OO方法的影響。UML考慮了各種方法的圖形表示,刪掉了大量易引起混亂的、多余的和極少使用的符號(hào),也添加了一些新符號(hào)。,3UML在演變過(guò)程中還提出了一些新的概念。,UML的主要特點(diǎn),UML新加了模板(Stereotypes)、職責(zé)(Responsibilities)、擴(kuò)展機(jī)制(Extensibility mechanisms)、線(xiàn)程(Threads)、過(guò)程(Processes)、分布式(Distribution)、并發(fā)(Concurrency)、模式(Patterns)、合作(Collaborations)、活動(dòng)圖Activity diagram等新概念,并清晰地區(qū)分類(lèi)型(Type)、類(lèi)(Class)和實(shí)例(Instance)、細(xì)化(Refinement)、接口(Interfaces)和組件(Components)等概念。,UML是一種先進(jìn)實(shí)用的標(biāo)準(zhǔn)建模語(yǔ)言,但其中某些概念尚待實(shí)踐來(lái)驗(yàn)證,UML也必然存在一個(gè)進(jìn)化過(guò)程。,標(biāo)準(zhǔn)建模語(yǔ)言,UML,的應(yīng)用領(lǐng)域,UML的目標(biāo)是以面向?qū)ο髨D的方式來(lái)描述任何類(lèi)型的系統(tǒng),具有很寬的應(yīng)用領(lǐng)域。,建立,軟件系統(tǒng),的模型,,,描述,非軟件領(lǐng)域的系統(tǒng),,如機(jī)械系統(tǒng)、企業(yè)機(jī)構(gòu)或業(yè)務(wù)過(guò)程,以及處理復(fù)雜數(shù)據(jù)的信息系統(tǒng)、具有實(shí)時(shí)要求的工業(yè)系統(tǒng)或工業(yè)過(guò)程等。,對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模。,適用于系統(tǒng)開(kāi)發(fā)過(guò)程中從需求規(guī)格描述到系統(tǒng)完成后測(cè)試的不同階段。,在需求分析階段,可以用用例來(lái)捕獲用戶(hù)需求??梢杂肬ML動(dòng)態(tài)模型來(lái)描述類(lèi)之間的協(xié)作關(guān)系。,在分析階段,UML對(duì)問(wèn)題域的對(duì)象現(xiàn)實(shí)世界的概念建模,為構(gòu)造階段提供更詳細(xì)的規(guī)格說(shuō)明。,UML模型還可作為測(cè)試階段的依據(jù)。系統(tǒng)通常需要經(jīng)過(guò)單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試。不同的測(cè)試小組使用不同的UML圖作為測(cè)試依據(jù):?jiǎn)卧獪y(cè)試使用類(lèi)圖和類(lèi)規(guī)格說(shuō)明;集成測(cè)試使用部件圖和合作圖;系統(tǒng)測(cè)試使用用例圖來(lái)驗(yàn)證系統(tǒng)的行為;驗(yàn)收測(cè)試由用戶(hù)進(jìn)行,以驗(yàn)證系統(tǒng)測(cè)試的結(jié)果是否滿(mǎn)足在分析階段確定的需求。,UML在,系統(tǒng)開(kāi)發(fā)過(guò)程中的作用,編程是一個(gè)獨(dú)立的階段,其任務(wù)是用面向?qū)ο缶幊陶Z(yǔ)言將來(lái)自設(shè)計(jì)階段的類(lèi)轉(zhuǎn)換成實(shí)際的代碼。在用UML建立分析和設(shè)計(jì)模型時(shí),應(yīng)盡量防止考慮把模型轉(zhuǎn)換成某種特定的編程語(yǔ)言。因?yàn)樵谠缙陔A段,模型僅僅是理解和分析系統(tǒng)結(jié)構(gòu)的工具,過(guò)早考慮編碼問(wèn)題十分不利于建立簡(jiǎn)單正確的模型。,總之,標(biāo)準(zhǔn)建模語(yǔ)言UML適用于以面向?qū)ο蠹夹g(shù)來(lái)描述任何類(lèi)型的系統(tǒng),而且適用于系統(tǒng)開(kāi)發(fā)的不同階段,從需求規(guī)格描述直至系統(tǒng)完成后的測(cè)試和維護(hù)。,