【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

来自荷兰格罗宁根大学的架构决策捕捉工具 RGT

  • 2013-01-24
  • 本文字数:2036 字

    阅读完需:约 7 分钟

格罗宁根大学的 Dan Tofan 向软件架构师提供了开源软件工具 RGT (Repertory Grid Tool),这种工具用于捕获和评估他们的架构决策。这个工具可以帮助架构师更好的文档化他们的决策及对决策进行回顾。

构建复杂软件系统通常需要作出许多重要的决策。在这些决策中,架构师们处理满足利益相关者关于各种功能和非功能需求的各种关注点,以便满足商业和技术目标。另外,架构师们需要他们回顾决策过程的质量,比如“我是否考虑了决策的所有可行的方案?”

为了帮助架构师,格罗宁根大学的软件工程研究者为架构决策提供了这个工具。关于这个开源工具的细节可以通过这个链接了解 https://github.com/danrg/RGT-tool/wiki .

InfoQ:Dan, 能否用最少的词描述下你自己和你的研究?

我是一名软件开发者,在业界工作六年后成为研究员。我研究方向主要是改进软件架构的决策。

InfoQ:你为什么要创造 RGT?以及它和你现在做的研究工作有什么联系呢?

我认为决策技能是架构师必备的技能,不只是为了设计软件,也为了向其他利益相关者说明基本原理。所以如果你把决策作为一种技能,比如游泳或者烹饪,那么下一步你就会理性的问:怎么才能改进自己的架构决策能力?

决策和获取架构决策知识是同时的。对获取的决策知识有效追踪。所以,使用 RGT 获得架构决策有两个主要优点:储备用于架构决策的知识,改进架构师的决策能力。

InfoQ:能否描述下 RGT?

RGT 通常有这些步骤。首先,我们有一个要决策的问题。第二步,找出问题的各种可选方案。第三步,我让你找出两个你觉得相似但又和另外一个不同的方案。第四步,你描述为什么这两个是相似的,和第三个又为什么是不同的。这样就产生了关注点(用 RGT 的术语叫“观点”)。Java 和 C#是类似的,因为他们都是由大厂商维护支持的,而 Ruby 只是社区维护支持的。然后产生更多的关注点,下一步是对各种可选方案按照关注点进行评分(通常从 1 到 5)。然后,各种可选方案会产生一个矩阵(或者叫网格),分析这些关注点以及评分,比如使用层序聚类分析,根据可选方案与关注点的相似性进行分组。最后,架构师可以通过更新可选方案,关注点,评分,精简这个网格。这个最终的网格可以反映这个决策的思维模型。总的来说,这个网格提供了这个决策的精炼文档。相对于一般的文字描述,这个文档更精炼地描述了决策。

InfoQ:RGT 的典型应用场景有哪些?

典型应用场景是从 4 到 9 种可选方案获得架构的决策。对太少的可选方案,RGT 可能误判。

对更多的替代方案,RGT 则可能会花费太长的时间。

InfoQ:RGT 对使用者提供了那些好处?

RGT 提供了获取决策的一种系统方法。同时,它也帮助产生关于决策的新的灵感。RGT 使架构师可以回顾他们的决策。最后,RGT 交付一个关于决策的文档。

当日,RGT 也有缺点。主要是 RGT 是花费时间的。因此,我觉得 RGT 更适用于那些需要周密考虑的重要决策,这也是软件架构师经常碰到的事情。当使用 RGT 讨论软件架构时,他们经常抱怨缺乏好的工具支撑。所以我们就创造了这个软件来解决。

InfoQ:这个工具有哪些主要特性?

首先,该工具帮助架构师网格化他们所有独立决策。第二,这个工具支持从现有的网格进行协同决策。办法是通过多轮的表格填写, 澄清各种利益者之间的各种分歧,最终达到一致。

