软件体系结构
软件体系结构概述
软件体系结构的兴起与发展
1.随着软件的规模越来越大,越来复杂,整个系统的结构和规格说明就显得越来越重要
2.对于大规模的复杂系统来说,总体的结构设计和规格说明比算法和数据结构重要
3.软件都是有体系结构的,不存在没有体系结构的软件。
软件体系结构的定义
不同的人对于软件体系结构有不同的理解,下面两种是国外的典型版本:
国内定义
软件的质量属性
-
通过观察运行软件并观察其运行效果来度量的,如功能、性能、安全及可靠性等
-
通过观察开发活动或者维护活动来考察特性,包括各种可维护性问题,如适应性,可移植性,可重用性等
软件体系结构的发展史
体系结构描述构造与表示
体系结构分析、设计和验证
体系结构是对系统的高层抽象,并只对感兴趣的属性进行建模。体系结构本身需要分析和测试,已确定这样的体系结构是否满足需求。
体系结构分析的内容
-
结构分析
-
功能分析
-
非功能分析
3.1 定量分析方法
3.2 推断的分析方法
生成一个满足软件需求的体系结构的过程即为体系结构设计
本质:将系统分解为相应的组成部分(如构件,连接件),并将这些成分重新组装成一个系统。
两大类方法:过程驱动方法和问题列表驱动方法。
-
过程驱动方法(通用性与实践性强)
1.1 面向对象方法,与OOA/OOD相似,更侧重于接口与交互
1.2 “4+1”模型方法
1.3 基于场景的迭代方法
体系结构发现、演化与重用
体系结构的动态性分为有约束的和无约束的、以及结构动态性和语义动态性
软件体系结构的开发方法
目前常见的卡法模型大致可分为三种类型:
- 以软件需求完全确定为前提瀑布模型
- 在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,例如螺旋模型、增量模型、敏捷方法、统一过程等
- 以形式化开发方法为基础的变换模型
简要概述什么是软件危机生软件危机的原因何克服软件危机
什么是软件重用,软件重用的层次可以分为那几个级别/h4>
软件重用:**是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
**级别有:代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。什么是可重用构件对于普通的软件产品,对可重用构件有何特殊要求/strong>
**答:**可重用构件是指可以在多个软件系统的开发过程中被重复使用的软件产品。
可重用构件的特殊要求:(1) 可重用构件应该具有功能上的独立性与完整性;
(2) 可重用构件应该具有较高的通用性;
(3) 可重用构件应该具有较高的灵活;
(4) 可重用构件应该具有严格的质量保证;
(5) 可重用构件应该具有较高的标准化程
基于构件的软件开发的优势是什么于构件的软件开发面临哪些挑战和困难/strong>
答:优势是:
(1)提高了软件的质量。可复用的构件相对于在单一应用中使用的模块来说,一般都更为成熟并具有较高的质量保证。
(2)对于提高软件开发的效率也有着显著的作用。软件复用已经渗透到了软件开发的各个阶段,在开发的各个阶段都有可以被重复使用的软件产品。
(3)成本大为节省。它避免了不必要的重复劳动和人力财力的浪费。同时也必须意识到基于构件的软件开发也是有一定成本和代价的。
挑战和困难:
(1)在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题;
(2)采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场上的竞争力;
(3)第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。这些都是在购买第三方构件进行软件开发时无法回避的问题,因此需要对这些风险进行充分的估计。
简述3种应用最为广泛的构件技术规范COM、CORBA和EJB的各自特点。
答:CORBA的特点:
(1) 实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。
(2) 应用程序间的统一接口。
(3) 采用面向对象的软件实现方法开发应用系统,实现对象内部细节的完整封装,保留对象方法的对外接口定义。
(4) 分层的设计原则和实现方式。
COM的特点:
(1) 语言无关性 。
(2) 可重用性 。
EJB的特点:
(1) 可移植性。
(2) 平台独立性。
(3) 简化了分布式对象的开发、部署和访问 。
就项目管理方面,软件重用项目与非重用项目有哪些不同之处。
**答:**使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善[软件质量] 大量使用构建, 软件的灵活性和标准化程度可得到提高。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
-