软件体系结构简答参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简答及计算题
1、请简述软件体系结构的定义
答:软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。
其中,“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。
软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
2. 下列图能作为一个水下声音模拟系统的体系结构吗,为什么?
答:不能。
原因如下:
1)图中的解释在哪里?
2)构件的定义是什么?什么是连接器?
3)方块和箭头代表什么?
4)图中分布是否合理?
5)水平和垂直线代表什么?
6)每个元素的功能和职责是什么?它们是如何划分的?
7)每个元素运行在不同的处理器上吗?运行在不同时间?它们能代表开发
分组?还是运行时的分组?
8)每个元素代表不同对象?不同任务?不同功能?不同进程?它们是分布
式的吗?
9)元素间联系的强度如何?联系是代表元素间通讯?还是互相控制?相互
传递数据?相互调用?相互同步?信息共享?或上述模式的部分组合?
通讯的机制如何?信息是如何流动的?
10)结构是如何分层的?为什么CP单独一层?是说CP能调用其他三个元
素,而不能反过来?还是说CP包含了下面三个元素的实现?
3. 软件体系结构通常使用哪三类结构视图?
答:
模块视图:
•分解:将实现代码分解成系统、子系统、子子系统等。
它通常作为开发项目组织的基础,包括文档结构、集成和测试计划等。
结构中的每个单元通常有与特定组织相关的名字。
•使用:它是一种特定形式的依赖关系。
该使用关系将系统分成子集,从而支持增量式开发。
•泛化风格:在类的层次框架下,它表明了不同的代码单元如何关联在一起。
具有相似行为或能力的模块可以使用子类的方法集成。
类的结构也可支持重用和增量式丰富功能。
•层次风格:将代码组织成层次结构,高层的代码可以调用低层代码。
这可以方便培训和代码重用。
构件-连接器视图:
•pipe-and-filter style:特点是成功传输数据
•shared-data style:特点是保留持久数据
•publish-subscribe style:特点是通过事件宣布来实现构件交互
•client-server style:特点是请求或满足其他构件的服务
•peer-to-peer style:特点是对等地直接交互服务
•communicating-processes style:特点是通过各种连接器机制实现并行地执行构件交互
分配视图:
•实施风格:将进城分配给硬件资源。
它运用于性能、安全性和可靠性分析,提供了一个估计实施单个节点的开销
•实现风格:将模块映射到开发架构中。
它用来描述模块是如何在配置管理系统中映射到实体,以及如何管理版本,分支和协调多任务组开发。
•工作分配风格:将模块映射到开发人员队伍。
它用来说明每个小组负责
的工作结构中的元素,以及进度安排和预算。
4. 简述软件功能与体系结构间的关系。
答:
◎正如我们在架构业务周期ABC中看到的,业务考虑决定了一个系统结构需要达到的质量属性,它们比系统的功能处于更优先考虑的位置。
◎软件功能和体系结构是垂直关系,或者说它们可以分开考虑。
◎功能可以通过多种体系结构来实现,而不同的结构体现了不同的质量属性考虑。
5. 举例说明某种质量属性的脚本。
答:质量属性就是对场景测试的完整记录。
可靠性是指系统的稳定性,可用性是指使用系统的方便程度。
性能脚本举例
安全性脚本举例:。