架构设计:使用“一千英尺高”的视图

使用“一千英尺高”的视图

架构师都希望了解正在开发的软件质量如何。软件质量的外在表现是满足客户的需求,其内在表现则比较隐蔽,包括设计是否清晰,是否容易理解、维护和扩展。如果被人追问质量的定义是什么,我们通常只能敷衍道:“只要看到,我就知道”,可是我们怎么才能看到质量呢?

在架构图里,系统是由若干个小方框组成的,方框之间的连线代表着各种含义:依赖关系、数据流、共享资源(例如总线)等。这种图好比从飞上俯瞰地面风景,我们称为“三万英尺高”的视图。另一种典型的视图是源代码,好比站在地面上看大地。两种视图都无法充分展现软件的质量:前者太抽象,而后者细节太多,以致我们看不清整个架构。很显然,我们需要一个介于两者之间的视图——“一千英尺高”的视图。

“一千英尺高”的视图提供的信息来自恰当的层次,囊括了大量数据和多种度量标准,例如方法数,类扇出数和圈复杂度。具体的视图与特定的质量属性密切相关,例如可视化的依赖关系图、在类的级别上显示多种度量标准的柱状图,以及复杂的、关联多个输入值的复合标准视图。

纯粹靠手工绘制这些视图,并且保持它们与软件同步是不现实的,我们可以借助工具直接根据源代码创建视图。虽然有专门绘制视图(例如设计结构矩阵)的商业工具包,但是利用提取数据的小工具,加上通用的绘图工具包,也可以非常容易地绘制出想要的视图。举一个简单的例子,可以将 Checkstyle 的输出结果(一组针对类和方法的度量标准及结果)导入电子表格工具,然后生成图表。 Checkstyle 的输出结果还可以使用 InfoViz 工具箱绘制成树状图。

有了合适的视图,判断软件质量就更客观了。借助视图,可以将开发中的软件和若干相似的系统进行比较。对比软件的不同版本可以显示变化的趋势,对比不同子系统的视图可以发现异常之处。即使只有一张图表,我们也可以依靠技巧发现其中的模式和美学规律。对称性良好的树状结构很有可能代表着合理的类层次结构,比例协调的框图可能是合理分配类大小的表现。许多时候,外表和内在是一致的。

Checkstyle 是一款检查 java 代码规范的软件。

InfoViz 是一款将数据表转换成可视图形的工具。

猜你喜欢

转载自blog.csdn.net/wide288/article/details/87915268