UML軟件建模學習與開發基本概念彙總

  UML,統一建模語言,對於軟件工程專業的學生而言,是一門非常重要的技術,對於從事軟件行業的的開發人員,設計人員等等,更是不可或缺的,同樣是爲了大學階段的非常boring的考試,花費了不少時間整理考試資料,現在和大家一起分享。

 

 

真題彙總

 

1. 什麼是用例圖?用例圖有什麼作用?

 

定義:由參與者、用例以及他們之間的關係構成的用於描述系統功能的圖稱爲用例圖。

作用:

(1) 用例圖是從軟件需求分析到最終實現的第一步,它顯示了系統的用戶和用戶希望提供的功能,有利於用戶和軟件開發人員之間的溝通。

(2) 用例圖可視化的表達了系統的需求,具有直觀、規範的特點,克服了純文字性說明的不足。

(3) 用例方法是完全從外部來定義系統的,它把需求和設計完全分離開來。使用戶不用關心繫統內部是如何完成各種功能的。

 

 

2. 簡述面向對象分析方法(OOA)的5個基本步驟:

 

(1) 識別對象,識別對象包括標識潛在的對象和篩選對象。

(2) 識別對象的屬性。

(3) 識別對象的行爲。

(4) 識別對象所屬的類。

(5) 定義主題詞。

 

 

3. 簡述時序圖的建模步驟:

 

(1) 設置交互語境。

(2) 確定對象。

(3) 分析消息和條件。

(4) 分析附加約束。

(5) 對建模結果精華和細化。

 

 

4RUP統一過程中的四個階段。

1)初始階段

2)細化階段

3)構造階段

4)移交階段

 

4. 什麼是模型?簡述建模的目的。

 

模型是爲了理解事物而對事物做出的一種抽象。是對事物規範化的、無歧義描述的一種工具。

 

目的:規範、可視化、建造、建檔

 

5. 什麼是UML?簡述UML的內容及其特點?

 

UML是面向對象工作組(OMG)系統的一種面向對象,用來對軟件密集系統進行可視化建模,對開發的系統產品進行說明、可視化編制文檔的一種標準建模語言。

 

內容:

(1) UML語義:給出了基於UML的精確的主模型定義。

(2) UML表示法:定義了UML符號的表示方法,爲開發者或開發工具使用這些圖形符號和文本語法,給系統建模提供了標準。

 

特點:(1)有統一的標準,便於使用人員溝通。

2)是一種面向對象的建模語言。

3)可視化,表示能力強大,提供了擴展機制。

4)容易使用。

 

 

6. UML2.0中共有13種圖,名稱分別是什麼?簡要說明其作用。

 

用例圖、類圖、對象圖、順序圖、通信圖、活動圖、狀態機圖、組件圖、部署圖、包圖、複合結構圖、交互概觀圖、定時圖

 

7. UML2.0中增加了2種交互圖,他們的名稱分別是什麼?並簡要說明其作用。

 

(1) 交互概觀圖:一種順序圖和活動圖的結合,從較高的抽象層次描述了對象以及對象之間的交互關係。

(2) 定時圖:從微觀的層次描述了對象之間的交互,重點在於定時。

 

 

8. 簡述聚集和組合之異同。

 

聚集:是一種特殊的關聯關係,描述元素之間整體與部分的關係。

組合:是一種特殊的聚集,表示“部分”的元素存在完全依賴於“整體”的元素,“整體”與“部分”有相同的生命週期。當整體對象不存在時,部分對象也就不存在了。

 

9. 簡述統一建模語言UML

 

(1) 統一建模語言是一種繪製軟件藍圖的標準語言。可以用UML對軟件密集型系統進行可視化描述和文檔化。

(2) UML是一種定義良好,易於表達,功能強大且普遍適用的可視化建模語言。它融入了軟件工程領域的新思想、新方法和新技術。它的作用不限於支持面向對象的分析與設計,還支持從需求分析開始的軟件開發全過程。

(3) UML的作用就是用很多圖從靜態和動態方面全面描述要開發的系統。

 

 

10. 簡述用例模型的組成元素以及建模步驟。

 

系統邊界、參與者、用例、關係

 

建模步驟:

(1) 找出備選系統邊界。

(2) 找出參與者。

(3) 找出用例、說明用例、識別主要附流。

