-软件体系结构评估
第9章 软件体系结构的评估
第9章 软件体系结构评估
9.2 SA评估的主要方式
◇ 基于度量的评估方式(1)
度量是指为软件产品的某一属性所赋予的数值,如代码行数、方 法调用层数、构件个数等。传统的度量研究主要针对代码,但近年来 也出现了一些针对高层设计的度量,软件体系结构度量即是其中之一。 代码度量和代码质量之间存在着重要的联系,类似地,软件体系结构 度量应该也能够作为评判质量的重要的依据。
第9章 软件体系结构评估
9.3 ATAM评估方法
◇ 描述商业动机
除了初步从高级抽象层介绍系统本身外,一般来说,还要描述: ①系统最重要的功能需求。 ②技术、管理、经济或政治方面的约束条件。 ③商业目标和环境。 ④主要的风险承担者。 ⑤体系结构驱动因素(形成体系结构的主要质量属性目标)。
Hale Waihona Puke 第9章 软件体系结构评估第9章 软件体系结构评估
9.3 ATAM评估方法
◇ 描述商业动机
参加评估的所有人员必须理解待评估的系统,在这一步,项目经 理要从商业角度介绍系统的概况
商业环境/驱动描述(约12张幻灯片,45分钟) (1)描述商业环境、历史、市场划分、驱动需求、风险承担者、当前 需要以及系统如何满足这些需要(3-4张幻灯片)。 (2)描述商业方面的约束条件(例如:推向市场的时间、客户需求、 标准和成本等)(1-3张幻灯片)。 (3)描述技术方面的约束条件(例如:COTS、与其他系统的互操作、 所需要的软硬件平台、遗留代码的重用等)(1-3张幻灯片)。 (4)质量属性需求(例如:系统平台、可用性、安全性、可修改性、 互操作性、集成性和这些需求来自的商业需要)(2-3张幻灯片)。 (5)术语表(1张幻灯片)。
基于度量的评估方式提供更为客观和量化的质量评估。这一评估 方式需要在软件体系结构的设计基本完成以后才能进行,而且需要评 估人员对待评估的体系结构十分了解,否则不能获取准确的度量。自 动的软件体系结构度量获取工具能在一定程度上简化评估的难度,例 如MAISA可从文本格式的UML图中抽取面向对象体系结构的度量。
第八章_软件体系结构评估
9.1软件体系结构评估概述
质量属性是一个组件或一个系统的非功能性 特征。软件质量在IEEE1061中被定义为 “它体现了软件拥有所期望的属性组合的程 度”。在ISO中被定义为“一组固有特性满 足要求的程度”。
9.1软件体系结构评估概述
McCall定义软件外部质量要素有11个,称之为软 件的质量要素,它们是:正确性、可靠性、效率、 完整性、可使用性、可维护性、可测试性、灵活 性、可移植性、重复使用性、连接性。 McCall称软件的内部质量要素为软件的质量属性, 共有23个,它们是:完备性、一致性、准确性、 容错性、简单性、模块性、通用性、可扩充性、 工具性、自描述性、执行效率、存储效率、存取 控制、存取审查、可操作性、可培训性、通信性、 软件系统独立性、机器独立性、通信通用性、数 据通用性、简明性。
9.3基于场景的软件体系结构评估方式
ATAM分析质量属性之间的交互关系和依赖 关系,探讨不同质量属性之间的折中机制, 为目标属性建立效用树(Quality Attribute Utility Tree),直接有效地将系统的商业目 标转化为具体的质量场景,有助于质量目标 的具体化和排序。
9.3基于场景的软件体系结构评估方式
9.3基于场景的软件体系结构评估方式
在 SAAM 的基础上,SEI在2000年提出了 体系结构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM),它 针对性能、实用性、安全性和可修改性等方 面,在系统开发之前对这些质量属性进行分 析、评估和折中。
9.3基于场景的软件体系结构评估方式
SAAM不考虑知识库的可复用性。 SAAM是一种成熟的方法,已被应用到众多系 统中。 对体系结构的描述采用自然语言或其他形式 的表示方法,SAAM所采用的场景能够分别支 持对体系结构的静态结构分析和动态分析。
第7章 软件体系结构评估
第7章 软件体系结构评估
◇ 基于度量的评估方式(2)
7.2 SA评估的主要方式
赫尔辛基大学提出的基于模式挖掘的面向对 象 软 件 体 系 结 构 度 量 技 术 、 Karlskrona 和 Ronneby提出的基于面向对象度量的软件体系结 构可维护性评估、西弗吉尼亚大学提出的软件 体系结构度量方法等都在这方面进行了探索, 提出了一些可操作的具体方案。我们把这类评 估方式称作基于度量的评估方式。
第7章 软件体系结构评估
◇ SAAM评估的步骤
7.3 SAAM评估方法
SAAM主要是以评估报告的形式输出。如果是评估 单个体系结构,那么报告的内容将包括该体系结 构设计不能满足质量需求的缺陷;多个体系结构 情况下将报告哪个候选体系结构能最好地满足场 景。由不适当分解或过分复杂导致不良设计也会 在报告中被指出。最后,SAAM可以估计修改导致 的费用和范围,以避免盲目的修改。
◇ SAAM评估的步骤
7.3 SAAM评估方法
• 下图给出了SAAM评估的步骤,每个阶段能 得到什么,各个阶段的关系如何。
1、形成场景 2、描述体系结构
3、对场景进行分类和确定优先级 4、对间接场景进行单个评估 5、评估场景的相互作用
6、形成总体评估
第7章 软件体系结构评估
◇ SAAM评估的步骤
7.3 SAAM评估方法
尽管基于调查问卷与检查表的评估方式相对比较 主观,但由于系统相关的人员的经验和知识是评估 软件体系结构的重要信息来源,因而它仍然是进行 软件体系结构评估的重要途径之一。
第7章 软件体系结构评估
◇ 基于场景的评估方式(1)
7.2 SA评估的主要方式
场景是一系列有序的使用或修改系统的步骤。 基于场景的方式由SEI首先提出并应用在体系结构 权衡分析方法(ATAM)和软件体系结构分析方法 (SAAM)中。
第9章-软件体系结构评估
ATAM方法基本过程(4组)
介绍、调查和分析、测试、报告
ATAM方法步骤
1、ATAM方法介绍 2、商业动机的介绍 3、软件体系结构介绍 4、确定软件体系结构方法 5、产生质量属性效果树 6、分析软件体系结构方法 7、集体讨论并确定场景的优先级 8、再次分析软件体系结构方法 9、展示结果
评估人员(2/2)
评估团队:其中的人员会实施评估并且进 行分析,团队中成员和他们确切的角色将 在后面定义;
利益相关人员:是软件体系结构和基于它 开发的系统的既得利益者。
评估结果和质量属性(1/4)
软件体系结构评估会产生一个评估报告, 报告的形式和内容随着所使用评估方法的 不同而不一样。
的行为来决定。
间接场景
场景没有被直接支持,但存在一些可表示的软 件体系结构的变化来支持场景
步骤4、间接场景的单独评估
设计人员能够描述应该如何修改软件体系 结构来适应间接场景。
列出为了支持间接场景对软件体系结构必 须做的修改,然后还要估计修改的代价。
步骤5、评估场景交互
当多个间接场景需要修改软件体系结构的 某个构件时,它们就被认为在此构件中进 行交互。
四个阶段
阶段1(步骤1-3):评估团队在这个阶段被创建,同时 评估组织与需要评估软件体系结构的组织建立合作伙伴 关系。
阶段2(步骤4-6):这个阶段以软件体系结构为中心, 着重于获取软件体系结构信息并且对其进行分析。
阶段3 (步骤7-8) :这个阶段以利益相关人员为中心, 着重于获得利益相关人员的观点然后验证第一个阶段的 结果。
第九章 软件体系结构评估
1
内容
软件体系结构评估
计算机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定义了一个软件质量模型。
第9章软件体系结构评估
体系结构评估的参与者
风险承担者(Stakeholders),是对体系结构及 根据该体系结构开发的系统有自己要求的人员。 评估小组:负责组织评估并对评估结果进行分 析。组成人员通常为评估小组负责人、评估负 责人、场景书记员、进展书记员、计时员、过 程观察员、过程监督者、提问者。
场景
பைடு நூலகம்
基于场景的软件体系结构评估方式 基 于 场 景 的 方 式 由 SEI 首 先 提 出 并 应 用 在 SAAM 和 ATAM 中,目前,很多体系结构评估 方法都采用场景作为基本技术。这些体系结构 评估方法分析软件体系结构对场景,也就是对 系统的使用或修改活动的支持程度,从而判断 该体系结构对这一场景所代表的质量需求的满 足程度。
8.2软件体系结构的主要评估技术
体系结构评估方法可以通过分析体系结构设 计所产生的模型,预测系统的质量属性并界 定潜在的风险。从精度上看,体系结构评估 方法可以分为两大类:一类是基于形式化方 法、数学模型和模拟技术,得出量化的分析 结果;另一类是基于调查问卷、场景分析、 检查表等手段,侧重得出关于软件体系结构 可维护性、可演化性、可复用性等难以量化 的质量属性。
场景交互的评估。两个或多个间接场景要求 更改体系结构的同一个组件就称为场景交互。 对场景交互的评估, 能够暴露设计中的功能 分配。 总体评估。按照相对重要性为每个场景及场 景交互设置一个权值, 根据权值得出总体评 价。
ATAM
体系结构权衡分析法 ATAM (Architecture Trade of Analysis Method) 方法基于一 种假设,即体系结构风格是体系结构质量属 性 最 主 要 的 限 定 , 因 此 采 用 了 ABAS(Attribute Based Architecture Styles)来限定体系结构的描述形式。
浅谈软件体系结构评估技术
浅谈软件体系结构评估技术摘要:作为在软件生命周期早期保障软件质量的重要手段之一,软件体系结构评估技术是软件体系结构研究中的一个重要组成部分。
现有的软件体系结构评估方法可以划分为3类:基于场景的评估方法、基于度量和预测的评估方法以及特定软件体系结构描述语言的评估方法。
按照团建体系结构评估技术的评价框架,分别从评估方法的特征、评估目标、关键技术等方面对这3类方法的特点进行介绍和对比。
关键词:软件体系结构;软件体系结构评估技术;软件质量软件工程方法的唯一目标就是:生产高质量的软件。
软件质量从软件工程诞生以来一直受到广泛关注。
二软件体系结构评估的目的就是为了在开发过程的早期,通过分析系统的质量需求是否在软件体系结构中得到体现,识别软件体系结构设计中的潜在风险,预测系统质量属性,并辅助软件体系结构决策的制定。
软件体系结构的评估技术一直是研究的热点问题。
随着软件体系结构评估技术的不断出现,一些方法已经比较成熟并得到了应用和验证,比如基于场景的软件体系结构分析方法、基于度量-预测的评估方法以及基于某种特定软件体系结构描述语言的分析方法。
一、基于场景的评估方法该类评估方法的基本观点是,大多数软件质量属性极为复杂,根本无法用一个简单的尺度来衡量。
同时,质量属性并不是出于隔离状态,只有在一定的上下文环境中才能做出关于质量属性的有意义的评判。
利用场景技术则可以具体化评估的目标,代替对质量属性(可维护性、可修改性、健壮性、灵活性等)的空洞表述,使对软件体系结构的测试成为可能。
所以,场景对于评估具有非常关键的作用,整个评估过程就是论证软件体系结构对关键场景的支持程度。
1、重要特征通过对多种基于场景的评估方法的分析,我们认为该类方法具有一下重要特征:第一、场景是这类评估方法中不可缺少的输入信息,场景的设计和选择是评估成功与否的关键因素;第二、这类评估是人工智力密集型劳动,评估质量在很大程度上取决于人的经验和技术。
2、评估目标基于场景的评估方法主要有以下几种目标:第一、评估软件体系结构是否满足各种质量属性的要求;第二、比较不同的软件体系结构方案;第三、进行风险评估。
浅谈软件体系结构评估技术
浅谈软件体系结构评估技术软件体系结构评估技术是指对软件体系结构进行分析和评估的一系列技术手段和方法。
软件体系结构评估旨在验证和评估软件体系结构的质量特征,如可维护性、可扩展性、安全性等,以确保软件体系结构的合理性和可靠性。
本文将从软件体系结构评估的重要性、评估的目标和方法以及常用的评估技术进行介绍和探讨。
首先,软件体系结构评估的重要性不言而喻。
软件体系结构是软件系统的基础和骨架,它决定了软件系统的结构和行为。
一个良好的软件体系结构能够提高软件系统的可管理性、可维护性和可扩展性,从而降低软件开发和维护的成本。
而一个不合理或糟糕的软件体系结构则可能导致软件质量的下降、性能的降低甚至无法满足需求。
因此,对软件体系结构进行评估能够发现潜在问题、提前预防风险,并为软件开发人员提供合理的决策依据。
其次,软件体系结构评估的目标是确保软件体系结构的质量特征满足系统需求和预期目标。
具体来说,软件体系结构评估的目标主要包括以下几个方面:1.验证和评估软件体系结构的功能需求是否得到满足;2.评估软件体系结构的质量特征,如性能、可靠性、可维护性等;3.发现和评估软件体系结构的潜在问题和风险;4.提供合理的决策依据,如软件体系结构的改进、优化或重构。
为了实现这些目标,软件体系结构评估需要采用一系列的评估技术。
在软件体系结构评估中,常用的技术包括静态分析、动态分析和模型驱动技术。
静态分析是通过分析软件源代码、设计文档和其他相关文档,发现和评估软件体系结构的问题。
静态分析的技术包括代码检查、代码审查、重构和模式识别等。
代码检查是通过对源代码进行分析和检测,发现代码中的问题和错误;代码审查是通过对软件设计文档和源代码的评审,发现设计和实现的问题;重构是通过对软件体系结构的改进和重构,改善软件体系结构的质量特征;模式识别是通过对软件体系结构的分析和比较,识别和应用已有的软件体系结构模式,以提高软件体系结构的质量和可维护性。
动态分析是通过运行时分析和测试,评估软件体系结构的性能和可靠性。
软件体系结构评估.ppt
2020-6-18
谢谢阅读
12
3、场景
在进行体系结构评估时,一般首先要精确地得出具体的质量目 标,并以之作为判定该体系结构优劣的标准。我们把为得出这些目 标而采用的机制叫做场景。场景是从风险承担者的角度对与系统的 交互的简短描述。在体系结构评估中,一般采用刺激、环境和响应 三方面来对场景进行描述。
2020-6-18
谢谢阅读
18
◇ 三种评估方式的比较
2020-6-18
谢谢阅读
19
8.3 ATAM评估方法
◇ ATAM评估的步骤
整个ATAM评估过程包括九个步骤,按其编号顺序分 别是描述ATAM方法、描述商业动机、描述体系结构、确 定体系结构方法、生成质量属性效用树、分析体系结构方 法、讨论和分级场景、分析体系结构方法(是第六步的重 复)、描述评估结果。
2020-6-18
谢谢阅读
14
1、基于调查问卷或检查表的评估方式
CMU/SEI的软件风险评估过程采用了这一方式。
调查问卷是一系列可以应用到各种体系结构评估的相关问题,其 中有些问题可能涉及到体系结构的设计决策;有些问题涉及到体系 结构的文档,有的问题针对体系结构描述本身的细节问题。
检查表中也包含一系列比调查问卷更细节和具体的问题,它们更 趋向于考察某些关心的质量属性。
☆ 刺激是场景中解释或描述风险承担者怎样引发与系统 的交互部分。
☆ 环境描述的是刺激发生时的情况。
☆ 响应是指系统是如何通过体系结构对刺激作出反应
的。
2020-6-18
谢谢阅读
13
8.2 SA评估的主要方式
◇ 主要的评估方式
1、基于调查问卷或检查表的评估方式 2、基于场景的评估方式 3、基于度量的评估方式
第九章-软件体系结构评估
郑州大学软件学院 赵哲
17
可修改性-质量场景图
用户界面要求修改
郑州大学软件学院 赵哲
18
质量属性II-P259
功能性 可变性 集成性 互操作性
郑州大学软件学院 赵哲
19
互操作性
Interoperation 为外部可视功能和数据结构提供软件入 口 别的程序可能会与你写的程序交换数据, 所以,你在写程序时写好入口,方便与 别的程序交互。
比如:系统是否过载,这会影响到响应
郑州大学软件学院 赵哲 29
场景
制品
被刺激的某个系统元素
比如:整个系统或者系统的部分
响应
刺激到达后所采取的行动 结果 对其他的影响
郑州大学软件学院 赵哲 30
响应度量
质量场景图
制品
刺激 源
刺激
环境
反应
响应 度量
31
郑州大学软件学院 赵哲
场景举例
郑州大学软件学院 赵哲 5
评估的时机
前期
又叫发现型评估 找出难以实现的需求,并划分其优先级 为新系统或扩展评估老系统 使用户明确是否可以通过更改老系统来满足 新的质量以及功能需求
郑州大学软件学院 赵哲 6
后期
质量属性
从用户的角度来讲 可用、易用、完整、灵活、高效、健壮、 互操作性强等 从开发人员的角度来讲 可维护、可移植、可集成、可扩展、可 重用、可测试等 质量属性的分类有很多种 运行时可见属性,维护时所见属性
郑州大学软件学院 赵哲 38
软件体系结构评估.ppt
感谢你的欣赏
17
基于度量的评估技术都涉及三个基本活动:首先需要建立质量属 性和度量之间的映射原则,即确定怎样从度量结果推出系统具有什么 样的质量属性;然后从软件体系结构文档中获取度量信息;最后根据 映射原则分析推导出系统的某些质量属性。因此,这些评估技术被认 为都采用了基于度量的评估方式。
基于度量的评估方式提供更为客观和量化的质量评估。这一评估方 式需要在软件体系结构的设计基本完成以后才能进行,而且需要评估 人员对待评估的体系结构十分了解,否则不能获取准确的度量。自动 的软件体系结构度量获取工具能在一定程度上简化评估的难度,例如 MAISA可从文本格式的UML图中抽取面向对象体系结构的度量。
(1)ATAM方法步骤简介; (2)获取和分析技术:效用树的生成,基于体系结构方法的获取/分 析,场景的映射等; (3)评估结果:所得出的场景及其优先级,用户理解/评估体系结构 的问题,描述驱动体系结构的需求并对这些需求进行分类,所确定的 一组体系结构方法和风格,一组所发现的风险点和无风险点、敏感点 和权衡点。
第8章:软件体系结构评估
☆ 软件体系结构评估概述 ☆ 软件体系结构评估的主要方式
☆ ATAM评估方法
2019-11-6
感谢你的欣赏
1
8.1 体系结构评估概述
◇ 评估所关注的质量属性: 1、 性能
性能是指系统的响应能力,即要经过多长时间才能 对某个事件做出响应,或者在某段事件内系统所能处理 的事件的个数。
2019-11-6
感谢你的欣赏
18
◇ 三种评估方式的比较
2019-11-6
感谢你的欣赏
19
8.3 ATAM评估方法
◇ ATAM评估的步骤
整个ATAM评估过程包括九个步骤,按其编号顺序分 别是描述ATAM方法、描述商业动机、描述体系结构、确 定体系结构方法、生成质量属性效用树、分析体系结构方 法、讨论和分级场景、分析体系结构方法(是第六步的重 复)、描述评估结果。
软件工程软件架构评估
软件工程软件架构评估在软件工程领域,软件架构评估是确保软件系统质量和可维护性的重要过程。
它涉及对软件架构进行全面的评估和分析,以确保其满足预期的需求和设计目标。
本文将介绍软件架构评估的重要性、评估的方法和步骤,并探讨其中的一些挑战。
一、软件架构评估的重要性软件架构评估对于任何软件开发项目都至关重要。
一个良好的软件架构不仅能够满足系统的功能需求,还能够提供可扩展性、可维护性和可重用性等重要特性。
通过对软件架构进行全面评估,可以及早发现潜在的设计问题并予以解决,从而减少后期的修改和维护成本。
二、软件架构评估的方法1. 静态分析方法静态分析方法是通过对软件代码和设计文档的分析,评估软件架构的可行性和合理性。
在这种方法中,评估人员主要关注软件架构的逻辑结构、模块之间的关系以及设计原则的遵循情况。
静态分析方法可以通过代码审查、模型检查和形式化验证等手段进行。
2. 动态分析方法动态分析方法是通过对软件系统的运行状况进行监测和分析,评估软件架构的性能和可靠性。
在这种方法中,评估人员主要关注系统的响应时间、负载压力、错误处理能力以及系统的可伸缩性等方面。
动态分析方法可以通过性能测试、压力测试和故障注入等手段进行。
三、软件架构评估的步骤1. 确定评估目标和范围在进行软件架构评估之前,需要明确评估的目标和范围。
评估目标可以包括系统的性能、可靠性、可维护性等方面,评估范围可以是整个系统或者系统的特定模块。
2. 收集评估所需的信息评估人员需要收集系统的设计文档、代码和性能数据等信息,以便进行评估。
这些信息可以从项目文档、源代码控制系统和性能监测工具中获取。
3. 进行评估分析评估人员可以采用静态分析方法和动态分析方法进行评估分析。
通过分析软件架构的结构、关系和性能指标,评估人员可以确定系统存在的问题和潜在的风险。
4. 提出评估报告评估人员根据评估结果,撰写评估报告并提出改进建议。
评估报告应该包括评估的目标和范围、评估方法和结果、问题和风险的描述以及改进措施的建议。
软件体系结构评估
软件体系结构评估计算机101 聂英子 104161051.软件体系结构的发展历史软件体系结构本质上并不是一个全新的概念,早在20 世纪六七十年代,Dijkstra 和Parnas 等人对软件设计基本原则的研究就是对软件体系结构的最初认识[1].自20 世纪90 年代,Perry & Wolf 和Garlan & Shaw 分别提出了软件体系结构的概念[2,3]以来,软件体系结构得到了学术界和工业界的广泛重视.虽然10 多年来出现了上百个关于软件体系结构的定义(详见CMU-SEI 网站的收集),但是在以下方面的认识是一致的:1) 软件体系结构是软件系统的结构(或组织),包括构件(组成元素)、构件的外显特性和构件之间的关系;2) 软件体系结构是软件开发过程早期的一项软件制品,是一组使系统满足系统涉众(stakeholder)功能和非功能需求的设计决策。
Pressman 在他的书中这样写道“软件工程方法的唯一目标是:生产高质量的软件”[4].软件质量从软件工程的诞生起就一直得到广泛关注,但是人们对软件质量的认识却在发生变化,其内涵愈加丰富,从功能属性、性能属性,到可移植、可扩展、易用、易维护、安全、可靠等诸多非功能质量属性;从满足用户需求到满足系统涉众的需求.如何在一个系统中平衡诸多属性(这里,将系统对需求的满足也作为系统可表征的属性),给系统开发方提出了挑战.“缺陷放大模型”以及业界大量的统计数据表明[4]:修正软件缺陷的成本随着发现该缺陷的时间推迟而增长,而且50%~75%的缺陷是设计阶段注入.软件体系结构评估的目的就是为了在开发过程的早期,通过分析系统的质量需求是否在软件体系结构中得到体现,识别软件体系结构设计中的潜在风险,预测系统质量属性,并辅助软件体系结构决策的制定.2.软件体系结构的概念目前,软件体系结构的有关定义说法不一:有文献将软件体系结构定义为:在软件密集的大规模系统或具有类似需求和结构的软件产品线的开发中,必须从一个较高的层次来考虑组成系统的构件、构件之间的交互,以及由构件与构件交互形成的拓扑结构,这些要素应该满足一定的限制,遵循一定的设计规则,能够在一定的环境下进行演化。
软件体系结构评估
软件体系结构评估软件体系结构是指软件系统中组成部分之间的关系,以及这些关系如何满足系统需求的框架。
一个良好的软件体系结构能够确保系统的稳定性、可扩展性和可维护性。
因此,评估软件体系结构的质量和有效性至关重要。
本文将探讨软件体系结构评估的方法和重要性。
一、评估方法1.1 理论评估理论评估是通过对软件体系结构的模型化和分析来评估其可行性和优劣。
这种方法常用于早期阶段的软件开发,通过建立模型,识别潜在的问题和风险,并采取相应的措施进行改善。
理论评估可以帮助开发团队在软件开发的早期阶段发现并解决潜在的问题,减少后期的成本和风险。
1.2 需求评估需求评估是评估软件体系结构是否满足系统需求的关键环节。
在需求评估中,评估人员根据需求规格说明书和用户需求,对软件体系结构进行全面的分析和评估。
通过需求评估,可以确保软件体系结构具备满足用户需求的功能和性能。
1.3 架构评审架构评审是通过集体智慧和专业知识对软件体系结构进行评估。
在架构评审中,评估人员由软件开发团队成员、技术专家和相关领域的利益相关者组成。
他们对软件体系结构的设计原则、模块划分和接口设计进行全面的评估和审查。
架构评审可以帮助发现并纠正设计上的问题和缺陷,确保软件体系结构的质量和稳定性。
二、评估重要性评估软件体系结构的重要性不言而喻。
以下是评估软件体系结构的重要性的几个方面:2.1 风险管理通过评估软件体系结构,可以识别和管理系统中的风险。
软件开发中,存在着技术风险、成本风险、进度风险等多种风险。
评估软件体系结构有助于提前发现并评估这些风险,并采取相应措施进行管理和控制。
2.2 资源利用评估软件体系结构可以确保系统的高效利用资源。
合理的软件体系结构可以优化资源的使用和分配,提高系统的运行效率。
通过评估软件体系结构,可以发现资源利用不当的问题,并进行优化和改进。
2.3 系统性能软件体系结构直接影响系统的性能。
通过评估软件体系结构,可以确定系统的性能瓶颈和优化方案。
软件体系结构架构评审文档
基于机器学习的分布式系统故障诊断系统架构评审⽂档1.1 概述ATAM(A rchitecture T r a deoff A n a lysis M ethod)是由SEI提出的⼀种软件构架评估⽅法。
ATAM评估⽅法主要围绕以下⽬标展开:.精确描述软件的质量属性需求;.精确描述构架设计决策;.评估这些构架设计决策,并判定其是否满意地实现了这些质量需求。
ATAM评估⽅法并不是对每个可以量化的质量属性进⾏详尽的分析,⽽是让众多⻛险承担者(包括经理、开发⼈员、测试⼈员、⽤⼾、客⼾等)参与其中,以达到上述⽬标。
ATAM注重挖掘潜在⻛险,降低或缓和现有⻛险的⽅法。
在评估过程中,特别注重以下三点:⻛险、敏感点和权衡点。
1.2 构架涉众⽤⼾:系统的实际使⽤者,关⼼系统的功能和性能;管理员:负责系统的部署、配置和⽇常运维;开发⼈员:负责系统的设计和开发,关⼼架构的合理性和可维护性;测试⼈员:负责系统的质量保障,关⼼测试的便利性和覆盖⾯。
项⽬经理从开发组织和客⼾的⻆度表述“基于机器学习的分布式系统故障诊断系统”的商业⽬标,综合如下:从开发组织⻆度:开发⼀个模块化强、实时分析⾼效、⽤⼾界⾯友好、与外部其他系统兼容良好的分布式故障诊断系统。
这使得开发组织能够将整个产品或其某个模块销售给其他客⼾,同时由于优秀的界⾯设计和⾼效的故障处理能⼒⽽受到市场的欢迎。
从客⼾⻆度:系统操作简便,具有良好的可维护性和稳定性,能够及时且准确地处理分布式系统故障的诊断和分类等操作,从⽽降低运维难度,减少⼈⼒资源消耗,并提升系统的整体稳定性。
根据上述⽬标,质量属性可以划分为两类:⾼优先级质量属性:性能:系统应具有⾼效的故障数据处理和分析能⼒;安全性:确保故障数据的安全存储和传输;可⽤性:系统在多种环境下稳定运⾏;可维护性:系统应易于升级和维护;易⽤性:⽤⼾界⾯应直观易操作。
重要但优先级较低的属性:模块性:系统各模块之间解耦合,⽀持灵活配置和拓展;可修改性:系统能够⽅便地进⾏功能调整和扩展;可测试性:⽀持各层级的测试,保障系统质量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
国防科技大学计算机学院
4
评估时机和人员(2/2)
➢评估团队:其中的人员会实施评估并且进 行分析,团队中成员和她们确切的角色将 在后面定义;
分析软件体系结构方法
➢评估团队可以调查实现重要质量属性的软 件体系结构方法,这可以通过查看软件体 系结构决策并且找出它们的风险决策、无 风险决策、敏感点和折中点来完成。
➢这个步骤的输出包括:
➢与每个最高优先级的效果树场景相关的软件体 系结构方法或决策;
➢每个软件体系结构方法相关的分析问题;
➢设计人员对于问题的回答;
➢权值的决定是一个主观的过程,需要所有 的利益相关人员通过讨论甚至辩论来决定。
➢如果比较多个软件体系结构,每个支持的 直接场景的数量也会影响评估,因为直接 场景意味着无需修改系统就能够支持某个 用户任务。
国防科技大学计算机学院
33
内容
9.1 软件体系结构评估简介 9.2 ATAM方法 9.3 SAAM方法 9.4 ARID方法
国防科技大学计算机学院
16
软件体系结构介绍
➢首席设计师会以恰当的详细程度来介绍软 件体系结构
➢软件体系结构相关文档的详细程度,可用的时 间,行为和质量需求的实质
➢软件体系结构视图是设计师用于展示软件 体系结构的主要工具
➢功能、并发、代码和物理视图
国防科技大学计算机学院
17
确定软件体系结构方法
➢评估团队会得到软件体系结构方法,但并 不会对其进行分析,评估团队将要求设计 人员为任何使用的软件体系结构方法命名, 也将确定任何她们在上一个步骤中听到的 软件体系结构方法。
➢利益相关人员:是软件体系结构和基于它 开发的系统的既得利益者。
国防科技大学计算机学院
5
评估结果和质量属性(1/4)
➢软件体系结构评估会产生一个评估报告, 报告的形式和内容随着所使用评估方法的 不同而不一样。
➢通过软件体系结构评估可以回答下面两类 问题:
➢软件体系结构是否适用于基于它的软件系统? ➢如果对于目前的系统有多个软件体系结构可以
➢ 可分解性
➢ 支持生产系统某个子集的能力
➢ 概念完整性
➢ 能够统一所有层面系统设计概念的能力
国防科技大学计算机学院
9
评估的益处和代价(1/2)
➢评估的益处:
➢把利益相关人员召集在一起 ➢强制特定质量目标的接合 ➢生成冲突目标的优先级 ➢对软件体系结构有一个清晰的说明 ➢提高软件体系结构文档的质量 ➢发现跨项目重用的机会 ➢得到优化后的软件体系结构实践
➢通过集体讨论的方式来获取场景。 ➢场景的获取和收集往往需要重复多次,形
成场景和软件体系结构描述的过程是相关 的,同时也是迭代的。
国防科技大学计算机学院
28
描述软件体系结构
➢候选的软件体系结构描述必须使用软件体 系结构分析中各个成员能够理解的概念, 这些软件体系结构描述除了包括相关连接 子,还包括系统的计算构件和数据构件。
选择,那个是最合适的?
国防科技大学计算机学院
6
评估结果和质量属性(2/4)
➢ 如果一个软件体系结构满足以下两个标准, 那么就认为它是适宜的:
➢ 系统的结果满足质量目标。也就是说,系统 的运行是可预期的,并且运行速度足够快, 满足系统的性能或时间需求;系统的修改按 照计划的方式进行,并且满足安全约束,系 统能够提供必须的功能。
➢ 代表系统未来变化的场景到软件体系结构的对应,软 件体系结构中潜在的复杂度高的区域,同时还有对每 个变化工作量的估计;
➢ 系统功能的理解,或者不同软件体系结构功能数量的 比较。
国防科技大学计算机学院
26
SAAM方法步骤
国防科技大学计算机学院
27
场景的形成
➢场景应该能够说明系统必须支持的活动类 型,同时还必须说明客户参与者将给系统 带来的变化类型。
24
内容
9.1 软件体系结构评估简介 9.2 ATAM方法 9.3 SAAM方法 9.4 ARID方法
国防科技大学计算机学院
25
基本介绍
➢ 第一个具备文档说明并且广泛传播的软件体系结 构分析方法
➢ 方法假设
➢ 实践人员会定期地对她们的软件体系结构有所声明
➢ SAAM方法的输入
➢ 一组场景
➢ SAAM方法的输出
➢ 系统能够使用现有的资源来开发,现有资源 包括:人员、预算、任何遗留系统以及交付 之前分配的时间。也就是说,软件体系结构 是可构建的。
国防科技大学计算机学院
7
评估结果和质量属性(3/4)
➢ 性能
➢ 系统响应能力
➢ 可靠性
➢ 系统随着时间的进行而保持运行的能力
➢ 可用性
➢ 系统有效工作的时间比例
➢ 安全性
(L,H) 由于站点1的动力故障而需要 把请求转到站点3的时间要低于3秒
(M,M) 磁盘失败后重新启动的时间 要低于5分钟 (H,M) 用于监测并恢复网络失败的时间要 少于1.5分钟
(L,H) 信用卡和事务在99.999%的时间内 是安全的 (L,H) 用户数据局的授权在99.999% 的时 间内是安全的
➢ 阶段1:这个阶段以软件体系结构为中心,着重于 获取软件体系结构信息并且对其进行分析。
➢ 阶段2:这个阶段以利益相关人员为中心,着重于 获得利益相关人员的观点然后验证第一个阶段的 结果。
➢ 阶段3:在这个阶段中产生最终的报告,计划接下 来的动作,然后评估组织更新其业绩记录和经验 基础。
国防科技大学计算机学院
➢ 系统在为合法用户提供服务的同时抵制未授权的使用 请求和拒绝服务的能力
➢ 可变性
➢ 快速有效地修改系统的能力
国防科技大学计算机学院
8
评估结果和质量属性(4/4)
➢ 可移植性
➢ 系统在不同计算环境中运行的能力
➢ 功能性
➢ 系统能够按照预期工作的能力
➢ 变化性
➢ 软件体系结构能够通过扩展或修改来得到新的软件体 系结构的程度
➢软件体系结构评估的目的
➢在开发过程的早期,通过分析系统的质量需求 是否在软件体系结构中得到体现,来识别软件 体系结构设计中的潜在风险,预测系统质量属 性,并辅助软件体系结构决策的制定。
国防科技大学计算机学院
3
评估时机和人员(1/2)
➢早评估:评估不需要完整的软件体系结构 描述,可以在软件体系结构创建过程中的 任何阶段使用评估方法,对已经做出的软 件体系结构决策进行检查,或者确定还没 有决定的软件体系结构选项。
国防科技大学计算机学院
34
基本介绍
➢ATAM方法和SAAM方法适合于评估成熟的 软件体系结构。
➢在软件体系结构发布之前对其进行评估能 够及时发现设计中的错误、不一致或缺陷。
➢在中间阶段,需要的是一个简单、轻量级 的评估方法,主要关注于系统的适应性, 并且能够在没有详细设计文档的情况下使 用。
国防科技大学计算机学院
➢介绍评估的结果,比如已经划分优先级的 场景、用于理解和评估软件体系结构的问
题、一组指定的软件体系结构方法、一组 敏感点和折中点等等。
国防科技大学计算机学院
15
商业动机的介绍
➢项目决策者(最好是项目经理或系统关键 客户)会从商业的角度来介绍系统的概况 。
➢系统最重要的功能;任何技术、管理、经 济或政治方面的相关约束;与项目相关的 商业目标和上下文;主要的利益相关人员; 软件体系结构的驱动因素,即形成软件体 系结构的主要质量属性目标。
的行软 件体系结构的变化来支持场景
国防科技大学计算机学院
30
间接场景的单独评估
➢设计人员能够描述应该如何修改软件体系 结构来适应间接场景。
➢列出为了支持间接场景对软件体系结构必 须做的修改,然后还要估计修改的代价。
国防科技大学计算机学院
31
➢场景的形成和软件体系结构描述通常相互 促进
➢软件体系结构描述的缺乏将强制性地要求利益 相关人员考虑针对当前软件体系结构专门特征 的场景。
➢场景反映了软件体系结构的需求,从而必须在 软件体系结构描述中实现。
国防科技大学计算机学院
29
场景的分类和优先级划分
➢直接场景
➢场景的进行不需要修改软件体系结构。 ➢通过展示现有的软件体系结构在执行此场景时
性能
数据延迟 交易吞吐量
(M,L) 把客户数据库的存储延迟最小化 到200毫秒 (H,M) 实时地提供视频
(M,M) 最大化授权服务器的平均吞吐量
效果
可变性 可用性
安全性
国防科技大学计算机学院
新添加产品种类 修改COTS
硬件失败 COTS软件失败
数据保密性 数据完整性
19
(L,H) 在 少 于 20 人 - 月 的 代 价 下 加 入 CORBA 中间件 (H,L) 在少于4人-周的代价下修改Web用 户界面
12
基本介绍
➢ATAM方法能够反映一个软件体系结构满足 某些特定质量目标的程度,同时还能够给 出这些质量目标相互之间的交互方式。
➢ATAM方法也可对遗留系统进行分析,提高 对系统质量属性的理解。
➢ATAM方法基本过程
➢介绍、调查和分析、测试、报告
国防科技大学计算机学院
13
方法步骤
➢ATAM方法介绍
➢商业动机的介绍
➢软件体系结构介绍
➢确定软件体系结构方法
➢产生质量属性效果树
➢分析软件体系结构方法
➢集体讨论并确定场景的优先级
➢再次分析软件体系结构方法
➢展示结果
国防科技大学计算机学院
14
ATAM方法介绍