浅谈软件体系结构评估技术
- 格式:docx
- 大小:17.21 KB
- 文档页数:5
如何进行软件开发中的软件架构评估软件架构评估是软件开发中不可或缺的一部分。
随着软件规模和复杂度的不断增加,软件架构评估的重要性变得越来越突出。
本文将介绍如何进行软件开发中的软件架构评估。
一、什么是软件架构评估软件架构评估旨在评估软件系统的可靠性、可维护性和安全性等方面。
通过软件架构评估,我们可以发现和解决软件系统中的潜在问题,提高软件系统的质量和性能。
软件架构评估可以分为几个层次。
首先是对软件设计的评估,这包括软件的整体架构、模块设计、接口设计等方面。
其次是对软件源代码的评估,这包括代码的质量、可读性、可维护性等方面。
最后是对软件运行环境的评估,这包括软件的性能、安全性、可靠性等方面。
二、为什么需要进行软件架构评估进行软件架构评估有以下几个原因:1. 发现问题:软件架构评估可以帮助我们发现软件系统中的潜在问题,包括软件的安全漏洞、性能瓶颈、设计缺陷等。
2. 提高质量:通过软件架构评估,我们可以提高软件系统的质量和性能,减少软件系统中的错误和缺陷。
3. 减少成本:软件架构评估可以减少软件系统的维护成本和修复成本,提高软件系统的可重复使用性和可扩展性。
4. 提高用户满意度:通过软件架构评估,我们可以提高软件系统的用户满意度,增强用户对软件系统的信任和认可度。
三、如何进行软件架构评估软件架构评估可以采用多种方法和工具,下面介绍几种常用的方法和工具:1. 代码审查:代码审查是一种常用的软件架构评估方法,可以发现软件系统中的代码缺陷和不良的编程实践等。
2. 静态分析:静态分析是一种基于代码的分析方法,可以检查代码中的问题,比如内存泄漏、空指针等。
3. 动态分析:动态分析是一种基于运行时的分析方法,可以检查软件系统中的性能瓶颈和安全漏洞等。
4. 代码测试:代码测试是一种基于测试用例的评估方法,通过运行测试用例来发现软件系统中的问题。
5. 设计评审:设计评审是一种基于代码设计的评估方法,可以对软件系统的架构、模块、接口等进行评估。
软件架构评估软件架构评估是软件开发过程中的重要环节,它可以帮助开发团队评估和改进软件架构的设计和实现,以达到高质量和高效率的软件开发目标。
下面将从三个方面对软件架构评估进行讨论。
首先,评估软件架构的可维护性。
可维护性是评估软件架构的重要标准之一,它涉及到软件的易读性、可理解性和可维护性。
通过评估代码的模块化程度、命名规范、注释的质量、代码的复杂性等因素,可以评估软件的可维护性和可读性。
在评估的过程中,可以使用一些静态代码分析工具,如SonarQube等,来评估代码的质量,并提供相应的改进建议。
其次,评估软件架构的性能。
软件性能是软件系统质量的关键指标之一,它涉及到软件的性能、响应时间和资源利用率等方面。
在评估软件架构的性能时,可以使用一些性能测试工具,如JMeter等,来模拟并测量软件系统在不同负载下的性能表现。
通过评估系统的并发处理能力、吞吐量、响应时间等指标,可以评估软件架构的性能,并提供相应的优化建议。
最后,评估软件架构的可扩展性。
软件需求是不断变化的,因此软件架构的可扩展性是评估软件架构的重要标准之一。
在评估软件架构的可扩展性时,可以评估软件系统的灵活性、可插拔性和可重用性等方面。
通过评估软件系统的模块划分、接口设计和组件复用等因素,可以评估软件架构的可扩展性,并提供相应的优化建议。
综上所述,软件架构评估是软件开发过程中的重要环节,它可以帮助开发团队评估和改进软件架构的设计和实现。
在评估的过程中,可以综合考虑软件架构的可维护性、性能和可扩展性等因素,以实现高质量和高效率的软件开发目标。
为了提高评估的准确性和可信度,可以使用一些相关工具和方法,如静态代码分析工具和性能测试工具等,来辅助评估工作。
面向目标程序设计的软件体系结构评估方法近年来,软件开发变得越来越复杂,软件体系结构评估方法也成为了重要的研究领域之一。
面向目标程序设计的软件体系结构评估方法是其中一种常见的方法,本文将对其进行探讨和介绍。
1. 前言软件体系结构评估是指对软件体系结构进行分析和检验的过程,以确保软件系统的可靠性、稳定性和正确性。
而面向目标程序设计的软件体系结构评估方法则是一种以目标为导向的评估方法,其重点在于评估软件体系结构是否符合预期的目标需求和要求。
2. 面向目标程序设计的软件体系结构评估方法的基本流程面向目标程序设计的软件体系结构评估方法通常分为以下步骤:2.1 明确目标和需求首先,需要明确软件体系结构评估的目标和需求。
这些目标和需求通常是来源于项目的管理、用户的需求、技术标准等方面。
2.2 分析和设计软件体系结构基于明确的目标和需求,开展软件体系结构的分析和设计工作。
这一步骤需要考虑软件功能、结构和性能等方面,同时需要满足目标和需求的要求。
2.3 静态和动态分析在软件体系结构设计完成后,进行静态和动态分析。
静态分析主要是对软件体系结构进行代码检查和数据分析,而动态分析则是对软件体系结构进行性能测试、错误检测和安全验证等方面的测试和分析。
2.4 实施和管理最后,根据静态和动态分析结果,对软件体系结构进行实施和管理,确保软件体系结构符合目标和需求的要求,并满足软件系统的设计目标。
3. 面向目标程序设计的软件体系结构评估方法的优点面向目标程序设计的软件体系结构评估方法之所以成为研究热点,其主要优点在于:3.1 目标导向面向目标的评估方法以目标和需求为导向,能够有效地把握项目的目标和需求,借助评估方法更好地实现目标和需求。
3.2 综合性能面向目标的评估方法同时考虑软件功能、结构和性能等方面,在保证软件质量的同时,能够保证软件系统的总体性能和稳定性。
3.3 可重用性面向目标的评估方法能够捕捉软件系统的设计目标,为后期的软件版本升级、补丁发布等操作保留压实的设计手段。
如何进行软件架构评估和技术选型软件架构评估和技术选型是在软件开发过程中至关重要的环节。
一个合理的架构设计和科学的技术选型可以提升软件的可靠性、性能和可维护性。
本文将从软件架构评估和技术选型的概念、方法和步骤入手,为读者提供一些实用的指导,以帮助其在软件开发过程中做出科学的决策。
一、引言在软件开发的过程中,软件架构评估和技术选型是一个综合、系统性的过程。
通过评估现有的软件架构和技术方案,可以帮助开发团队在确保软件质量的前提下选择最适合的技术方案。
二、软件架构评估1. 定义软件架构评估软件架构评估是对现有软件架构进行系统性的评估和分析,以确认其是否满足业务需求、性能要求和扩展需求等标准。
评估软件架构的目的是为了找出存在的问题并提出改进措施。
2. 软件架构评估的方法软件架构评估可以采用多种方法,常见的有静态分析方法和动态分析方法。
静态分析方法包括代码审查、代码规范检查和软件度量等。
动态分析方法包括模拟、性能测试和负载测试等。
3. 软件架构评估的步骤(1)收集现有的软件架构相关文档和资料。
(2)进行软件架构的静态分析,主要包括代码审查、代码规范检查和软件度量等。
(3)进行软件架构的动态分析,主要包括模拟、性能测试和负载测试等。
(4)分析评估结果,找出软件架构存在的问题,并制定改进措施。
(5)编写软件架构评估报告。
三、技术选型1. 定义技术选型技术选型是在软件开发过程中,根据项目需求和目标,在众多技术方案中选择最合适的技术方案。
技术选型的目的是为了确保软件开发过程中的可靠性、高效性和可维护性。
2. 技术选型的方法技术选型可以采用多种方法,常见的有调研比较法和实践验证法。
调研比较法是通过调研市场上各种技术解决方案的特点和优势来进行比较和选择。
实践验证法是通过开展实际的技术验证和测试来评估技术的可行性和适用性。
3. 技术选型的步骤(1)明确项目需求和目标。
(2)调研市场上的技术解决方案,比较它们的特点和优势。
软件体系结构的分析与评价软件体系结构是一种高层抽象视角,用于描述系统的基本组成部分以及它们的相互作用。
它具有指导开发中正确把握系统需求、提高软件质量以及加速项目开发进程等许多优点。
然而,在这一领域,有很多方法来实现软件体系结构,因此,需要对这些方法进行分析和评价。
首先,可以从技术方法的角度来分析。
对于软件体系结构,一些重要的技术方法包括面向对象设计、面向服务架构、分层架构等等。
这些方法的选择应基于项目需求和开发者技能水平。
如果项目要求代码能够适应未来的变化,那么采用面向对象设计可能是最佳选择。
如果项目要求具备可重用性和松耦合的上下文,那么使用面向服务架构则可能更为合适。
分层架构则是其中一个通用的架构模式,可以轻松将系统划分成松散耦合的模块。
这些技术方法的选择应当基于具体的需求和项目特点。
其次,可以从软件质量的角度来评价。
软件质量通常包括功能性、可靠性、易用性、可维护性等方面。
软件体系结构在质量方面的影响主要与系统的系统属性有关,如可靠性、可扩展性和可维护性。
例如,如果系统使用分层架构,则将模块分到不同的层次中,可大大提高系统可维护性。
在这种架构中,即使要更改系统的一个模块也不可能将其他部分影响到,从而降低了系统的错误率,并增加了系统的可维护性。
软件体系结构的必要性在于通过对系统属性的优化来提高软件的质量。
此外,还应考虑软件开发的时间和资源管理方面,这个方面的考虑包括了如何缩短软件开发的周期、降低开发成本以及评估开发阶段的风险等方面。
软件体系结构可以帮助确保系统需求的完整性,从而降低开发阶段的风险。
此外,软件体系结构的规范化可以使团队成员更好地理解整个开发流程。
最后,可以从技术生命周期的角度来评估软件体系结构。
随着业务需求和技术的新变化,软件架构可能需要进行定期的更改。
随着时间的推移,软件发展的过程会对整体的体系结构产生重大的影响。
软件体系结构应该尽可能地灵活,对于这些变化要有很好的适应性。
此外,软件开发项目通常有不同的阶段,它的生命周期从需求分析经历到开发、测试和维护。
软件体系结构设计与评估方法研究随着科技的迅猛发展,软件在我们的生活和工作中起到越来越重要的作用。
而软件的质量和性能很大程度上取决于它的体系结构设计。
因此,软件体系结构设计与评估方法的研究变得至关重要。
一、软件体系结构设计的基本原则优秀的软件体系结构设计应该具备一些基本原则。
首先是模块化设计原则,即将软件系统划分为若干个模块,每个模块具有独立的功能和责任,并通过接口进行通信。
这样的设计使得软件系统易于维护和扩展,减少了修改一个模块所带来的影响。
另一个重要的原则是分层设计原则,即将软件系统按照逻辑层次进行划分,从而形成清晰的层次关系。
这种设计能够提高软件系统的可扩展性和可维护性,并且有利于团队协作开发。
此外,还有一些原则如高内聚低耦合、开闭原则等,都是软件体系结构设计的重要原则。
遵循这些原则可以确保软件的高性能、可用性和可靠性。
二、软件体系结构设计的方法软件体系结构设计有几种常见的方法,每种方法都有不同的适用场景。
一种常见的方法是面向对象(OO)设计方法。
这种方法将软件系统的功能模块抽象为对象,并定义它们的属性和行为。
这样的设计方法具有良好的可扩展性和可维护性。
另一种方法是面向服务(SOA)设计方法。
这种方法将软件系统的功能模块抽象为独立的服务,并通过服务接口进行通信。
这样的设计方法有利于实现松耦合和可重用的软件系统。
还有一种方法是基于组件的设计方法。
这种方法将软件系统划分为若干个可复用的组件,每个组件都具有特定的功能。
通过组合和配置这些组件,可以构建出具有高度可定制性和可扩展性的软件系统。
三、软件体系结构评估的方法和工具除了设计软件体系结构,评估其品质也是非常重要的。
软件体系结构评估的目的是发现潜在的问题和隐患,从而提供改进的方向。
一种常见的评估方法是质量属性评估。
这种方法通过定义和测量软件体系结构的质量属性来评估其品质。
质量属性包括性能、可靠性、安全性、可维护性等。
通过分析这些质量属性的指标,可以评估软件体系结构的优劣。
计算机093 09416612 恽小燕软件体系结构评估近几年来,软件体系结构(Software Architecture ,SA) 成为软件工程发展的一个热门方向。
随着对软件体系结构研究的深入开展,逐渐形成了以软件系统的体系结构形式化描述、风格、建模、评估、软件产品线以及基于软件体系结构的软件开发过程等为主要研究内容的一个新领域。
对一个系统的体系结构进行评估,是为了在系统被构建之前预测它的质量,并不需要精确的评估结果,通过分析SA体系结构对于系统质量的主要影响,进而提出改进。
因此,软件体系结构评估的目的是分析潜在的风险,并检验设计中提出的质量需求。
本文主要讨论三种有代表性的方法,它们可以指导评估人员成功地对系统的体系结构进行评估。
这三种方法是: 基于场景的体系结构分析方法(SAAM) 、体系结构权衡分析方法(ATAM) 、体系结构级别上的软件维护预测(ALPSM) 。
1.主要的术语(1)软件体系结构定义:软件体系结构定义很多,本文采用为大多数人所接受的一种定义:“软件系统或计算系统的软件体系结构就是系统的一个或多个结构,它包括软件组件,这些组件的外部可见属性以及组件之间的相互关系”。
这个定义仅仅关注系统内在的方面,而大多数的分析方法都是基于这个定义的。
这个定义具有如下的含义:①SA 是一个或多个系统的抽象。
SA 以抽象的组件(Com2ponent) 来表示系统,这些组件具有外部可见属性,并且相互之间是有联系的,这种联系有时被称为连接件(Connector) 。
②SA 是一种可重用、可传递的系统抽象,而组件的细节部分不属于体系结构的范畴。
③系统由多个结构组成,通常也称为视图(View) 。
任何一个视图只能表示SA 的部分内容,而不是全部。
(2)质量属性质量属性是一个组件或一个系统的非功能性特征。
软件质量在IEEE 1061中定义,它体现了软件拥有所期望的属性组合的程度。
另一个标准ISO/IEC Draft 91262 1定义了一个软件质量模型。
软件体系结构的设计与评估随着计算机技术的发展,软件系统在我们的生活中扮演着越来越重要的角色。
由于软件系统的规模越来越大,模块越来越多,软件的结构设计和评估就变得尤为重要。
软件体系结构是指软件系统中各个模块之间相互关联的结构,设计和评估软件体系结构是确保软件系统的高性能和高稳定性的关键。
一、软件体系结构设计的重要性软件体系结构设计是软件开发的第一步。
它的目的是根据需求规格说明书确定软件系统的模块组成,进而确定模块之间的相互关系。
一个良好的软件体系结构应具备以下特点:1.可扩展性——软件体系结构应该可以很方便地扩展和修改,使得软件系统能够应对未来的需求变化。
2.可维护性——软件体系结构应该易于维护,使得开发人员能够很快地修复程序错误和漏洞。
3.可重用性——软件体系结构应该可以很容易地被复用,这可以大大提高软件开发的效率。
4.可移植性——软件体系结构应该很容易地在不同的操作系统和硬件平台上运行,以满足不同用户的需求。
设计一个良好的软件体系结构需要考虑多个因素,例如软件系统的规模、性能、可靠性等。
不同的因素需要不同的策略来解决,因此软件体系结构的设计是一个复杂而具有挑战性的任务。
二、软件体系结构设计的方法根据Martin Fowler的《企业应用架构模式》,软件体系结构设计可以分为以下四种方法:1.分层架构——将软件系统分为多个层次,每个层次都与下面的层次交互,从而促进模块化和可重用性。
2.分布式架构——将软件系统分成多个部分,每个部分都可以在不同的机器上运行,这可以大大提高系统的性能和可伸缩性。
3.面向服务架构——将软件系统分成多个服务,每个服务可以在不同的机器上运行,从而实现各个服务之间的相互调用。
4.事件驱动架构——在软件系统中使用事件来组织模块之间的通信。
以上四种架构方法都有各自的优缺点,开发人员需要根据需求选择最适用的方法。
三、软件体系结构评估的方法软件体系结构评估是指对软件体系结构进行评估和分析,以确定其是否满足设计要求,是否具有合理性、完备性和可行性。
软件架构评估方式
软件架构评估是指对软件系统架构进行全面评估、发现问题、提出改进方案的过程。
软件架构评估可以帮助开发团队更好地理解软件系统的结构和设计,发现系统的不足之处,提出改进方案,优化软件系统的性能和可维护性。
软件架构评估方式主要包括以下几种:
1. 代码审查:通过对代码的逐行检查,发现代码中的问题,如潜在的错误、性能问题、可维护性问题等。
这种评估方式比较耗时,但可以发现一些细节问题。
2. 静态分析:使用专门的工具对代码进行静态分析,分析代码的结构、依赖关系和性能等方面,发现代码中的问题。
这种评估方式比较快速,但需要专门的工具。
3. 动态测试:通过运行程序,对程序的运行过程进行监测和分析,发现程序中的问题。
这种评估方式可以发现一些运行时的问题,但需要一定的测试环境。
4. 建模和仿真:通过建立系统的模型和仿真,对软件系统进行分析和优化。
这种评估方式可以帮助开发团队更好地理解系统的结构和设计,发现系统的不足之处,提出改进方案。
5. 专家评估:通过邀请专家对软件系统进行评估,发现系统的不足之处,提出改进方案。
这种评估方式可以发现一些潜在的问题,但需要专家的参与和一定的成本。
以上几种评估方式各有优缺点,开发团队可以根据实际情况选择
适合自己的评估方式,以提高软件系统的质量和可维护性。
浅谈软件体系结构评估技术
摘要:作为在软件生命周期早期保障软件质量的重要手段之一,软件体系结构评估技术是软件体系结构研究中的一个重要组成部分。
现有的软件体系结构评估方法可以划分为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。