浅谈软件体系结构评估技术

浅谈软件体系结构评估技术

摘要: 作为在软件生命周期早期保障软件质量的重要手段之一,软件体系结构评估技术是软件体系结构研究中的一个重要组成部分。现有的软件体系结构评估方法可以划分为3类:基于场景的评估方法、基于度量和预测的评估方法以及特定软件体系结构描述语言的评估方法。按照团建体系结构评估技术的评价框架,分别从评估方法的特征、评估目标、关键技术等方面对这3类方法的特点进行介绍和对比。

关键词: 软件体系结构;软件体系结构评估技术;软件质量

软件工程方法的唯一目标就是:生产高质量的软件。软件质量从软件工程诞生以来一直受到广泛关注。二软件体系结构评估的目的就是为了在开发过程的早期,通过分析系统的质量需求是否在软件体系结构中得到体现,识别软件体系结构设计中的潜在风险,预测系统质量属性,并辅助软件体系结构决策的制定。

软件体系结构的评估技术一直是研究的热点问题。随着软件体系结构评估技术的不断出现,一些方法已经比较成熟并得到了应用和验证,比如基于场景的软件体系结构分析方法、基于度量-预测的评估方法以及基于某种特定软件体系结构描述语言的分析方法。

一、基于场景的评估方法

该类评估方法的基本观点是,大多数软件质量属性极为复杂,根本无法用一个简单的尺度来衡量。同时,质量属性并不是出于隔离状态,只有在一定的上下文环境中才能做出关于质量属性的有意义的评判。利用场景技术则可以具体化评估的目标,代替对质量属性(可维护性、可修改性、健壮性、灵活性等)的空洞表述,使对软件体系结构的测试成为可能。所以,场景对于评估具有非常关键的作用,整个评估过程就是论证软件体系结构对关键场景的支持程度。

1、重要特征

通过对多种基于场景的评估方法的分析,我们认为该类方法具有一下重要特征:第一、场景是这类评估方法中不可缺少的输入信息,场景的设计和选择是评估成功与否的关键因素;第二、这类评估是人工智力密集型劳动,评估质量在很大程度上取决于人的经验和技术。

2、评估目标

基于场景的评估方法主要有以下几种目标:第一、评估软件体系结构是否满足各种质量属性的要求;第二、比较不同的软件体系结构方案;第三、进行风险评估。

该类方法的评估结果大多以评估报告的形式给出,根据评估目标的不同,不同的评估方法给出的报告内容也不同,一般的评估报告包括软件体系结构模型对所评估质量属性的满足程度,更进一步地,通过专家的分析,在报告中还可以给出软件开发中可能存在的风险,有时甚至包括软件体系结构设计的改进建议等。

3、关键技术

场景获取技术和场景分析技术是基于场景的评估方法中最为关键的两项技术。

3.1场景获取技术

场景获取是明确评估目标的重要环节。场景获取最基本的方法就是让项目涉众进行头脑风暴,比如SAAM 和ATAM 方法。在头脑风暴的基础上,为了对场景进行积累和重用,ESSAAMI 方法强调了场景的领域特性,通过对领域分析增加领域知识,积累分析模板,提高在领域内对场景的重用和获取。PSAEM 方法则从系统设计的角度提出了一种基于模式的场景提取技术,将软件体系结构模式和设计模式中包含的通用行为作用为评估的场景,从而得到了通用的场景模式。

为了尽可能地平衡候选场景的完整性和关键性,研究人员提出了场景的等价类选择技术,该技术将所有的场景划分为等价的组,然后从每组中抽取一个场景进行评估,从而避免重复评估类似的场景,减少评估成本。ALMA 首次提出并应用了该技术。

另外,针对各种质量属性的不同特点,也提出了具有一定针对性的场景获取技术。比如:ASAAM 方法。

3.2场景分析技术

采用评审会议的方法进行场景分析是最基本的分析方法,利用该方法评估人员可以得到软件体系结构对各场景的满足程度,可以比较多个软件体系结构方案。SAAM 、ATAM 等方法都给予这种人工评审的技术。但人工评审从效率和精确性上都有一定的欠缺,所以研究人员也在利用一些自动分析的方法,对场景进行模拟执行,通过模拟数据来说明软件体系结构是否满足场景的要求。

在场景分析中,对于不同质量属性的综合分析也是一项非常重要的技术,其中最有影响的研究是ATAM 方法中引入效用树技术来支持对多属性进行折中分析的能力。

二、基于度量和预测的评估方法

