软件设计复习资料
1.填空*10
1.层次系统组织成一个层次结构每一层为上层提供服务,并作为下层客户,将问题分解成增量步骤序列的实现,支持基于可增加抽象层的设计.
2.MVC两个强制条件,易于修改用户界面但软件的功能核心不能被修改所影响
3.仓库风格中,两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上
4.可靠性的两个方面,容错,健壮性
5.对于 界面设计可变性的需求,模型构件独立于外在的显示内容和形式
6.尽量使构件的功能,行为和接口设计 抽象化,通用化,参数化
7.UNIX Shell是 管道与过滤器体系结构的例子,可以使用 符号管道
8.MVC使得一个 模型可以具有多个 显示视图
9.构件将抽象程序提高到更高层次,是对 一组类的组合进行封装,整个构件隐藏了 具体的实现,只用 接口对外提供服务.
10.一般用刺激,环境,响应三方面对场景进行描述, 刺激是场景中解释或描述风险承担者怎样引发与系统的交互部分,环境是刺激发生的情况.
11.在仓库风格中,两种不同的构件,中央数据结构,独立构件
2.单选*20
3.判断*10
- (T)行为型模式是对不同的对象之间划分责任和算法的抽象化,使用对象聚合来分配行为。
- (T)三层 C/S 结构应用的各层可以并行开发。
- (T)模式的问题陈述用一个强制条件集来表示,多个强制条件相互补充。
- (F)SAAM 方法是一种基于问卷调查的评估方式的体系结构评估方法。
4.简答*2
- 简述单例模式的动机,并且实现单例模式
动机:保证一个类仅有一个实例,并提供一个访问它的全局访问点
1 |
|
- 简述基于事件的系统风格的思想,如果选择一个设计模式来实现基于事件的系统可以选择哪个设计模式
可以使用观察者模式。例如设计IDE中的调试系统,每个断点可以注册成为一个观察者对象。程序运行时向观察者(断点)进行广播,若触发断点,则在断点处停下,并发布一个事件,自动执行各个事件,如编辑器滚动到相应的代码行、变量监视器显示最新的变量值等。
- 简述分层系统的结构形式及其优缺点。
结构形式:层次系统的每一层为上层服务,并作为下层客户。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。
优点:支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增步骤进行分解;支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层。支持重用,只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。
缺点:1、并不是每一个系统都很容易划分成分层的模式。2、很难找到一个合适的、正确的层次抽象方法。
5.设计模式应用 *1 25'
电商系统需要支持不同的支付方式,而且要求某种支付方式的编程接口变化时系统具有良好的可修改性
- 选择一个设计模式 4'
(2)画出该模式的结构图,简要说明构件之间的关系 6'
(3)画出应用该模式解决本问题的结构图 10'
(4)说明该模式如何满足要求的,以及该模式的优缺点 5'
答案:
适配器模式
将原本各支付方式不同的接口通过适配器转换为统一的接口,系统只需针对统一接口进行编程(3 分),某种支付方式接口变化只需修改相应的适配器类,系统其它模块无需修改(1 分),增加新的支付方式只需增加相应的适配器类,对系统原有模块无影响(1 分)
单例模式
观察者模式
桥接模式
6.体系结构选择 *1 25'
学生成绩管理系统,采用C/S与B/S混合体系结构
(1)简要分析用户类型和主要功能需求
(2)选择合适体系结构,说明各组成部分的功能
(3)根据C/S,B/S体系的优缺点来说明你选择该体系结构的理由
学生(成绩查询)(2 分),教师(成绩登录、修改等)(2 分),教务管理人员(成绩发布等管理功能)(1分)
学生查询C/S,教师成绩登录、修改等 B/S 或C/S、教务管理人员 C/S(3 分),应用服务器,数据库服务器, 画出图,各部分关系正确(2 分)每个部分功能简要描述(客户端功能描述 2 分,应用服务器功能描述(2分),数据库服务器功能描述(1 分))
(3)(10 分)至少从以下几个方面进行论述:子系统的升级维护(3 分)、用户交互的复杂性(3 分)、数据库的访问效率(2 分)、数据库服务器的安全性(2 分)
书本知识
第 1 章 软件体系结构概论
软件重用(P4):多次开发过程中重复使用相同的软件元素的过程
构件(软构件)概念重用粒度:可重用的软件元素称为粒度
面向对象技术达到类级重用,以类为封装的单位构件模型概念
构件模型三个主要流派,CORBA,EJB,DCOM
可重用技术对构件库分类组织方法的要求(P7)
构件库分类组织方法(P7)三大类:
关键字分类、树状或者有向无回路的形式
刻面分类法、超文本组织方法:网状信息组织方式
构件重用的步骤(P9-11)
构件库文档对构件的说明内容(P10-11) 构件评价方法(P11)
构件修改-减少构件修改工作量,要求…(P11) 构件组装技术(P11-12)
软件体系结构定义、意义(P19-21) 软件体系结构发展的四个阶段(P22)
第 3 章 软件体系结构风格
通用体系结构风格分类 P51
- 数据流风格:批处理序列,管道与过滤器
- 调用/返回风格:主程序和子程序,面向对象,层次结构
- 独立构件风格:进程通信,事件系统
- 虚拟机风格:解释器,基于规则的系统
- 仓库风格:数据库系统,超文本系统,黑板系统
管道与过滤器 特点、缺点、例子、结构示意图(P49)
面向对象系统的优点、缺点(P52)
基于事件的隐式调用思想、应用系统的例子、优点、缺点(P53)
分层系统、举例、优点、缺点(P53-54)
仓库系统:传统型数据库-黑板系统控制原则、例子
客户/服务器风格(P55),集中式计算技术的缺点,服务器主要任务,客户应用程序主要任务,优点,缺点(说出 3-4 个)
三层C/S 风格(P57),与二层 C/S 体系结构的不同及优点,表示层、功能层、数据层主要功能三层风格不同物理结构比较
中间件的概念及功能(P59)
浏览器/服务器风格(P65)(B/S),模式结构示意图(图 3-14),与 c/s 比较其优点, 缺点
异构结构风格(P80-82)[内外有别、查改有别,理解]
第 11 章 软件体系结构评估
软件质量属性[重点了解性能、可靠性、可用性、可修改性]
评估的主要方式[问卷调查、检查表、场景、度量 几种方式的比较] ATAM、SAAM 步骤[简单了解步骤,每个步骤详细内容不要求]
第 12 章 基于体系结构的软件开发设计模式的目的
设计模式定义(P285,受到普通认可的设计模式定义)
MVC 设计模式
设计模式的基本成分(P286-287)
设计模式的层次(P289-291) 设计模式的分类(P291)
设计模式(教材 12.1.6 各模式的介绍,然后重点学习 5 个创建型模式、(工厂,抽象工厂,原型,单例,建造者),适配器模式、桥接模式、组合模式、装饰模式、外观模式、职责链模式)