软件设计模式期末复习

软件设计模式期末复习

第三章数据流体系结构风格

一、数据流体系结构风格的特点是:无数据不工作

二、关于批处理体系结构风格说法是:

1.数据无统一的格式标准

2.数据的传输方式为完整传输

3.不支持并发

4.支持系统吞吐量分析

三、管道过滤器体系结构风格中,过滤器是:相互独立

四、管道过滤器体系结构风格中,过滤器是:数据处理的计算单元

五、批处理体系结构风格中,数据的传输方式:不是增量式传输

第四章:数据为中心的体系结构风格

一、黑板体系结构中,负责存储数据的构件是:黑板。

二、黑板体系结构风格中,具有子问题求解能力的构件是:知识源。

三、黑板体系结构风格中,知识源不可相互调用

四、基于符号表和语法树的现代编译器系统不适合数据流体系结构风格

五、黑板体系结构风格中,知识源相互独立

六、基于事件系统实现的外卖派送系统中,订单事件的事件处理机制更适合采用:点对点模式。

七、关于点对点事件调度机制的说法是:

1.事件只能被一个事件处理器处理

2.可基于消息队列实现

3.事件被某个事件处理器处理之后,须立刻从消息队列中删除

4.事件被某个事件处理器处理之后,会立即删除,不会等事件过期之后再从消息队列中删除。

八、事件系统体系结构的风格中,事件源可以产生事件

九、事件派遣机制中,有独立模块的派遣机制可以划分为全广播模式选择式广播。

十、事件处理器对事件进行处理的同时可以产生新的事件,即形成事件链。

一、选择题

以下哪种模式不属于创建型模式(C)。

A.单例模式(Bnidge) B.工厂方法模式(Factory Method)

C.策略模式(Strategies) D.抽象工厂模式(Decorator)

以下属于创建型模式的是(A)。

A.抽象工厂模式(Abstract Factory) B.装饰模式(Decorator)

C.外现模式(Facade) D.桥接模式(Bridge)

外现模式的作用是(B)。

A.当不能采用胜成子类的方法进行扩时,动态地给一个对象添加一些额外的功能。

B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用。

C.保证一个类仅有一个实例,并提供一个访问他的全局访问点。

D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。

Fagade (外观) 模式的意图是(A)。

A.希望简化现有系统的使用方法,你需要定义自己的接口。

B.将一个无法控制的现有对象与一个特错口相匹配。

C.将一组实现部分从另一组使用们的对象中分离出来。

D.你需要为特定的客户(或情况)提供特定系列的对象。

关于抽象工厂模式,以下叙述不正确的是(A)。

A.客户对象不需要知道向谁请求所需的对象和如何使用这些对象。

B.抽象工厂类通过为每个不同类型的对象定义一个方法,来指定实例化哪个对象。

C.具体工厂对象负责指定哪些对象要实例化。

D.将抽象工厂模式和适配器模式结合在一起,可以将概念相似的对象当作同种对象处理。

关于抽象工厂模式Abstract Factory ),以下叙述正确的是(C)。

A.抽象工厂相对具体工厂而言,可以理解为抽象工厂是抽象类,而具体工厂是对抽象工厂的组承,是抽象工厂的子类。

B.抽象工厂类不能实例化,具体工厂可以实例化。

C.抽象工厂定义接口,具体工厂实现某一接口。

D.抽象工厂模式将使用那些对象的规则与如何使用这些对象的逻辑有效地结合起来。

关于工厂方法,以下叙述不正确的是(B)。

A. Factory Method是一个用于帮助分配创建的责任的模式。

B. Factory Method模式和 Abstract Factory模式总是配合使用。

C. Factory Method适用于将对象实例化的规则推迟到某个派生类的情形。

D. Factory Method是属于创建型模式。

以下哪一条不属于设计模式的基本原则(C)。

A.开放-封闭原则   B.根据场景进行设计的原则

C.优先使用继承的原则 D.包容变化的原则

Strategy(策略)模式的意图是:(A)。

A.定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换。

B.为一个对象动态连接附加的职责。

C.你希望只拥有一个对象,但不用全局对象来控制对象的实例化。

D.在对象之间定义一种一对多的依赖关系,这样当一个对象的状态改变时,所有依赖于它的对象都将得到通知并自动更新。

Strategy(策略)模式应遵循的原则中不正确的是(D)。

A.对象都具有职责。

B.职责不同的具体实现是通过多态的使用完成的。

C.概念上相同的算法具有多个不同的实现,需要进行管理。

D.优先使用组合而不是继承。

观察者模式定义了一种(A)的依赖关系。

A.一对多 B.一对一

C.多对多 D.以上都有可能

