论文导读:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。
关键词:软件体系结构,ATAM评估方法,SAAM评估方法
1 软件体系结构简介
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
目前,软件体系结构的有关定义说法不一:有文献将软件体系结构定义为在软件密集的大规模系统或具有类似需求和结构的软件产品线的开发中,必须从一个较高的层次来考虑组成系统的构件、构件之间的交互,以及由构件与构件交互形成的拓扑结构,这些要素应该满足一定的限制,遵循一定的设计规则,能够在一定的环境下进行演化。
尽管各种定义都从不同的角度关注软件体系结构,但其核心内容都是软件系统的结构,并且都涵盖了如下一些实体:构件、构件之间的交互关系、限制、构件和连接件构成的拓扑结构、设计原则与指导方针。
2 软件体系结构的现状
近年来,人们逐渐认识到软件体系结构在软件开发中的重要地位,好的软件体系结构已经是决定一个软件系统成功的重要因素。因此,软件工程研究人员将研究热点集中到软件体系结构的研究上。目前已有一些公用的体系结构范型,但是软件体系结构的研究尚处在发展之中,用于对软件体系进行规格描述的模型、标记法和工具目前仍不是很正规,只是用特定的方式来理解并用于特定的系统,在很多方面的研究工作还需要继续进行。
尽管软件体系结构研究领域取得了若干成果,但在应用方面,软件体系结构仍然不够成熟。目前对软件体系结构的理解还仅限于直观,语义丰富但不严紧,体系结构似乎没有解决实际问题。由此可见,若要有效地指导软件工程实践、为软件开发提供一个好的结构及其设计结构的指导原则,软件体系结构研究还有若干问题需要解决。免费论文网。
3 软件体系结构评估概述
所谓软件体系结构的分析评估,就是事先通过代价低廉的评估活动来识别软件结构中存在的潜在风险,找出软件体系结构中影响系统质量的主要因素及改进措施,并在此基础上检验软件的质量需求是否在具体设计中得到体现,并预测未来软件质量。
软件体系结构在软件开发和管理中扮演着越来越重要的角色。软件体系结构设计是对软件质量有着至关重要的影响,对于确保最终系统的质量有重要的意义。软件体系结构评估,是对系统的某些值得关心的属性(性能、可靠性等)进行评价和判断。评估的结果可用于确认潜在的风险,并检查设计阶段系统需求的质量,在系统被实际构造之前,预测其质量属性。
软件体系结构评估中,评估人员关注的是软件系统质量,这些质量可用性能、可靠性、可用性、安全性、功能性、可变性、集成性、互操作性等相关属性来表示。评估人员首先提出具体质量指标,并以这些质量指标作为软件体系结构优劣的评估标准。
4 介绍常用的几种评估方法
从目前已有的软件体系结构评估技术来看,基本可以归纳为三类主要的评估方式:基于调查问卷或检查表的方式,基于场景的方式和基于度量的方式。
基于场景评估方式的两种代表性方法简述
目前,最著名并被广泛接受的基于场景的软件体系结构分析评价方法是由SEI首先提出,其最具代表性的方法便是SAAM 和ATAM 。两者都是通过分析软件体系结构对场景的支持程度来判断该体系结构在多大程度上满足该场景所代表的质量需求。
4.1ATAM
ATAM方法是SEI于2000 年在SAAM方法基础上提出的,它是考虑了可修改性、性能、可靠性和安全性等多种质量属性的软件体系结构评价方法。
ATAM通过用调查表来收集影响软件体系结构质量属性的要素,描述质量属性的特征,尽管九个步骤按编号排列。ATAM能针对性能、实用性、安全性和可修改性这些质量属性,在系统开发之前对其重要性进行评价和折中。当评估活动结束后,将评估的结果与需求作对比,如果系统预期行为与需求充分接近,设计者就可以继续进行更高级别的设计或实现。免费论文网。
4.2SAAM
SAAM是一种相对简单的软件体系结构评估方法。最初用来分析软件体系结构的可修改性,后来实践证明该方法不仅可用于可移植性、可修改性、可扩充性、可集成性等质量属性及系统功能进行快速评估,还可用于对性能、可靠性等其他质量属性的启发式评估。SAAM的评估包括六个活动。
SAAM不仅可以对单个构架评估,还可以对多个构架进行比较,不仅可以促进软件构架文档质量的提高,还可以促进参与评估的风险承担者之间交流沟通。
5 主要的评估方法比较
SAAM与ATAM方法相比较,是一种相对简单的软件体系结构评价方法,进行培训和准备的工作量较少。尽管SAAM评估步骤及细节较少,总体评估时还需根据场景对系统功能的相对重要性设置权重,确定总体评价,权重的设置具有很强主观性。
(1)场景的生成方式不同
SAAM方法采用头脑风暴技术构建场景,要求风险承担者列举出若干场景,并将场景分为直接场景和间接场景两类,分别支持对体系的静态分析和动态分析。
(2)风险承担者商业动机表述方式不同
软件体系结构的评估参与人员主要有风险承担者及评估小组成员,不同的风险承担者对软件的质量属性有着不同的组织目标,在软件体系结构阶段就应该考虑他们的商业动机及目标满足程度,评估小组根据他们确定的场景来评估软件系统特定方面的性能。
(3)软件体系结构的描述方式不同
在评估之前,首席软件设计师需要对软件体系结构作详略适当的讲解,这种信息讲解的表达透彻程度将直接影响体系结构的分析质量。
SAAM 则提倡使用非常单纯的体系结构要素。免费论文网。对体系结构的静态描述一般都要区别数据的连接和控制连接,对软件体系结构的动态描述主要描述系统在各个不同时间的行为,给出软件的体系结构。
6 结束语
当今软件系统的规模变得越来越大,结构也越来越复杂,在这种情况下,软件体系结构变得越来越重要。对于软件系统来说,所关注的一个最主要问题便是质量,尤其对于大规模的复杂软件系统更是这样。软件体系结构对于确保最终系统的质量有重要的意义。
对一个系统的体系结构进行评估,便是为了在系统被构建之前预测它的质量。软件体系结构评估的目的是分析潜在的风险,并检验设计中提出的质量需求。并不需要精确的评估结果,通过分析体系结构对于系统质量的主要影响,进而提出改进。尽管目前已经有了很多比较成熟的软件体系结构评估方法,但是仍有很多地方值得改进和创新,需要我们再以后的学习工作中继续去研究。
【参考文献】
[1] 张莉; 高晖; 王守信. 软件体系结构评估技术. 软件学报, 2008年06期
[2] 沈剑翘; 聂华北. 软件体系结构(风格)综述. 电脑开发与应用, 2008年 02期
[3] 周娜琴; 张友生. 基于软件体系结构的可靠性分析. 计算机工程与应用, 2008年30期
[4] 王霞俊. 浅谈软件体系结构. 常州轻工职业技术学院学报, 2007年01期
|