(4) 迭代直到用例,參與者以及系統邊界穩定下來。

 

 

11. 簡要說明面向對象的思想。

 

(1) 認爲客觀世界是由各種對象組成的,任何事物都是對象,複雜的對象可以由比較簡單的對象以某種方式組合而成。

(2) 事物的靜態特徵用對象的屬性來表示;對象的動態特徵用對象的操作來表示。

(3) 通過在不同程度上運用抽象原則,可以得到較一般的類和較特殊的類。

(4) 對象之間通過消息進行通信,以實現對象之間的動態聯繫。

 

 

 

 

以下是自己整理的資料:

 

1. 在設計包時,應遵循:

 

(1) 重用等價原則

(2) 共同閉包原則

(3) 共同重用原則

(4) 非循環依賴原則

 

 

2. 組件圖包含三種元素:

 

(1) 組件

(2) 接口

(3) 依賴關係

 

3. MVC包括3個部分:

 

(1) model:表達應用領域有關的類、對象、數據結構以及企業的業務邏輯等。

(2) view:代表窗口畫面,負責將model的實現呈獻給用戶。

(3) controller:監控用戶傳來的信息,並將信息指揮協同上述二者的合作。

 

 

4. 順序圖包含4個元素:

 

(1) 對象

(2) 生命線

(3) 消息

(4) 激活

 

 

5. 通信圖包含3個元素:

 

(1) 對象

(2) 消息

(3) 鏈

 

6. Rose把系統邏輯視圖分成三個層次:

 

(1) 業務對象模型

(2) 分析模型

(3) 設計模型

 

7. 組件圖包括:

 

(1) 組件

(2) 接口

(3) 依賴關係

 

8. 用例模型4個部分:

 

(1) 系統邊界

(2) 參與者

(3) 用例

(4) 關係

 

9. 用例模型中參與者有三大類:

 

(1) 系統用戶

(2) 與所建造系統交互的其他系統

(3) 可運行的進程

 

10. UML定義包括:

 

(1) UML語義

(2) UML表示法

 

11. 模型分爲:

 

(1) 數學模型

(2) 描述模型

(3) 圖形模型

 

12. 建模的目的:

 

(1) 規範

(2) 可視化

(3) 建造

(4) 建檔

 

13. 建模的原則:

 

(1) 準確原則

(2) 分層原則

(3) 分治原則

(4) 標準原則

 

14. RUP特點:

 

(1) 用例驅動

(2) 以框架爲中心

(3) 採用迭代和增量的開發策略

 

15. Rational Rose的特點:

 

(1) 爲大型軟件工程提供了可塑性和柔韌性極強的解決方案。

(2) 支持多種語言。

(3) 爲團隊開發提供強有力的支持。

(4) 支持模型的Internet的發佈。

(5) 具有生成使用簡單且定製靈活的文檔的功能。

(6) 支持關係型數據庫的建模。

 

16. UML詞彙表三種構造模塊:

 

(1) 元素

(2) 關係

(3) 圖

 

17. UML優點:

 

(1) 唯一性

(2) 連續性

(3) 維護性

(4) 複用性

(5) 完善性

 

18. UML開發過程是一種二維結構軟件開發過程,軟件項目開發過程流程包括的核心工作內容:

 

(1) 分析

(2) 設計

(3) 實現

(4) 測試

(5) 配置

 

19. 對一個對象的生命週期進行建模、描述對象隨時間變化的行爲:

 

(1) 狀態圖

(2) 活動圖

 

20. UML包含5大類圖形:

 

(1) 用例視圖

(2) 實現視圖

(3) 邏輯視圖

(4) 進程視圖

(5) 部署視圖

 

21. 順序圖和通信圖的語義是等價的,可以相互轉化。

22. RUP6個核心過程工作流:

 

(1) 商業建模

(2) 需求分析

(3) 分析與設計

(4) 實現

(5) 測試

(6) 部署

 

 

23. OCL定義的基本集合類型:

 

(1) Collection

(2) Set

(3) Bag

(4) Sequence

 

24. UML擴展機制:

 

(1) 構造型

(2) 標記值

(3) 約束

 

25. 狀態圖中,事件是引起狀態變化的因素:

 

(1) 調用事件:一個對象接受一個消息。

(2) 修改事件:一個表達式的計算結果爲真可以觸發轉換。