软件体系结构的度量是对软件中间产品的度量,可以更加精确地描述软件体系结构的各种特征,并通过预测去发现软件设计中存在的问题。

1、重要特征

通过对多种基于度量和预测的评估方法的分析和比较得出,此类方法具有以下重要特征:第一、这些方法的基本思路是将传统的度量和预测技术应用在软件体系结构层次;第二、度量技术需要软件体系结构提供比较细粒度的信息,对模型的要求比较严格;第三、利用度量技术对软件体系结构模型的内部特征(如复杂性、内聚度、耦合性等)进行测量;第四、利用这些度量作为预测指标,对某些软件的外部质量(如可维护性、可演化性、可靠性等)进行预测,但由于预测模型构造的困难,所以这些预测一般只作为一种辅助评估手段。

2、评估目标

基于度量的评估方法主要有以下几种目标:第一、通过精确的度量,可以评估软件体系结构层次上的内部质量特征;第二、利用预测模型可以评估软件的外部特征;第三、进行风险评估。

3、关键技术

在基于度量和预测的评估方法中,度量技术解决的是各种因素的可测量问题,而预测技术解决的是各种因素之间的相关性问题。这两项技术都是评估的基础问题。

3.1度量技术

根据度量对象的不同,度量技术可以分为两类:第一类是软件体系结构模型的度量技术;第二类是对各种质量属性在软件体系结构层次的度量技术。

首先,软件体系结构模型的度量技术主要是对软件体系结构模型的结构特征和行为特征进行度量,如:结构复杂度、结构形态、行为复杂度等。如ALRRA 方法为了进行可靠性分析,提出了包括构件操作复杂度、连接件输出耦合度等一组软件体系结构模型的度量技术。

另外一种度量技术则是对性能、可靠性、可维护性等质量属性在软件体系结构层析的量化形式进行研究。如PASA 方法就定义了计算机资源需求、作业驻留时间、利用率、吞吐量、队列长度等度量,对性能进行量化的表示;SACMM 方法为了对软件可更改性及软件体系结构的演化性进行评估,利用graph kernel函数定义距离度量对软件体系结构的相似性进行量化;ALRRA 方法提出了与故障相关的一组度量,包括构建和连接件的故障模式、故障严重性级别。通过复杂性度量和故障严重性级别,可以计算可靠性风险因子。

3.2预测技术

预测技术是在度量技术的基础上进一步研究在软件体系结构层次上各因素之间的关系。利用这些经验关系,可以通过一些在软件体系结构层次上的特性(如结构和行为特征等)来

预测未知的软件质量特性(如可靠性、可维护性等)。预测技术的研究需要比较深入的理论知识和大量的经验数据,这些都是软件工程研究的难点问题。

目前,该技术已经取得了一些成果,如在ALRRA 方法中,利用复杂性度量和故障严重性级别,建立了基于构件依赖图(CGD )的模型,并利用风险分析算法对CGD 模型进行计算,可以评估软件体系结构的可靠性风险;SAABNet 方法则利用贝叶斯信念构造了软件体系结构策略到软件质量的因果关系模型,可以通过设计策略对各种质量属性进行预测。

三、基于特定软件体系结构描述语言的评估方法

基于特定软件体系结构描述语言(ADL )的评估方法是一类比较特殊的方法,这类方法依赖于魔种具体的软件体系结构描述语言,一般是软件体系结构语言研究的附属品。

1、重要特征

通过对多种基于特定软件体系结构描述语言的评估方法的分析个比较得出此类方法具有以下特征:第一、评估技术与特定软件体系结构描述语言的定义机制和理论基础密切相关;第二、软件体系结构描述语言的定义非常严格,通常是形式化或半形式化的描述语言。

2、评估目标:

在基于特定软件体系结构描述语言的评估方法中,可以评估的质量属性是受到其语言特征和形式化理论基础的限制的。一般,此类方法用于评估特定领域软件系统的性能、可靠性、安全性、事务性的质量属性。

3、关键技术:

各种特定的基于特定软件体系结构描述语言具有不同形式化理论基础,其评估技术依赖于所采用的理论模型。比如,DSSA 中MetaH 语言的语义主要基于形式化调度和数据流模型,所以可以通过对软件体系结构的模拟执行得到时间性能、可靠性、安全性的评估结果。

另外,在基于UML 逆向工程的软件体系结构分析方法中,通过一种结合自顶向下和自底向上方法的逆向工程构造软件实现模型与软件体系结构模型之间的关系;利用概念模型和约束模型进行软件体系结构的结构分析,首先根据约束模型对软件体系结构模型进行验证,然后利用原子操作对不同的软件体系结构模型进行比较,可以对软件的可维护性进行评估。