单例模式的作用是(C)。

A.当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。

B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用。

C.保证一个类仅有一个实例,并提供一个访问他的全局访问点。

D.单例模式仅仅应用于多线程应用程序中。

下面不属于结构模式的有(B)。

A.适配器模式(Adapter) B.单例模式(Singleton)

C.桥接模式(Bridge) D.装饰模式(Decorator)

  • 选择题

1、以下哪种模式不属于创建型模式(C)。

A.单例模式(Bnidge) B.工厂方法模式(Factory Method)

C.策略模式(Strategies) D.抽象工厂模式(Decorator)

2.以下属于创建型模式的是(A)。

A.抽象工厂模式(Abstract Factory) B.装饰模式(Decorator)

C.外现模式(Facade) D.桥接模式(Bridge)

3.外现模式的作用是(B)。

A.当不能采用胜成子类的方法进行扩时,动态地给一个对象添加一些额外的功能。

B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用。

C.保证一个类仅有一个实例,并提供一个访问他的全局访问点。

D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。

4. Fagade (外观) 模式的意图是(A)。

A.希望简化现有系统的使用方法,你需要定义自己的接口。

B.将一个无法控制的现有对象与一个特错口相匹配。

C.将一组实现部分从另一组使用们的对象中分离出来。

D.你需要为特定的客户(或情况)提供特定系列的对象。

5.关于抽象工厂模式,以下叙述不正确的是(A)。

A.客户对象不需要知道向谁请求所需的对象和如何使用这些对象。

B.抽象工厂类通过为每个不同类型的对象定义一个方法,来指定实例化哪个对象。

C.具体工厂对象负责指定哪些对象要实例化。

D.将抽象工厂模式和适配器模式结合在一起,可以将概念相似的对象当作同种对象处理。

6.关于抽象工厂模式Abstract Factory ),以下叙述正确的是(C)。

A.抽象工厂相对具体工厂而言,可以理解为抽象工厂是抽象类,而具体工厂是对抽象工厂的组承,是抽象工厂的子类。

B.抽象工厂类不能实例化,具体工厂可以实例化。

C.抽象工厂定义接口,具体工厂实现某一接口。

D.抽象工厂模式将使用那些对象的规则与如何使用这些对象的逻辑有效地结合起来。

7.关于工厂方法,以下叙述不正确的是(B)。

A. Factory Method是一个用于帮助分配创建的责任的模式。

B. Factory Method模式和 Abstract Factory模式总是配合使用。

C. Factory Method适用于将对象实例化的规则推迟到某个派生类的情形。

D. Factory Method是属于创建型模式。

8.以下哪一条不属于设计模式的基本原则(C)。

A.开放-封闭原则   B.根据场景进行设计的原则

C.优先使用继承的原则 D.包容变化的原则

9. Strategy(策略)模式的意图是:(A)。

A.定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换。

B.为一个对象动态连接附加的职责。

C.你希望只拥有一个对象,但不用全局对象来控制对象的实例化。

D.在对象之间定义一种一对多的依赖关系,这样当一个对象的状态改变时,所有依赖于它的对象都将得到通知并自动更新。

10. Strategy(策略)模式应遵循的原则中不正确的是(D)。

A.对象都具有职责。

B.职责不同的具体实现是通过多态的使用完成的。

C.概念上相同的算法具有多个不同的实现,需要进行管理。

D.优先使用组合而不是继承。

11.观察者模式定义了一种(A)的依赖关系。

A.一对多 B.一对一

C.多对多 D.以上都有可能

12.单例模式的作用是(C)。

A.当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。

B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用。

C.保证一个类仅有一个实例,并提供一个访问他的全局访问点。

D.单例模式仅仅应用于多线程应用程序中。

13.下面不属于结构模式的有(B)。

A.适配器模式(Adapter) B.单例模式(Singleton)

C.桥接模式(Bridge) D.装饰模式(Decorator)

14. Factory Method(工厂方法)模式的意图是:(A)。

A.定义一个用于创建对象的接口,让子类决定实例化哪一个类。将实例化延迟到其子类。

B.为一个对象动态连接附加的职责。

C.你希望只拥有一个对象,但不用全局对象来控制对象的实例化。

D.定义一个操作中的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

15.黑板体系结构中,负责存储数据的构件是(C)。

A.数据库 B.知识源 C.黑板 D.控制中心

数据流体系结构风格

单选题 (0.8分)

数据流体系结构风格的特点是(A)。

A.无数据不工作

B.存在数据中心

C.有统一数据格式

D.数据增量传输

关于批处理体系结构风格说法错误的是(C)。

A.数据无统一的格式标准

B.数据的传输方式为完整传输

C.支持并发