(3) 時間事件:時間的流逝可以觸發轉換。

 

 

1. 大型軟件開發過程中出現的三大難題

 

(1) 複雜程度高

(2) 研製週期長

(3) 正確性難以保證

 

2. 軟件是邏輯產品而不是物理產品。

3. 軟件特性:

 

(1) 複雜性

(2) 抽象性

(3) 使用的獨特性

(4) 開發過程特性

(5) 維護特性

(6) 知識產權保護

 

4. 軟件危機的突出表現:

 

(1) 對軟件開發成本和進度的估計常常很不準確。

(2) 用戶對已完成的軟件系統不滿意的現象經常發生。

(3) 軟件產品的質量往往靠不住。

(4) 軟件常常是不可維護的。

(5) 軟件通常沒有適當的文檔資料。

(6) 軟件成本在計算機系統總成本中所佔的比例逐年上升。

 

5. 產生軟件危機的原因:

 

(1) 用戶需求不明確。

(2) 缺乏正確的理論指導。

(3) 軟件開發規模越來越大。

(4) 軟件開發複雜度越來越高。

 

6. 軟件工程的框架概括爲:

 

(1) 目標

(2) 過程

(3) 原則

 

7. 軟件工程工具爲過程和方法提供自動化和半自動化的支持。這些工具可以集成起來,使得工具產生的信息可被另外一個工具使用,這樣就建立了軟件開發的支撐系統,稱爲計算機輔助軟件工程(CASE

8. 傳統的軟件開發方法也稱爲生命週期方法學或結構化範型。

9. 控制複雜性的原則:

 

(1) 抽象

(2) 分解分治,逐步求精

(3) 推遲實現

(4) 信息隱蔽,信息局部化

(5) 模塊化

 

10. 高內聚指的是在一個模塊中應儘可能多地彙集邏輯上相關的計算資源。

11. 低耦合指的是模塊之間的相互作用應儘量少,要求影響範圍應處於控制範圍之中。

12. 傳統的軟件開發方法存在的問題主要表現爲以下三個方面:

 

(1) 需求分析時存在着認識事物和描述事物方面的不足。

(2) 對需求變化的適應性不強。

(3) 可重用性差。

 

 

13. 面向對象方法就是基於對象概念,以對象爲中心,以類和繼承爲構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統的方法。

14. 對象之間通過消息進行通信,已實現對象之間的動態聯繫。

15. 面向對象方法的優點:

 

(1) 與人們習慣的思維方法一致

(2) 系統穩定性好

(3) 軟件具有可重用性

(4) 軟件具有可維護性

 

16. 面向對象的軟件開發需要建立三種形式的模型:

 

(1) 描述系統數據結構的對象模型

(2) 描述系統控制結構的動態模型

(3) 描述系統功能的功能模型

 

17. 對象模型主要由UML的類圖組成,動態模型主要由UML的狀態圖組成,功能模型主要由UML的用例圖組成。

18. 瀑布模型

 

瀑布模型又稱爲經典生命週期模型,是一種文檔驅動的模型。

 

優點:

(1) 強迫開發人員採用規範的方法。

(2) 嚴格的規定每一個階段必須提交的文檔。

(3) 要求每個階段的產品必須經過質量保證人員的仔細驗證。

 

缺點:

(1) 變更可能帶來混亂。

(2) 很難適應許多項目開始階段必然存在的不確定性。

(3) 只有在項目接近尾聲的時候,才能得到可執行程序。

 

 

19. 增量過程模型

 

增量模型以迭代的方式運用瀑布模型。

 

優點:

(1) 在較短時間內向用戶提交完成部分工作的產品,逐步增加產品功能。

(2) 使用戶有足夠的時間適應新產品,減少一個全新的軟件給用戶帶來的衝擊。

 

 

20. 快速原型模型

 

優點在於不帶反饋環。

缺點是可能需要建立較多的模型,並且需要快速開發工具或平臺的支持。

 

21. 螺旋模型

 

是一種風險驅動的模型。

 

優點:

(1) 有利於已有軟件的重用,有助於把軟件質量作爲軟件開發的一個重要目標。

(2) 減少測試不足帶來的風險。

 

缺點:

1)要求開發人員有豐富的風險評估經驗。

 

 

1. 模型的三種類型:

 

(1) 數學模型

(2) 描述模型

(3) 圖形模型

 

