《HarmonyOS:领航者说》技术公开课来啦,大咖分享、实战解码,不容错过 了解详情
写点什么

Felix Bachmann 谈软件架构评估

  • 2009-05-30
  • 本文字数:937 字

    阅读完需:约 3 分钟

软件架构评估是企业架构(EA)中重要的一部分。软件工程研究所( SEI )的 Felix Bachmann 译者注:Felix 是 Jolt 大奖图书《软件架构编档》的作者)最近谈到了如何有效地评估软件架构、识别企业应用中的风险。在 SEI 架构(SATURN)会议上,Felix 主持了一个有关架构评估原则的讨论会。他还论述了SEI 的架构权衡分析法( ATAM )框架是如何利用这些原则来助力架构评估工作的。

Felix 提到,架构评估原则可分为三组:“度量”、“架构理解”和“窍门”。软件架构评估中的度量部分包括从利益相关方那里提取组织需求,并用精确和可度量的方式将其转化为质量属性。他谈论了该类别中的四条原则:

  • 质量属性决定架构。
  • 业务目标决定质量属性需求。
  • 业务目标意味着对利益相关方社区来说,什么是重要的。
  • 质量属性需求需要用好的度量方法指定。

了解架构师使用的方法、功能分布及薄弱环节也很重要。架构理解中有三个原则:

  • 要想理解架构,你必须要了解其质量属性。
  • 最重要的质量属性需求决定了系统中需要重点分析的部分。
  • 架构中的功能分布造就了质量属性。

软件架构评估的“窍门”部分包括:

  • “有罪推定”,也就是指,不要盲目相信提供过来的任何东西,要寻找令人信服的证据。提供不出证据会导致风险。
  • 正确的分析不允许假设。只有事实才是有价值的。
  • 被评估的组织必须承认评估结果。

使用坚持所有原则的架构评估方法基本上可以保证成功。Felix 表示,不利用任何原则的架构评估方法极有可能会导致一场灾难。他认为应该根据上下文应用这些原则,因为遵守某些原则要比遵守其它的更为重要。方法越能很好地利用原则,成功的几率就越大。

ATAM 架构利用了架构评估里的这些原则。ATAM 的主要部分包括分为四组的九个步骤,这四组是:

  • 描述,其中包括通过描述交流信息。
  • 调查和分析,涉及评估相对于架构方法的关键质量属性需求。
  • 测试,包括检查迄今为止相对于所有利益相关方需求的结果。
  • 报告,包括表述 ATAM 的结果。

下面是 ATAM 评估过程的步骤

  • 描述 ATAM。
  • 描述业务驱动者。
  • 描述架构。
  • 识别架构方法。
  • 生成质量属性效用树。
  • 分析架构方法。
  • 头脑风暴、给场景划分优先级。
  • 分析架构方法。
  • 描述结果。

Felix 在讨论的最后总结道,软件架构师应该仔细查看架构评估的结果,以不断提高评估过程。

查看英文原文: Felix Bachmann on Evaluating Software Architecture

2009-05-30 19:122168
用户头像

发布了 151 篇内容, 共 66.4 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

甲方日常 85

句子

工作 随笔杂谈 日常

2020 全球 JS 调查报告新鲜出炉

蓝色的秋风

typescript Vue 大前端 React React Native

创业失败启示录|校园微生活之快叫外卖

阿萌

28天写作 创业失败启示录 青城

夜莺二次开发指南系列

ning

开源 监控 滴滴夜莺 夜莺监控 运维平台

京东RPA:以企业数字化转型为驱动的机器人流程自动化解决方案专家

京东科技开发者

RPA 企业信息化 数字化运维

JVM故障诊断和处理工具

Silently9527

Java JVM jvm调优

CSS14 - 元素可见性

Mr.Cactus

html/css

大厂面试题:你知道JUC中的Semaphore、CyclicBarrier、CountDownLatch吗

Java鱼仔

Java 面试 并发 JUC

我们设计的是微服务还是小单体应用

xcbeyond

微服务 方法论 DDD 28天写作

精选算法面试-数组II

李孟聊AI

面试 算法 数组 28天写作

日语复习Day01【~あげく(に)】

IT蜗壳-Tango

程序员 七日更 日语语法 情景句型

我给职场新人提个建议

石云升

创业 28天写作 职场新人

大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了

五分钟学大数据

大数据 kafka

Mysql报表下载为什么出现了重复的数据?

三石

MySQL性能优化 28天写作 mysql重复数据

MySQL查询——连接查询

程序员的时光

程序员 28天写作

贸易战的本质是什么?

JiangX

经济 28天写作 制造 美国 贸易战

如何使用maven 轻松重构项目

田维常

maven

28 天带你玩转 Kubernetes-- 第七天(玩转 Dockerfile)

Java全栈封神

Docker Kubernetes k8s Dockerfile 28天写作

谈谈SpringFramework与IoC依赖查找

Java架构师迁哥

1月|日更挑战活动说明

InfoQ写作社区官方

七日更 热门活动

CSS15 - 界面样式&垂直对齐

Mr.Cactus

html/css

智能building之二 智能单体建筑

张老蔫

28天写作

网络故障排除工具,你用过哪些?

「大厂攻略」打开线程 | 进程 | 协程的大门

我是程序员小贱

面试 操作系统

最近很火的京东、天猫超市飞天茅台抢购是怎么回事,从原理流程给你们分析一波

谙忆

面试官:你说一下对Java中的volatile的理解吧

Java 编程 面试 多线程

Flutter技术在会展云中大显身手

京东科技开发者

小程序flutter, 跨平台 云服务 移动开发

大小公司产品经理岗位对比

Kr

Python 循环语句

赵开忠

28天写作

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,递归+使用索引,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

读书笔记:《激荡三十年》上

lidaobing

28天写作 激荡三十年

Felix Bachmann谈软件架构评估_架构_Srini Penchikala_InfoQ精选文章