D.支持系统吞吐量分析

以下哪种软件风格不属于调用/返回风格(B)

A主程序/子程序风格

B管道-过滤器

C面向对象

D客户端/服务器

以下哪种特性不是面向对象风格所特有的(D)

A封装

B多态

C继承

D过程

黑板体系结构中,负责存储数据的构件是(C)。

A数据库

B知识源

C黑板

D控制中心

黑板体系结构风格中,具有子问题求解能力的构件是(D)。

A黑板

B监控中心

C中央数据中心

D知识源

 虚拟机体系结构风格

单选题 (0.8分)

以下哪种软件风格不属于虚拟机风格C

A解释器

B规则系统

C黑板

D命令行处理器

以下哪个模块不是一个典型的规则系统风格中所包含的A

A规则进化库

B工作存储

C规则解释器

D知识库

基于事件系统实现的外卖派送系统中,订单事件的事件处理机制更适合采用(A)。

A点对点模式

B发布-订阅模式

C全广播模式

D无派遣模块的事件处理机制

关于点对点事件调度机制的说法错误的是(D)。

A事件只能被一个事件处理器处理

B可基于消息队列实现

C事件被某个事件处理器处理之后,须立刻从消息队列中删除

D事件被某个事件处理器处理之后,不会立即删除,而是等事件过期之后从消息队列中删除

软件体系结构建模与文档化

多选题 (0.8分)

常见的体系结构视图类型有哪些AB

A分解视图

B进程视图

C用户视图

D管理视图

多选题 (0.8分)

以下哪些是创建体系结构文档应遵循的原则ACD

A避免歧义

B时刻更新文档

C避免不必要的重复

D记录舍弃的方案

单选题 (0.8分)

“4+1”视图中的“1”是指B

A逻辑视图

B用例视图

C过程视图

D开发视图

哪种图定义了系统功能需求,并不描述功能的具体实现B

A类图

B用例图

C组件图

D部署图

序列图与以下哪种图可以互相转换B

A活动图

B协作图

C时序图

D通信图

数据流体系结构风格

判断题 (0.8分)

管道过滤器体系结构风格中,过滤器相互独立。√

管道过滤器体系结构风格中,过滤器是数据处理的计算单元。√

批处理体系结构风格中,数据的传输方式是增量式传输。X

调用/返回体系结构风格

判断题 (0.8分)

层次风格主要解决对象管理问题和系统性能问题,因此引入层次风格会有效提高系统性能X

模块分解的主要动机是信息隐藏、限定修改和拥抱变化√

两层客户端/服务器风格和三层客户端/服务器体系结构风格区别在于将数据处理放置在客户端还是服务器√

以数据为中心的体系结构风格

黑板体系结构风格中,知识源可相互调用。X

基于符号表和语法树的现代编译器系统更适合数据流体系结构风格。X

黑板体系结构风格中,知识源相互独立。√

虚拟机体系结构风格

判断题 (0.8分)

黑板系统和规则系统属于不同的体系结构风格,两者之间没有相似性X

解释器风格的一个主要劣势在于其性能低下√

软件系统引入解释器风格后,会增大软件的验证难度√

事件系统体系结构风格

判断题 (0.8分)

事件系统体系结构的风格中,事件源可以产生事件。√

事件派遣机制中,有独立模块的派遣机制可以划分为全广播模式和选择式广播。√

事件处理器对事件进行处理的同时可以产生新的事件,即形成事件链。√

敏感点一定会导致有风险决策。X

效用树中的场景不需要定义优先级。X

软件体系结构评估是在软件测试阶段进行的。X

ATAM中,项目干系人就是项目的用户。X

  • 填空题
  • 工厂模式分为 简单工厂 、 抽象工厂 和 工厂方法 三种类型。

2.1993年,D Garlan、M Shaw提出软件架构包括 组件 、 连接件 和 约束 三大要素。

3.软件的需求包括  功能  需求和  非功能  需求。

  • Mary shaw总结了五种软件体系结构模型,分别是 结构模型 、 框架模型 、 动态模型 、 过程模型 、 功能模型 。

5. Kruchten提出了4+1的视图模型,从5个不同的视角包括 逻辑视图 、 进程视图 、 物理视图 、 开发视图 、 场景视图 来描述软件体系结构。

6.管道-过滤器体系结构风格是由 管道 和 过滤器 两种不同类型的构件构成。

  • 质量属性场景包含的要素包括: 刺激源 、 刺激 、 环境 、 制品 、 响应 、 响应度量 。
  • C/S体系结构风格是由__客户端__和_服务端___两种不同类型的构架组成。
  • 简答题
  • 简述软件体系结构的概念。

