Spring框架的案例研究


Spring框架是一个很棒的应用程序框架,并且是Java平台的控制容器的倒置。这也是高质量软件的一个很好的例子。Spring Framework是所有Spring项目的基础。总的来说,Spring框架和Spring项目系列通常简称为“ Spring”。Spring提供了Java编程语言以外的所有所需内容,可用于为各种场景和体系结构创建企业应用程序。它已经发展了超过17年。

我们使用CodeMR分析了Spring框架。CodeMR是一种体系结构软件质量和静态代码分析工具。您可以在以下位置找到使用CodeMR生成的分析报告:https ://www.codemr.co.uk/case-reports/spring-framework/html/html_report_spring-core/htmlx/lbd/dashboard.html 。

此外,可以在我们的GitHub页面上找到项目源代码和模型:https : //github.com/CodeMR-Models/spring-framework。

该项目的概述如下:

01.png

在左侧,我们可以看到有关项目的摘要信息。它具有超过200K的代码行和超过5K的类。

我们可以在右侧看到其模块。像Spring Core和消息传递webmvc一样,我们在中心看到自动生成的软件依赖关系图。在CodeMR中,我们使用术语“工作集”代替模块。工作集代表了对软件实体进行分组的更灵活,更逻辑的方式。工作集可以由工具自动生成(根据项目的模块结构),也可以由用户定义。可以为不同的工作集构建度量标准图表,以将大型软件分析成模块。

“概述”选项卡中的饼图显示了所选指标的总体质量指标分布。

02.png

这是来自Spring Core模块的圆形图表。在CodeMR度量图中,软件实体(如包,类和方法)以分层的方式表示,这反映了它们在代码中的实际封装方案。在此图表中,内部圆圈表示类,外部圆圈表示包,圆圈的大小表示代码行。热图颜色显示耦合质量属性级别。绿色表示低耦合类,红色表示高耦合类。如您所见,只有一个高度耦合的类,而大多数类是松散耦合的。

图表形状的颜色表示相应软件实体的度量。我们将每个指标分为五个级别:低,中,高,中和非常高。因为红色在大多数文化中都与危险相关,所以红色表示所选指标的价值很高。热图颜色表示表示实体的度量值将色标更改为绿色到红色的光谱(从低到高)。

图表形状的大小与相应软件实体的代码量度线成比例。

04.png 05.png

这是Spring核心模块的CodeMR图。在该图中,节点表示类,边表示这些类之间的关系,不同的边颜色表示不同类型的关系,外部多边形再次表示模块或包,节点的大小表示代码的类行,节点颜色表示复杂性。绿色低;红色高。另外,节点形状表示耦合度。拐角越多意味着它具有更多的交互点,因此耦合度越高。正如我们在Spring Core模块中看到的那样,大多数类具有良好的质量属性值,因为它们是绿色和圆形的。有一些带有橙色和红色的复杂类,但是如果对其进行了良好的测试,则可以管理它们的复杂性。而且,模块结构似乎分布良好。

06.png

这是另一个CodeMR图,仅在一个图片中显示继承关系。我们可以看到类在继承树中的位置。这些是具有高度继承值的类。我们还可以看到复杂类的影响。

07.png

Spring上下文模块的继承图:

08.png


原文链接:http://codingdict.com