4 软件体系结构概念解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Mail:wyh_925@163.com
8
结论:
(1)观点: D.E.Perry 将软件体系结构视为软件开发中第一类 重要的设计对象。 Barry Boehm 明确指出:“在没有设计出体系结构 及其规则时,那么整个项目不能继续下去;而且体系结 构应该看作软件开发中可交付的中间产品”。
(2)作用: 为软件开发中不同人员提供了共同交流的语言; 体现并尝试了系统早期的设计决策; 系统设计的抽象:基于体系结构的软件开发 , 为实 现框架和构件的共享与复用提供了有力的支持。
2018年10月12日4时31分 Mail:wyh_925@163.com 11
[3] Perry & Wolf:软件体系结构(SA)是一个三元组:
SA={ elements, form, rational }
其中:
元素(elements):构成结构的实体。分成三类:处理 元 素 (processing elements) , 数 据 元 素 (data elements),连接元素(connecting elements)。 形式 (form) :一组专有的特性 (properties) 和关系 (relationship) 。其中特性用于限制软件体系结 构元素的选择,关系用于限制元素组合的拓扑结 构。 准则(rational):元素组合的“生成”规则。
在这一阶段:
软件体系结构已经作为一个明确的文档和中 间产品存在于软件开发过程中;
软件体系结构作为一门学科逐渐得到人们的 重视,并成为软件工程领域的研究热点。
2018年10月12日4时31分 Mail:wyh_925@163.com 6
计算机语言的变迁与复用的提升
二进制位 基本指令 过程代码 类代码 系统构造子
限制(constrain):用于对构件和连接件的语义说明
2018年10月12日4时31分 Mail:wyh_925@163.com 10
[2] CFRP:软件体系结构(SA)是一个四元组:
SA={elements, interfaces, connections, connection-semantics} 其中: 元素 (elements) :构成软件系统的实体,包括一组处 理元素和一组数据元素 接口(interface):每个元素有一个接口 连接 (connection) :元素之间关系的模型 , 用于生成 系统的拓扑结构 连接语义( connection-semantics ) : 用于连接的语 义描述。包括静态连接语义(如实例连接)和动 态连接语义(如消息连接,过程调用),信息转换 协议(如管道)等。
2018年10月12日4时31分 Mail:wyh_925@163.com 5
80 年代中期 --90 年代初,面向对象语言和面向对象开 发方法开始出现并得到快速发展。从多个侧面,支持软件结 构的设计。
特别是, 90 年代以后,提出了基于构件的软件开发。 此时以软件过程为中心,强调软件开发采用构件化技术和体 系结构技术,要求开发出的软件具备很强的自适应性、互操 作性、可扩展性和可重用性。 -基于构件的软件体系结构
机器语言 汇编语言 过程式高级语言 OO语言 SA描述语言
新一代计算语言的出现,均蕴涵着软件体系结构的研究!
体系结构技术的研究,使软件复用从代 码复用发展到设计复用和过程复用。
2018年10月12日4时31分
Mail:wyh_925@163.com
7
纵观SA技术发展过程,大体上经历了四个阶段:
①无体系结构设计阶段:研究主题集中于计算模型与高 级语言的开发。其中遵循了冯诺依曼体系结构
2)关于软件体系结构的定义
2018年10月12日4时31分
Mail:wyh_925@163.com
4
P1-1、软件体系结构的定义
1)背景
60年代以前,即以Algol 60为代表的高级语言出现以
前,软件开发基本上都是汇编程序设计。 -冯诺依曼结构 随着高级语言的应用,特别是 70 年代中后期,由于结构 化开发方法的出现与广泛应用,软件开发中出现了概要设计 与详细设计,软件结构已经作为一个明确的概念出现在系统 的开发中。 -基于功能模块的软件结构
软件体系结构
王映辉
博士(后),教授,博导
Biblioteka Baidu
软件体系结构
Part 1:软件体系结构概念
2018年10月12日4时31分
Mail:wyh_925@163.com
2
Part 1:软件体系结构概念
P1-1、软件体系结构的定义 P1-2、若干研究内容 P1-3、需要研究的问题
P1-1、软件体系结构的定义
1)背景
2018年10月12日4时31分 Mail:wyh_925@163.com 9
2)关于软件体系结构的定义
[1] Garlan & Shaw:软件体系结构(SA)是一个三元组: SA={components, connectors, constrains} 其中: 构件(component) 可以是一组代码,如程序的模块 ; 也 可以是一个独立的程序(如数据库的SQL服务器) 连接件 (connector) 是关系的抽象,用以表示构件之 间的相互作用。如过程调用、管道、远程过程调 用等
②程序结构设计阶段:开展了有关结构化程序设计的研究 ③模块结构阶段:出现了多种模块结构。并以控制流图、 数据流图等工具,支持算法结构与程序结构的设计; ④构件结构阶段:面向问题,以描述系统的高层抽象结 构为中心,不关心具体的实现细节,并从多个侧面, 支持多种模式的软件体系结构设计。
2018年10月12日4时31分
2018年10月12日4时31分 Mail:wyh_925@163.com 12
[4] Vestal:软件体系结构(SA)是一个三元组:
SA={components, idioms/styles, common patterns of interaction}
其中:
构件(components):构成软件系统的实体。 固定术语 / 风格 (idioms/style) :一些特定的元素、 按照特定的方式组成一个特定结构,该结构应 有利于上下文环境下的特定系列问题的解决。 通用互操作模式 (common patterns of interaction) :关系 的模型化。用于生成系统的拓扑结构。