uml心得體會(huì)4篇最新匯總
UML是統(tǒng)一建模語言(UnifiedModelingLanguage)的縮寫,它發(fā)表于1997年,是一個(gè)支持模型化和軟件系統(tǒng)開發(fā)的圖形化語言,為軟件開發(fā)的所有階段提供模型化和可視化支持?!毕旅娼o大家?guī)硪恍╆P(guān)于uml心得體會(huì),希望對(duì)大家有所幫助。
uml心得體會(huì)1
作為一種建模語言,UML的定義包括UML語義和UML表示法兩個(gè)部分。
l UML語義:描述基于UML的精確元模型定義。
l UML表示法:定義UML符號(hào)的表示法,為開發(fā)者或開發(fā)工具使用這些圖形符號(hào)和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號(hào)和文字所表達(dá)的是應(yīng)用級(jí)的模型,在語義上它是UML元模型的實(shí)例。
標(biāo)準(zhǔn)建模語言UML可以由下列5類圖來定義。
用例圖: 從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。
靜態(tài)圖:包括類圖和對(duì)象圖。 類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系,如關(guān)聯(lián)、依賴、聚合等,也包括類的屬性和操作,類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命周期都是有效的。對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。一個(gè)對(duì)象圖是類圖的一個(gè)實(shí)例。由于對(duì)象存在生命周期,因此對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。
行為圖: 描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系,包括狀態(tài)圖和活動(dòng)圖 。狀態(tài)圖描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件,狀態(tài)圖是對(duì)類圖的補(bǔ)充,活動(dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并進(jìn)行活動(dòng)。
交互圖: 描述對(duì)象間的交互關(guān)系,包括時(shí)序圖和協(xié)作圖 。時(shí)序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互;協(xié)作圖描述對(duì)象間的協(xié)作關(guān)系,協(xié)作圖跟時(shí)序圖相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對(duì)象以及它們之間的關(guān)系。如果強(qiáng)調(diào)時(shí)間和順序,則使用時(shí)序圖;如果強(qiáng)調(diào)上下級(jí)關(guān)系,則選擇協(xié)作圖。
實(shí)現(xiàn)圖: 包括組件圖和部署圖 。組件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系,組件圖有助于分析和理解部件之間的相互影響程度;部署圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。
采用UML來設(shè)計(jì)系統(tǒng)時(shí),第一步是描述需求;第二步根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu);第三步是描述系統(tǒng)的行為。其中在第一步與第二步中所建立的模型都是靜態(tài)的,包括用例圖、類圖、對(duì)象圖、組件圖和部署圖等5種圖形,是標(biāo)準(zhǔn)建模語言UML的靜態(tài)建模機(jī)制。其中第三步中所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時(shí)的時(shí)序狀態(tài)或交互關(guān)系。它包括狀態(tài)圖、活動(dòng)圖、時(shí)序圖和協(xié)作圖等4種圖形,是標(biāo)準(zhǔn)建模語言UML的動(dòng)態(tài)建模機(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ì)象之間的關(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ì)象的狀態(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)系。可以看成是類圖和順序圖的交集,協(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)記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件時(shí)軟件單個(gè)組成部分,它可以是一個(gè)文件,產(chǎn)品、可執(zhí)行文件和腳本等。
9、部署圖 (配置圖)
是用來建模系統(tǒng)的物理部署。例如計(jì)算機(jī)和設(shè)備,以及它們之間是如何連接的。部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測(cè)試人員。
幾種圖的區(qū)別:
一:這九種模型圖各有側(cè)重,
1:用例圖側(cè)重描述用戶需求,
2:類圖側(cè)重描述系統(tǒng)具體實(shí)現(xiàn);
二:描述的方面都不相同,
1:類圖描述的是系統(tǒng)的結(jié)構(gòu),
2:序列圖描述的是系統(tǒng)的行為;
三:抽象的層次也不同,
1:構(gòu)件圖描述系統(tǒng)的模塊結(jié)構(gòu),抽象層次較高,
2:類圖是描述具體模塊的結(jié)構(gòu),抽象層次一般,
3:對(duì)象圖描述了具體的模塊實(shí)現(xiàn),抽象層次較低。
在有的文獻(xiàn)書籍中,將這九種模型圖分為三大類:結(jié)構(gòu)分類、動(dòng)態(tài)行為和模型管理:
1:結(jié)構(gòu)分類 包括用例圖、類圖、對(duì)象圖、構(gòu)件圖和部署圖,
2:動(dòng)態(tài)行為 包括狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖,
3:模型管理 則包含類圖。
uml心得體會(huì)2
在80年代末至90年代中,對(duì)面向?qū)ο蠓治雠c設(shè)計(jì)方法的研究發(fā)展到一個(gè)高潮。但是,諸多流派在思想和術(shù)語上有很多不同的提法,在術(shù)語、概念上的運(yùn)用也各不相同,需要一種統(tǒng)一的符號(hào)來描述面向?qū)ο蟮姆治龊驮O(shè)計(jì)活動(dòng)。UML應(yīng)運(yùn)而生。它不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且有進(jìn)一步的發(fā)展,最終成為大眾所共同接受的標(biāo)準(zhǔn)建模語言。統(tǒng)一建模語言(UML)是一個(gè)通用的可視化建模語言,用于對(duì)軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。它記錄了對(duì)必須構(gòu)造的系統(tǒng)的決定和理解,可用于對(duì)系統(tǒng)的理解、設(shè)計(jì)、瀏覽、配置、維護(hù)和信息控制。UML適用于各種軟件開發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具,UML 是一種總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。不僅支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)全過程。
UML 模型、視圖、圖
UML的概念和模型可以分成以下幾個(gè)概念域:靜態(tài)結(jié)構(gòu)、動(dòng)態(tài)行為、實(shí)現(xiàn)構(gòu)造、模型組織、擴(kuò)展機(jī)制
UML視圖和圖
主要的域視圖圖主要概念
構(gòu)靜態(tài)視圖類圖類、關(guān)聯(lián)、泛化、依賴關(guān)系、實(shí)現(xiàn)、接口
用例視圖用例圖用例、參與者、關(guān)聯(lián)、擴(kuò)展、包括、用例泛化
實(shí)現(xiàn)視圖構(gòu)件圖構(gòu)件、接口、依賴關(guān)系、實(shí)現(xiàn)
部署視圖部署圖節(jié)點(diǎn)、構(gòu)件、依賴關(guān)系、位置
動(dòng)
態(tài)狀態(tài)視圖狀態(tài)圖狀態(tài)、事件、轉(zhuǎn)換、動(dòng)作、
行活動(dòng)視圖活動(dòng)圖狀態(tài)、活動(dòng)、完成轉(zhuǎn)換、分叉、結(jié)合
為交互視圖順序圖交互、對(duì)象、消息、激活
協(xié)作圖協(xié)作、交互、協(xié)作角色、消息
模型管理模型管理視圖類圖包、子系統(tǒng)、模型
擴(kuò)展機(jī)制所有所有約束、構(gòu)造型、標(biāo)記值
靜態(tài)視圖
1、 類元
類元是模型中的離散概念,擁有身份、狀態(tài)、行為和關(guān)系。有幾種類元包括類、接口和數(shù)據(jù)類型。其他幾種類元是行為概念、環(huán)境事物、執(zhí)行結(jié)構(gòu)的具體化。這些類元中包括用例、參與者、構(gòu)件、節(jié)點(diǎn)和子系統(tǒng)。圖列出了幾種類元和它們的功能。元模型術(shù)語類元中包括了所有這些概念。
類元功能表示法
類類代表了被建模的應(yīng)用領(lǐng)域中的離散概念。
最重要的特性是多重性
狀態(tài)類局限于某個(gè)給定狀態(tài)的類
類元角色在合作中局限于某個(gè)使用的類元
構(gòu)件系統(tǒng)的一個(gè)物理組成單元
接口刻劃行為特征的操作命名集.
節(jié)點(diǎn)計(jì)算資源
信號(hào)對(duì)象間的異步通信
子系統(tǒng)作為且有規(guī)范、實(shí)現(xiàn)和身份的單元的包
用例與外界代理交互中的實(shí)體行為說明
2、類元之間關(guān)系
類元之間的關(guān)系有關(guān)聯(lián)、泛化、各種形式的依賴關(guān)系,包括實(shí)現(xiàn)關(guān)系和使用關(guān)系。
關(guān)聯(lián):對(duì)象通常要和其他對(duì)象發(fā)生關(guān)聯(lián),關(guān)聯(lián)可以具有多層形式。多重性問題(一對(duì)一、一對(duì)多)。在UML中關(guān)聯(lián)用一條直線來表示。
泛化:一個(gè)類繼承了其他類的屬性和操作。在UML中泛化用“從之類畫一條帶空心三角形箭頭的連線指向父類”來表示。
依賴:一個(gè)類使用了另一個(gè)類。在UML中依賴用“從依賴類到被依賴的帶箭頭的虛線”表示。
聚集是關(guān)聯(lián)的一種,聚集對(duì)象由部分對(duì)象組成。也就是整體與部分關(guān)聯(lián)。在UML中用“整體和部分之間用帶空心菱形箭頭的連線連接”來表示。
組合是一種特殊的聚集,在一個(gè)組合對(duì)象中,部分對(duì)象只能作為組合對(duì)象的一部分與組合對(duì)象同時(shí)存在。在UML中用“整體和部分之間用帶實(shí)心菱形箭頭的連線連接”來表示。
實(shí)現(xiàn):類和接口之間的關(guān)系被稱為實(shí)現(xiàn)。在UML中實(shí)現(xiàn)關(guān)系用一個(gè)帶空心三角形箭頭加虛線來表示,箭頭指向接口。
uml心得體會(huì)3
在學(xué)習(xí)UML這門課之前,我一直心底有一個(gè)疑問,那就是我們和那些所謂的程序員速成班培訓(xùn)出來的程序員到底有什么差別,都是寫代碼,那我們?cè)诖髮W(xué)里學(xué)習(xí)的意義是什么呢,直到我學(xué)習(xí)了UML這門課。我才知道寫代碼并沒有想象中的那么簡(jiǎn)單,對(duì)于同一個(gè)功能,肯定有著多種不同的實(shí)現(xiàn)方法,而這些方法也肯定有優(yōu)劣之分。我們之所以不像外面那樣的培訓(xùn)班一樣速成,是因?yàn)槲覀冃枰憻捵约喝懗龈哔|(zhì)量的代碼,我覺得這就是我們學(xué)習(xí)的意義。
其實(shí)在上UML課之前,我以為UML跟C++和java一樣是一門編程語言,直到經(jīng)過老師的介紹,我才知道UML的全稱是Unified Modeling Language,他不同于C++,java這些編程語言,他是統(tǒng)一建模語言。UML是一種用于可視化描述系統(tǒng),具有廣泛用途的建模語言。作為一種標(biāo)準(zhǔn)化的圖形語言,在軟件工業(yè)中被用于軟件系統(tǒng)部件的具體化,可視化,結(jié)構(gòu)化描述以及撰寫文檔,同樣在商業(yè)模型中也得到應(yīng)用。
UML雖然不是一門程序設(shè)計(jì)語言,但他的重要性是不可忽視的。他的重要性主要體現(xiàn)在:使復(fù)雜的軟件設(shè)計(jì)更為簡(jiǎn)單,也能夠?qū)崿F(xiàn)像OOP(面向?qū)ο缶幊?這一類被廣泛應(yīng)用的概念;用理解起來可能更容易的圖來描述,避免了大量的文字;使表達(dá)和交流概念或系統(tǒng)結(jié)構(gòu)變得更容易;在一張圖中就能夠描繪出整個(gè)系統(tǒng);程序員實(shí)用類圖來描述實(shí)際需求時(shí),可讓問題更加清晰明了,實(shí)現(xiàn)起來更容易。
很多人或許會(huì)說直接寫代碼要比畫圖分析什么的快多了,但我認(rèn)為UML在分析和設(shè)計(jì)階段十分重要。在學(xué)完職責(zé)分配原則和了解過一些設(shè)計(jì)模式過后,我更加堅(jiān)定了我的想法?;蛟S對(duì)于一個(gè)小項(xiàng)目來說,實(shí)現(xiàn)的方式有很多種,無論是哪一種,可能會(huì)有人覺得只要能夠?qū)崿F(xiàn)功能就是可用的,就是好的。但如果是一個(gè)比較龐大的項(xiàng)目呢?如果在具體寫代碼時(shí)某個(gè)類的職責(zé)過于龐雜,那么必定會(huì)給系統(tǒng)帶來很大的壓力?;蛘哒f每個(gè)類之間的關(guān)系特別復(fù)雜,那么當(dāng)后續(xù)需要更改某個(gè)類的時(shí)候,必定會(huì)影響到其他的類,帶來十分高昂的維護(hù)成本。而GRASP的九個(gè)原則:信息專家原則,創(chuàng)造者原則,低耦合原則,高內(nèi)聚原則,控制器原則,多態(tài)原則,純虛構(gòu),中介原則,受保護(hù)變量原則可以在一點(diǎn)程度上很有效地解決這些問題。
UML這門課程讓我學(xué)會(huì)了話UML的五大類,共九種圖:
用例圖:從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。
靜態(tài)圖:包括類圖和對(duì)象圖。類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu),不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系,如關(guān)聯(lián)、依賴、聚合等,也包括類的屬性和操作,類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命周期都是有效的。對(duì)象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識(shí)。一個(gè)對(duì)象圖是類圖的一個(gè)實(shí)例。由于對(duì)象存在生命周期,因此對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。
行為圖:描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系,包括狀態(tài)圖和活動(dòng)圖。狀態(tài)圖描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件,狀態(tài)圖是對(duì)類圖的補(bǔ)充,活動(dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并進(jìn)行活動(dòng)。
交互圖:描述對(duì)象間的交互關(guān)系,包括時(shí)序圖和協(xié)作圖。時(shí)序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互;協(xié)作圖描述對(duì)象間的協(xié)作關(guān)系,協(xié)作圖跟時(shí)序圖相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,協(xié)作圖還顯示對(duì)象以及它們之間的關(guān)系。如果強(qiáng)調(diào)時(shí)間和順序,則使用時(shí)序圖;如果強(qiáng)調(diào)上下級(jí)關(guān)系,則選擇協(xié)作圖。
實(shí)現(xiàn)圖:包括組件圖和部署圖。組件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系,組件圖有助于分析和理解部件之間的相互影響程度;部署圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。
UML也同時(shí)讓我自己去了解了統(tǒng)一過程,這部分老師并沒有詳細(xì)地講,我自己查閱資料了解了一些。RUP中的軟件生命周期在時(shí)間上被分解為四個(gè)順序的階段,分別是:初始階段、細(xì)化階段、構(gòu)造階段和交付階段。每個(gè)階段結(jié)束于一個(gè)主要的里程碑。每個(gè)階段本質(zhì)上是兩個(gè)里程碑之間的時(shí)間跨度。在每個(gè)階段的結(jié)尾執(zhí)行一次評(píng)估以確定這個(gè)階段的目標(biāo)是否已經(jīng)滿足。如果評(píng)估結(jié)果令人滿意的話,可以允許項(xiàng)目進(jìn)入下一個(gè)階段。
說實(shí)話在了解GRASP,設(shè)計(jì)模式,統(tǒng)一過程后,我覺得UML是一門十分重要的課。但是我在知乎上看到了一個(gè)“UML現(xiàn)在有什么用?”的問題,上面的許多高贊答案都是在說UML的用處并不大。甚至有人說UML是糊弄人的東西。但我卻不這么認(rèn)為,判斷知識(shí)有沒有不能僅憑這自己以前的經(jīng)歷,或許有些人用UML的地方并不多,所以他認(rèn)為UML的用處并不大,但是誰又能肯定的說你以后不會(huì)用到UML的建模方法和思想呢?我覺得我們學(xué)習(xí)的眼光應(yīng)該長(zhǎng)遠(yuǎn)一點(diǎn)。不管如何,我在UML結(jié)課后,仍然會(huì)繼續(xù)學(xué)習(xí)UML,因?yàn)槲艺J(rèn)為他是十分有用的,雖然目前為止我并沒有過參與大型項(xiàng)目的經(jīng)歷,但確實(shí)在UML建模后,我對(duì)一些問題和業(yè)務(wù)邏輯有了更深刻的認(rèn)識(shí),我相信他能幫助我提升我自己的能力,加油!
uml心得體會(huì)4
擴(kuò)展關(guān)系:、泛化(繼承)關(guān)系:、依賴關(guān)系:
聚合關(guān)系:、組成關(guān)系:、
關(guān)聯(lián)關(guān)系:、實(shí)現(xiàn)關(guān)系:
2、UML中幾種基本圖及其基本功能作用:
UML的重要內(nèi)容可以由哪五類圖(共9種圖形)來定義:
答:用例圖:用例圖。
靜態(tài)圖:類圖、對(duì)象圖
行為圖:狀態(tài)圖、活動(dòng)圖
交互圖:時(shí)序圖、協(xié)作圖
實(shí)現(xiàn)圖:構(gòu)件圖、部署圖
1)類圖:類圖是描述類、接口、協(xié)作以及它們之間的關(guān)系的圖,用來顯示系統(tǒng)中各個(gè)類的靜態(tài)結(jié)構(gòu)。
類包括:類圖、屬性、方法。
類圖包括:類、接口、協(xié)作、關(guān)系、約束、注釋以及包。
類的表示包括:名稱、屬性、操作、職責(zé)和約束。
類圖的建模過程:確定對(duì)象與類、確定類的屬性、確定類的關(guān)系。
類圖在UML中的重要作用:1.為開發(fā)人員提供這種模仿現(xiàn)實(shí)世界的表達(dá)方式。
2.讓分析員使用客戶所采用的術(shù)語和客戶交流,促使客戶說出所要解決的問題的重要細(xì)節(jié)。
2)對(duì)象圖:對(duì)象圖表示在某一時(shí)刻一組對(duì)象以及他們之間的關(guān)系的圖。
UML對(duì)象圖的用途
◆捕獲實(shí)例和連接、◆在分析和設(shè)計(jì)階段創(chuàng)建、◆捕獲交互的靜態(tài)部分、◆舉例說明數(shù)據(jù)/對(duì)象結(jié)構(gòu)、◆詳細(xì)描述瞬態(tài)圖、◆由分析人員、設(shè)計(jì)人員和代碼實(shí)現(xiàn)人員開發(fā)
3)用例圖:表述了一組用例、參與者以及它們之間的關(guān)系的圖。
用例模型包括:用例圖和用例規(guī)則。
用例規(guī)則包括:基本流和備選流。
用例圖的組成元素有:參與者,用例,通信關(guān)聯(lián),用例規(guī)約
建立用例模型步驟:
1) 根據(jù)系統(tǒng)邊界確定參與者
2) 根據(jù)每個(gè)參與者確定與之相關(guān)聯(lián)的用例
3) 對(duì)每個(gè)用例寫出用例規(guī)約文檔,調(diào)整用例模型(優(yōu)化參與者與參與者之間的關(guān)系,用例與用例之間的關(guān)系)
用例對(duì)于系統(tǒng)開發(fā)人員來說的價(jià)值:是用來從用戶的觀察角度收集系統(tǒng)需求的一項(xiàng)技術(shù),便于分析員與客戶和用戶交流,使系統(tǒng)更符合用戶的需求
4)順序圖也稱為時(shí)序圖,它描敘了系統(tǒng)中對(duì)象間通過消息進(jìn)行的交互,強(qiáng)調(diào)了消息在時(shí)間軸上的先后順序。
順序圖是由對(duì)象、生命線、控制焦點(diǎn)和消息等構(gòu)成。(消息表示了對(duì)象間的通信,生命線表示了對(duì)象的生存期,控制焦點(diǎn)表示對(duì)象正在執(zhí)行一些活動(dòng))
順序圖將交互關(guān)系表示為一張二維圖,其中縱向是時(shí)間軸,時(shí)間沿豎線向下延伸,橫向代表了在協(xié)作中各獨(dú)立對(duì)象的角色。
順序圖中從左到右各對(duì)象分別為:執(zhí)行者角色、控制類、用戶接口、業(yè)務(wù)層、后臺(tái)數(shù)據(jù)庫。
順序圖的作用:順序圖常用來描述用例的實(shí)現(xiàn),它表明了由哪些對(duì)象通過消息相互協(xié)作來實(shí)現(xiàn)用例的功能。在順序圖中,標(biāo)識(shí)了消息發(fā)生的先后順序。
5)協(xié)作圖:描述了系統(tǒng)中對(duì)象間通過消息進(jìn)行的交互,強(qiáng)調(diào)了對(duì)象在交互行為中承擔(dān)的角色。
協(xié)作圖包括對(duì)象、鏈(連接器)、消息。
(協(xié)作圖與順序圖的比較與各自的優(yōu)缺點(diǎn)下面有)
交互圖(協(xié)作圖與順序圖)的特征:交互圖形主要用于對(duì)用例中的控制建模,一般情況下,一個(gè)交互圖形表達(dá)單個(gè)用例的行為,它表示出該用例中若干個(gè)實(shí)例對(duì)象和對(duì)象之間所傳遞的消息,交互圖形有效的幫助人們觀察和理解系統(tǒng)內(nèi)部的協(xié)作關(guān)系和過程行為。
6)狀態(tài)圖:描述了一個(gè)對(duì)象所處的可能狀態(tài)以及狀態(tài)之間的轉(zhuǎn)換,并給出了狀態(tài)變化序列的起點(diǎn)和終點(diǎn)。
狀態(tài)圖包括:狀態(tài)、轉(zhuǎn)換。
一個(gè)狀態(tài)圖表示一個(gè)狀態(tài)機(jī),表示從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的控制流。
引發(fā)狀態(tài)轉(zhuǎn)換的事件主要有:調(diào)用事件、變化事件、時(shí)間事件以及信號(hào)事件。
建模步驟:找出適合用模型描述其行為的類、確定對(duì)象可能存在的狀態(tài)、確定引起狀態(tài)轉(zhuǎn)換的事件、確定轉(zhuǎn)換進(jìn)行時(shí)對(duì)象執(zhí)行的相應(yīng)動(dòng)作、對(duì)建模結(jié)果進(jìn)行相應(yīng)的精化和細(xì)化。
作用:能幫助分析員、設(shè)計(jì)員和開發(fā)人員理解系統(tǒng)中對(duì)象的行為。(P87)
7)活動(dòng)圖:描述從活動(dòng)到活動(dòng)的流。
活動(dòng)圖包括:動(dòng)作狀態(tài),活動(dòng)狀態(tài),動(dòng)作流、分支與合并、分關(guān)與匯合、泳道以及對(duì)象流。
8)構(gòu)件圖:主要用來描述各種軟件構(gòu)件之間的依賴關(guān)系,是描述構(gòu)件與構(gòu)件關(guān)系的圖。
構(gòu)件圖包括注釋、約束和包。
構(gòu)件包括5個(gè)要素:接口聲明、接口實(shí)現(xiàn)、構(gòu)件標(biāo)準(zhǔn)、封裝方法以及部署方法。
構(gòu)件分為3種類型:配置構(gòu)件、工作產(chǎn)品構(gòu)件以及執(zhí)行構(gòu)件。
構(gòu)件圖的基本目的是:使系統(tǒng)人員和開發(fā)人員能夠從整體上了解系統(tǒng)的所有物理部件;同時(shí),也使我們知道如何對(duì)構(gòu)件進(jìn)行打包,以便交付給最終客戶;最后,構(gòu)件圖顯示了被開發(fā)系統(tǒng)所包含的構(gòu)件之間的依賴關(guān)系
(構(gòu)件和類的比較見下面)
9)部署圖:描述系統(tǒng)中的硬件節(jié)點(diǎn)及節(jié)點(diǎn)之間如何連接的圖。
部署圖的組成元素包括節(jié)點(diǎn)、節(jié)點(diǎn)間的鏈接。
部署圖的目的:描述系統(tǒng)投產(chǎn)的相關(guān)問題;描述系統(tǒng)與生產(chǎn)環(huán)境中的其他系統(tǒng)間的依賴關(guān)系,這些系統(tǒng)可能是已經(jīng)存在,或是將要引入的;描述一個(gè)商業(yè)應(yīng)用主要的部署結(jié)構(gòu);設(shè)計(jì)一個(gè)嵌入系統(tǒng)的硬件和軟件結(jié)構(gòu);描述一個(gè)組織的硬件/網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)。
(活動(dòng)圖與狀態(tài)圖的比較見下面)
3、類圖的表示:
4、略
5、對(duì)象間的可見性:可見性指的是一個(gè)對(duì)象能夠“看到” 或者引用另一個(gè)對(duì)象的能力。Public + ,private - ,protected #
6、類的區(qū)分:
UML將類分為邊界類、實(shí)體類以及控制類。
1)邊界類用于描述外部參與者與系統(tǒng)之間的交互。
邊界類是一種用于對(duì)系統(tǒng)外部環(huán)境與其內(nèi)部運(yùn)作之間的交互進(jìn)行建模的類。這種交互包括轉(zhuǎn)換事件,并記錄系統(tǒng)表示方式(例如接口)中的變更。
2)實(shí)體類主要是作為數(shù)據(jù)管理和業(yè)務(wù)邏輯處理層面上存在的類別。
實(shí)體類的主要職責(zé)是存儲(chǔ)和管理系統(tǒng)內(nèi)部的信息,它也可以有行為,甚至很復(fù)雜的行為,但這些行為必須與它所代表的實(shí)體對(duì)象密切相關(guān)。
實(shí)體類保存要放進(jìn)持久存儲(chǔ)體的信息。持久存儲(chǔ)體就是數(shù)據(jù)庫、文件等可以永久存儲(chǔ)數(shù)據(jù)的介質(zhì)。實(shí)體類可以通過事件流和交互圖發(fā)現(xiàn)。通常每個(gè)實(shí)體類在數(shù)據(jù)庫中有相應(yīng)的表,實(shí)體類中的屬性對(duì)應(yīng)數(shù)據(jù)庫表中的字段。
實(shí)體類是用于對(duì)必須存儲(chǔ)的信息和相關(guān)行為建模的類。實(shí)體對(duì)象(實(shí)體類的實(shí)例)用于保存和更新一些現(xiàn)象的有關(guān)信息,例如:事件、人員或者一些現(xiàn)實(shí)生活中的對(duì)象。
3)控制類用于描述一個(gè)用例所具有的事件流控制行為,控制一個(gè)用例中的事件順序。
1.邊界類,描述外部與系統(tǒng)內(nèi)部交互的類;2.控制類,控制其他類;3.實(shí)體類,存儲(chǔ)信息和相關(guān)行為的類;
7、面向?qū)ο箝_發(fā)系統(tǒng)是一系列對(duì)象的集合。
8、面向?qū)ο蟮娜髾C(jī)制:封裝、繼承、多態(tài)。
9、軟件工作的有效性和可靠性。
10、面向?qū)ο笾笆敲嫦蜻^程的結(jié)構(gòu)化分析與設(shè)計(jì)方法,這種方法以功能分析為基礎(chǔ)。
11、對(duì)象是客觀實(shí)體的抽象表示,是由描述對(duì)象屬性的數(shù)據(jù)和對(duì)這些數(shù)據(jù)進(jìn)行的操作行為兩部分組成。而類是對(duì)具有相同屬性和行為一組對(duì)象的抽象描述。因此,它作為一種用戶自定義類型和創(chuàng)建對(duì)象的樣板,而按照這種樣板所創(chuàng)建的一個(gè)個(gè)具體對(duì)象就是類的實(shí)例。通過繼承關(guān)系又可形成一種類層關(guān)系。
12、UML中靜態(tài)圖有:用例圖、類圖、對(duì)象圖、構(gòu)件圖、部署圖
動(dòng)態(tài)圖有:活動(dòng)圖、順序圖、協(xié)作圖、狀態(tài)圖
簡(jiǎn)答題:
1、簡(jiǎn)述面向?qū)ο蟮娜髾C(jī)制:封裝性、繼承性以及多態(tài)性。
1)封裝性。所謂封裝就是把對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的單位,使外界不能直接訪問或修改這些數(shù)據(jù)和代碼,外界只能通過對(duì)象提供的接口函數(shù)來改變或獲取對(duì)象的屬性數(shù)據(jù),這就實(shí)現(xiàn)了消息的隱蔽;2)繼承性。如果在一個(gè)已定義的類上,增加一些特殊屬性或操作,可以形成一個(gè)新的類,這個(gè)類不僅繼承了前一個(gè)類的全部特征,而且具有新的特性,因此可看作前一個(gè)類的特例,是對(duì)前一個(gè)類的繼承。前一個(gè)類成為父類,新產(chǎn)生的類叫做子類。通過繼承關(guān)系可形成一種類層次結(jié)構(gòu),叫做繼承結(jié)構(gòu);3)多態(tài)性。在類層次結(jié)構(gòu)的不同類中,可用相同的函數(shù)名實(shí)現(xiàn)功能不同的函數(shù)。多態(tài)即程序中同名的不同方法共存的情況,常見的兩種多態(tài)方式為:①子類對(duì)父類方法的覆蓋;② 利用重載在同一個(gè)類中定義多個(gè)同名的不同方法。
2、敘述面向?qū)ο蟀l(fā)展的動(dòng)因:
為了超越程序復(fù)雜性障礙,克服軟件危機(jī),人們提出了面向?qū)ο筌浖_發(fā)方法。面向?qū)ο箝_發(fā)方法一改過去傳統(tǒng)的以功能分析為基礎(chǔ)的面向過程的結(jié)構(gòu)化分析與設(shè)計(jì)方法。面向?qū)ο箝_發(fā)方法模擬人們理解和處理客觀世界的方式來分析問題,把系統(tǒng)視為一系列對(duì)象的結(jié)合,其面向?qū)ο笤O(shè)計(jì)又將分析的結(jié)果映射到某一種面向?qū)ο髮?shí)現(xiàn)工具的結(jié)構(gòu)上,使映射過程有著比較直接的對(duì)應(yīng)關(guān)系,使分析者、設(shè)計(jì)者和編程者都可使用相同的概念,從而使面向?qū)ο蟮能浖_發(fā)能比較自然地模擬客觀世界的活動(dòng),使問題描述空間與解空間在結(jié)構(gòu)上盡可能一致。因此,采用面向?qū)ο蠓椒梢愿行У亻_發(fā)大型軟件系統(tǒng)。面向?qū)ο蠓椒ǖ姆庋b、繼承、多態(tài)等機(jī)制不僅支持軟件復(fù)用,而且使軟件維護(hù)工作可靠有效,可實(shí)現(xiàn)軟件系統(tǒng)的柔性制造,更好地克服軟件危機(jī)。因此,它成為成熟的廣為采用的軟件開發(fā)方法。
3、分析順序圖和協(xié)作圖之間的差別和優(yōu)缺點(diǎn):
順序圖可視化地表示了對(duì)象之間隨時(shí)間發(fā)生的交互,它除了展示對(duì)象之間的關(guān)聯(lián),還顯示出對(duì)象之間的消息傳遞。與順序圖一樣,協(xié)作圖也展示對(duì)象之間的交互關(guān)系。順序圖強(qiáng)調(diào)的是交互的時(shí)間順序,而協(xié)作圖強(qiáng)調(diào)的是交互的語境和參與交互的對(duì)象的整體組織。順序圖按照時(shí)間順序布圖,而協(xié)作圖按照空間組織布圖。
順序圖可以清晰地表示消息之間的順序和時(shí)間關(guān)系,但需要較多的水平方向的空間。
協(xié)作圖在增加對(duì)象時(shí)比較容易,而且分支也比較少,但如果消息比較多時(shí)難以表示消息之間的順序。
填空、選擇:
1、2略
3、在用例圖中用例與角色是關(guān)聯(lián)角色。
4、順序圖中有生命線。
5、整體與局部的關(guān)系用聚集(聚合)表達(dá)的。
6、UML圖中,關(guān)聯(lián)角色的構(gòu)造型有5種
7、略
8、UML中4大關(guān)系:依賴、泛化、實(shí)現(xiàn)和關(guān)聯(lián)。
9、UML構(gòu)造塊中的事物和關(guān)系各包含哪些內(nèi)容?
UML的事物包含:動(dòng)作事物、結(jié)構(gòu)事物、分組事物、注釋事物
動(dòng)作事物包含:交互、狀態(tài)機(jī)
結(jié)構(gòu)事物包含:類、接口、用例、協(xié)作、節(jié)點(diǎn)、構(gòu)件、活動(dòng)類
分組事物包含:包
注釋事物包含:注解
10、活動(dòng)圖中的泳道技術(shù)的作用:通過泳道不僅體現(xiàn)了整個(gè)活動(dòng)控制流,還體現(xiàn)出了每個(gè)活動(dòng)的實(shí)施者。
11、狀態(tài)圖描述從狀態(tài)到狀態(tài)的控制流程,常用來對(duì)系統(tǒng)的動(dòng)態(tài)特稱進(jìn)行建模。
12、UML中類可分為3大類:實(shí)體類、控制類和邊界類。
13、UML體系分為3大部分:UML基本構(gòu)造塊、UML規(guī)則和UML公共機(jī)制。
1. 比較活動(dòng)圖與狀態(tài)圖:
1)活動(dòng)圖和狀態(tài)圖描述的重點(diǎn)不同:活動(dòng)圖描述的是從活動(dòng)到活動(dòng)的控制流,而狀態(tài)圖表述的是對(duì)象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移。
2)活動(dòng)圖和狀態(tài)圖使用的場(chǎng)合不同:對(duì)于以下幾種情況可以使用活動(dòng)圖:分析用例、理解涉及多個(gè)用例的工作流、處理多線程應(yīng)用:對(duì)于下面的情況要使用狀態(tài)圖:顯示一個(gè)對(duì)象在其生命周期內(nèi)的行為。
2. 構(gòu)件和類的比較:從構(gòu)件的定義來看,構(gòu)件和類十分相似,如都有名稱,都可以實(shí)現(xiàn)一組接口,都可以參與依賴,泛化和關(guān)聯(lián)關(guān)系,都可以被嵌套,都可以有實(shí)例,都可以參與交互,但它們之間也存著以下明顯區(qū)別:1)類是對(duì)實(shí)體的抽象,而構(gòu)件是對(duì)存在于計(jì)算機(jī)中的物理部件的抽象。也就是說構(gòu)件是可以部署的,而類不能部署。2)構(gòu)件是屬于軟件模塊,而非邏輯模塊,與類相比,它們處于不同的抽象級(jí)別,甚至可以說,構(gòu)件就是由一組類通過協(xié)作完成的;3)類可以直接擁有操作和屬性,而構(gòu)件僅擁有可以通過其接口訪問的操作。
3、面向?qū)ο蠓椒ǖ幕居^點(diǎn):
(1)客觀世界由對(duì)象組成,任何客觀實(shí)體都是對(duì)象。對(duì)象是系統(tǒng)的基本單位。
(2)復(fù)雜的對(duì)象可以包含簡(jiǎn)單的對(duì)象。
(3)事物的靜態(tài)特征用對(duì)象的屬性表示;事物的動(dòng)態(tài)特征用對(duì)象的操作表示。
(4)對(duì)象的屬性與操作結(jié)合在一起,封裝成一個(gè)獨(dú)立的實(shí)體
(5)具有相同屬性和操作的對(duì)象可歸納成類,對(duì)象是類的一個(gè)實(shí)例。
(6) 類可以派生出子類,子類除了繼承父類的全部特性外還可以有自己的特性。
(7)對(duì)象之間通過消息進(jìn)行通信,以實(shí)現(xiàn)對(duì)象之間的動(dòng)態(tài)聯(lián)系。
4、簡(jiǎn)述面向?qū)ο蠓治龇椒?OOA)的5個(gè)基本步驟
1)、識(shí)別對(duì)象,識(shí)別對(duì)象包括標(biāo)識(shí)潛在的對(duì)象和篩選對(duì)象兩步
2)、識(shí)別對(duì)象的屬性
3)、識(shí)別對(duì)象的行為
4)、識(shí)別對(duì)象所屬的類
5)、定義主題詞