阅读笔记3

软件体系结构的研究与发展方向 

关于软件体系结构的研究工作主要在国外展开的,国内到目前为止对于软件体系结构的研究尚处在起步阶段。软件体系结构在国内未引起人们广泛注意的原因主要有两点: 
1)软件体系结构从表面上看起来是一个老话题,似乎没有新东西。
2)与国外相比,国内对大型和超大型复杂软件系统开发的经历相对较少,对软件危机的灾难性体会没有国外深刻,因而对软件体系结构研究的重要性和必要性的认识还不很充分。
                                                              研究方向
当前,体系结构仍是一个非常新的研究领域,其概念还相当模糊。但软件体系结构作为软件工程领域中的一个组成部分,已经取得了长足的发展,受到大多数软件系统设计和研究人员的重视。
软件体系结构目前较活跃的研究方向包括:

(1)软件体系结构形式基础的研究;

(2)针对软件体系结构描述中特有的问题研究新的专门的高级语言;

(3)建立用于度量和评价软件体系结构的模型和方法;

(4)建立面向专门领域的软件体系结构范型库。

(5)把软件体系结构从目前的直觉和经验状态过渡到理论。

1.提供新的软件体系结构描述语言
  在提高软件工程师对软件系统的描述和理解能力中,虽然软件体系结构描述起着重要作用,但这些抽象的描述通常是非形式化的和随意的。体系结构设计经常难以理解,难以适于进行形式化分析和模拟,缺乏相应的支持工具帮助构架师完成设计工作。为了解决这个问题,用于描述和推理的形式化语言得以发展,这些语言就叫做体系结构描述语言(Architecture Description Language), ADLs寻求增加软件体系结构设计的可理解性和重用性。
  ADL是这样一种语言,系统构架师可以利用它所提供的特性进行软件系统概念体系结构建模。ADL提供了具体的语法与刻画体系结构的概念框架。ADLs使得系统开发者能够很好地描述他们设计的体系结构,以便与人交流,能够用提供的工具对许多实例进行分析。
  这种描述语言的目的就是提供一种规范化的体系结构描述,从而使得体系结构的自动化分析变得可能。研究人员已经设计出了近二十种ADLs,比较有影响力的有C2、UniCon、MetaH、Aesop、SADL、Rapide、Wright等。这些语言能够对体系结构连接器进行第一级抽象,同时还能描述模型的结构和内部构件之间的交互作用,并且还引入了一些新的系统分析模式。
2.对软件体系结构的专门知识的整理
  这方面的工作主要是对软件工程师在软件开发实践中得来的各种体系结构的原则、模式的整理和分类。例如,对软件体系结构风格的分类和比较,对体系结构描述语言的综合分析等。就目前看来,国内对软件体系结构的研究主要集中在对软件体系结构的专门知识的整理上。
3.提供特定领域的体系结构框架
  最近,开发特定的领域去为产品提供可重用框架日益受到关注。这些开发基于这样的想法:可以提取相关系统中的共同方面,以便可以通过低成本地把这些共同的设计实例化来构筑新系统。常见的例子有:
1)编译器的标准分解。这个方法可以使一个本科生在一个学期时间内构造一个新的语言编译系统。
2)标准化的通讯协议。这个可以使厂家通过在不同层次的抽象上提供服务来互相操纵。
3)第四代语言。利用4GL开发出商务信息处理的通用范式。
4)用户界面工具和框架。这个方法为开发者提供了一个可重用框架以及象菜单、对话框这样的可重用构件的集合。
  软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。这个理解对于现在系统的分析和未来系统的综合很有必要。在分析和支持下,体系结构抓住领域知识和实际的一致,促进设计的评估和构件的实施,减少仿真和构造原型。在综合的支持下,体系结构提供了建立系列产品的基础,以可预测的方式利用领域知识构造和维护模块、子系统和系统。 
4.提供软件体系结构的形式化基础
  对体系结构设计的推理的形式化表示使得体系结构级的设计更好地被理解、被实现。它的目的是对体系结构设计人员在实践过程中总结出来的一些设计的经验和方法加以总结、概括,从而形成一个形式化的描述,形成一定的理论基础(以代替当前的不精确的研究)。已提出一些形式化机制,如过程代数、偏序集合、化学抽象机等。希望对系统的非功能特性如性能、可维护性等给出形式特征,同时给出软件体系结构的理论。
5.建立评价软件体系结构的方法
  通过分析来预见软件的质量,通过分析来创建、选择、评估与比较不同的体系结构。例如,Kazman等人在2000年提出的ATAM(Architectural Tradeoff Analysis Method)方法。ATAM方法不但能够揭示体系结构如何满足特定的质量需求(例如性能和可修改性),而且还提供了分析这些质量需求之间交互作用的方法。使用ATAM方法评价一个软件体系结构的目的是理解体系结构设计满足系统质量需求的结果。采用ATAM方法的步骤如图3所示,限于篇幅,在此不再详细介绍具体步骤,有兴趣的读者可查阅有关ATAM方法的文献。 
                                                                发展方向
1.各种ADLs之间的信息互换
  现有的ADLs大多是与领域相关的,所以不利于对不同领域体系结构的说明。但这些针对不同领域的ADLs在某些方面又大同小异,造成资源的冗余。其实,大多数ADLs具有一系列的共同概念。如何用一种公共形式把各种语言综合起来,使得能够交换各种体系结构描述信息,将是今后软件体系结构研究和实践的重点之一。
2.设计工具和环境
  软件体系结构设计既然作为软件工程的一部分,它的计算机辅助实现手段是相当重要的。我们应当开发出一些软件工具来实现体系结构的描述和分析,开发阶段转换工具,以实现阶段成果的自动转换,例如,把需求规格说明自动转换为构件等。目前关于这方面的研究成果很少,特别是可以应用到实际项目开发中的工具和环境就更少。
3.体系结构再工程
  当今软件系统的规模变得越来越大,结构也越来越复杂,同时从头开始构建的大系统数量在急剧地减少,因而很多遗留系统正在被逐步地利用。从遗留系统软件代码和系统中抽取结构信息,经过描述、统一、抽象、一般化与实例化等处理,可总结出系统的体系结构。
  在这种情况下,软件再工程变得越来越重要,因为它提供了一条把遗留系统转换为可进化系统的现实可行的途径,是一种可以改进人们对软件的理解和改进软件本身的活动。这类研究的目的是为一些特定的应用领域的软件系统提供一些体系结构框架,如控制系统、移动机器人和用户接口界面等。通过这些框架可以很方便地构造一个新的软件系统。

原文地址:https://www.cnblogs.com/dgb152/p/11059562.html