第9章 软件体系结构评估
第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图中抽取面向对象体系结构的度量。
软件体系结构评估
ATAM评估方法
ATAM:Architecture Tradeoff Analysis Method(体系结构 权衡分析方法) 特点
评估SA对特定质量目标的满足情况,揭示诸多质量目标之间 的相互作用和权衡 结构化的评估方法,可重复
方法来源
体系结构风格 质量属性分析方法
ATAM步骤简述(1/2)
21
ATAM步骤详述(5/13)
第5步:生成质量属性效用树 评估小组与项目决策者合作,共同确定出该系统的最重要的 质量属性目标,并设臵优先级,进行进一步的细化,该步指 导其他的分析 这种方式将所有风险承担者和评估小组的精力集中到对系统 的成功与否具有重要意义的体系结构的方面上 效用树为我们提供了一种直接而有效地将系统的商业驱动因 素转换为具体的质量属性场景的机制,该步骤的输出结果是 对具体质量属性需求(以场景形式实现)的优先级的确定
基于场景的评估方式(1)
基于场景的方式由SEI首先提出并应用在体系结构权 衡分析方法(ATAM)和软件体系结构分析方法 (SAAM)中。 这种软件体系结构评估方式分析软件体系结构对 场景也就是对系统的使用或修改活动的支持程度, 从而判断该体系结构对这一场景所代表的质量需求 的满足程度。例如,用一系列对软件的修改来反映 易修改性方面的需求,用一系攻击性操作来代表安 全性方面的需求等。
19
ATAM步骤详述(3/13)
第3步:体系结构陈述 在适合的细节层次上描述体系结构,体系结构信息直接影响 可能的分析及分析的质量。在进行更实质的分析之前,评估 小组通常需要询问更多的有关体系结构的信息
技术约束条件,诸如要求使用的操作系统、硬件、中间件等 该系统必须要与之交互的其他系统 用以满足质量属性需求的体系结构方法、样式、模式和采用 的机制 高层体系结构视图:功能、代码、并发、物理
软件体系结构评估
计算机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.事件驱动架构——在软件系统中使用事件来组织模块之间的通信。
以上四种架构方法都有各自的优缺点,开发人员需要根据需求选择最适用的方法。
三、软件体系结构评估的方法软件体系结构评估是指对软件体系结构进行评估和分析,以确定其是否满足设计要求,是否具有合理性、完备性和可行性。
软件体系结构-完整PPT课件张友生.doc
软件体系结构课程性质:必修学时/学分:40/2.5关于教材◇出版社:清华大学出版社◇作者:张友生课程内容◇软件体系结构概论◇软件体系结构建模◇软件体系结构风格◇软件体系结构描述◇动态软件体系结构◇Web服务体系结构◇基于体系结构的软件开发◇软件体系结构的分析与测试◇软件体系结构评估◇软件产品线体系结构◇软件危机的表现◎软件成本日益增长◎开发进度难以控制◎软件质量差◎软件维护困难第1章软件体系结构概论1.1 从软件危机谈起◇软件危机的表现◎软件成本日益增长20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%。
到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右。
而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到85%左右。
第1章软件体系结构概论1.1 从软件危机谈起◇软件危机的表现◎开发进度难以控制由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。
在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。
盲目增加软件开发人员并不能成比例地提高软件开发能力。
相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。
第1章软件体系结构概论1.1 从软件危机谈起◇软件危机的表现◎软件质量差软件项目即使能按预定日期完成,结果却不尽人意。
1965年至1970年,美国范登堡基地发射火箭多次失败,绝大部分故障是由应用程序错误造成的。
在“软件作坊”里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的“一厢情愿”而已,这是造成软件不能令人满意的重要因素。
高级软件工程(第九章) 软件体系结构(2017课件)
管道/过滤器体系结构风格
管道/过滤器风格也存在着一定的问题: 系统处理过程是批处理方式,过滤器具有很强 的独立性,对于每一个过滤器,设计者必须考 虑从输入到输出的转换过程,这种方式会造成 过滤器对输入数据的批量转换处理; 不适合用来设计交互式应用系统; 由于没有通用的数据传输标准,因此每个过滤 器都需要解析输入数据和合成数据,添加和去 除标记需要花费一定的时间,从而导致了系统 性能下降,增加了过滤器设计的复杂性。
管道/过滤器体系结构风格
管道/过滤器风格具有以下优点: 简单性,允许将系统的输入和输出看作是各个 过滤器行为的简单组合,独立的过滤器能够减 小构件之间的耦合程度; 系统具有可扩展性和可进化性,各个过滤器是 相互独立的,因此可以很容易地将新过滤器添 加到现有的系统之中,以扩展系统的业务处理 能力,原有过滤器可以很方便地被改进的过滤 器所替代;
12
分层体系结构风格
在分层风格中,系统将划分为一个层次结构; 每一层都具有高度的内聚性,包含抽象程度一 致的各种构件,支持信息隐藏; 分层有助于将复杂系统划分为独立的模块,从 而简化程序的设计和实现; 通过分解,可以将系统功能划分为一些具有明 确定义的层,较高层是面向特定应用问题的, 较低层更具有一般性。
数据共享体系结构风格
数据共享风格也称为仓库风格,有两种不同类 型的软件元素: 一种是中央数据单元,也称为资源库,用于 表示系统的当前状态,另一种是相互依赖的 构件组 中央数据单元和构件之间可以进行信息交换, 这是数据共享体系结构的技术实现基础; 根据所使用的控制策略不同,数据共享体系结 构可以分为两种类型: 一种是传统的数据库,另一种是黑板
13
分层体系结构风格
每层都为上层提供服务,同时又利用了下层的 逻辑功能; 每层只对相邻层可见,层次之间的连接件是协 议和过程调用,用以实现各层之间的交互; 上层通过下层提供的接口来使用下层的功能, 而下层却不能使用上层的功能; 良好的层次结构将有助于对逻辑功能实施灵活 的增加、删除和修改。
电子科技大学,软件工程第九章进行体系结构设计 PPT资料共15页
调用和返回体系结构 主程序/子程序体系结构 远程过程调用体系结构
面向对象体系结构
层次体系结构 各模块实现功能的层次不一样
• 9.3.2 体系结构模式
不同模式操作下的一些特征---并发性、持久性、分布性。
• 9.3 体系结构风格和模式
对完成同一种或同一类工作,不同的设计人员在体系结构 设计的方式各不一样,这种方式的一定程度上的抽象,就 是体系结构风格。
体系结构模式就是风格的具体体现,或者体系结构设计的 一个框架。
• 9.3.1 体系结构风格的分类
以数据为中心的体系结构 特点:客户构件基本独立
• 9.6 映射数据流到软件体系结构
变换流 事务流 变换映射 事务映射
更多精品资源请访问
docin/sanshengshiyuan doc88/sanshenglu
是一定程度上的抽象,非可运行的软件。
凭借体系结构图,软件开发人员可以: 分析设计能否完全满足需求 为设计中某些方面的变更提供指导 降低由于软件构造不合理带来的风险
• 9.2 数据设计
数据设计:把分析模型中定义的数据对象转化成软件构件级的 数据结构,或整个程序级的数据库结构。
体系结构级(系统结构级,或程序级)的数据设计:
• 9.5 评估可选的体系结构设计
实现一个具体的任务可以有多种不同的体系结构,哪一个 更好?
体系结构权衡分析方法(SEI): 核心:通过孤立地考虑每个属性来评估质量属性
体系结构的复杂性
体系结构描述语言
UML 体系结构描述语言(architectural description language,ADL)
体系结构各章思考题 期末必考
《软件体系结构》各章思考题第1章软件体系结构概论1、根据自己的经验,谈谈对软件危机的看法。
2、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。
3、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的。
4、为什么要研究软件体系结构?5、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成?6、在软件体系结构的研究和应用中,你认为还有哪些不足之处?第2章软件体系结构建模1、选择一个规模合适的系统,为其建立“4+1”模型。
2、引入了软件体系结构以后,传统软件过程发生了哪些变化?这种变化有什么好处?3、软件体系结构的生命周期模型与软件生命周期模型有什么关系?第3章软件体系结构风格1、层次系统结构和基于消息的层次系统结构有什么区别?2、试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。
3、组织或参与一个采用B/S和C/S混合体系结构的软件项目的开发,总结开发经验。
4、组织或参与一个采用三层体系结构的软件项目的开发,总结开发经验。
5、SIS和DSSA分别用在哪些场合?6、在软件开发中,采用异构结构有什么好处,其负面影响有哪些?第4章软件体系结构描述1、体系结构描述有哪些方法?有哪些标准和规范?2、体系结构描述语言与程序设计语言有什么区别?3、选择一个规模适中的系统,使用UML为其建模。
第5章动态软件体系结构1、什么是动态软件体系结构?动态软件体系结构与静态软件体系结构有什么区别?2、基于构件的动态软件体系结构模型的层次结构是什么?3、试比较Dynamic Wright和Darwin的特点。
4、试用Dynamic Wright描述B/S结构第6章Web服务体系结构1、什么是Web服务体系结构?与传统的结构相比,使用Web服务有哪些好处?2、在Web服务中,如何实现其松散耦合的特点?3、试分析服务提供者、服务请求者和服务代理三者的作用,以及它们之间的工作流程。
《软件体系结构》教学大纲
《软件体系结构》教学大纲课程英文名称: Software Architecture课程编号:050302一、课程说明1.课程性质《软件体系结构》课程,是软件工程专业硕士研究生的主干课程。
2.课程的目的和任务软件体系结构主要介绍软件体系结构和中间件的基本概念,使学生对软件体系结构有比较深入的了解。
通过学习,使得学生在软件工程思想的基础上,更进一步掌握软件分析和软件开发的方法和思想,并能在实际中应用。
培养学生成为一名合格的软件分析师或软件工程师,并为其在该领域进一步深造打下坚实的基础。
3.适用专业软件工程,计算机科学与技术专业4.学时与学分学分:3 学时:45 讲授学时:45 实践学时:05.先修课程软件工程,数据结构与算法,操作系统,程序设计6.推荐教材或参考书目教材名称:《软件体系结构》张友生编著清华大学出版社ISBN:7302078106 2004版主要参考书目:《软件体系结构理论与实践》冯冲,江贺,冯静芳编著人民邮电出版社2004版7.主要教学方法与多媒体要求主要教学方法:理论和技术教学,案例驱动教学多媒体要求:多媒体教学占80%8.考核方式1、平时成绩(书面作业+上机实验+考勤)2、课程大作业3、期末闭卷笔试4、总成绩 = 笔试成绩(60/100)+ 平时成绩(20/100)+ 大作业成绩(20/100)9.课外自学要求书本上没讲过的内容,让学生自学。
推荐的教材,学有余力的学生可以自学。
二、教学基本要求和能力培养要求1.通过本课程的教学环节,达到以下基本要求1)、应使学生全面了解软件体系结构的概念。
2)、使学生对软件体系结构有比较深入的了解,掌握软件体系结构的思想,了解软件体系结构的设计过程。
3)、使学生在了解软件体系结构的基础上,能用之于软件开发的实践过动中去。
2.通过学习本课程应具备以下能力培养学生成为一名合格的软件分析师或软件工程师,并为其在该领域进一步深造打下坚实的基础。
三、课程教学内容第一章软件体系结构概论重点:了解软件危机的概念、产生以及表现。
第9章软件体系结构评估
体系结构评估的参与者
风险承担者(Stakeholders),是对体系结构及 根据该体系结构开发的系统有自己要求的人员。 评估小组:负责组织评估并对评估结果进行分 析。组成人员通常为评估小组负责人、评估负 责人、场景书记员、进展书记员、计时员、过 程观察员、过程监督者、提问者。
场景
பைடு நூலகம்
基于场景的软件体系结构评估方式 基 于 场 景 的 方 式 由 SEI 首 先 提 出 并 应 用 在 SAAM 和 ATAM 中,目前,很多体系结构评估 方法都采用场景作为基本技术。这些体系结构 评估方法分析软件体系结构对场景,也就是对 系统的使用或修改活动的支持程度,从而判断 该体系结构对这一场景所代表的质量需求的满 足程度。
8.2软件体系结构的主要评估技术
体系结构评估方法可以通过分析体系结构设 计所产生的模型,预测系统的质量属性并界 定潜在的风险。从精度上看,体系结构评估 方法可以分为两大类:一类是基于形式化方 法、数学模型和模拟技术,得出量化的分析 结果;另一类是基于调查问卷、场景分析、 检查表等手段,侧重得出关于软件体系结构 可维护性、可演化性、可复用性等难以量化 的质量属性。
场景交互的评估。两个或多个间接场景要求 更改体系结构的同一个组件就称为场景交互。 对场景交互的评估, 能够暴露设计中的功能 分配。 总体评估。按照相对重要性为每个场景及场 景交互设置一个权值, 根据权值得出总体评 价。
ATAM
体系结构权衡分析法 ATAM (Architecture Trade of Analysis Method) 方法基于一 种假设,即体系结构风格是体系结构质量属 性 最 主 要 的 限 定 , 因 此 采 用 了 ABAS(Attribute Based Architecture Styles)来限定体系结构的描述形式。
第九章-软件体系结构评估
郑州大学软件学院 赵哲
17
可修改性-质量场景图
用户界面要求修改
郑州大学软件学院 赵哲
18
质量属性II-P259
功能性 可变性 集成性 互操作性
郑州大学软件学院 赵哲
19
互操作性
Interoperation 为外部可视功能和数据结构提供软件入 口 别的程序可能会与你写的程序交换数据, 所以,你在写程序时写好入口,方便与 别的程序交互。
比如:系统是否过载,这会影响到响应
郑州大学软件学院 赵哲 29
场景
制品
被刺激的某个系统元素
比如:整个系统或者系统的部分
响应
刺激到达后所采取的行动 结果 对其他的影响
郑州大学软件学院 赵哲 30
响应度量
质量场景图
制品
刺激 源
刺激
环境
反应
响应 度量
31
郑州大学软件学院 赵哲
场景举例
郑州大学软件学院 赵哲 5
评估的时机
前期
又叫发现型评估 找出难以实现的需求,并划分其优先级 为新系统或扩展评估老系统 使用户明确是否可以通过更改老系统来满足 新的质量以及功能需求
郑州大学软件学院 赵哲 6
后期
质量属性
从用户的角度来讲 可用、易用、完整、灵活、高效、健壮、 互操作性强等 从开发人员的角度来讲 可维护、可移植、可集成、可扩展、可 重用、可测试等 质量属性的分类有很多种 运行时可见属性,维护时所见属性
郑州大学软件学院 赵哲 38
软件体系结构评估
软件体系结构评估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 系统性能软件体系结构直接影响系统的性能。
通过评估软件体系结构,可以确定系统的性能瓶颈和优化方案。
第9章 软件体系结构评估
描述评价结果
❖ 最后,要把ATAM分析中所得到的各种信息 进行归纳,并反馈给风险承担者。
❖ 评估结果包括:
已文档化的体系结构方法或风格 场景及优先权 基于属性的问题 效用树 所发现的风险决策 已文档化的风险决策 所发现的敏感点和权衡点
.
ATAM评估的四个阶段
❖ 阶段1:评估团队在这个阶段被建立,同时评估组 织与需要评估软件体系结构的组织建立合作伙伴关 系。
❖ 间接场景
场景没有被直接支持,但存在一些可表 示的软件体系结构的变化来支持场景
.
对间接场景进行单个评估
❖ 设计人员需要说明如何修改软件体系 结构才能适应间接场景。并列出支持 场景必须对软件体系结构做得修改, 然后还要估计修改的代价。
.
评估场景的相互作用
❖ 当多个间接场景需要修改软件体系 结构的同一个构件时,我们就称这 些场景在此构件上相互作用。
作 ❖ 可控性:保证对信息的传播及内容具有控制能力,防止为
非法者使用。
.
质量属性(3/3)
5.可修改性
定义:可修改性是指能够快速有效地修改 系统的能力。
可修改性的分类:
❖ 可维护性:在错误发生后“修复”软件系统的能力 ❖ 可扩展性:它以添加新功能或修改完善现有功能来考虑
软件的未来成长 ❖ 结构重组:重新组织软件系统的构件及构件间的关系 ❖ 可移植性:系统能够在不同计算环境(硬件或软件)下运
❖ 通过集体讨论的方式获取场景。 ❖ 形成场景和软件体系结构描述的过
程是相关的,同时也是迭代的。
.
描述体系结构
❖ 结构设计师应该采用参加评估的所 有人员都能够理解的形式,对待评 估的体系结构进行描述。
❖ 描述既可以采用自然语言,也可以 采用形式化语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据保密性
安全性 数据完整性
步骤6、分析软件体系结构方法
评估团队可以调查实现重要质量属性的软件体系
结构方法,这可以通过查看软件体系结构决策并 且找出它们的风险决策、无风险决策、敏感点和 折中点来完成。 这个步骤的输出包括: 与每个最高优先级的效果树场景相关的软件体 系结构方法或决策; 每个软件体系结构方法相关的分析问题; 设计人员对于问题的回答; 所确定的风险决策、无风险决策、敏感点和折 中点。
ARID方法步骤
阶段1、排练
步骤1、确定评审人 步骤2、准备设计情况介绍 步骤3、准备种子场景 步骤4、准备材料 阶段2、评审 步骤1、介绍ARID方法 步骤2、介绍设计 步骤3、场景的集体讨论和优先级划分 步骤4、应用场景 步骤5、总结
SAAM方法步骤
步骤1、场景的形成
场景应该能够说明系统必须支持的活动类型,同
时还必须说明客户参与者将给系统带来的变化类 型。 通过集体讨论的方式来获取场景。 场景的获取和收集往往需要重复多次,形成场景 和软件体系结构描述的过程是相关的,同时也是 迭代的。
步骤2、描述软件体系结构
候选的软件体系结构描述必须使用软件体系结构
可移植性
系统在不同计算环境中运行的能力 功能性 系统能够按照预期工作的能力 变化性 软件体系结构能够通过扩展或修改来得到新的软件体 系结构的程度 可分解性 支持生产系统某个子集的能力 概念完整性 能够统一所有层面系统设计概念的能力
评估的益处和代价(1/2)
评估的益处:
评估人员(2/2)
评估团队:其中的人员会实施评估并且进行分析
,团队中成员和他们确切的角色将在后面定义; 利益相关人员:是软件体系结构和基于它开发的 系统的既得利益者。
评估结果和质量属性(1/4)
软件体系结构评估会产生一个评估报告,报告的
形式和内容随着所使用评估方法的不同而不一样 。 通过软件体系结构评估可以回答下面两类问题: 软件体系结构是否适用于基于它的软件系统? 如果对于目前的系统有多个软件体系结构可以 选择,那个是最合适的?
评估团队会进行与步骤6中相同的活动,把新生成
的最高级别的场景对应到还没有发现的软件体系 结构元素上。 如果步骤7并没有产生任何在之前的分析过程没有 被发现的高优先级场景,那么步骤8就是测试活动 ,其目标就是尽量完整地发现信息。
步骤9、展示结果
方法结果中应该包括以下元素
已具备文档的软件体系结构方法 场景集合以及它们的优先级划分 基于属性的问题集合 效果树 发现的风险决策 已具备文档的无风险决策 发现的敏感点和折中点
步骤2、商业动机的介绍
项目决策者(最好是项目经理或系统关键客户)
会从商业的角度来介绍系统的概况 。 系统最重要的功能;任何技术、管理、经济或政 治方面的相关约束;与项目相关的商业目软件体系结构的主要质量属性目 标。
步骤3、软件体系结构介绍
新添加产品种类 可变性 修改COTS
(L,H) 在 少 于 20 人 - 月 的 代 价 下 加 入 CORBA 中间件 (H,L) 在少于4人-周的代价下修改Web用 户界面 (L,H) 由于站点1的动力故障而需要 把请求转到站点3的时间要低于3秒
效果
硬件失败 可用性
COTS软件失败
(M,M) 磁盘失败后重新启动的时间 要低于5分钟 (H,M) 用于监测并恢复网络失败的时间要 少于1.5分钟 (L,H) 信用卡和事务在99.999%的时间内 是安全的 (L,H) 用户数据局的授权在99.999% 的时 间内是安全的
内容
9.1 软件体系结构评估简介
9.2 ATAM方法
9.3 SAAM方法
9.4 ARID方法
ARID基本介绍
ATAM方法和SAAM方法适合于评估成熟的软件体系
结构。 在软件体系结构发布之前对其进行评估能够及时 发现设计中的错误、不一致或缺陷。 在中间阶段,需要的是一个简单、轻量级的评估 方法,主要关注于系统的适应性,并且能够在没 有详细设计文档的情况下使用。
适应间接场景。 列出为了支持间接场景对软件体系结构必须做的 修改,然后还要估计修改的代价。
步骤5、评估场景交互
当多个间接场景需要修改软件体系结构的某个构
件时,它们就被认为在此构件中进行交互。 场景交互揭示了产品设计中的功能分配 。 场景交互能够暴露出软件体系结构文档的不够 详细,没有达到结构分解的要求。
首席设计师会以恰当的详细程度来介绍软件体系
结构 软件体系结构相关文档的详细程度,可用的时 间,行为和质量需求的实质 软件体系结构视图是设计师用于展示软件体系结 构的主要工具 功能、并发、代码和物理视图
步骤4、确定软件体系结构方法
评估团队会得到软件体系结构方法,但并不会对
其进行分析,评估团队将要求设计人员为任何使 用的软件体系结构方法命名,也将确定任何她们 在上一个步骤中听到的软件体系结构方法。 这些软件体系结构方法定义了系统的关键结构, 描述了系统的成长方式、应对变化的方式、抵抗 攻击的方式、与其它系统集成的方式等等。
ATAM方法步骤
1、ATAM方法介绍 2、商业动机的介绍 3、软件体系结构介绍 4、确定软件体系结构方法 5、产生质量属性效果树 6、分析软件体系结构方法 7、集体讨论并确定场景的优先级 8、再次分析软件体系结构方法 9、展示结果
步骤1、ATAM方法介绍
评估负责人给召集在一起的利益相关人员介绍
内容
9.1 软件体系结构评估简介
9.2 ATAM方法
9.3 SAAM方法
9.4 ARID方法
SAAM基本介绍
第一个具备文档说明并且广泛传播的软件体系结构分析方
法 方法假设 实践人员会定期地对他们的软件体系结构有所声明 SAAM方法的输入 一组场景 SAAM方法的输出 代表系统未来变化的场景到软件体系结构的对应,软 件体系结构中潜在的复杂度高的区域,同时还有对每 个变化工作量的估计; 系统功能的理解,或者不同软件体系结构功能数量的 比较。
内容
9.1 软件体系结构评估简介
9.2 ATAM方法
9.3 SAAM方法
9.4 ARID方法
ATAM基本介绍
ATAM方法能够反映一个软件体系结构满足某些特
定质量目标的程度,同时还能够给出这些质量目 标相互之间的交互方式。 ATAM方法也可对遗留系统进行分析,提高对系统 质量属性的理解。 ATAM方法基本过程(4组) 介绍、调查和分析、测试、报告
步骤6、形成总体评估
根据每个场景对于系统成功的相对重要程度,每
个场景会被赋予一个权重,这个权重常常也与场 景支持的商业目标相关。 权值的决定是一个主观的过程,需要所有的利益 相关人员通过讨论甚至辩论来决定。 如果比较多个软件体系结构,每个支持的直接场 景的数量也会影响评估,因为直接场景意味着无 需修改系统就能够支持某个用户任务。
四个阶段
阶段1(步骤1-3):评估团队在这个阶段被创建,同时评估
组织与需要评估软件体系结构的组织建立合作伙伴关系。 阶段2(步骤4-6):这个阶段以软件体系结构为中心,着重 于获取软件体系结构信息并且对其进行分析。 阶段3 (步骤7-8) :这个阶段以利益相关人员为中心,着 重于获得利益相关人员的观点然后验证第一个阶段的结果。 阶段(步骤9) :在这个阶段中产生最终的报告,计划接下 来的动作,然后评估组织更新其业绩记录和经验基础。
把利益相关人员召集在一起 强制特定质量目标的接合 生成冲突目标的优先级 对软件体系结构有一个清晰的说明 提高软件体系结构文档的质量 发现跨项目重用的机会 得到优化后的软件体系结构实践
评估的益处和代价(2/2)
评估的代价
人员开销 与参加软件体系结构评估的人员相关的机会成本 减小评估代价的方法 在相同领域内的重用
评估结果和质量属性(3/4)
性能
系统响应能力 可靠性 系统随着时间的进行而保持运行的能力 可用性 系统有效工作的时间比例 安全性 系统在为合法用户提供服务的同时抵制未授权的使用 请求和拒绝服务的能力 可变性 快速有效地修改系统的能力
评估结果和质量属性(4/4)
ATAM方法。 ATAM方法中步骤的简要介绍。 介绍评估中使用的获取和分析技术,包括效果树 的生成、基于软件体系结构方法的获取和分析以 及场景的集中讨论和优先级划分。 介绍评估的结果,比如已经划分优先级的场景、 用于理解和评估软件体系结构的问题、一组指定 的软件体系结构方法、一组敏感点和折中点等。
步骤5、产生质量属性效果树
评估团队与项目决策者(软件体系结构团队、项
目经理和客户)一起工作,来确定系统最重要的 质量属性目标,并对它们进行优先级划分和精化 。
性能 数据延迟 交易吞吐量 (M,L) 把客户数据库的存储延迟最小化 到200毫秒 (H,M) 实时地提供视频 (M,M) 最大化授权服务器的平均吞吐量
步骤3、场景的分类和优先级划分
直接场景
场景的进行不需要修改软件体系结构。 通过展示现有的软件体系结构在执行此场景时 的行为来决定。 间接场景 场景没有被直接支持,但存在一些可表示的软 件体系结构的变化来支持场景
步骤4、间接场景的单独评估
设计人员能够描述应该如何修改软件体系结构来
分析中各个成员能够理解的概念,这些软件体系 结构描述除了包括相关连接子,还包括系统的计 算构件和数据构件。 场景的形成和软件体系结构描述通常相互促进 软件体系结构描述的缺乏将强制性地要求利益 相关人员考虑针对当前软件体系结构专门特征 的场景。 场景反映了软件体系结构的需求,从而必须在 软件体系结构描述中实现。
第九章 软件体系结构评估
1
内容
9.1 软件体系结构评估简介
9.2 ATAM方法