软件体系结构评估

合集下载

软件体系结构题库

软件体系结构题库

软件体系结构试题库(软件工程)一、判断题1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。

答案:√依据页码:P42、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。

答案:√依据页码:P73、超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。

答案:√依据页码:p84、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。

答案:√依据页码:P285、构件可以由其他复合构建和原子构件通过连接而成。

()答案:√依据页码:P376、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色()答案:√依据页码:P377、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。

其中,构件、连接件和配置是最基本的元素()答案:√依据页码:P378、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务()答案:X依据页码:P32、339、构件、连接件以及配置是体系结构的核心模型最基本的元素()答案:√根据页码:P3710、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。

答案:×依据页码:P8111、正交软件体系结构由组织层和线索的构件构成。

答案:√依据页码:P7012、基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。

答案:√依据页码:P5313、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。

()答案:√依据页码:P7014、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。

答案:×参考页码:P5515、相交关系R是一个等价关系。

答案:√16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。

软件体系结构 习题答案

软件体系结构 习题答案

软件体系结构习题答案软件体系结构习题答案1. 什么是软件体系结构?软件体系结构是指软件系统的整体结构和组织方式,它描述了软件系统中各个组件之间的关系以及它们的功能和行为。

软件体系结构通常包括多个层次,从整体到细节逐渐展开,以便更好地理解和设计软件系统。

2. 为什么软件体系结构很重要?软件体系结构对于软件系统的开发和维护具有重要意义。

它可以提供一个框架,指导软件开发者进行系统设计和实现。

良好的软件体系结构可以提高软件系统的可维护性、可扩展性和可重用性,同时降低开发和维护的成本。

3. 软件体系结构有哪些常见的模式?常见的软件体系结构模式包括分层模式、客户端-服务器模式、发布-订阅模式、模型-视图-控制器模式等。

每种模式都有其特定的应用场景和优缺点,开发者可以根据具体需求选择合适的模式。

4. 什么是分层模式?分层模式是一种常见的软件体系结构模式,将软件系统划分为多个层次,每个层次负责不同的功能。

通常包括表示层、业务逻辑层和数据访问层。

这种模式可以提高系统的可维护性和可扩展性,同时降低各个层次之间的耦合度。

5. 客户端-服务器模式是什么?客户端-服务器模式是一种常见的软件体系结构模式,将软件系统划分为客户端和服务器两部分。

客户端负责用户界面和用户交互,而服务器负责处理客户端的请求并提供相应的服务。

这种模式可以实现分布式计算和资源共享,提高系统的可伸缩性和可靠性。

6. 发布-订阅模式是什么?发布-订阅模式是一种常见的软件体系结构模式,用于实现消息传递和事件通知。

发布者将消息发布到一个或多个主题,而订阅者可以选择订阅感兴趣的主题并接收相关的消息。

这种模式可以实现解耦和灵活的通信方式,适用于分布式系统和异步通信。

7. 模型-视图-控制器模式是什么?模型-视图-控制器(MVC)模式是一种常见的软件体系结构模式,用于实现用户界面和业务逻辑的分离。

模型负责处理数据和业务逻辑,视图负责显示用户界面,而控制器负责协调模型和视图之间的交互。

软件体系结构的设计与评估

软件体系结构的设计与评估

软件体系结构的设计与评估随着计算机技术的发展,软件系统在我们的生活中扮演着越来越重要的角色。

由于软件系统的规模越来越大,模块越来越多,软件的结构设计和评估就变得尤为重要。

软件体系结构是指软件系统中各个模块之间相互关联的结构,设计和评估软件体系结构是确保软件系统的高性能和高稳定性的关键。

一、软件体系结构设计的重要性软件体系结构设计是软件开发的第一步。

它的目的是根据需求规格说明书确定软件系统的模块组成,进而确定模块之间的相互关系。

一个良好的软件体系结构应具备以下特点:1.可扩展性——软件体系结构应该可以很方便地扩展和修改,使得软件系统能够应对未来的需求变化。

2.可维护性——软件体系结构应该易于维护,使得开发人员能够很快地修复程序错误和漏洞。

3.可重用性——软件体系结构应该可以很容易地被复用,这可以大大提高软件开发的效率。

4.可移植性——软件体系结构应该很容易地在不同的操作系统和硬件平台上运行,以满足不同用户的需求。

