聂同学

一个程序员和架构师的实践与思考

给老爷爷系统(二):如何描述系统?(一)

这是一个老爷爷系统。

对于老爷爷系统,我们发现特别难以回答一个问题:系统是什么样的?它正在如何发展?

团队中不同的角色都在尝试解决这个问题。 上次有篇blog提到:

SA同学正在整理全局“功能地图”、测试同学整理“全量测试案例”

而开发团队和架构师,则在整理“领域地图”。

这些不同的角色,对系统有各自不同的关注点。但他们的关注点都需要一个框架组织起来, 这个框架就是系统特征。 上面说的这些各种“整理”,其实都包含了对系统特征进行整理和重建,然后再把自己的关注点挂载上去。 只不过他们从各自的目的出发,从各自的角度下手。

团队意识到:这些各方面的关注者可能需要共用同一个系统特征描述。

  • 可以减少分别构建和维护框架带来的工作量。
    如果说分别构建框架只是时间和工作量的问题的话,分别维护和保持同步进化,则是几乎不可能做到的。
  • 可以有机地将各个角色的关注点联系起来,形成对系统全方位、跨角色的观察监控,例如——
    • 通过观察代码历史和代码质量,可以帮助划定测试重点覆盖区域。
    • 通过观察相关的代码结构,可以帮助发现功能间关系特别是潜在的相互影响。
    • 通过观察用户使用量数据,可以帮助评估代码重构的风险。

“统一系统特征描述”看来很重要,我们需要找到一个形式,可以承担这样的重任。

我们整理了各方面的关注点,大致如下,觉得处于中间位置的“功能”或者“领域模型”可能可以承担这个重任。

下篇继续

开发, 架构, 质量

分享 -