UML习题答案
第一章 面向对象设计与UML
- 填空题
- UML
- 名字 属性 操作
- 封装 继承 多态
- 继承
- 功能模型 动态模型 对象模型
2. 选择题
(1)C
(2)A B C D
(3)A B C D
(4)B C D
(5)A
3.简答题
(1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。
(2)面向对象技术是一种以对象为基础,以事件或信息来驱动对象执行处理的程序设计技术。从程序设计方法上来讲,它是一种自下而上的程序设计方法,它不像面向过程程序设计那样一开始就需要使用一个主函数来概括出整个程序,面向对象程序设计往往从问题的一部分着手,一点一点地构建出整个程序。
(3)类的设计原则有七个,包括:开闭原则、里氏代换原则、迪米特原则(最少知道原则)、单一职责原则、接口分隔原则、依赖倒置原则、组合/聚合复用原则。
边做边改模型—优点:前期出成效快;
缺点: 1.缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;
2.忽略需求环节,给软件开发带来很大的风险;
3.没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。
瀑布模型一优点:为项目提供了按阶段分的检查点;当完成一个阶段后,只需要去关注后续阶段;可在迭代模型中应用瀑布模型。
缺点:缺乏灵活性,太过线性理想化,不适合现代软件开发
1.各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
2.由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;
3.早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
4.各个软件生命周期衔接花费时间较长,团队人员交流成本大。
5.瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
快速原型模型—优点:生命周期短,整合“边做边改”与“瀑布模型”优点,减少软件需求不明确带来的开发风险,适用于小型、交互型的系统,大型系统的某些部分。
缺点:可能导致系统设计差、效率低、难以维护。
增量模型—优点:软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。
缺点:1. 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
- 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
迭代模型—优点:1.降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费;
2.降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙;
3.加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率;
4.由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些,复用性更高。
螺旋模型—优点:由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
缺点:对客户、开发规模以及软件开发人员要求较高。
敏捷开发模型—优点:响应变化,它能够尽快地响应变化。
缺点: 随着系统因素(内部和外部因素)的复杂度增加,项目成功的可能性就迅速降低,不适合大的项目。
第二章 UML通用知识点综述
1.填空题
(1)依赖 泛化 关联 实现
(2)视图 图 模型元素
(3)实现视图 部署视图
(4)构造型 标记值 约束
(5)规格说明 修饰 通用划分
2. 选择题
(1)D
(2)C
(3)A
(4)A B
(5)D
3.简答题
(1)在UML中,定义了四种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。
(2)构件种类有:源代码构件、二进制构件和可执行构件。
(3)在UML中主要包括的视图为静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图。
(4)视图和图是包含和被包含的关系。在每一种视图中都包含一种或多种图。
(5)UML提供了一些通用的公共机制,使用这些通用的公共机制(通用机制