设计一个良好的软件体系结构需要考虑多个因素,例如软件系统的规模、性能、可靠性等。

不同的因素需要不同的策略来解决,因此软件体系结构的设计是一个复杂而具有挑战性的任务。

二、软件体系结构设计的方法根据Martin Fowler的《企业应用架构模式》,软件体系结构设计可以分为以下四种方法:1.分层架构——将软件系统分为多个层次,每个层次都与下面的层次交互,从而促进模块化和可重用性。

2.分布式架构——将软件系统分成多个部分,每个部分都可以在不同的机器上运行,这可以大大提高系统的性能和可伸缩性。

3.面向服务架构——将软件系统分成多个服务,每个服务可以在不同的机器上运行,从而实现各个服务之间的相互调用。

4.事件驱动架构——在软件系统中使用事件来组织模块之间的通信。

以上四种架构方法都有各自的优缺点,开发人员需要根据需求选择最适用的方法。

三、软件体系结构评估的方法软件体系结构评估是指对软件体系结构进行评估和分析,以确定其是否满足设计要求,是否具有合理性、完备性和可行性。

软件体系结构习题答案

软件体系结构习题答案
答:层次结构将系统进行分级组织,其组织思想是:在层次结构中,每一层向上层提供服务,并作为客户向下层请求服务。分层系统的优点:
支持基于抽象程度递增的系统设计;支持功能增强;支持重用。分层系统的缺点:并不是每个系统都可以很容易的划分为分层的模式,甚至即使是层次化的,出于性能的考虑,也不得不吧一些低及或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。
(1)
(2)
(3)应用层:处于最底层,包括构件链接,构件接口和执行中间层:包括连接件配置,构件配置,构件描述及执行体系结构层:位于最上层,控制和管理整个体系结构,包括体系结构配置,体系结构描述和执行。
1、请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:软件开发模型有演化模型、螺旋模型、喷泉模型、智能模型等。传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。在
b/s风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/web服务器/数据库服务器。优点(1)基于b/s体系结构的软件,
系统安装,修改和维护全在服务器端解决。(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。(2)在数据查询等响应速度上,要远远低于c/s体系结构。(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。
3、sis和dssa分别用在哪些场合?
答:1.dssa只对某一个领域进行设计专家知识的提取,存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结
构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个领域。
2.dssa的特定领域参考体系结构通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。

软件体系结构

软件体系结构
3、软件体系结构的定义 软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描 述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不 仅指定了系统的组织结构和拓扑结构,并且显示系统需求和构成系统元素之间的对应关系, 提供了一些设计决策的基本原理。
1、MVC(模型-视图-控制):针对用户界面 模型:核心数据封装、逻辑和功能的计算,它独立于具体的界面表达和输入/输出操作。 视图:把模型数据等信息以特定形式展示给用户。 控制:处理用户与软件的交互操作。它接受用户的输入,将输入反馈给模型,进而实现对模 型的计算控制,是使模型和视图协调工作的部件。
2、软件重用的定义 软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。 可重用软件元素越大,重用粒度越大。
7、基于事件的隐式调用的定义 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事 件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调 用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一个模块中过程的调用。
8、基于事件的隐式调用的优缺点 优点: (1)为软件重用提供了强大的支持。 (2)为系统带来了方便。
end Attendห้องสมุดไป่ตู้e;
16、C2 对体系结构的描述 architecture MeetingScheduler is
conceptual_components Attendee;ImportantAttendee;MeetingInitiator;
connector connector MainConn is message_filter no_filtering; connector AttConn is message_filter no filtering; connector ImportantAttConn is message_filter no filtering;

《软件体系结构》教学大纲

《软件体系结构》教学大纲

《软件体系结构》教学大纲课程英文名称: 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.通过学习本课程应具备以下能力培养学生成为一名合格的软件分析师或软件工程师,并为其在该领域进一步深造打下坚实的基础。

三、课程教学内容第一章软件体系结构概论重点:了解软件危机的概念、产生以及表现。

软件体系结构大作业

软件体系结构大作业

软件体系结构课程考核题目及要求1、为什么要评估软件体系结构?(10分)答:近年来,人们逐渐认识到软件体系结构在软件开发中的重要地位,好的软件体系结构已经是决定一个软件系统成功的重要因素。

因此,软件工程研究人员将研究热点集中到软件体系结构的研究上。

目前已有一些公用的体系结构范型,但是软件体系结构的研究尚处在发展之中,用于对软件体系进行规格描述的模型、标记法和工具目前仍不是很正规,只是用特定的方式来理解并用于特定的系统,在很多方面的研究工作还需要继续进行。

软件体系结构在软件开发和管理中扮演着越来越重要的角色。

软件体系结构设计是对软件质量有着至关重要的影响,对于确保最终系统的质量有重要的意义。

软件体系结构评估,是对系统的某些值得关心的属性(性能、可靠性等)进行评价和判断。

评估的结果可用于确认潜在的风险,并检查设计阶段系统需求的质量,在系统被实际构造之前,预测其质量属性。

总之,软件体系结构的好坏,关系到软件产品的好坏,软件产品的好坏关系到软件公司的发展,而且体系结构评估可以减少后期的测试和纠错的开销、评估是挖掘隐性需求并将其补充到设计的最后机会、体系结构是开发过程中的中心、不良的体系结构会带来一塌糊涂的效果。

2、从哪些方面评估软件体系结构?(10分)①基于调查问卷或检查表的评估方式这一评估方式比较灵活自由,可评估多种质量属性,也可以在软件体系结构设计的多个阶段进行。

②基于场景的评估方式基于场景的方式由SEI首先提出并应用在体系结构权衡分析法(ATAM)和软件体系结构分析方法(SAAM)中,场景也就是对系统的使用或修改活动的支持程度。

③基于度量的评估方式度量是指为软件产品的某一属性所赋予的数值,如代码行数、方法调用参数、构件个数等。

3、ATAM评估方法的基本步骤是什么?(10分)1)陈述,包括通过它进行的信息交流①ATAM方法的陈述:评估负责人②商业动机的陈述:项目经理或系统客户③SA的陈述:系统设计人员2)调查与分析,包括对照体系结构方法评估关键质量属性需求④确定体系结构方法:系统设计人员⑤生存质量属性效用树(utility tree):说明构成系统效用的,质量属性(性能,有效性,安全性,可修改性,可用性),具体到场景层次,标注刺激/反应,并区分不同的优先级系结构方法。

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

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