软件体系结构评估技术是为了在软件设计的初期发现与软件质量相关的问题。自从基于场景软件体系结构分析方法被提出以来,学术界和商业界涌现了很多软件体系结构评估技术。不同的评估方法呈现出不同的技术特点。

参考文献:

[1] 张友生 软件体系结构的描述方法 程序员 2002(11):44-46

[2] 张友生 李雄 软件体系结构 清华大学出版社 2009/08

[3] 周苏 软件体系结构与设计 轻缓大学出版社 2013/03

浅谈软件体系结构评估技术

摘要: 作为在软件生命周期早期保障软件质量的重要手段之一,软件体系结构评估技术是软件体系结构研究中的一个重要组成部分。现有的软件体系结构评估方法可以划分为3类:基于场景的评估方法、基于度量和预测的评估方法以及特定软件体系结构描述语言的评估方法。按照团建体系结构评估技术的评价框架,分别从评估方法的特征、评估目标、关键技术等方面对这3类方法的特点进行介绍和对比。

关键词: 软件体系结构;软件体系结构评估技术;软件质量

软件工程方法的唯一目标就是:生产高质量的软件。软件质量从软件工程诞生以来一直受到广泛关注。二软件体系结构评估的目的就是为了在开发过程的早期,通过分析系统的质量需求是否在软件体系结构中得到体现,识别软件体系结构设计中的潜在风险,预测系统质量属性,并辅助软件体系结构决策的制定。

软件体系结构的评估技术一直是研究的热点问题。随着软件体系结构评估技术的不断出现,一些方法已经比较成熟并得到了应用和验证,比如基于场景的软件体系结构分析方法、基于度量-预测的评估方法以及基于某种特定软件体系结构描述语言的分析方法。

一、基于场景的评估方法

该类评估方法的基本观点是,大多数软件质量属性极为复杂,根本无法用一个简单的尺度来衡量。同时,质量属性并不是出于隔离状态,只有在一定的上下文环境中才能做出关于质量属性的有意义的评判。利用场景技术则可以具体化评估的目标,代替对质量属性(可维护性、可修改性、健壮性、灵活性等)的空洞表述,使对软件体系结构的测试成为可能。所以,场景对于评估具有非常关键的作用,整个评估过程就是论证软件体系结构对关键场景的支持程度。

1、重要特征

通过对多种基于场景的评估方法的分析,我们认为该类方法具有一下重要特征:第一、场景是这类评估方法中不可缺少的输入信息,场景的设计和选择是评估成功与否的关键因素;第二、这类评估是人工智力密集型劳动,评估质量在很大程度上取决于人的经验和技术。

2、评估目标

基于场景的评估方法主要有以下几种目标:第一、评估软件体系结构是否满足各种质量属性的要求;第二、比较不同的软件体系结构方案;第三、进行风险评估。

该类方法的评估结果大多以评估报告的形式给出,根据评估目标的不同,不同的评估方法给出的报告内容也不同,一般的评估报告包括软件体系结构模型对所评估质量属性的满足程度,更进一步地,通过专家的分析,在报告中还可以给出软件开发中可能存在的风险,有时甚至包括软件体系结构设计的改进建议等。

3、关键技术

场景获取技术和场景分析技术是基于场景的评估方法中最为关键的两项技术。

3.1场景获取技术

场景获取是明确评估目标的重要环节。场景获取最基本的方法就是让项目涉众进行头脑风暴,比如SAAM 和ATAM 方法。在头脑风暴的基础上,为了对场景进行积累和重用,ESSAAMI 方法强调了场景的领域特性,通过对领域分析增加领域知识,积累分析模板,提高在领域内对场景的重用和获取。PSAEM 方法则从系统设计的角度提出了一种基于模式的场景提取技术,将软件体系结构模式和设计模式中包含的通用行为作用为评估的场景,从而得到了通用的场景模式。

为了尽可能地平衡候选场景的完整性和关键性,研究人员提出了场景的等价类选择技术,该技术将所有的场景划分为等价的组,然后从每组中抽取一个场景进行评估,从而避免重复评估类似的场景,减少评估成本。ALMA 首次提出并应用了该技术。

另外,针对各种质量属性的不同特点,也提出了具有一定针对性的场景获取技术。比如:ASAAM 方法。

3.2场景分析技术