2. 建模的根本問題是要求建模者對被建模的對象有豐富的知識,並具有相關數學結構的深刻理解和洞察力。

3. 軟件建模的目的:

 

(1) 規範

(2) 可視化

(3) 建造

(4) 建檔

 

4. 軟件建模的原則:

 

(1) 準確原則

(2) 分層原則

(3) 分治原則

(4) 標準原則

 

5. 軟件建模機制:

 

(1) 觀點

(2) 抽象級別

(3) 二分法

(4) 擴展機制

 

6. 結構化分析與設計技術(SADT:基本思想和SA很接近,但是它用方框圖的形式描述需求。總體思想是面向數據流功能分解和細化。得到分層的一系列框圖,這些框圖按層次關係組成系統的模型。

7. SADT由三部分組成

 

(1) 功能模型

(2) 數據模型

(3) 管理指導書

 

8. 以用戶爲中心的需求分析(UCRA:主要關注解決擁有大量用戶交互操作和集成數據庫的目標系統的需求分析問題。

9. 軟件工程需求分析(SERA:主要用於理解和分析客戶對系統的軟件工程的需求。

10. 結構化設計方法主要有:

 

(1) 面向數據流的設計方法

(2) 面向數據結構的設計方法

 

11. 在RUP中,產品開發週期的四個階段:

 

(1) 初始階段    里程碑:生命週期目標

(2) 細化階段    里程碑:生命週期架構

(3) 構造階段    里程碑:初試運作功能

(4) 移交階段    里程碑:產品發佈

 

12. 在RUP中,四個階段之間的里程碑:

 

(1) 生命週期目標

(2) 生命週期架構

(3) 初始運作功能

(4) 產品發佈

 

 

13. RUP 9個核心工作流=6個核心過程工作流+3個核心支持工作流

14. RUP工作流:

 

(1) 需求捕獲工作流

(2) 分析工作流

(3) 設計工作流

(4) 實現工作流

(5) 測試工作流

(6) 其他工作流

 

 

15. RUP特點:

 

(1) 用例驅動

(2) 以架構爲中心

(3) 迭代和增量開發

 

16.RUP的核心體現在:迭代的開發軟件、管理需求、使用基於組件的架構、爲軟件可視化建模、驗證軟件質量、控制對軟件的變更。爲軟件開發團隊提供指南、文檔模板和工具。

 

 

 

1. 從微觀角度看,UML建模要素包括:

 

(1) 基本構造塊

(2) UML規則

(3) 通用機制

 

2. 基本構造塊包括:

 

(1) 事物

(2) 關係

(3) 圖

 

事物和關係是兩種最基本的構造塊,將組成“圖”這個最核心的構造塊。

 

3. 事物構造塊包括:

 

(1) 結構事物:UML中的名詞,模型中的靜態部分,描述概念或物理元素。

(2) 行爲事物:UML中的動詞,模型中的動態部分,是跨越時間和空間的行爲。

(3) 分組事物:UML中的容器,用來組織模型,使模型更加結構化。

(4) 註釋事物:UML中的解釋部分,用來描述模型。

 

 

4. 結構事物有7種:

 

(1) 類

(2) 接口

(3) 協作

(4) 用例

(5) 主動類

(6) 組件

(7) 節點

 

5. 接口是爲類或組件提供特定服務的一組操作的集合。

6. 協作定義了交互操作。

7. 用例描述系統對一個特定角色執行的一系列動作。

8. 主動類是指其對象至少擁有一個或多個進程或線程的類。

9. 組件隱藏內部實現,對外提供外部接口。

10. 節點描述實際的物理硬件。

11. 交互和狀態機是最基本的兩個行爲事物。

 

(1) 交互是一組對象在特定上下文中,爲達到某種目的而進行的一系列消息交換組成的動作。

(2) 狀態機是一個對象或交互在生命週期內響應事件所經歷的狀態序列。

 

12. 分組事物只有一種——包。

13. 包只存在於開發階段,不像組件一樣存在於運行階段。

14. 註釋必須附在一個元素或一組元素之上,否則就失去了存在的價值。

15. UML常用的關係:

 

(1) 關聯

(2) 依賴

(3) 泛化

(4) 實現

 

16. 關聯關係包括聚合和組合。

17. 關聯關係是連接元素和鏈接實例,提供了通信的路徑,是所有關係中最通用、語義最弱的。

18. 依賴關係:如果修改元素X的定義可能會引起對另一個元素Y的定義的修改,則稱Y依賴於X

19. 依賴關係例子:

 

(1) 一個類的實例向另一個類的實例發消息

(2) 一個類是另一個類的數據成員

(3) 一個類是另一個類的某個操作參數

 

20. 泛化關係描述了一般關係和特殊關係。即父類與子類的關係。

21. 實現關係是用來規定接口和實現的類或組件之間的關係。

22. UML規則:

 

(1) 命名

(2) 範圍

(3) 可見性

 

 

23. UML兩種公共分類:

 

(1) 類與對象的劃分

(2) 接口與實現的分離

 

24. UML的通用機制

 

(1) 規格說明

(2) 修飾

(3) 公共分類

 

25. UML擴展機制

 

(1) 構造型

(2) 標記值

(3) 約束

 

26. 構造型是對UML詞彙的擴展,這種擴展機制採用的方式是基於一個已存在的模型定義一種新的模型元素,新的模型元素在一個已存在的元素中加入了一些額外語義。

27. 標記值對某種屬性“鍵——值”的明確定義,這些“鍵——值”存儲有關模型元素的信息。在標記值中,標記是建模者想要記錄的一些特性的名字。,值是給定的元素的特性的值。

28. 標記值是對UML元素的特性的擴展,主要用於在模型的規約中創建新的信息。

29. 約束使用文字表達式表示的施加在某個模型元素的語義限制。

30. 約束是對UML元素的語義的擴展。

31. UML 2.0新增的圖:

 

(1) 複合結構圖

(2) 包圖

(3) 交互概觀圖

(4) 定時圖

 

32. 從使用角度把UML 2.0的圖分爲:

 

(1) 靜態圖(結構圖)

(2) 動態圖(行爲圖)

 

33. 靜態圖包括:

 

(1) 類圖

(2) 對象圖

(3) 包圖

(4) 複合結構圖

(5) 組件圖

(6) 部署圖

 

 

34. 動態圖包括:

 

(1) 活動圖

(2) 交互圖:包括順序圖、通信圖、交互概觀圖、時序圖

(3) 用例圖

(4) 狀態機圖

 

35. 類圖是描述系統中類、接口、協作以及他們之間的關係的圖,用來顯示系統中各個類的靜態結構以及類的內部結構。

36. 類圖的7個元素:

 

(1) 類

(2) 接口

(3) 協作

(4) 關聯關係

(5) 依賴關係

(6) 泛化關係

(7) 實現關係

 

37. 在建模時,可以根據需要顯示或隱藏屬性部分或操作部分,或者兩者都隱藏。注意:隱藏屬性部分或操作部分,並不代表沒有屬性或操作,只是因爲沒有顯示出來。

38. 類之間的關係:

 

(1) 依賴關係:表示類之間的使用關係

(2) 泛化關係:表示類之間一般和特殊的關係

(3) 關聯關係:表示類之間結構關係

(4) 實現關係:表示類中規格說明和實現之間的關係

 

39. 4種依賴關係:

 

(1) 使用依賴

(2) 抽象依賴

(3) 授權依賴

(4) 綁定依賴

 

40.產生使用依賴的3種情況:

 

(1) 客戶類的操作需要提供者類的參數

(2) 客戶類的操作返回提供者類的值

(3) 客戶類的操作在實現中使用提供者類的對象

 

40. 抽象依賴表示客戶與提供者之間的關係依賴於在不同抽象層次上的事物。

41. 授權依賴表示一個事物訪問另一個事物的能力。

42. 綁定依賴用於綁定模板以創建新的模型元素。

43. 關聯關係是一種結構關係,它指明一種事物的對象與另一種事物的對象之間的聯繫。關聯描述系統中對象或實例之間的離散連接。

44. 對於關聯的修飾包括:

 

(1) 名稱

(2) 角色

(3) 多重性

(4) 導航性

 

45. 接口包含操作但不包含屬性,且它沒有對外界可見的關聯。

46. 類圖的應用:

 

(1) 對系統的詞彙建模

(2) 對簡單的協作建模

(3) 對邏輯數據庫模式建模

 

 

 

 

 

1.OCL   Object Constrain Language 對象約束語言

2.OCL是一種強類型語言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章