1、UML中常見的關(guān)系的線性表示:
擴展關(guān)系:、泛化(繼承)關(guān)系:、依賴關(guān)系:
聚合關(guān)系:、組成關(guān)系:、
關(guān)聯(lián)關(guān)系:、實現(xiàn)關(guān)系:
2、UML中幾種基本圖及其基本功能作用:
UML的重要內(nèi)容可以由哪五類圖(共9種圖形)來定義:
答:用例圖:用例圖。
靜態(tài)圖:類圖、對象圖
行為圖:狀態(tài)圖、活動圖
交互圖:時序圖、協(xié)作圖
實現(xiàn)圖:構(gòu)件圖、部署圖
1)類圖:類圖是描述類、接口、協(xié)作以及它們之間的關(guān)系的圖,用來顯示系統(tǒng)中各個類的靜態(tài)結(jié)構(gòu)。
類包括:類圖、屬性、方法。
類圖包括:類、接口、協(xié)作、關(guān)系、約束、注釋以及包。
類的表示包括:名稱、屬性、操作、職責(zé)和約束。
類圖的建模過程:確定對象與類、確定類的屬性、確定類的關(guān)系。
類圖在UML中的重要作用:1.為開發(fā)人員提供這種模仿現(xiàn)實世界的表達(dá)方式。
2.讓分析員使用客戶所采用的術(shù)語和客戶交流,促使客戶說出所要解決的問題的重要細(xì)節(jié)。
2)對象圖:對象圖表示在某一時刻一組對象以及他們之間的關(guān)系的圖。
UML對象圖的用途
◆捕獲實例和連接、◆在分析和設(shè)計階段創(chuàng)建、◆捕獲交互的靜態(tài)部分、◆舉例說明數(shù)據(jù)/對象結(jié)構(gòu)、◆詳細(xì)描述瞬態(tài)圖、◆由分析人員、設(shè)計人員和代碼實現(xiàn)人員開發(fā)
3)用例圖:表述了一組用例、參與者以及它們之間的關(guān)系的圖。
用例模型包括:用例圖和用例規(guī)則。
用例規(guī)則包括:基本流和備選流。
用例圖的組成元素有:參與者,用例,通信關(guān)聯(lián),用例規(guī)約
建立用例模型步驟:
1) 根據(jù)系統(tǒng)邊界確定參與者
2) 根據(jù)每個參與者確定與之相關(guān)聯(lián)的用例
3) 對每個用例寫出用例規(guī)約文檔,調(diào)整用例模型(優(yōu)化參與者與參與者之間的關(guān)系,用例與用例之間的關(guān)系)
用例對于系統(tǒng)開發(fā)人員來說的價值:是用來從用戶的觀察角度收集系統(tǒng)需求的一項技術(shù),便于分析員與客戶和用戶交流,使系統(tǒng)更符合用戶的需求
4)順序圖也稱為時序圖,它描敘了系統(tǒng)中對象間通過消息進行的交互,強調(diào)了消息在時間軸上的先后順序。
順序圖是由對象、生命線、控制焦點和消息等構(gòu)成。(消息表示了對象間的通信,生命線表示了對象的生存期,控制焦點表示對象正在執(zhí)行一些活動)
順序圖將交互關(guān)系表示為一張二維圖,其中縱向是時間軸,時間沿豎線向下延伸,橫向代表了在協(xié)作中各獨立對象的角色。
順序圖中從左到右各對象分別為:執(zhí)行者角色、控制類、用戶接口、業(yè)務(wù)層、后臺數(shù)據(jù)庫。
順序圖的作用:順序圖常用來描述用例的實現(xiàn),它表明了由哪些對象通過消息相互協(xié)作來實現(xiàn)用例的功能。在順序圖中,標(biāo)識了消息發(fā)生的先后順序。
5)協(xié)作圖:描述了系統(tǒng)中對象間通過消息進行的交互,強調(diào)了對象在交互行為中承擔(dān)的角色。
協(xié)作圖包括對象、鏈(連接器)、消息。
(協(xié)作圖與順序圖的比較與各自的優(yōu)缺點下面有)
交互圖(協(xié)作圖與順序圖)的特征:交互圖形主要用于對用例中的控制建模,一般情況下,一個交互圖形表達(dá)單個用例的行為,它表示出該用例中若干個實例對象和對象之間所傳遞的消息,交互圖形有效的幫助人們觀察和理解系統(tǒng)內(nèi)部的協(xié)作關(guān)系和過程行為。
6)狀態(tài)圖:描述了一個對象所處的可能狀態(tài)以及狀態(tài)之間的轉(zhuǎn)換,并給出了狀態(tài)變化序列的起點和終點。
狀態(tài)圖包括:狀態(tài)、轉(zhuǎn)換。
一個狀態(tài)圖表示一個狀態(tài)機,表示從一個狀態(tài)到另一個狀態(tài)的控制流。
引發(fā)狀態(tài)轉(zhuǎn)換的事件主要有:調(diào)用事件、變化事件、時間事件以及信號事件。
建模步驟:找出適合用模型描述其行為的類、確定對象可能存在的狀態(tài)、確定引起狀態(tài)轉(zhuǎn)換的事件、確定轉(zhuǎn)換進行時對象執(zhí)行的相應(yīng)動作、對建模結(jié)果進行相應(yīng)的精化和細(xì)化。
作用:能幫助分析員、設(shè)計員和開發(fā)人員理解系統(tǒng)中對象的行為。(P87)
7)活動圖:描述從活動到活動的流。
活動圖包括:動作狀態(tài),活動狀態(tài),動作流、分支與合并、分關(guān)與匯合、泳道以及對象流。
8)構(gòu)件圖:主要用來描述各種軟件構(gòu)件之間的依賴關(guān)系,是描述構(gòu)件與構(gòu)件關(guān)系的圖。
構(gòu)件圖包括注釋、約束和包。
構(gòu)件包括5個要素:接口聲明、接口實現(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)的所有物理部件;同時,也使我們知道如何對構(gòu)件進行打包,以便交付給最終客戶;最后,構(gòu)件圖顯示了被開發(fā)系統(tǒng)所包含的構(gòu)件之間的依賴關(guān)系
(構(gòu)件和類的比較見下面)
9)部署圖:描述系統(tǒng)中的硬件節(jié)點及節(jié)點之間如何連接的圖。
部署圖的組成元素包括節(jié)點、節(jié)點間的鏈接。
部署圖的目的:描述系統(tǒng)投產(chǎn)的相關(guān)問題;描述系統(tǒng)與生產(chǎn)環(huán)境中的其他系統(tǒng)間的依賴關(guān)系,這些系統(tǒng)可能是已經(jīng)存在,或是將要引入的;描述一個商業(yè)應(yīng)用主要的部署結(jié)構(gòu);設(shè)計一個嵌入系統(tǒng)的硬件和軟件結(jié)構(gòu);描述一個組織的硬件/網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)。
(活動圖與狀態(tài)圖的比較見下面)
3、類圖的表示:
4、略
5、對象間的可見性:可見性指的是一個對象能夠“看到” 或者引用另一個對象的能力。Public + ,private - ,protected #
6、類的區(qū)分:
UML將類分為邊界類、實體類以及控制類。
1)邊界類用于描述外部參與者與系統(tǒng)之間的交互。
邊界類是一種用于對系統(tǒng)外部環(huán)境與其內(nèi)部運作之間的交互進行建模的類。這種交互包括轉(zhuǎn)換事件,并記錄系統(tǒng)表示方式(例如接口)中的變更。
2)實體類主要是作為數(shù)據(jù)管理和業(yè)務(wù)邏輯處理層面上存在的類別。
實體類的主要職責(zé)是存儲和管理系統(tǒng)內(nèi)部的信息,它也可以有行為,甚至很復(fù)雜的行為,但這些行為必須與它所代表的實體對象密切相關(guān)。
實體類保存要放進持久存儲體的信息。持久存儲體就是數(shù)據(jù)庫、文件等可以永久存儲數(shù)據(jù)的介質(zhì)。實體類可以通過事件流和交互圖發(fā)現(xiàn)。通常每個實體類在數(shù)據(jù)庫中有相應(yīng)的表,實體類中的屬性對應(yīng)數(shù)據(jù)庫表中的字段。
實體類是用于對必須存儲的信息和相關(guān)行為建模的類。實體對象(實體類的實例)用于保存和更新一些現(xiàn)象的有關(guān)信息,例如:事件、人員或者一些現(xiàn)實生活中的對象。
3)控制類用于描述一個用例所具有的事件流控制行為,控制一個用例中的事件順序。
1.邊界類,描述外部與系統(tǒng)內(nèi)部交互的類;2.控制類,控制其他類;3.實體類,存儲信息和相關(guān)行為的類;
7、面向?qū)ο箝_發(fā)系統(tǒng)是一系列對象的集合。
8、面向?qū)ο蟮娜髾C制:封裝、繼承、多態(tài)。
9、軟件工作的有效性和可靠性。
10、面向?qū)ο笾笆敲嫦蜻^程的結(jié)構(gòu)化分析與設(shè)計方法,這種方法以功能分析為基礎(chǔ)。
11、對象是客觀實體的抽象表示,是由描述對象屬性的數(shù)據(jù)和對這些數(shù)據(jù)進行的操作行為兩部分組成。而類是對具有相同屬性和行為一組對象的抽象描述。因此,它作為一種用戶自定義類型和創(chuàng)建對象的樣板,而按照這種樣板所創(chuàng)建的一個個具體對象就是類的實例。通過繼承關(guān)系又可形成一種類層關(guān)系。
12、UML中靜態(tài)圖有:用例圖、類圖、對象圖、構(gòu)件圖、部署圖
動態(tài)圖有:活動圖、順序圖、協(xié)作圖、狀態(tài)圖
簡答題:
1、簡述面向?qū)ο蟮娜髾C制:封裝性、繼承性以及多態(tài)性。
1)封裝性。所謂封裝就是把對象的屬性和行為結(jié)合成一個獨立的單位,使外界不能直接訪問或修改這些數(shù)據(jù)和代碼,外界只能通過對象提供的接口函數(shù)來改變或獲取對象的屬性數(shù)據(jù),這就實現(xiàn)了消息的隱蔽;2)繼承性。如果在一個已定義的類上,增加一些特殊屬性或操作,可以形成一個新的類,這個類不僅繼承了前一個類的全部特征,而且具有新的特性,因此可看作前一個類的特例,是對前一個類的繼承。前一個類成為父類,新產(chǎn)生的類叫做子類。通過繼承關(guān)系可形成一種類層次結(jié)構(gòu),叫做繼承結(jié)構(gòu);3)多態(tài)性。在類層次結(jié)構(gòu)的不同類中,可用相同的函數(shù)名實現(xiàn)功能不同的函數(shù)。多態(tài)即程序中同名的不同方法共存的情況,常見的兩種多態(tài)方式為:①子類對父類方法的覆蓋;② 利用重載在同一個類中定義多個同名的不同方法。
2、簡述面向?qū)ο蟀l(fā)展的動因:
為了超越程序復(fù)雜性障礙,克服軟件危機,人們提出了面向?qū)ο筌浖_發(fā)方法。面向?qū)ο箝_發(fā)方法一改過去傳統(tǒng)的以功能分析為基礎(chǔ)的面向過程的結(jié)構(gòu)化分析與設(shè)計方法。面向?qū)ο箝_發(fā)方法模擬人們理解和處理客觀世界的方式來分析問題,把系統(tǒng)視為一系列對象的結(jié)合,其面向?qū)ο笤O(shè)計又將分析的結(jié)果映射到某一種面向?qū)ο髮崿F(xiàn)工具的結(jié)構(gòu)上,使映射過程有著比較直接的對應(yīng)關(guān)系,使分析者、設(shè)計者和編程者都可使用相同的概念,從而使面向?qū)ο蟮能浖_發(fā)能比較自然地模擬客觀世界的活動,使問題描述空間與解空間在結(jié)構(gòu)上盡可能一致。因此,采用面向?qū)ο蠓椒梢愿行У亻_發(fā)大型軟件系統(tǒng)。面向?qū)ο蠓椒ǖ姆庋b、繼承、多態(tài)等機制不僅支持軟件復(fù)用,而且使軟件維護工作可靠有效,可實現(xiàn)軟件系統(tǒng)的柔性制造,更好地克服軟件危機。因此,它成為成熟的廣為采用的軟件開發(fā)方法。
3、分析順序圖和協(xié)作圖之間的差別和優(yōu)缺點:
順序圖可視化地表示了對象之間隨時間發(fā)生的交互,它除了展示對象之間的關(guān)聯(lián),還顯示出對象之間的消息傳遞。與順序圖一樣,協(xié)作圖也展示對象之間的交互關(guān)系。順序圖強調(diào)的是交互的時間順序,而協(xié)作圖強調(diào)的是交互的語境和參與交互的對象的整體組織。順序圖按照時間順序布圖,而協(xié)作圖按照空間組織布圖。
順序圖可以清晰地表示消息之間的順序和時間關(guān)系,但需要較多的水平方向的空間。
協(xié)作圖在增加對象時比較容易,而且分支也比較少,但如果消息比較多時難以表示消息之間的順序。
填空、選擇:
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)系:依賴、泛化、實現(xiàn)和關(guān)聯(lián)。
9、UML構(gòu)造塊中的事物和關(guān)系各包含哪些內(nèi)容?
UML的事物包含:動作事物、結(jié)構(gòu)事物、分組事物、注釋事物
動作事物包含:交互、狀態(tài)機
結(jié)構(gòu)事物包含:類、接口、用例、協(xié)作、節(jié)點、構(gòu)件、活動類
分組事物包含:包
注釋事物包含:注解
10、活動圖中的泳道技術(shù)的作用:通過泳道不僅體現(xiàn)了整個活動控制流,還體現(xiàn)出了每個活動的實施者。
11、狀態(tài)圖描述從狀態(tài)到狀態(tài)的控制流程,常用來對系統(tǒng)的動態(tài)特稱進行建模。
12、UML中類可分為3大類:實體類、控制類和邊界類。
13、UML體系分為3大部分:UML基本構(gòu)造塊、UML規(guī)則和UML公共機制。
1. 比較活動圖與狀態(tài)圖:
1)活動圖和狀態(tài)圖描述的重點不同:活動圖描述的是從活動到活動的控制流,而狀態(tài)圖表述的是對象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移。
2)活動圖和狀態(tài)圖使用的場合不同:對于以下幾種情況可以使用活動圖:分析用例、理解涉及多個用例的工作流、處理多線程應(yīng)用:對于下面的情況要使用狀態(tài)圖:顯示一個對象在其生命周期內(nèi)的行為。
2. 構(gòu)件和類的比較:從構(gòu)件的定義來看,構(gòu)件和類十分相似,如都有名稱,都可以實現(xiàn)一組接口,都可以參與依賴,泛化和關(guān)聯(lián)關(guān)系,都可以被嵌套,都可以有實例,都可以參與交互,但它們之間也存著以下明顯區(qū)別:1)類是對實體的抽象,而構(gòu)件是對存在于計算機中的物理部件的抽象。也就是說構(gòu)件是可以部署的,而類不能部署。2)構(gòu)件是屬于軟件模塊,而非邏輯模塊,與類相比,它們處于不同的抽象級別,甚至可以說,構(gòu)件就是由一組類通過協(xié)作完成的;3)類可以直接擁有操作和屬性,而構(gòu)件僅擁有可以通過其接口訪問的操作。
3、面向?qū)ο蠓椒ǖ幕居^點:
(1)客觀世界由對象組成,任何客觀實體都是對象。對象是系統(tǒng)的基本單位。
(2)復(fù)雜的對象可以包含簡單的對象。
(3)事物的靜態(tài)特征用對象的屬性表示;事物的動態(tài)特征用對象的操作表示。
(4)對象的屬性與操作結(jié)合在一起,封裝成一個獨立的實體
(5)具有相同屬性和操作的對象可歸納成類,對象是類的一個實例。
(6) 類可以派生出子類,子類除了繼承父類的全部特性外還可以有自己的特性。
(7)對象之間通過消息進行通信,以實現(xiàn)對象之間的動態(tài)聯(lián)系。
4、簡述面向?qū)ο蠓治龇椒ǎ∣OA)的5個基本步驟
1)、識別對象,識別對象包括標(biāo)識潛在的對象和篩選對象兩步
2)、識別對象的屬性
3)、識別對象的行為
4)、識別對象所屬的類
5)、定義主題詞