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

来源:互联网 发布:宝宝听故事软件 编辑:程序博客网 时间:2024/05/01 04:43

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

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

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

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

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

原创粉丝点击