软件构架的评估方法:ATAM

    上篇博客中有写到架构设计考虑到的质量属性,这篇文章主要介绍了软件架构的评估方法ATAM,架构评估是十分重要的环节,软件系统中存在问题的潜在的决策带来的问题会影响系统后期的开发和维护。


    架构权衡分析方法:一种非定量方法,它可揭示构架满足特定质量目标的情况,及构架对质量目标的权衡;软件结构权衡分析方法(ATAM)是一种评估软件结构的技术,它不仅用于软件系统的结构的特性评估,还能在有质量冲突体系中做出折衷。利用这种方法,评估者可以检查出那些存在于软件体系结构中的潜在的危险。通过对不同学科中评估方法和理论概念的研究,获得一组基本的组件,用它来开发一种新的评估方法,或者去分析某一现存的评估方法,进而改善这一评估方法。


1,人员


评估小组:独立的评估小组,包括小组负责人、评估负责人、书记员、计时员、过程观察者、提问者等角色;

项目决策者:有权要求项目改变的人,管理人员,客户代表,设计师;

涉众:开发、测试、维护、用户等,他们说明构架应满足的具体目标;


2,输出


能在1小时内表述的构架描述

清楚的业务目标

用场景捕获的质量需求

敏感点、权衡点、有风险决策、无风险决策…


3,过程,4阶段法


        0阶段,合作关系与准备,确定细节:人员名单,时间,地点;评估小组获取资料并进行初步了解分析;

        1阶段,评估阶段,决策者参与,小组开始信息收集与分析;耗时约1周


1~2周中断期,评估小组进一步以非正式方式了解构架;

        2阶段,评估阶段,涉众参与,分析继续;约2天;


        3阶段,后续阶段,生成最终报告,进行评估活动总结;1周;

评估阶段的细分:

1)  评估负责人向决策者表述ATAM方法,使大家理解其过程,了解角色布局;

2)  决策者介绍系统商业动机、重要功能、各种限制、商业目标、驱动因素等;

3)  设计师介绍构架,技术限制、所用模式等;

4)  评估小组利用所有已知信息对构架方法进行分类;

5)  生成质量属性效用树,捕获详细的需求信息,为每个场景分配一个级别,如(高,中),前者为重要度,后者为实现难易度,重点放在(高,高)的场景;此处场景具备刺激、环境、响应三要素就可以了;

6)  评估小组分析所有重要场景,设计师解释如何支持该场景,检查所用构架方法,分析风险点、权衡点、敏感点;


效用树:效用为根,性能等质量属性组成二级节点,继续细分直到场景,场景为叶;

经过一段中断期,第2阶段开始,此时涉众开始参与;首先仍然需要一个对ATAM方法的介绍,并使涉众了解已有的成果;

7)  集体讨论并分析场景的优先级,以了解更广泛的涉众的想法;该过程可能产生新的场景;使用“有限票数法”投票确定每个场景的优先级——此处不考虑实现难度了吧;

8)  分析新的高优先级的场景,构架师解释构架是怎么满足各场景的;

9)  总结评估结果,评估负责人展示该结果;

注意,看起来第1阶段与第2阶段活动类似,但它们的关注点与具体操作并不相同。


4,限制


   ATAM不是一个准确的方法,且风险不可被量化;


5,小结


     看起来ATAM是一个通过捕获详细的质量属性场景,选择其中最重要的一部分,考虑构架如何满足这些场景来进行评估的方法;这是一个“过程”方法而非技术方法;




    题外:喜欢自己的成长道路上一个又一个的刺激和打击。我这人,逆境才能成长。不论结果好坏,过程中意识到自己离目标还很远,这样就挺好。

    我知道你很好,但是,我也不差。关键是,我年纪轻轻,努力向上这件事情,哪有头啊?




你可能感兴趣的:(2.软考总结)