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