《软件架构与设计模式》复习 资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件架构与设计模式》复习要点整理
(老师将我们整理的资料进行了修改和补充,红色的部分是老师的批注)
一、软件体系结构部分
1、架构设计师与软件工程师的主要区别。
架构设计师以宏观(Macro View)的角度切入系统架构,善于抽象思维,软件工程师则通常是以微观(Micro View)的角度切入。如一般设计师通常考虑的层次是一个使用者按下按钮时所发生的状况,而架构设计师考虑的则是成千上万个使用者按下按钮时所发生的状况。
2、软件体系结构的“4+1视图”是指什么?是否每个软件系统这5个视图都需要?
答:从5个不同的视角包括逻辑视角、过程视角、物理视角、开发视角和场景视角来描述软件体系结构。每一个视角只关心系统的一个侧面,5个视角结合在一起才能够反映系统的软件体系结构的全部内容,但并非每个系统都必须把5个视图都画出来,而是各有侧重。例如MIS系统侧重于逻辑视图、开发视图,而实时控制系统则侧重于进程视图、物理视图
1.、典型的软件构架样式(architectural styles)有哪些?
答:答到其中4种以上即可
o以数据为中心的构架
数据集成——一个集中式的数据集与多个客户端进行通信
o数据流构架
成批数据流;管道和过滤器
o虚拟组织架
目标:可移植性
模拟对象:模拟硬件不具备的功能或软件环境
实例:java虚拟机(java的平台独立性)
o调用——返回构架
目标:可更改性和可扩展性
主——子程序(传统);面向对象(类派生);层次样式
o独立组件构架
由独立进程或对象组成,通过消息进行通信
例:C/S模式
o异质构架
多种构架样式的综合
局部异质/层次异质/并行异质(同时符合几种样式)
2、简单了解管道-过滤器风格的应用
答:不考概念,能判断出管道-过滤器风格即可
过滤器(Filter)是数据流水线的处理单元,负责丰富,提炼或转换他的输入数据. 它以下面的三种方式工作:
–随后的数据流水线单元从过滤器中拉出(pull)数据.
–前面的流水线单元把新的输入数据压入(push)过滤器.
–过滤器以循环的方式工作,从流水线中拉出输入数据并且将其输出数据压入流水线.
前两种是被动过滤器(Passive Filter),后面的是主动过滤器(Active Filter).
3、简单区别软件构架分析方法SAAM与ATAM。
答:不必全部答,选部分要点即可
涉及的质量属性:ATAM不面向任何具体的质量属性,但据其历史,它更侧重于可修改性,安全性,可靠性和性能;SAAM只要是可修改性
和功能
分析的对象:ATAM架构方法或样式,阐述过程、数据流、使用、物理或模块试图的架构文档;SAAM架构文档,特别是阐述逻辑或模块视
图的部分
试用阶段:ATAM在架构设计方法已经选定之后;SAAM在架构已经将功能分配到各个模块中以后
采用方法:利用效用树和对场景的集体讨论来搞清楚质量属性需求。通过对架构方法的分析确定出敏感点、权衡点和风险;SAAM利用对场
景的集体讨论搞清楚质量属性需求。通过来验证功能或对更改成
本做出估计
资源需求:一般用3的时间,另外还有预先的准备时间和之后的总结时间。
参评人员有客户、架构师、风险承担者和4人评估小组;SAAM
一般用2天时间,另外还有之后的总结时间,参评人员有客户、
架构师、风险承担者和3人评估小组
6、理解软件体系结构(Software architecture), 框架(Framework)和设计模式(Design patterns) 3个概念
答:
软件体系结构是构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。
框架:框架是一种软件重用技术,它是一个应用软件系统的部分或整体的可重用设计。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架具体表现为一组抽象类以及其实例(对象)之间的相互作用方式。
设计模式是对面向对象设计中反复出现的问题的解决方案,通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。
7、了解C/S与B/S混合软件架构及其优缺点
答:
o C/S与B/S混合软件体系结构的优点是外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。
o C/S与B/S混合软件体系结构的缺点是企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。
二、框架
了解层次结构的各层在逻辑上各自独立,表现层与功能层,功能层与数据层之间要进行数据传送,通常采用的技术。
答:中间件技术,请查资料,简要作答
3、给出一个基于Model-View-Controller模式构建三层Web应用(Browser/Web/DataBase)的简单方案。要求用JSP, Servlet, JavaBeans 和JDBC 的技术组合来实现。
整个系统采用Browser/Web/DataBase的三层体系结构。
Web服务器接受请求,通过应用程序服务器执行Servlet并返回其输出,实现与客户机进行信息资源的交互。
数据库服务器用来存储管理信息系统中所用到的各种数据。
系统的客户端只需要一个浏览器,相关人员通过浏览器来查询、增加、修改、删除数据,对信息进行管理。(上述文字与下图只选一种表达即可)
在中间层上采用MVC模式
角色: Model层实现业务逻辑
View层显示用户界面
Controller层负责View层和Model层之间的控制关系
实现:Servlet——控制器
JSP文档——视图