最后,这个工具是开源 ( https://github.com/danrg/RGT-tool ) 的,并且部署在 http://repertorygridtool.com .

InfoQ:你希望从 RGT 用户那里获得什么样的反馈?

通常研究成果需要花费很长时间才会被工业界采用,有人说甚至要 10 到 15 年。获得用户的反馈对减少这个时间是非常有必要的。我期望两种类型的反馈:关于 RGT 和关于工具本身的。

所以,我希望听到 RGT 如何帮助架构师进行他们的决策。

因为这个工具是开源的。对这个工具的建议,Bug 的报告,以及贡献代码都是我关心的。我想围绕这个工具构建一个小的社区。

InfoQ:Grad Booch 曾经说过“傻瓜即使拥有工具还是傻瓜”。你如何确保架构师正确而有效率的方式使用 RGT?

关于更好的利用这个工具有三点。首先,确保你在正确的时间正确的地方使用 RGT:RGT 是一种利基(niche, 指范围狭窄)方法,不可能用于一切场景。第二,花一些时间学习 RGT。第三,从一些以前的架构决策开始,然后逐步在当前的决策和集体决策中使用。最后,分享你的经验,我很愿意提供帮助。

InfoQ:关于 RGT 和你的方法,你下一步有什么打算?

下一步打算增加一些基于关注点评估可选方案的实用功能,这会使评估比现在简单打分的方式更加精确。另外,我想实现关于风险管理的特性。其他的还有实现复合决策,这种决策的各种可选方案又由多种原子决策选择组合而成。复合决策可以对设计空间进行更彻底的探索,以确保那些有效的组合不会被忽略。

查看英文原文: University of Groningen Offers Repertory Grid Tool for Capturing Architecture Decisions


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-01-24 01:191681

评论

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

缺少IT人员的服装行业该如何进行数字化转型?

优秀

数字化转型

软件测试 | 接口请求构造

测吧(北京)科技有限公司

测试

软件测试 | Header cookie处理

测吧(北京)科技有限公司

测试

江苏省16家正规等保测评机构名单看这里!

行云管家

等保 等级保护 等级保护机构 江苏

拒绝“ 背锅”!数据治理从策略到落地,发挥CMDB价值!

嘉为蓝鲸

CMDB 自动化运维 嘉为蓝鲸

OceanBase CTO杨传辉:放手去干,这行没有35岁危机

OceanBase 数据库

数据库 oceanbase

还在头疼每月房贷还款,这个房贷计算机让你一目了然

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

部署 OpenLDAP 对接到 DataEase实现统一用户管理

搞大屏的小北

ldap openldap 统一管理 DataEase

购买LED液晶拼接屏的十大原则

Dylan

显示器 LED显示屏 led显示屏厂家

软件测试 | 接口测试框架

测吧(北京)科技有限公司

测试

软件测试 | 接口测试断言

测吧(北京)科技有限公司

测试

学术贴 | FPGA 加速图数据库查询执行

KaiwuDB

数据库

大曝光!从RabbitMQ平滑迁移至Kafka架构设计方案!

艾小仙

kafka 架构 RocketMQ RabbitMQ

可观测落地实践——从战略管理到工具落地

嘉为蓝鲸

可观测 自动化运维 嘉为蓝鲸

交通银行签约易观千帆,全面升级数智能力

易观分析

金融 银行 经济

AI2023第十五届上海国际人工智能展览会

InfoQ_caf7dbb9aa8a

软件测试 | josn和XML请求

测吧(北京)科技有限公司

测试

软件测试 | From请求

测吧(北京)科技有限公司

测试

【实操演示】使用NineData修改来管理ClickHouse的数据库表结构。

NineData

数据库 开发者 Clickhouse 表结构 NineData

自动化运维和普通运维有什么区别?

嘉为蓝鲸

自动化运维 嘉为蓝鲸

软件测试 | XML响应断言

测吧(北京)科技有限公司

测试

软件测试 | JSON响应断言

测吧(北京)科技有限公司

测试

软件测试 | 接口自动化测试超时处理

测吧(北京)科技有限公司

测试

如何使用DevEco Studio创建Native C++应用

OpenHarmony开发者

OpenHarmony

热点2023第十五届上海国际智慧工地展览会

InfoQ_caf7dbb9aa8a

软件测试 | JSON Schema断言

测吧(北京)科技有限公司

软件测试 | 接口测试文件上传测试

测吧(北京)科技有限公司

测试

软件测试 | 接口测试用例设计

测吧(北京)科技有限公司

测试

2023AIOTE智博会 第十五届上海国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

调查报告解读之国外数据库篇:MySQL国内使用率第一,多少企业有意替换国外产品?

墨天轮

MySQL 数据库 oracle redis 国产数据库

多个云服务器管理小技巧-行云管家

行云管家

云计算 云服务器 云管理

来自荷兰格罗宁根大学的架构决策捕捉工具RGT_架构_Michael Stal_InfoQ精选文章