软件体系结构的特点与研究进展

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第19卷第4期 重庆师范学院学报(自然科学版) 2002年12月Vol.19No.4 Journalof Chongqing NormalUnivers ity(Natural Science Edition) Dec.2002

软件体系结构的特点与研究进展

张广泉1,2

(1.重庆师范学院数学与计算机科学系,重庆400047;

2.中国科学院计算机科学国家重点实验室,北京100080)

摘 要:软件体系结构是软件工程的一个重要研究领域,它提供了软件系统的高层抽象。文章阐述了软件体系结构的产生背景和基本概念,以及体系结构描述语言(ADL)、求精方法和特定领域体系结构(DSSA)等主要研究内容;

分析了软件体系结构与传统开发方法、O-O方法、设计模式、软件复用、净室技术以及统一建模语言(UML)等其它软件工程技术方法的联系和区别。

关键词:软件体系结构;体系结构描述语言;求精;特定域体系结构;设计模式;复用;净室;UML

中图分类号:TP311 文献标识码:A 文章编号:1001-8905(2002)04-0001-06 The C haracteristics of Software Architecture and the Progress of Its Study

ZHA NG Guang-quan1,2

(1.Dept.of Mathematics and Computer Science,Chongqing Normal University,Chongqing400047;

2.State Key Lab.of Computer Science,The Chinese Academy of Sciences,Beijing100080,China)

A bstract:Software architecture is an important research area in software engineering.It provides a high-level abstraction of a soft-

ware system.In this paper,first,the background and fundamental conception of soft ware architecture are introduced.Several main topics,such as architecture description languages(ADL),refinement methods and domain-specific soft ware architecture(DSSA) and so on,are discussed.Finally,the relation and distinction bet ween software architecture and other soft ware en gineering technolo-gies,such as traditional development methods,O-O methods,design pattern,software reuse;clean room technology,and unified modeling language(U M L),are analyzed.

Key words:soft ware architecture;architecture description lan guage;refinement;domain-specific software architecture;design pat-tern;reuse;cleanroom;unified modeling language

20世纪60年代,随着计算机在工业、商业、科研和国防等领域的广泛应用,计算机程序的规模愈来愈大,其复杂性也急剧增加,软件开发和维护过程遇到了一系列难以解决的严重问题,如软件价格高、难以控制开发进度、工作量估计困难、软件质量低、错误多、且修改和维护十分困难等等;针对这种所谓的“软件危机”现象,1968年在德国Gar mish召开的NATO(北大西洋公约组织)计算机科学会议上,F.Bauer首先提出“软件工程”概念,其目标是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术和方法结合起来,从而解决或缓解软件危机。在另一方面,软件危机也促使人们深入探讨程序和程序开发过程的规律,建立严密的理论,以期能用来指导软件开发实践,从而促进了软件方法学特别是形式化方法的研究[1]。

软件工程与软件方法学二者密切相关,既有联系、又有区别,一方面它们研究的侧重点不同,软件工程研究侧重传统工程学科,最终目的是把软件生产变成一门制造工程,而研究软件方法学的目的是寻求科学方法的指导,把软件开发活动置于坚实的理论基础上。另一方面,它们之间又相互影响、相互渗透,软件工程需要方法学的依据和指导,而方法学也依赖软件工程特别是环境工具来发挥实际效用。三十多年来,人们不断从

收稿日期:2002-08-08

资助项目:国家自然科学基金(60073020);国家“十五”863高科技计划(2001AA113200);重庆市应用基础研究项目;中国科学院计算机科学国家重点实验室、运筹学与控制论市级重点实验室资助项目。

作者简介:张广泉(1965-),男,江苏连云港人,重庆师范学院数学与计算机科学系副教授,博士后。主要从事软件工程与形式化方法研究。

上述两方面探索新的软件开发方法和技术,期望通过好的方法和工具来提高软件生产率和质量,软件体系结构即是20世纪90年代软件工程领域出现的一个新的研究分支。

