uml面向对象的分析与设计考题与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
u m l面向对象的分析与设计考题与答案
集团档案编码:[YTTR-YTPT28-YTNTL98-UYTYNN08]
《面向对象的分析与设计》练习题
一、选择题
1.UML 语言不支持的建模方式有(D )。
A. 静态建模
B.动态建模
C. 模块化建模
D. 功能建模
2.一个设计得好的OO系统具有( B )。
A. 低内聚、低耦合的特征
B.高内聚、低耦合的特征
C. 高内聚、高耦合的特征
D.低内聚、高耦合的特征
3.下列不属于面向对象技术的基本特征的是( B)。
A. 封装性
B. 模块性
C. 多态性
D. 继承性
4. 面向对象程序设计将描述事物的数据与 ( C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息
B. 数据隐藏
C. 对数据的操作
D. 数据抽象
5. 关于面向对象方法的优点,下列不正确的叙述是(C )。
A. 与人类习惯的思维方法比较一致
B. 可重用性好
C. 以数据操作为中心
D.可维护性好
6.用例之间的关系不包括以下哪种关系?D
A.泛化
B.包含
C. 扩展
D. 聚集和组合
7.顺序图中不包括以下哪种元素?(A)
A.用例
B. 对象
C. 生命线
D. 消息
8. 用例图中不包括以下哪种元素?(B)
A. 用例
B. 类
C. 参与者
D. 关联
9. 继承机制的作用是 ( C )。
A. 信息隐藏
B. 数据封装
C. 派生新类
D. 数据抽象
10. 面向对象方法学中,对象之间仅能通过(C )相联系。
A. 类
B.抽象
C. 消息
D. 封装
11. 脚本与用例之间的关系类似与(A)之间的关系。
A. 对象与类
B. 参与者与用例
C. 顺序图和抽象类
D. 消息和对象
12. 下列元素中,(D )不属于消息的组成。
A. 提供服务的对象
B. 服务
C. 输入信息
D. 事件
13. ( D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图 B. 协作图 C. 状态图 D. 顺序图
14. ( D)是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图
B. 对象图
C. 序列图
D. 用例图
15. ( C ) 是表达系统的类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图
二、简答题
1.简答控制软件复杂性的基本方法,面向对象技术如何体现这些方法的。
基本方法:分解,抽象,模块化,信息隐蔽。面向对象的软件开放方法在描述和理解问题域时采用的方法是:对问题域进行自然分割,以更接近人类的思维方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,能适应用户需求的变化。
2.举例说明类中覆盖和重载的区别。
public class A{
String name;
public String getValue();{
return”getValue is”+name;}
}
public class B extend A {
String address;
public String getValue();{
return”getValue is”+address;}
}
类B是类A的子类,类B中定义的getValue()方法是对类A中getValue()方法的覆盖
public class A {
int age;
String name;
public void setValue ( int i) {
age=i;}
public void setValue (String s) {
name=s;}
}
类A中定义了两个setValue方法,但这两个方法的参数不同,第二个方法是对第一个方法的重载。
3.什么是多态,并以Graph、Circle、Rectangle三个具有继承关系并且都有draw()方法的类为例,说明多态的概念。
在面向对象技术中,多态指的是一个实体在不同上下文条件下具有不同意义或用法的能力。
可以声明一个Graph类型对象的变量,但在运行时,可以把Circle类型或Rectangle类型的对象赋给该变量。就是说,该变量所引用的对象在运行时会有不同的形态。如果调用draw()方法,则根据运行时变量是引用的Circle还是Rectangle,来决定调用Circle中的draw()方法还是Rectangle 中的draw()方法。
4.某输出类Output中包含一个output方法, 该方法可能使用多种不同的打印机, 如: HP、EPSON、Canon,每种打印机都有不同的print方法。有下面两个类图。说明哪一个设计更符合OO设计原则中的开闭原则并说明原因。
打印输出类图1 打印输出类图2
打印输出类图2更符合开闭原则。因为类图2如要增加新的打印机增加新的类,并让新类实现Printer接口即可,类Output内部不需要做任何改动。而类图1如要增加新的打印机Output内部需要做改动。所以类图2更符合开闭原则。
三、分析题
为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
要求:
1.画出用例图,其中包括如下用例:开户、存款、取款、计算利息、修改密码、印出存款单、印出利息清单等。(8分)
2.画出开户、取款这两个用例的顺序图。(12分)
3.画出仅包含实体类的类图。(12分)
4.根据你的设计结果,简单说明顺序图和类图的关系。(8分)