答:软件体系结构是系统的一个或多个结构,它包括软件的组成元素,这些元素的外部可见特性以及这些元素间的相互关系。

  • 简述设计模式的概念。

答:“设计模式解决如下的在特定的环境中反复出现的

计问题,并且为其提供了解决方案”。

  • 简述仓库体系结构与黑板体系结构的区别。

答:

仓库风格的体系结构:由中央数据结构和独立构件的集合两个构件组成。

黑板体系结构:是仓库体系结构的特殊化,黑板体系结构模型通常由知识源,黑板数据结构和控制器三部分构成。

  • 简述质量属性场景的组成要素。

刺激源、刺激、制品、环境、响应、响应度量

5.画出观察者模式的类图,并简述观察者模式的组成。简述设计模式的概念。

组成:

抽象主题(Subject):它把所有观察者对象的引⽤保存到⼀个聚集⾥,每个主题都可以有任何数量的观察者。抽象主题提供⼀个接⼝,可以增加和删除观察者对象。

具体主题(ConcreteSubject):将有关状态存⼊具体观察者对象并在主题内部状态改变时,给所有注册过的观察者发出通知。

抽象观察者(Observer):为所有的具体观察者定义⼀个接⼝,在得到主题通知时更新⾃⼰,其中定义了⼀个update():void更新⽅法,由具体的观察者实现更新逻辑。

具体观察者(ConcreteObserver):实现抽象观察者的更新接⼝,更新⾃⼰的状态与主题状态协调

概念:

观察者模式是一种软件设计模式,其中一个名为主体(Subject)的对象维护其依赖项列表,称为观察者,并通常通过调用它们(observers)的方法之一来自动通知它们任何状态更改。

  • 简答常用的质量属性有那些?

(1)可用性(2)可修改性(3)性能(4)安全性(5)可测试性(6)易用性

  • 画出观察者模式的类图并简要说明。

组成:

抽象主题(Subject):它把所有观察者对象的引⽤保存到⼀个聚集⾥,每个主题都可以有任何数量的观察者。抽象主题提供⼀个接⼝,可以增加和删除观察者对象。

具体主题(ConcreteSubject):将有关状态存⼊具体观察者对象并在主题内部状态改变时,给所有注册过的观察者发出通知。

抽象观察者(Observer):为所有的具体观察者定义⼀个接⼝,在得到主题通知时更新⾃⼰,其中定义了⼀个update():void更新⽅法,由具体的观察者实现更新逻辑。

具体观察者(ConcreteObserver):实现抽象观察者的更新接⼝,更新⾃⼰的状态与主题状态协调。

  • 简述软件功能需求与软件质量属性之间的关系。

答:

  • 没有软件功能需求就没有软件质量属性。
  • 软件功能需求与软件质量属性相互依赖。
  • 软件功能需求与软件质量属性相互影响。

9.简述批处理体系结构与管道过滤器体系结构的区别。

答:

批处理:是全部的、高潜伏性的,输入时可随机存取,无合作性、无交互性。

管道过滤器:是递增的,数据结果延迟小,输入时处理局部化,有反馈、可交互。

  • 作图
  • 利用管道-过滤器软件体系结构设计一个对整数进行处理的程序。使用4个过滤器,第一个负责输入一些int类型的数据,第二个负责对所有数据加上100,第三个负责对所有数据加上200,第四个负责对所有数据加上300,然后输出到屏幕。要求画出体系结构图和实现的类图并分别做必要的说明。

答:

体系结构图:

类图:

说明:

1、定义变量 int x 输入int类型的数据然后所有数据进行累加

2、第一次加100,第二次加200,第三次加300。

3、然后输出到屏幕。

4、x是父类,3个小x是子类,继承父类,在累加。

2、开发一个绘图程序,用来绘制简单的几何图形,这个软件应该能够处理下面的几种几何对象:

圆形(Circle)

矩形(Rectangle)

正方形(Square)

三角形(Triangle)

除了各自特有的属性和方法之外,所有的几何图形几乎都可以抽象出绘制( draw)和擦除(erase)两个公共方法,利用工厂方法模式进行设计,画出结构类图并指明类之间的关系。

关系:

  1. Shape:一对多的关系。

2、圆形(Circle)、矩形(Rectangle)、正方形(Square)、 三角形(Triangle),:一对一的关系。

3、设计一个图书管理系统,包含图书的借阅、图书入库、图书时限提醒等功能,画出系统的类图。

904 Views
分享你的喜爱
linwute
linwute

我要像梦一样自由,像大地一样宽容;
在艰辛放逐的路上,点亮生命的光芒;
我要像梦一样自由,像天空一样坚强;
在曲折蜿蜒的路上,体验生命的意义;

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注