如何可视化大型代码库质量的变化?

And*_*ent 7 metrics code-metrics

我一直在考虑的事情之一是我们如何使用某种衡量标准衡量变化,我们是否倒退?这是在我们正在改进的大型遗留代码库的背景下.大多数代码都是带有C遗产的C++.一些新功能和GUI是用C#编写的.

首先,我们至少可以检查代码中的简单复杂性级别是否随时间而变化.困难在于有一个表示 - 我们可以做一个3D表面,其中2D地图代表代码,我们有一个颜色的热图表示复杂性,3D表面凸出进出以显示变化.

一旦你能够生成一些数字的数字,就会有大量的数学系统来处理这样的事情.

随着时间的推移,我希望在那里有更复杂的数字,但相同的可视化技术用于表示变化.

我喜欢Crap4j中关于复杂性与覆盖该代码的单元测试数量之间的比例的想法.

我还想包括Bob叔叔的SOLID指标以及一些Chidamber和Kemerer OO指标.困难的部分是找到为C++生成这些工具的工具.唯一的选择似乎是Krakatau Essential Metrics(我不反对支付工具).我希望使用CK指标的部分原因来自Henderson-Sellers 的"面向对象度量标准:复杂性度量"和早期的面向对象软件度量标准.

如果我们开始使用这些指标中的一些,那么最终可能会有十个左右的数字随时间而变化.我对统计数据一无所知,但跟踪一堆这样的指标然后注意哪些指标往往变化可能会很有趣.

请注意,相关问题是关于在大型代码库中测量代码质量.我对测量变化更感兴趣.

Ira*_*ter 3

我会考虑使用Kiviat 图来表示随时间演变的多个软件指标维度。这些图表示中心点周围凹壳中的多个数据点。目视检查将显示特定指标的上升或下降位置,并且应该能够使用某种色调面积计算来计算由指标值偏差的总体面积比率。