UML2 面向对象分析与设计-答案.pdf
文本预览下载声明
第1 章 上升到面向对象
选择题
1. A
2. A
3. B
简答题
1. 与传统结构化方法相比,面向对象技术的优势主要体现在哪些方面?
主要包括以下几个方面的与优势:
(1)沟通:在计算机中模拟现实世界的事和物;
(2 )稳定:较小的需求变化不会导致系统结构大的改变;
(3 )复用:提高质量,减少成本;
(4 )改善软件结构,提高软件灵活性;增加可扩展性;支持增量式开发,支持大型软
件开发等。
2. 什么是对象,什么是类,说明它们之间的区别和联系?
(1)对象是一个实体,这个实体具有明确定义的边界和标识,并且封装了状态和行为;
(2 )类就是对象的抽象描述,这些对象共享相同的属性、操作、关系和语义。
(3 )类是对象的抽象,而对象是类的实例,是具体的;通过类可以构造具体的对象。
3. 什么是抽象,如何进行抽象?
(1)抽象是揭示事物区别于其他事物的本质特征的过程;
(2 )需要根据使用者的目的来进行抽象,强调使用者感兴趣的特征,而忽略那些不相
关的特征。
4. 什么是封装,通过封装如何实现信息隐藏和数据抽象?
(1)封装是指对象对其客户隐藏具体的实现;
(2 )通过封装,对象的私有数据不能被外界存取,实现信息隐藏,从而保证外界以合
法的手段访问;
(3 )通过封装,将数据访问过程抽象为对操作的调用,从而将数据抽象为行为。
5. 什么是分解,结构化分解和面向对象分解有何不同?
(1)分解是指将单个大规模复杂系统划分为多个不同的小构件;分解后的构件通过抽
象和封装等技术形成相对独立的单元,这些单元可以独立地设计和开发,从而实现化繁为简、
分而治之,以应对系统的复杂性,减少软件开发成本。
(2 )结构化分解中,通过函数、模块等进行功能分解,实现模块化设计。通过耦合和
内聚来判断分解的合理性,将系统分解为多个高内聚、低耦合的模块。而面向对象的分解则
是在类和对象分解的基础上,进一步考虑类之间依赖程度、复用问题和稳定性等问题,进行
合理的打包和分层,从而形成更加复杂的分解结构。
6. 什么是泛化,什么是多态,它们之间有什么关系?
(1)泛化是类与类之间一种关系,通过这种关系一个类可以共享另外一个或多个类的
1
结构和行为。
(2 )多态在同一外表 (接口)下表现出多种行为的能力;
(3 )在对象技术中,一般通过泛化关系建立类之间的抽象层次结构,再通过上层抽象
多态调用底层实现。
7. 什么是分层,分层和分解有何不同?
(1)分层是指面向不同的目标建立不同的抽象级别层次,从而在不同的抽象层次对系
统进行分解,进一步简化对系统的理解;
(2 )分解一般是在系统的同一个抽象层对大的结构进行划分,而分层则是在不同的抽
象层次上进行;大规模系统开发时,一般首先通过分层技术建立不同的抽象层次,之后在各
个层次上进行合理的分解。
8. 什么是复用,在软件开发的哪些阶段可以进行复用?
(1)复用是借助于已有软件的各种有关知识建立新的软件的过程,以缩减软件开发和
维护的成本;
(2 )系统开发的各个阶段都可能涉及到复用,如代码复用、设计复用、架构复用、需
求复用和领域复用。
应用题
1. 设计方案的核心是对文件 (File )和目录 (Directory )进行抽象,通过建立一个公共的
抽象类(虚拟文件类 VirtualFile )将两个概念联系起来,并通过聚合关系建立文件和目
录之间的递归关系;而文件大小的计算,直接通过相应的类的操作来实现。设计类图如
下图所示。
class 文件系统
VirtualFile
+ getSize(): int
File Directory
+ getSize(): int + getSize(): int
2. 本题为论述题,没有参考答案。读者可以选择任何一种熟悉的原则,结合某个具体的业
务场景进行论述。比如系统中如何分层,如何复用第三方类库或以前的项目代码等等。
第2
显示全部