聂同学

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

给老爷爷系统(四):如何描述系统?(三)

这是一个老爷爷系统。

这一篇讲讲如何实现的问题。

实现方面主要考虑了两个要点:

  • 如何构建和维护:要快速地建立和编辑,能够加入版本管理,能够在各方面间共享。
  • 如何展现:各方面要容易地挂载自己的关注点数据,同时跨角色观察的需求要求框架能同时挂载多方面的数据。

我们为这两个要点选择了两种不同的形式。

一方面在构建和维护时,特征描述采用纯文本方式,可以说是一种简单地DSL。 DSL文件很方便人和机器阅读,同时放入SCM,实现版本管理和角色间共享。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
审批/逐个审批
  -i 查看签报详细信息
  -i 输入审批意见
      -g 使用默认意见
      -g 手工输入意见
      -g 语音输入意见
  -i 选择用户
    签报
    用户
批量审批
    -e 逐个审批
    -i 查看待处理文件列表
    -i 点击审批按钮
……

另一方面在展现时,我们解析DSL,图形化交互式(并且略显炫酷滴 :-D)地展示。 下面展示的是目前的状况。

  • 左边的图,是“系统特征”,由黄色椭圆形表示的领域过程、绿色圆形表示的领域实体,以及他们之间的连线构成。
  • 右边的下拉菜单,是由各方面提供的关注点数据,可以按需要附加到“系统特征”上。比如这个截图上, 左边的图上面有个红色的大圆,就是将代码质量数据叠加上来。还有个深绿色的小点,是将代码结构的数据叠加上来。
  • 除了可以以叠加的方式展示数据,还可以根据关注点数据对图进行过滤。

最后,代码在此:http://github.com/nielinjie/developTools

dsl, 工具, 开发, 架构, 质量

分享 -