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是一种强类型语言。


你可能感兴趣的:(UML,软件建模,基本概念,计算机杂谈)