上篇博客中有写到架构设计考虑到的质量属性,这篇文章主要介绍了软件架构的评估方法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是一个通过捕获详细的质量属性场景,选择其中最重要的一部分,考虑构架如何满足这些场景来进行评估的方法;这是一个“过程”方法而非技术方法;

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

我知道你很好,但是,我也不差。关键是,我年纪轻轻,努力向上这件事情,哪有头啊?
————————————————
版权声明:本文为CSDN博主「我是周洲」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhou2s_101216/article/details/53152336

软件构架的评估方法:ATAM相关推荐

  1. 软件构架实践(第2版)学习笔记

    一.软件架构.架构模式.参考模型.参考架构 1.对于软件架构定义有很多种,通用的定义是:某个软件或计算机系统的软件架构是该系统的一个或多个结构,他们由软件元素,这些元素的外部可见属性以及这些元素之间的 ...

  2. 软件构架实践 第2版 学习笔记

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一.软件 ...

  3. 软件构架实践读书笔记二

    什么是软件构架 1.构架定义了元素 2.系统可能而且确实由多个结构组成 3.具有软件的每个计算系统都有一个软件构架 4.某个元素的行为就是构架的内容 构架是一个高层的.系统的总体结构.构架的内容就是构 ...

  4. 《软件构架实践》阅读笔记三

    这一章主要是通过ISSS系统的构架来分析交通管制系统的实际解决方案. 首先从物理视图的角度来分析,物理视图主要是一些硬件方面的视图,通过它我们可以清楚的看到各个硬件之间相互关联关系,使系统的物理分布显 ...

  5. 《软件构架实践》7-9章读后感

    今天,我阅读了<软件构架实践>7-9章. 第7章主要有4个主题,生命周期的构架:设计构架:形成团队结构及其与架构的关系:创建构架系统.首先讲了生命周期中的构架,把构架作为软件开发过程基础的 ...

  6. 《软件构架实践》阅读笔记03

    <实现质量属性>这一章为我们提供了每个质量属性的构架方面的指导.一个好的设计需要实现一些质量属性,实现这些质量属性依赖于基本的设计决策,战术就是影响质量属性响应控制的设计决策. 了解到的第 ...

  7. 知识工程.Vs.软件构架,框架,设计模式.

    软件工程-原文链接:http://tech.it168.com/a2009/0902/672/000000672853.shtml 此文章详细给出了软件设计的基本概念和用途,文章链接:http://w ...

  8. 软件构架则是软件之上的 飞鸽传书 软件

    而软件构架则是软件之上的 飞鸽传书 软件,考虑问题比较多.例如,它要考虑软件的整体的一个构架,构架中的各种模块的功能,构架中的模块之间的关系和接口,构架怎么与具体程序相联系等各种问题.因此,构架程序量 ...

  9. 06软件构架实践阅读笔记之六

    06软件构架实践阅读笔记之六 今天阅读的是第五章实现质量属性,在书中,存在这样的一句话:如果不顾及所有的质量属性,每一个好的质量属性都是有害的.在我认为,这句话就是最好的说明. 在上一章中,聊到的是系 ...

最新文章

  1. 我自己写的3D图形数学库。。。有点乱!
  2. android xml png,android - 使用.png文件中的形状创建xml聊天气泡 - 堆栈内存溢出
  3. java类描述_java笔记2:Java语言中的类和对象的描述
  4. C++STL中swap函数操作与内存地址改变的简析
  5. stream场景用法总结
  6. 二级Access数据库大纲知识要点
  7. [Linux] vimdiff 快速比较和合并少量文件
  8. 拼包函数及网络封包的异常处理
  9. 一次通过PMP认证考试的心得分享
  10. Python+SSM懂车帝汽车数据分析平台 爬虫代码实例分析
  11. 【历史上的今天】11 月 3 日:初版 Unix 发布;Steam 之父诞生;3Q 大战全面升级
  12. 人工智能几行代码实现换脸,python+dlib实现图文教程
  13. PPT 设置幻灯片母版
  14. AI算法模型线上部署方法总结
  15. 电脑查看wifi密码
  16. Git使用学习(十四、解决分支合并后产生的冲突)
  17. ARP断网攻击与监听
  18. minecraft服务器stats文件夹,《我的世界》文件夹目录作用讲述
  19. 计算机操作系统只有windows对不对,计算机应用基础 第二章 操作系统
  20. 2023年电工杯数学建模竞赛AB题思路代码论文资料汇总贴

热门文章

  1. 定向光和天空盒(个人笔记)
  2. 映客 LFLiveKit 推流
  3. 物流通知:您的快递即刻送达!
  4. 浅析“进位计数制及数制转换”
  5. SQL语句(六)_NUIST
  6. 机器人技术想要取得快速发展,主要面临哪些挑战?
  7. Encoder-Decoder自动生成对联,要试试么?
  8. linux电脑自启动,caddyserver在linux系统下设置开机启动
  9. 同花顺_代码解析_技术指标_Z_3
  10. java中常用类的总结