软件设计在相当大的程度上可与建筑设计相类比,在古今中外建筑设计中,有诸多如欧洲的“歌特式”、“巴洛克式”、“维多利亚式”,中国的“园林式”、“宫廷式”等不同结构风格的建筑。同样在软件设计上,经过多年的理论探索和工程实践,也逐渐形成了一系列不同结构风格的软件体系结构。如UNIX 操作系统中的管道-过滤器(pipes -filters )风格、分布式系统中典型的客户 服务器(client -server )风格以及通信系统中的分层(layer )结构等[2]

。根据1999年IE EE AW G P1471的定义,所谓软件体系结构,它是软件系统的高层抽象,描述整个系统的结构和行为模型,标识了主要的系统组件、组件之间的交互———连接件、组件和连接件如何结合在一起的约束与配置关系(见图1)。图2描述了客户 服务器(C S )风格的体系结构,其中组件Client 与Sever 通过连接件RPC (远程过程调用)协议通信

。 图1 软件体系结构示意图 图2 客户 服务器体系结构

软件体系结构可看作是软件结构研究的继续,最早可追溯到20世纪60年代操作系统大师们对OS 和其它复杂软件系统的论述(如T .H .E 和Unix 的论述),如Dijkstra 和Parnas 等对软件的组织和结构的研究,F .Deremer 和H .Kron 认识到编写大型程序和编写小型程序的活动是不同的,提出用模块互连语言(module inter -connection language )来表示程序的总体结构。后来,Parnas 、B oehm 等人对兆程序设计(mega -programming )和程序族(progra m family )的讨论再次引发有关软件体系结构的讨论。真正展开对软件体系结构的一般理论的研究则是始于D .E .Perry 和A .L .W olf 于1992年在AC M SI GSOFT Software Engineering Notes 发表“Foundations for the Study of Software Architectur e ”一文后。从那时起,在每年一届的国际软件工程会议上基本都有关于软件体系结构的研究文章。

1 软件体系结构主要研究内容

目前软件体系结构已发展为软件工程领域的一个独立的分支,是软件工程的一个新的研究方向。其主要研究内容如下。

1.1 软件体系结构描述语言(ADL )

体系结构描述是软件体系结构研究的一个核心问题[3]。目前体系结构描述方法可分为非形式化、半形

式化和形式化三类方法。

图表法是一种典型的非形式方法,它采用矩形框和连线来表示体系结构(如图1、图2)。该方法虽然直观、易理解,但没有分析工具,无法对系统进行各种特性分析。半形式方法有模块互连语言(MIL )、软构件描述法等;MIL 用模块接口来描述系统交互,它将系统的配置描述与系统的组成分解开,这一点比模块化编程语言更能满足组装和配置的某些特性。MIL 对于模块化程序设计和分段编译等效果明显,由于它仅支持编程中的块间交互,对高层次的体系结构的描述和处理能力有限。

体系结构描述语言(ADL )采用形式化方法描述体系结构,通常以一形式化语言(如CSP 、Z 、时序逻辑等)作为它的底层语义模型,并为软件系统的概念体系结构建模提供了具体语法和概念框架,还有一系列基于底层语义的工具支持体系结构的表示、分析、演化和设计。由于ADL 不但是形式化描述体系结构的基本工具,而且也是对体系结构进行求精、验证、演化和分析的前提和基础。因此,目前对软件体系结构的研究主要集

中在体系结构描述语言方面[3,4]。目前常见的一些ADL 有Wright 、Rapide 、Unicon 、Aesop 、Dar win 等。

1.2 软件体系结构求精

ADL 是对软件体系结构的形式化描述,它只关心软件系统的高层结构,不关心实现细节。因此在对系统抽象描述之后,一个十分重要的任务就是如何将其分层细化、逐步求精为具体的可实现的软件体系结构。这里上层与下层之间存在一种形式上的抽象映射,低层通过这种映射应保留高层的属性。

2重庆师范学院学报(自然科学版) 第19卷

相关文档
最新文档