摘 要:软件体系结构是软件开发过程初期的产品,对软件体系结构进行分析与评价是控制软件质量的关键之一。目前主流的软件体系结构质量评价方法基本上都是基于场景的技术,并且已经在很多领域得到了应用。本文阐明了软件体系结构分析的重要性,介绍了几种主要的软件体系结构分析方法,并分析了当前在该领域所遇到的一些困难或问题,方法的选择对于结果和软件质量有着重要的意义。
关键词:软件体系结构;场景;质量属性
中图分类号:TP311
软件质量是指在软件开发过程中形成的软件满足明确规定的需求的程度,也是衡量软件好坏的一个重要指标。随着软件规模和复杂性的不断增大,如何控制和保证软件的质量已成为一个亟需解决的问题。为了提高软件的质量,需要在整个软件开发周期中进行有计划的活动,包括对软件的评价。研究表明,越早对质量进行评价越有利于对软件质量的控制以及降低开发成本。对软件体系结构进行深入的研究,是保证软件质量的重要措施之一。随着软件体系结构的发展,对软件体系结构系统进行深入研究将会成为提高软件生产率和解决软件维护问题的新的最有效的途径。
1 概述
1.1 软件体系结构。软件体系结构是国际上软件工程研究的一个新兴领域,它的研究目前还处于初始阶段,对什么是软件体系结构还没有一个标准的、为大家所普遍接受的定义。一般认为,一个软件系统的体系结构定义了组成系统的计算构件和构件之间的相互作用关系,在体系结构层次的构件如:客户、服务器、数据库、过滤器等;构件之间的交互可以是非常简单的。
1.2 质量属性。[1]软件质量是指软件满足明确规定或隐含定义的需求的程度。通常从六个方面进行衡量。分别是功能性、可靠性、易使用性、效率、可维护性和可移植性。
1.3 软件体系结构评估的重要性。软件质量是在整个软件生命周期中形成的,与周期中的各个阶段都息息相关,而软件体系结构作为软件质量的功能性指标的一个重要要素,同时也是生命周期中的关键一步,它发挥着重要作用。因此,对软件体系结构的分析也显得尤为重要。我们可以通过对软件体系结构的分析评估,及早的发现软件的问题,尽可能早的修改软件,并预测未来系统的质量属性。预测修改十分有效,可以从总体降低软件的开发成本,提高软件的质量。
2 主要的软件体系结构评估方法
目前的软件体系结构评估方法大多采用基于场景的技术。场景是从风险承担者的角度对于与系统的交互的简短描述,其中风险承担着包括系统体系结构设计中所涉及到的架构设计师、开发人员、维护人员等。这种评估方法通过研究软件体系结构对场景的支持程度来判断软件质量,评估结果较准确。
2.1 SAAM。基于场景的体系结构分析方法SAAM是最早形成文档并得到广泛运用的一种非功能质量属性的体系结构分析方法,是最早形成文档并得到广泛使用的软件体系结构分析方法[2],可用来分析软件质量,如软件体系结构的可修改性、可移植性、可扩充性等。是一种较为成熟的方法,运用广泛,并成为许多其他的软件体系结构评价方法的基础。
SAAM方法采用基于场景的功能性和变化分析的评估技术,适用于体系结构设计的最终版本,主要是对可修改性的考察,需要所有风险承担者参与。
2.2 SAAMCS。基于复杂场景的体系结构分析方法SAAMCS是对SAAM的扩展,主要针对场景的复杂度,主要目标是对系统进行风险评估。
SAAMCS适用于有充分细节描述的体系结构的最终版本,需要主要风险承担者参与。
2.3 SAAMER。针对演化和复用体系结构分析方法SAAMER也是对SAAM的扩展的一种方法。
SAAMER通过对视图(静态视图、映射视图、动态视图和资源视图)、信息模型和场景来分析系统的演化和复用属性,需要设计者、管理者和最终用户参与。
2.4 ATAM。体系结构权衡分析方法ATAM是在SAAM的基础上发展起来的,目标在于对系统敏感点和权衡点分析,主要针对性能、实用性、安全性和可修改性。使用ATAM不仅能够明确软件体系结构对于特定软件质量目标的满足度,还能提供软件目标之间的交互方式。
ATAM方法采用问卷和度量结合使用的评估技术,适用于体系结构设计的重复改进或最终版本,需要所有风险承担者参与。
2.5 SBAR。基于场景的体系结构在工程SBAR目的是按照需求的质量属性评估体系结构。
SBAR关注多个软件质量属性的均衡性,用于评估所设计的软件体系结构是否具有达到所要求的软件质量的潜力,采用多种技术相结合的评估技术,针对多个属性(可修改性、性能、实用性、安全性)的考察,仅仅需要设计者参与,不需其他的风险承担者。
2.6 ALPSM。体系结构层次的软件可维护性预测ALPSM是在体系结构层次上考查场景的影响来分析软件体系的可维护性[3]。
ALPSM方法适用于体系结构设计过程中,采用场景评估技术,仅仅需要体系结构设计人员、分析者、评估者参与,不需其他的风险承担者。
2.7 ALMA。体系结构层次的可维护性分析ALMA目标是变化冲突分析和预测维护工作,采用依赖于分析目标的独立的体系结构描述符号使用来评估系统,主要针对可维护性。
ALMA方法中风险承担者由具体的活动决定。
3 存在问题及未来发展趋势
体系结构是决定软件质量好坏的重要因素之一,随着研究的深入,在软件体系结构质量评价方面取得了一定的成功,但是仍然存在一些问题。
3.1 存在的问题。目前,在软件体系结构质量分析和评价方法中,主要存在这样的一些问题:首先,基于场景的分析评估技术,对于体系结构的描述没有统一的标准、框架和定义,不同的描述方法给体系之间的选择、比较增加了困难;其次,基于场景的分析评估技术,只能用于特定领域,运用范围较其他评估技术稍窄;第三,基于场景的分析评估技术,要求评估者对被评估体系结构比较熟悉;最后,基于场景的分析评估技术有很多不确定性,造成了该技术的评估结果较为主观。
3.2 未来的发展趋势。通过对以上几种基于场景的分析评估技术进行比较和分析,未来的基于场景的分析评估技术的发展趋势有以下几点:对于体系结构的描述建立统一的标准和定义,降低体系结构之间比较、选择的难度。结合两种或两种以上的不同的体系结构评估方法,吸取其中的缺点避免不足,从而获得更好的评估效果。针对基于场景的分析评估技术中的不确定性,使用已有的度量技术或定义新的度量标准,更精确地评估体系结构。对适用性的高要求。作为体系结构质量特征的一个方面,适应性与软件的可扩展性、可修改性、动态特性有密切关系。目前对适应性体系结构分析与评价的研究还很不完善,但是它有很大的研究价值,是未来评估方法的发展趋势。
4 结束语
本文就几种主要的软件体系结构质量评价方法进行了讨论,这些方法基本上是基于场景的评价方法,并提出了一些目前软件体系结构分析和评价技术中遇到的难点和困难,对未来的发展趋势进行了展望。
参考文献:
[1]陆惠恩,张成姝.实用软件工程[M].北京:清华大学出版社,2009.
[2]万建成,卢雷.软件体系结构的原理、组成与应用[M].北京:科学出版社,2002.
[3]胡红雷,毋国庆.软件体系结构评估方法的研究[J].计算机应用研究,2004.