采用评审会议的方法进行场景分析是最基本的分析方法,利用该方法评估人员可以得到软件体系结构对各场景的满足程度,可以比较多个软件体系结构方案。SAAM 、ATAM 等方法都给予这种人工评审的技术。但人工评审从效率和精确性上都有一定的欠缺,所以研究人员也在利用一些自动分析的方法,对场景进行模拟执行,通过模拟数据来说明软件体系结构是否满足场景的要求。

在场景分析中,对于不同质量属性的综合分析也是一项非常重要的技术,其中最有影响的研究是ATAM 方法中引入效用树技术来支持对多属性进行折中分析的能力。

二、基于度量和预测的评估方法

软件体系结构的度量是对软件中间产品的度量,可以更加精确地描述软件体系结构的各种特征,并通过预测去发现软件设计中存在的问题。

1、重要特征

通过对多种基于度量和预测的评估方法的分析和比较得出,此类方法具有以下重要特征:第一、这些方法的基本思路是将传统的度量和预测技术应用在软件体系结构层次;第二、度量技术需要软件体系结构提供比较细粒度的信息,对模型的要求比较严格;第三、利用度量技术对软件体系结构模型的内部特征(如复杂性、内聚度、耦合性等)进行测量;第四、利用这些度量作为预测指标,对某些软件的外部质量(如可维护性、可演化性、可靠性等)进行预测,但由于预测模型构造的困难,所以这些预测一般只作为一种辅助评估手段。

2、评估目标

基于度量的评估方法主要有以下几种目标:第一、通过精确的度量,可以评估软件体系结构层次上的内部质量特征;第二、利用预测模型可以评估软件的外部特征;第三、进行风险评估。

3、关键技术

在基于度量和预测的评估方法中,度量技术解决的是各种因素的可测量问题,而预测技术解决的是各种因素之间的相关性问题。这两项技术都是评估的基础问题。

3.1度量技术

根据度量对象的不同,度量技术可以分为两类:第一类是软件体系结构模型的度量技术;第二类是对各种质量属性在软件体系结构层次的度量技术。

首先,软件体系结构模型的度量技术主要是对软件体系结构模型的结构特征和行为特征进行度量,如:结构复杂度、结构形态、行为复杂度等。如ALRRA 方法为了进行可靠性分析,提出了包括构件操作复杂度、连接件输出耦合度等一组软件体系结构模型的度量技术。

另外一种度量技术则是对性能、可靠性、可维护性等质量属性在软件体系结构层析的量化形式进行研究。如PASA 方法就定义了计算机资源需求、作业驻留时间、利用率、吞吐量、队列长度等度量,对性能进行量化的表示;SACMM 方法为了对软件可更改性及软件体系结构的演化性进行评估,利用graph kernel函数定义距离度量对软件体系结构的相似性进行量化;ALRRA 方法提出了与故障相关的一组度量,包括构建和连接件的故障模式、故障严重性级别。通过复杂性度量和故障严重性级别,可以计算可靠性风险因子。

3.2预测技术

预测技术是在度量技术的基础上进一步研究在软件体系结构层次上各因素之间的关系。利用这些经验关系,可以通过一些在软件体系结构层次上的特性(如结构和行为特征等)来

预测未知的软件质量特性(如可靠性、可维护性等)。预测技术的研究需要比较深入的理论知识和大量的经验数据,这些都是软件工程研究的难点问题。

目前,该技术已经取得了一些成果,如在ALRRA 方法中,利用复杂性度量和故障严重性级别,建立了基于构件依赖图(CGD )的模型,并利用风险分析算法对CGD 模型进行计算,可以评估软件体系结构的可靠性风险;SAABNet 方法则利用贝叶斯信念构造了软件体系结构策略到软件质量的因果关系模型,可以通过设计策略对各种质量属性进行预测。

三、基于特定软件体系结构描述语言的评估方法

基于特定软件体系结构描述语言(ADL )的评估方法是一类比较特殊的方法,这类方法依赖于魔种具体的软件体系结构描述语言,一般是软件体系结构语言研究的附属品。

1、重要特征

通过对多种基于特定软件体系结构描述语言的评估方法的分析个比较得出此类方法具有以下特征:第一、评估技术与特定软件体系结构描述语言的定义机制和理论基础密切相关;第二、软件体系结构描述语言的定义非常严格,通常是形式化或半形式化的描述语言。

2、评估目标:

在基于特定软件体系结构描述语言的评估方法中,可以评估的质量属性是受到其语言特征和形式化理论基础的限制的。一般,此类方法用于评估特定领域软件系统的性能、可靠性、安全性、事务性的质量属性。

