软件设计与体系结构练习 大连海事大学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
1、设计模式一般用来解决什么样的问题(a )
A.同一问题的不同表相 B不同问题的同一表相
C.不同问题的不同表相
D.以上都不是
2、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(a )模式。
A.创建型
B.结构型 C行为型 D.以上都可以
3. 对于依赖倒转的表述错误的是( e )
A.依赖于抽象而不依赖于具体,也就是针对接口编程。
B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调用时,所知道的
方法集合。
C.从选项B的角度论述,一个对象可以有多个接口。
D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知道所示用的对象
是那个实现类的实例。
E.此题没有正确答案。
4. 软件体系结构是一门新兴学科,它来源于(C)
A.程序设计语言 B. 数据库技术 C.软件工程 D. 网络通信
5.“不要和陌生人说话” 是( d )原则的通俗表述
A.接口隔离
B.里氏代换
C.依赖倒转
D.迪米特:一个对象应对其他对象尽可能少的了解
3、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是(d )的表述
A.开-闭原则
B.接口隔离原则
C.里氏代换原则
D.依赖倒转原则
5.Open-Close原则的含义是一个软件实体( a )
A.应当对扩展开放,对修改关闭.
B.应当对修改开放,对扩展关闭
C.应当对继承开
放,对修改关闭 D.以上都不对
二.判断题
1.在设计模式原则中里氏代换原则指出不要为了使用某些类的方法(功能)而滥用继承。Y
2.软件总是有体系结构的,不存在没有体系结构的软件。Y
3.UML中用菱形和箭头线表示聚合。Y
4.软件设计原则之一是要使用继承,而不是组合。N
5.在设计模式原则中里氏代换原则指出为了使用某些类的方法(功能)而使用继承。N
6.软件不总是有体系结构的,存在没有体系结构的软件。N
7.软件体系结构处理算法与数据结构之上的、关于整体系统结构设计和描述方面的一些问题。
Y
8.软件的可重用性是指软件可以被重复运行多次。N
9.软件的灵活性是指用户可以按多种方式使用该软件。N
三.填空题
1.创立型模式的根本意图是要把(对象的创建)和(使用分离)的责任进行分离,从而降低系统的(耦合度)。
2.设计模式的基本要素有(名称,目的(意图),解决方案,实施后达到的效果)。
3.软件体系结构是软件设计过程中的一个( 层次),这一层次超越计算过程中的算法设计和
数据结构设计。
4.所有设计原则的目标都是为了使软件: ( 降低耦合 ) 、 ( 增强灵活性 ) 。
5.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(创建性)模式。
6.Abstract Factory经常用(工厂方法)模式实现。
7.设计模式中应优先使用的复用技术是(对象组合)。
8.设计时应该将(可变部分)封装起来。
四.简答题
1、设计软件时应遵循的设计原则有哪些?
2、简述抽象工厂设计模式的优缺点?
3、简述单件设计模式在实现过程中需要注意的问题?
4、简述抽象工厂设计模式与工厂设计模式之间的关系?
1.封装一个对象的结构和组成的设计模式为:
A.状态模式 B.抽象工厂模式 C.装饰者模式 D.组合模式
2.设计的健壮性是指:
A.符合需求 B.容忍错误 C.响应时间短 D.易维护
3.提供一个产品类库,只显示它们的接口而不是实现时,可以采用的设计模式为:
A.抽象工厂 B.组合模式 C.装饰者模式 D.工厂方法
4.软件设计模式的四个基本要素是:
A.模式名称、问题、解决方案、效果 B.动机、问题、解决方案、效果
C.适用性、问题、解决方案、效果 D.模式名称、问题、解决方案、实现装饰者设计模式的意图是动态地给一个对象添加一些额外的职责。
1.使用继承处理对象间关系的设计模式包括:工厂方法、适配器、模板方法和解释器模式。
2.A bstract Factory经常用工厂方法模式实现。
3.迭代器设计模式根据谁控制迭代可分为外部迭代器、内部迭代器。4.适配器设计模式可分为类模式(类适配器)、对象模式(对象适配器)两类。5.A bstract Factory经常用工厂方法模式实现。
6.创建型模式抽象了实例化过程。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。
1.请说出在什么情况下可以采用策略设计模式,并指出装饰者模式与策略模式的区别。(7分)
四、设计题
1.客户端通过类的接口访问提供的服务,一般现有类可提供用户所需的功能,而有时不能满足用户的期待。例如有两个毫不关联的类组合在一起使用,要么就是修改各自的接口,但是在不修改各自接口的前提下,该怎么做呢?
给出采用的设计模式的名称及原因,给出此设计模式的类关系图,并说明各部分的作用。
2.假设某系统有一个对话框(dialog),可以将对话框定义为一个类,为了保证对话框的唯一性,需要如何设计?请给出实现代码。
3.移动机器人系统必须处理外部传感器和传动装置,能够实时响应,并且响应速度要和工作环境中的系统行为相匹配。特别地,移动机器人的软件功能主要有:
采集从传感器发送来的输入信号
操纵车轮和其他可移动零件的运动
规划未来的移动路线。
设计系统需要考虑的因素有:
需求1:这种体系结构必须能够协调有准备的行为和反应行为。即机器人必须能够协调控制为完成指定的目标(如收集岩石标本)而采取的行动和由环境(如避开障碍物)引起的反应行为。
需求2:这种体系结构必须能够处理不确定性。机器人的操作环境是不能完全预测的。这种体系结构必须提供一个框架,在这个框架下,机器人能够应对不完整的或不可靠的信息(比如,矛盾的传感器读数)。
需求3:这种体系结构必须能够应对机器人操作和环境中固有的危险。通过考虑容错度、安全性和性能,这个体系结构必须能够帮助保持机器人、操作及其环境的完整性。诸如电力供应下降,有毒气体,门被意外地打开等问题,不应该导致灾难。
需求4:这种体系结构必须给予设计者灵活性。移动机器人的应用开发经常需要实验和重新配置。另外,任务的改变需要定期的修改。
请你设计这个系统的体系结构,列出其中主要的组件(构件),并给出理由。
4.现有一系统,需要迭代器接口,迭代器如下
但是现在没有迭代器接口的实现,只有枚举类型(Enumerate)的实现,枚举器接口如上图所示,请解决此问题,给出设计方案,画出相应的类图,并描述采用的设计模式的适用情况。
5现有一个表示打印机资源的类:
请你定义这个类,保证它只能被创建一个实例,请你给出关键部分的代码。
5.某公司开发一个文档编辑器,文档包括字符、线、多边形和其他图形元素,编辑器允许作者将某些字符、图等构成的集合看做一个单元,直接操作。请你设计一种方案,画出类图,给出理由。
7现需为一个大型公司开发一套系统,要求公司内部的员工可以浏览、填报相关数据,公司外部客户可以查看一些对外发布的信息,某些客户也需要提交大批量的数据。请设计适合的体系结构,给出体系结构图,并说明这样设计的理由。
8.构建一个系统来显示示波器的波形数据。示波器是一个仪器系统,能对模拟信号取样,并在屏幕上显示信号的曲线,需要实现的功能包括过滤、采样、波形处理、显示,并且要求可以与用户针对每个功能进行交互。请你设计这个系统的体系结构,列出其中主要的组件(构件),并给出理由。