浅谈软件体系结构评估技术摘要:作为在软件生命周期早期保障软件质量的重要手段之一,软件体系结构评估技术是软件体系结构研究中的一个重要组成部分。

现有的软件体系结构评估方法可以划分为3类:基于场景的评估方法、基于度量和预测的评估方法以及特定软件体系结构描述语言的评估方法。

按照团建体系结构评估技术的评价框架,分别从评估方法的特征、评估目标、关键技术等方面对这3类方法的特点进行介绍和对比。

关键词:软件体系结构;软件体系结构评估技术;软件质量软件工程方法的唯一目标就是:生产高质量的软件。

软件质量从软件工程诞生以来一直受到广泛关注。

二软件体系结构评估的目的就是为了在开发过程的早期,通过分析系统的质量需求是否在软件体系结构中得到体现,识别软件体系结构设计中的潜在风险,预测系统质量属性,并辅助软件体系结构决策的制定。

软件体系结构的评估技术一直是研究的热点问题。

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

一、基于场景的评估方法该类评估方法的基本观点是,大多数软件质量属性极为复杂,根本无法用一个简单的尺度来衡量。

同时,质量属性并不是出于隔离状态,只有在一定的上下文环境中才能做出关于质量属性的有意义的评判。

利用场景技术则可以具体化评估的目标,代替对质量属性(可维护性、可修改性、健壮性、灵活性等)的空洞表述,使对软件体系结构的测试成为可能。

所以,场景对于评估具有非常关键的作用,整个评估过程就是论证软件体系结构对关键场景的支持程度。

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机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定义了一个软件质量模型。

依照这个模型,共有六种特征:功能性、可靠性、可用性、有效性、可维护性和可移植性,并且它们被分成子特征,根据各个软件系统外部的可见特征来定义这些属性。

(3)风险承担者( Stakeholder)风险承担者就是对体系结构及根据该体系结构开发的系统有自己的要求的人员。

风险承担者涉及面很广,可能是最终用户、开发人员、项目经理等。

比较特殊的一类人员是项目决策者,即对评估结果感兴趣,并有权作出影响项目未来开发决策的人。

体系结构设计师也是很特殊的一位风险承担者,一定要让他参加整个评估过程。