3、关键技术:

各种特定的基于特定软件体系结构描述语言具有不同形式化理论基础,其评估技术依赖于所采用的理论模型。比如,DSSA 中MetaH 语言的语义主要基于形式化调度和数据流模型,所以可以通过对软件体系结构的模拟执行得到时间性能、可靠性、安全性的评估结果。

另外,在基于UML 逆向工程的软件体系结构分析方法中,通过一种结合自顶向下和自底向上方法的逆向工程构造软件实现模型与软件体系结构模型之间的关系;利用概念模型和约束模型进行软件体系结构的结构分析,首先根据约束模型对软件体系结构模型进行验证,然后利用原子操作对不同的软件体系结构模型进行比较,可以对软件的可维护性进行评估。

软件体系结构评估技术是为了在软件设计的初期发现与软件质量相关的问题。自从基于场景软件体系结构分析方法被提出以来,学术界和商业界涌现了很多软件体系结构评估技术。不同的评估方法呈现出不同的技术特点。

参考文献:

[1] 张友生 软件体系结构的描述方法 程序员 2002(11):44-46

[2] 张友生 李雄 软件体系结构 清华大学出版社 2009/08

[3] 周苏 软件体系结构与设计 轻缓大学出版社 2013/03


相关内容

  • [软件企业评估规范 TSCSIA1-2015]
  • 四川省软件行业协会标准规范 T/SCSIA1-2015 软件企业评估规范 Specification for evaluation of software enterprise 2015-12-10发布 2016-01-01实施 四川省软件行业协会 目 次 前言 .................. ...

  • 传阅单会客单
  • 江苏省软件企业/产品评估规范 Evaluation of software enterprise/product in Jiangsu Province 2015 - 11- 26发布 2015- 11 - 26实施 目 次 目次 .................................. ...

  • 2015中国软件质量研究报告
  • 2015中国软件质量研究报告 HYPERLINK ;//1>.smecn.org.cn; 国家中小企业公共服务平台 2015中国软件质量研究报告 2015 ANNUAL REPORT OF CHINA SOFTWARE QUALITY 工业和信息化部软件与集成电路促进中心 编 前 言 &quo ...

  • 软件体系结构
  • 软件体系结构试题 一 .选择题 1.设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2.下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换 D都不是 3.要依赖于抽象,不要依赖于具体.即针对接口编程 ...

  • 项目管理师考试要求
  • 信息系统项目管理师考试要求 1.考试要求 (1)掌握信息系统知识: (2)掌握信息系统项目管理知识和方法: (3)掌握大型.复杂项目管理和多项目管理的知识和方法: (4)掌握项目整体绩效评估方法: (5)熟悉知识管理和战略管理: (6)掌握常用项目管理工具: (7)熟悉过程管理: (8)熟悉业务流程 ...

  • 基于生命周期分析信息安全管理体系
  • 基于生命周期分析信息安全管理体系 信息安全管理正成为当前全球的热门话题,建立健全信息安全管理体系对企业的安全管理工作和企业的发展意义重大.信息技术在加速企业发展的同时,也给企业带来了各种各样的威胁.确保信息的完整性.可用性和保密性,从而保持业务运作的持续性和组织的竞争优势. 引言 随着信息技术的迅猛 ...

  • 如何构造软件企业的配置管理方案
  • 作者:unknown 更新时间:2005-04-14 朗讯科技(中国) 贝尔实验室 刘江华 1 引言 1.1 什么是配置管理 配置管理(Configuration Management)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制.规范的一系列措施.配置管理的目标是记录软件产品的演化 ...

  • 软件测试在软件开发过程中的应用探析
  • 摘 要:文章通过对软件概念的阐述,分析软件的地位及其重要意义,并深入探析软件测试在当前软件开发中的应用,以期促进软件质量的进一步提高,更好地满足现代社会的信息化需求. 关键词:软件测试:软件开发:应用 1 前言 作为软件质量控制的一个重要方式,软件测试是利用测试工具按照测试方案和流程对产品进行功能和 ...

  • 软件工程管理
  • 第一章软件过程规范 美国卡耐基梅龙大学 能力成熟的模型(CMM)定义过程是用于软件开发及维护的一系列活动.方法和实践. 更科学的定义,过程是指:一组将输入转化为输出的相互关联或相互作用的活动 软件生命期过程包括:基本过程,支持过程,组织过程 基本过程:获取过程,供应过程,开发过程,运行过程,维护过程 ...