问答题 大型复杂软件系统开发所关注的问题之一是质量,在软件系统的早期设计阶段,选择合适的体系结构对系统许多关键质量属性(如可用性、可修改性、性能、安全性、易用性等)起着决定性的影响。不恰当的软件体系结构将给项目开发带来灾难。因此,尽早分析和评估一个系统的体系结构非常重要。软件体系结构分析和评估的目的是为了识别体系结构中潜在的风险,验证系统的质量需求在设计中是否得到体现,预测系统的质量并帮助开发人员进行设计决策。 软件体系结构的评估通常是指评估参与者在评估过程中利用特定评估方法对系统质量属性进行分析与评估。基于调查问卷或检查表的评估和基于场景(Scenarios)的评估是目前主要的两类评估方式。利用场景评估技术进行软件体系结构评估的主流方法包括 SAAM (Scenario-based Architecture Analysis Method)、ATAM (Architecture Tradeoff Analysis Method)和CBAM (Cost Benefit Analysis Method)。SAAM方法最初用于比较不同的体系结构,后来用于指导对体系结构的检查,使其主要关注潜在的问题,如需求冲突,或仅从某一参与者观点出发的不全面的系统设计。ATAM方法在揭示出结构满足特定质量目标的同时,也能反映出质量目标之间的联系,从而权衡多个质量目标。 CBAM方法可以看作是ATAM方法的补充,在其评估结果上对软件体系结构的经济性进行评估。 {{B}} 请围绕“基于场景的软件体系结构评估方法”论题,依次从以下三个方面进行论述。{{/B}} 1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作,包括角色、工作内容等。 2.请从评估目的、评估参与者、评估活动或过程、评估结果等几个方面对SAAM或ATAM评估方法进行分析。 3.结合你参与的实际工作和项目的实际情况,具体阐述你在进行体系结构设计和评估时,采用了什么评估方法,如何具体实施,最终实际效果如何。
【正确答案】
【答案解析】第一部分 简要叙述所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。 第二部分 SAAM的分析和评估目的、评估参与者、评估活动或过程以及评估结果说明。 1.评估目的 SAAM(Scenario-based Architecture Analysis Method)目的是验证基本的体系结构假设和原则,评估体系结构固有的风险。SAAM指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突。SAAM不仅能够评估体系结构对于特定系统需求的使用能力,也能被用来比较不同的体系结构。 2.评估参与者 风险承担者、记录人员、软件体系结构设计师。 3.评估活动或过程 SAAM分析评估体系结构的过程包括6个步骤,即形成场景、描述体系结构、场景的分类和优先级确定、间接场景的单个评估、场景相互作用的评估、总体评估,如下图所示。 (1)形成场景 形成场景是通过集中讨论来实现。使风险承担者在一个友好的氛围中提出一些场景,这些场景反映了他们的需求,也体现了他们对体系结构将如何实现需求的认识。 (2)描述体系结构 体系结构设计师应该采用参加评估的所有人员都能够充分理解的形式,对待评估的体系结构进行适当的描述。这种描述说明系统中的运算和数据构件,以及他们之间的联系。除了要描述这些静态特性以外,还要对系统在某段时间内的动态特征做出说明。 (3)场景的分类和优先级确定 场景分为直接场景和间接场景(或潜在场景)。直接场景是按照现有体系结构开发出来的系统能够直接实现的场景。与在设计时已经考虑过的需求相对应的直接场景能增进对体系结构的理解,促进对诸如性能和可靠性等其他质量属性的研究。 间接场景就是需要对现有体系结构做某些修改才能支持的场景。间接场景对衡量体系结构对系统在演化过程中将出现的变更的适用情况十分关键。通过各种间接场景对体系结构的影响,可以确定体系结构在相关系统的生命周期内对不断演化的使用的适应情况。直接场景类似于用例,而间接场景有时也叫变更案例。 评估人员通过对场景设置优先级,可以保证在评估的有限时间内考虑最重要的场景。这里的“重要”完全是由风险承担者及其所关心的问题确定的。风险承担者通过投票表达所关心的问题。 (4)对间接场景的单个评估 对于直接场景而言,体系结构设计师要讲清所评估的体系结构将如何执行这些场景;对于间接场景而言,应说明需要对体系结构做哪些修改才能适应间接场景的要求。 对每一个间接场景,列出为支持该场景而需要对体系结构所做的改动,并估计出这些变更的代价。对体系结构的更改意味着引入某个新构件或新联系,或者需要对已有构件或联系的描述进行修改。 (5)评估场景的相互作用 场景的相互作用暴露了设计方案中的功能分配。场景相互作用的多少与结构复杂性、耦合度、内聚性有关。同时,场景的相互作用能够暴露出体系结构设计文档未能充分说明的结构分解。 (6)形成总体评估 总体的权衡和评价,反映该组织对表现在不同场景中的目标考虑优先级。根据对系统成功的相对重要性来为每个场景设置一个权值。 如果要比较多个体系结构,或者针对同一体系结构提出多个不同的方案,则可通过对权值的确定来得出总体评价。权值的设置具有很强的主观性,所以,应该让所有风险承担者共同参与,但也应合理组织,要允许对权值及其基本思想进行公开讨论。 4.评估结果 SAAM评估的主要有形输出包括以下内容: (1)把代表了未来可能做的更改的场景与构架对应起来,显现出构架中未来可能会表现出较高复杂性的地方,并对每个这样的更改的预期工作量做出评估。 (2)理解系统的功能,对多个构架所支持的功能和数量进行比较。 如果所评估的是一个框架,SAAM评估将指明框架中未能满足其修改性需求的地方,有时还会指出一种效果更好的设计。SAAM评估也能对两个或者三个备选构架进行比较,明确其中那一个能够较好地满足质量属性需求,而且做的更改较少、不会在未来导致太多的复杂的问题。 ATAM的分析和评估目的、评估参与者、评估活动或过程以及评估结果说明如下。 (1)评估目的 ATAM(Architecture Tradeoff Analysis Method,构架权衡分析方法)的评估目的是依据系统质量属性和商业需求评估设计决策的结果。ATAM希望揭示出构架满足特定质量目标的情况,使我们更清楚地认识到质量目标之间的联系,即如何权衡多个质量目标。 (2)评估参与者 ①评估小组。该小组是所评估构架项目外部的小组,通常由3~5人组成。该小组的每个成员都要扮演大量的特定角色。他们可能是开发组织内部的,也可能是外部的。 ②项目决策者,对开发项目具有发言权,并有权要求进行某些改变,他们包括项目管理人员,重要的客户代表,构架设计师等。 ③构架涉众(stakeholders)。包括关键模块开发人员、测试人员、用户等。 (3)评估活动或过程 整个ATAM评估过程包括9个步骤,按其编号顺序分别是描述ATAM方法、描述商业动机、描述体系结构、确定体系结构方法、生成质量属性效用树、分析体系结构方法、讨论和分级场景、描述评估结果,如下图所示。