(4)场景( Scenario)场景就是对于风险承担者与系统的交互的简短描述。

比如用户可能会描述如何使用该系统来完成某项功能,这时场景就很类似于面向对象技术中的用例。

在评估过程中,使用场景将那些模糊的不适用于分析的质量属性需求描述转换为具体的易于理解的表述形式。

评估技术在体系结构层次上有两类评估技术:询问和度量。

本文讨论的评估方法都至少采用了这两种技术中的一种,或是两种技术的结合(常同时混合使用,如下文讨论的ATAM就是一种混合方法) 。

a.询问技术。

生成一个体系结构将要问到的质量问题,可适用于任何质量属性,并可用于对开发中任何状态的任何部分进行调查。

询问技术包括场景、调查表、检查列表。

调查表是通用的、可运用于所有软件体系结构的一组问题;而检查列表则是对同属一个领域的多个系统进行评估,积累了大量经验后所得出的一组详细的问题。

两种技术都是事先准备好的,由评估人员用于搞清软件开发中反复出现的问题。

b.度量技术。

采用某种工具对体系结构进行度量。

它主要用于解答具体质量属性的具体问题,并限于特定的软件体系结构,因此与询问技术的广泛适用有所不同。

另外,度量技术还要求所评估的软件体系结构已经有了设计或实现的产品,这也与询问技术不同。

度量技术通常包括指标(Metrics) 、模拟、原型和经验。

2.基于场景的体系结构分析方法( SAAM)SAAM于1983 年提出,是最早形成文档并得到广泛使用的软件体系结构分析方法。

它最初用来分析SA 的可修改性,后来实践证明也可用于其他的质量属性如可移植性、可扩充性等。

SAAM使用场景作为指定和评估质量属性的表述手段。

如果是评估单个软件体系结构,SAAM将指出体系结构中未能满足质量属性需求的地方,并提出改进的意见。

而对于多个体系结构的比较,则明确哪一个能更好地满足质量属性需求。

图1 描述的是SAAM的评估活动。

图1 SAAM的评估活动总的来说,SAAM评估分六个步骤:(1) 场景开发。

通过集体讨论,风险承担者提出反映自己需求的场景。

(2) SA 描述。

SAAM定义了功能性、结构和分配三个视角来描述SA。

功能性指示系统做了些什么,结构由组件和组件间的连接组成,而从功能到结构的分配则描述了域上的功能性是如何在软件结构中实现的。

场景的形成与SA 的描述通常是相互促进的,并且需要重复的进行。

(3) 场景的分类。

在分析过程中需要确定一个场景是否需要修改该体系结构。

不需要修改的场景称为直接场景,需要修改的场景则称为间接场景。

另一方面需要对场景设置优先级,以保证在评估的有限时间内考虑最重要的场景。

(4) 单个场景的评估。

主要针对间接场景,列出为支持该场景所需要对体系结构做出的修改,并估计出这些修改的代价。

而对于直接场景只需弄清体系结构是如何实现这些场景的。

(5) 场景交互的评估。

两个或多个间接场景要求更改体系结构的同一个组件就称为场景交互。

对场景交互的评估,能够暴露设计中的功能分配。

(6) 总体评估。

按照相对重要性为每个场景及场景交互设置一个权值,根据权值得出总体评价。

SAAM是一种成熟的方法,已被应用到众多系统中,这些系统包括空中交通管制、嵌入式音频系统、WRCS(修正控制系统) 、KWIC(根据上下文查找关键词系统) 等。

3.体系结构权衡分析方法(ATAM)ATAM是在SAAM 的基础上发展起来的,SAAM 考察的是软件体系结构单独的质量属性,而ATAM提供从多个竞争的质量属性方面来理解软件体系结构的方法。

使用ATAM不仅能看到体系结构对于特定质量目标的满足情况,还能认识到在多个质量目标间权衡的必要性。

在ATAM中,体系结构设计师采用五个基本结构来描述SA ,即来源于Kruchten 的4 + 1 视图,只是将逻辑视图分成了功能和代码结构,并且加上这些结构之间适当的映射关系。

同时根据需要,还要采用其他的视图:动态视图,表明系统如何通信;系统视图,表明软件是如何分配到硬件的;源视图,表明组件和系统如何组成了对象。

ATAM的评估过程分为九个步骤。

