试题一论软件系统架构评估
对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了分析现有架构存在的潜在风险、检验设计中提出的质量需求、在系统被构建之前分析现有系统架构对于系统质量的影响、提出系统架构的改进方案。架构评估是软件开发过程中的重要环节。请围绕“论软件系统架构评估”论题,依次从以下三个方面进行论述。
1.概要叙述你所参与架构评估的软件系统,以及在评估过程中所担任的主要工作。
2.分析软件系统架构评估中所普遍关注的质量属性有哪些。详细阐述每种质量属性的具体含义。
3.详细说明你所参与的软件系统架构评估中,采用了哪种评估方法,具体实施过程和效果如何。
解析:
本题内容按模拟题中的“论基于场景的软件体系结构评估方法”组织内容即可,因为目前常用的架构评估方法,均为基于场景的评估方法。
1.首先用 400~600字的篇幅简要叙述考生参与开发的软件系统的概要和所担任的工作。
2.架构所关注的质量属性主要包括:性能、可用性、可修改性、安全性。
(1)性能(performance)。是指系统的响应能力,即要经过多长时间才能对某个事件作出响应,或者在某段时间内系统所能处理的事件的个数。
(2)可用性 (availability)。是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
(3)安全性 (security)。是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。
(4)可修改性(modifiability)。是指能够快速地以较高的性能价格比对系统进行变更的能力。
通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
3架构评估方法主要从SAAM与ATAM中选择。
(1)SAAM评估方法。
SAAM的分析和评估目的、评估参与者、评估活动或过程以及评估结果说明如下。
1) 评估目的。
SAAM (Scenario-based Architecture Analysis Method)的目的是验证基本的体系结构假设和原则,评估体系结构固有的风险。SAAM 指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突。SAAM 不仅能够评估体系结构对于特定系统需求的使用能力,也能被用来比较不同的体系结构。
2)评估参与者。
风险承担者、记录人员、软件体系结构设计师。
3)评估活动或过程。
SAAM 分析评估体系结构的过程包括六个步骤,即形成场景、描述体系结构、场景的分类和优先级确定、间接场景的单个评估、场景相互作用的评估、总体评估。
4)评估结果。
SAAM评估的主要有形出包括:
①把代表了未来可能做的更改的场景与构架对应起来,显现出构架中未来可能会表现出较高复杂性的地方,并对每个这样的更改的预期工作量作出评估。
②理解系统的功能,对多个构架所支持的功能和数量进行比较。
如果所评估的是一个框架,SAAM 评估将指明框架中未能满足其修改性需求的地方,有时还会指出一种效果更好的设计。SAAM 评估也能对两个或者三个备选构架进行比较,明确其中哪一个能够较好地满足质量属性需求,而且做的更改较少、不会在未来导致太多的复杂的问题。
(2)ATAM评估方法。
ATAM 的分析和评估目的、评估参与者、评估活动或过程以及评估结果说明如下。
1)评估目的。
ATAM (Architecture Tradeoff Analysis Method,构架权衡分析方法)的评估目的是依据系统质量属性和商业需求评估设计决策的结果。ATAM 希望揭示出构架满足特定质量目标的情况,使我们更清楚地认识到质量目标之间的联系,即如何权衡多个质量目标。
2)评估参与者。
①评估小组。该小组是所评估构架项目外部的小组,通常由 3~5 人组成。该小组的每个成员都要扮演大量的特定角色。他们可能是开发组织内部的,也可能是外部的。
②项目决策者。对开发项目具有发言权,并有权要求进行某些改变,包括项目管理人员、重要的客户代表、构架设计师等
③构架涉众(stakeholders)。包括关键模块开发人员、测试人员、用户等
3)评估活动或过程。
整个ATAM 评估过程包括九个步骤,按其编号顺序分别是描述 ATAM 方法、描述商业动机、描述体系结构、确定体系结构方法、生成质量属性效用树、分析体系结构方法、讨论和分级场景描述评估结果,其中分析体系结构方法需要执行两次。