minekirito的个人博客分享 http://blog.sciencenet.cn/u/minekirito

博文

Quality Attribute Workshop 综述

已有 2624 次阅读 2019-6-2 23:46 |系统分类:科研笔记| QAW

Quality Attribute Workshop(QAW)综述

Software Engineering Institute(软件工程协会)研究并开发了一系列以架构为中心的软件设计方法,这些方法分别应用于软件开发生命周期的不同阶段,并且每种方法,都有详细的输入输出描述。在实际开发中,我们需要将这些方法串联起来,在不同软件开发阶段的成果之间建立桥梁。QAW就是其中之一。

1、QAW(Quality Attribute Workshop)

QAW(质量属性讨论)是一种帮助我们明确重要的质量属性以及与这些属性相关的场景的方法。它处于软件开发生命周期的初始阶段,涉及到不同角色的系统干系人。作为一个系统的早期成果,它可以分析该系统的性能、可用性、可变性、互操作性和安全性。QAW用场景的形式去诱导、收集并组织软件的质量属性需求。它的结果主要被用于分析和设计活动(如ADD方法的实施)中。场景是QAW的关键。QAW需要召集利益相关者召开会议,在此期间生成、优先排序和细化表示质量属性需求的场景。从这些会议中,系统设计师可以获得在在目标确定过程中没有表达出来的需求、哪些质量属性会影响架构和后续的权衡决策。QAW)是通过测试案例分析系统结构的一种方法。这是对SEI开发的TRADEOFF结构分析方法(ATAMSM)的补充。

2、QAW的步骤

QAW主要包括以下步骤:

(1)介绍QAW。QAW的主持人将介绍QAW的目标及操作步骤。然后,由主持人以及所有项目干系人作自我介绍,介绍的内容包括他们的背景,在组织中的角色以及他们与将要建立的系统之间的关系。

(2)业务目标介绍。由某个干系人介绍业务相关的信息,包括项目背景、高层次的功能需求、系统开发的限制以及质量属性需求。

(3)架构规划介绍。由技术人员介绍系统架构的蓝图,其主要内容包括:如何满足关键业务需求的战略;驱动系统架构决策的因素;已有的相关文档;操作和系统架构、架构的框架、工具以及系统架构的生命周期;正在开发的、可以帮助理解系统需求的原型等。

(4)架构驱动定义。主持人分享他们的关键架构驱动的列表,列表内容包括高层次需求、业务驱动、限制和质量属性。

(5)场景头脑风暴。主持人让所有干系人参加场景的头脑风暴,每个干系人都要根据自己在项目中的角色,提出与项目相关的一些场景。

(6)场景合并。相似的场景在合理的情况下进行合并。

(7)场景优先级定义。由干系人为建立的每个场景的优先级进行投票。

(8)场景精化。对于高优先级的场景做进一步的精化。主持人带动大家对每个高优先级的场景进行详细描述,并记录下面的信息:场景的六个部分;该场景影响到的业务目标;该场景相关的质量属性;该场景相关的问题。

3、QAW的结果

在项目开始阶段,QAW开展多次讨论会,讨论系统的功能性需求以及质量属性需求。最后会总结出带有优先级的细化场景示例,并标出它们的风险、敏感点和权衡度。如图1所示。

 

1 场景示例

4、QAW的优点

QAW可以提高利益相关者对已开发系统的满意度。这个满意度通过澄清关键需求并在系统的初始版本中实现它们,避免返工并节省资金来实现。

在开发过程的早期,加强利益相关者之间的沟通,可以对系统的要求进行早期估计(快速开发原型)。在系统的整个生命周期,QAW可以为分析和测试提供改进的支持,从而指导软件改进设计,提高软件的质量。

5、QAW的变型

在实际开发中,QAW可能需要做一些变化才能达到我们想要的效果。例如QAW被用于大型指挥、控制、通信、计算机、情报、监视、侦察(C4ISR)系统采购的竞争阶段QAW流程应做如下改变

•情景生成研讨会与每个承包商单独进行。研讨会的结果是,参加者可以充分了解流程、优先场景列表和改进的高优先级场景。              

•一个政府技术评估团队(TAT)使用这些场景来开发许多测试用例。为了隐藏团队的身份并将场景覆盖范围扩展到一组资产、任务和地理区域,进行了更改。这会使流程更易于理解,并可以将副本分发给所有开发团队。              

开发团队进行了分析,并在结果研讨会运行演示用例,以展示了结果。这些演示可以包括从只执行一个非常详细的测试用例到执行所有的测试用例。然后,每个开发团队都会被告知它做得有多好以及如何改进其分析。              

开发团队随后在结果研讨会的最终演示中完成分析,允许他们纠正任何缺陷。

在另一种情况下,客户只希望生成、划分优先级和优化场景。由于体系结构计划仍然不确定,客户打算在体系结构的草稿可用后,稍后再开发和分析测试用例。

在另一个情况下,QAW被用于大型系统的竞争前阶段。架构(architecture)团队正在为共享通信系统构建架构。来自不同集团的利益相关者举办了单独的研讨会,以生成、确定优先级和改进方案。然后,体系结构团队将这些精炼的场景转化为测试用例,并针对它们分析所提议的体系结构。然后,架构(architecture)团队将分析结果首先提交给评审团队,然后提交给最初的涉众。以上这些变化都是可以接受的。

6QAW的意义

软件体系结构既是系统的蓝图,又是开发它的项目的蓝图。它具有系统质量属性,如性能、可修改性和安全性,如果没有统一的体系结构远景,就无法实现这些属性。QAW为早期分析提供了一个工件,以确保设计方法能够产生一个可接受的系统。它使系统开发人员能够识别设计风险并在开发过程的早期就解决这些风险会引起的问题。

 

参考文献

[1]Barbacci M R , Ellison R , Stafford J A , et al. Quality Attribute Workshops[J]. IEEE Transactions on Software Engineering, 2001.

[2]丁左明,吴海涛.QAW和ADD集成方法的应用[J].计算机与现代化,2007(06):23-25+29.




https://blog.sciencenet.cn/blog-3401624-1182703.html

上一篇:数据压缩算法——无损压缩
下一篇:Attribute Driven Design 综述
收藏 IP: 110.16.106.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 16:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部