格罗宁根大学的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

PS:本文为博主在InfoQ翻译的文章转载。

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

  1. 影响架构决策的非功能性需求

    英文原文:Non-functional Requirements in Architectural Decision Making 本文由<IEEE Software>杂志首发,现在由In ...

  2. 荷兰莱顿大学 计算机科学与技术,荷兰学校排名

    随着人们对欧洲留学的认识不断加深,荷兰也日益成为欧洲留学热门国家,荷兰大学排名怎么样呢?下面和出国留学网一起看看荷兰学校QS世界排名. 一.荷兰学校排名 1.代尔夫特理工大学 代尔夫特理工大学(Tec ...

  3. 轻量级的架构决策记录机制

    作者:倪新明 ADR是一种性价比非常高的架构决策文档化实践,团队引入和实践成本很低,却能为团队带来极大收益! 1 团队研发面临的问题 不论是在传统的IT行业,还是互联网行业,研发团队在架构决策层面或多 ...

  4. 世界上最好的光刻机为什么来自荷兰?【物联网智商精选】

    来源: 大数据实验室 "是说芯语"已陪伴您439天 现在微电子集成电路技术对世界的各种科技电子产品越来越应用广泛了,一个国家的发展越来越离不开高端芯片了,一个国家越是发展得越快对高 ...

  5. 荷兰特温特大学研究人员、博士后招聘

    关注公众号,获取更多AI领域发展机会 学校介绍 荷兰特温特大学(University of Twente,UT)电气工程,数学和计算机科学学院(EEMCS)的WebInsight项目寻找一名研究人员( ...

  6. 来自 Google 的高可用架构理念与实践

    转自:  https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=402738153&idx=1&sn=af5e76aad2 ...

  7. 清华计算机2017学硕,2017级清华大学研究生来自于哪些大学?看完你就明白啦!...

    原标题:2017级清华大学研究生来自于哪些大学?看完你就明白啦! 清华大学,作为我国高校中的顶尖学府,是很多学生心中的梦想之地,每年的高考中,只有各省的前几十名才有机会被清华大学录取.但是研究生,作为 ...

  8. 为什么最好的光刻机来自荷兰,而不是芯片大国美国?

    要知道为什么最好的光刻机来自荷兰,而不是美国,得从半导体发展的三个历史阶段说起. 前言 在20世纪70年代初,荷兰飞利浦研发实验室的工程师们制造了一台机器:一台试图像印钞票一样合法赚钱的机器.但他们当 ...

  9. 疯了疯了,安利一款非常好用的屏幕捕捉工具FSCapture

    之前为了截取浏览器长屏,各种找能够滚动截屏的软件.试用各种浏览器自带截长屏无效之后,终于遇到了这个超级好用的屏幕捕捉工具FSCapture FSCapture抓屏工具集图像捕捉.浏览编辑.视频录制等功 ...

最新文章

  1. 全面解读Objective-C语言及Cocoa特性——《Objective-C基础教程》
  2. 【模板】RMQ问题—st表实现
  3. ubantu 安装杀毒软件 clamav
  4. Leetcode 124题:求⼆叉树中最⼤路径和
  5. COLLATE oracle,Sql 中Collate用法
  6. Android:支持多选的本地相册
  7. Hyper-V Server联机调整虚拟硬盘大小
  8. RELL软件测试初学者化妆品,浅析软件测试流程在高校软件测试工作室中的应用...
  9. HtmlNinja-图片预加载以及图片元素img的complete属性
  10. 怎样去除excel表中的虚线_Excel表格里的虚线如何去掉?
  11. mysql——解压版安装详解
  12. CentOS6.7系统优化加强牢固脚本
  13. 用Proxy进行预处理
  14. 获取音频频响和失真_专业音响设备_音频功放失真的四大要点及改善方法
  15. 全球餐厅库存管理软件行业调研及趋势分析报告
  16. clickhouse建库_Clickhouse数据库基本操作
  17. vm虚拟机安装openWrt
  18. 第四百三十五章 灭龙魔宫
  19. win10忘记密码_Win10系统设置u盘密码的操作过程
  20. 4、Python量化交易-双均线策略

热门文章

  1. 皮带传动故障诊断要点
  2. tizen android模拟器,Tizen在模拟器中推送通知
  3. pandas 多条件筛选DataFrame
  4. 汉诺塔问题个人讲解及部分实现(JAVA递归)
  5. 首个计算机Bug的由来
  6. ShardingSphere Mode 模式新起航:运行模式详解
  7. 趋向于运算符-->骗局
  8. 一个简单的ip池的搭建
  9. UE4 多个角色控制权的切换
  10. ionic2 tab切换控制