如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
软件体系结构研究综述摘要:近年来,软件体系结构逐渐成为软件工程领域的研究热点以及大型软件系统与软件产品线开发中的关键技术之一.归纳了软件体系结构技术发展过程及其主要研究方向.在分析了典型的软件体系结构概念之后,给出了软件体系结构的定义.通过总结软件体系结构领域的若干研究活动,提出了软件体系结构研究的两大思路,并从7个方面介绍了软件体系结构研究进展.探讨了软件体系结构研究中的不足之处,并分析其原因.作为总结,给出了软件体系结构领域最有前途的发展趋势.关键词:软件体系结构;基于体系结构的软件开发;软件体系结构描述语言;软件体系结构描述方法;软件体系结构演化;软件体系结构发现;软件体系结构分析;软件体系结构验证;特定域软件体系结构(DSSA)目录1软件体系结构起源与发展………………………………31.1软件体系结构研究的必要性和重要意义………………31.2软件体系结构的发展史………………………………31.3体系结构的主要研究方向………………………………52软件体系结构的研究现状………………………………52.1软件体系结构的有关定义………………………………52.2软件体系结构研究的不同思路…………………………72.3软件体系结构研究的主要内容与进展……………………73软件体系结构研究存在的不足…………………………124总结………………………………131软件体系结构起源与发展1.1软件体系结构研究的必要性和重要意义自NATO于1968年提出软件工程概念以来,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题.但是,软件固有的复杂性、易变性和不可见性,使得软件开发周期长、代价高和质量低的问题依然存在.大量实践统计表明:大系统软件开发中70%的错误是由需求和软件设计阶段引入的;而且错误在系统中存在的时间愈长则愈难发现,解决这些错误的代价也愈高.为了提高软件需求和软件设计的质量,软件工程界提出了需求分析工程技术和各种软件建模技术.但是在需求与设计之间仍存在一条很难逾越的鸿沟,即缺乏能够反映做决策的中间过程,从而很难有效地将需求转换为相应的设计.为此,软件体系结构概念应运而生,并试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现平坦地过渡的问题.从机器语言、汇编语言、过程式程序设计语言、面向对象程序设计语言、形式化(半形式化)规格说明语言(如体系结构描述语言)发展过程中,可以发现:计算机语言越来越适合于开发人员的思维活动模型,代码复用的级别也在不断地提升,如图1所示.体系结构技术的研究,使软件复用从代码复用发展到设计复用和过程复用.鉴于软件体系结构的重要性,D.E.Perry将软件体系结构视为软件开发中第1类重要的设计对象[1],而BarryBoehm明确指出:“在没有设计出体系结构及其规则时,那么整个项目不能继续下去,而且体系结构应该看做是软件开发中可交付的中间产品”[2].由此可见,体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享与复用、基于体系结构的①二进制位,②基本指令,③过程行代码,④类代码行,⑤数学构造子,⑥机器语言,⑦汇编语言,⑧过程式程序设计语言,⑨面向对象程序语言,⑩规格说明语言.Fig.1Illustrationforevolutionofcomputerlanguageandpromotionofreuse图1计算机语言的变迁与复用的提升图示1.2软件体系结构的发展史软件系统的规模在迅速增大的同时,软件开发方法也经历了一系列的变革.在此过程中,软件体系结构也由最初模糊的概念发展到一个渐趋成熟的技术.20世纪70年代以前,尤其是在以ALGOL68为代表的高级语言出现以前,软件开发基本上都是汇编程序设计.此阶段系统规模较小,很少明确考虑系统结构,一般不存在系统建模工作.70年代中后期,由于结构化开发方法的出现与广泛应用,软件开发中出现了概要设计与详细设计,而且主要任务是数据流设计与控制流设计.因此,此时软件结构已作为一个明确的概念出现在系统的开发中.20世纪80年代初到90年代中期,是面向对象开发方法兴起与成熟阶段.由于对象是数据与基于数据之上操作的封装,因而在面向对象开发方法下,数据流设计与控制流设计则统一为对象建模,同时,面向对象方法还提出了一些其他的结构视图.如在OMT方法中提出了功能视图、对象视图与动态视图(包括状态图和事件追踪图);而BOOCH方法中则提出了类视图、对象视图、状态迁移图、交互作用图、模块图、进程图;而1997年出现的统一建模语言UML则从功能模型(用例视