图2 给出了每一个步骤,并将其分为四个阶段,图中循坏的箭头体现了SA 设计和分析改进可能的迭代过程。

ATAM通过理解体系结构方法(Approach) 来分析一个体系结构。

体系结构方法是设计师设计过程中采用何种体系结构风格的决策,它体现了实现系统的质量属性目标的策略。

在ATAM中,基于属性的体系结构风格(Attribute2 Based Architec2tural Style ,ABAS) 有助于体系结构风格的概念转换为基于特定质量属性模型的推理。

在步骤4 中就是通过设计师的描述,从而确定该体系结构为满足质量属性需求所使用的体系结构方法。

通过生成质量属性效用树,将商业驱动因素以场景的形式转换成具体的质量属性需求,并对这些质量属性场景设置相对优先级。

步骤6 中将步骤4 中确定的体系结构方法与生成效用树得到的质量属性需求联系起来进行分析,从而确认与效用树中最高优先级质量属性相联系的体系结构方法,生成针对特定质量属性的提问,并且确认有风险决策、无风险决策、敏感点和权衡点。

风险承担者参与集体讨论场景并设置场景的优先级,再将这一组场景与效用树中生成的场景进行对比。

场景分为三类:用例场景(系统的典型使用,被用来获取信息) 、生长场景(预料到的对系统的更改) 和探索场景(期望用来“压垮”系统的极端更改) 。

使用不同类型的场景,可以从多个角度来考察体系结构。

最终的评估结果所包含的内容也可以从图2 上看出来。

在体系结构的设计过程中,ATAM提出了一种迭代的改进。

当所有的评估活动结束后,将评估的结果与需求作比较。

如果系统预期的行为和需求能充分地接近,设计者就可以继续进行更高级别的设计或实现;如果分析发现了问题,就对所设计的SA、模型或需求进行修改,从而开始了一次迭代的过程。

随着发展,ATAM愈来愈成熟,被用到众多系统中。

4.体系结构级别上的软件维护预测(ALPSM)ALPSM方法通过在软件体系级别上考察场景的影响,来评估一个软件系统的可维护性。

可维护性在IEEE 610中定义。

该方法采用场景来具体化可维护性需求,并且用来分析体系结构,对于系统所需的维护性工作做出预测。

预测的结果既可用来比较两个可供选择的体系结构,也可用来平衡可维护性与其他的质量属性。

图3 给出了ALPSM评估方法的输入和输出。

ALPSM方法包括如下六个步骤:(1) 确认维护任务的分类。

这种分类是基于应用或特定域的,因此并不抽象。

(2) 合成场景。

选择对于维护类别有代表性的场景,一般每一类选10个场景。

这里的场景与通常讲的描述系统行为的用例场景不同,它描述的是与系统相关的可能发生的活动或活动的序列。

一个变化场景则描述了系统的某个维护任务。

(3) 给每个场景分配一个权值。

定义权值为在某个特定间隔时间内,这个场景导致一个维护任务的相对概率。

产生场景的权值要么使用历史维护数据来推断,要么由体系结构设计师或域专家来估算。

(4) 估算所有组件的大小。

组件的大小影响在组件中实现一个改动所需的工作,因此通过估算组件的大小来估算维护工作。

(5) 分析场景。

对于每个场景,评估在体系结构及其组件中实现该场景带来的影响,最终发现哪些场景受到影响及被改变到何种程度。

(6) 计算所预计的维护工作。

预测值是每个维护场景的工作的平均加权,体现了每个维护任务的平均工作量。

用下式来表示:P(Sn) 场景n 的概率权值;V(Sn ,Cm) 场景n 中受影响的组件m 的数量;Ks = 场景的数目;Kc = 体系结构中组件的数目。

ALPSM方法适用于SA 设计期间,而且还能在设计过程中反复地进行评估。

它仅仅需要体系结构设计人员参与,不需其他的风险承担者,而且还考虑到专家意见和历史数据的使用。

此方法已经用在一个血液渗析系统中。

5.总结纵观本文介绍的三种有代表性的体系结构评估方法,SAAM以场景为中心,简单易用,但仅仅是粗粒度的分析;而ATAM来源于SAAM、体系结构风格和质量属性,把对多个质量属性的权衡放在首要位置,并结合场景;ALPSM则是一种轻巧灵活的方法,为设计师提供一个度量工具,使得可以在设计期间重复地评估软件体系结构。

相关文档
最新文档