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