Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News CAST: Adding Spring Lowers the Quality of JEE Applications

CAST: Adding Spring Lowers the Quality of JEE Applications

This item in japanese


A CAST report discloses that JEE enterprise software has lower quality when using Spring or Struts than using just Hibernate. Also, the quality degrades when Java is mixed with C or C++.

CAST Software has recently released the report Java Applications and Coffee: The Variations are Endless. The purpose of the CAST CRASH report is to understand the impact on structural quality –measured in reliability, security, performance, maintenance - of JEE applications when using various frameworks and when Java code is combined with other technologies. The report has analyzed in particular the impact of Hibernate, Spring and Struts on 496 JEE business applications (not open source) belonging mostly to Fortune 500 companies and totaling 152 millions lines of code.

The findings of the report are:

  • Around half of JEE applications do not use frameworks. The large number may be explained by the fact that the development of some of them started before any framework was available.
  • Applications without frameworks have a large variation in quality, between 2.7 and 3.7 on scale from 1 to 4. The report authors’ interpretation is that frameworks tend to raise the quality of applications by setting constraints and enforcing certain architectural patterns.
  • Applications using Struts or Spring besides Hibernate have lower quality levels then those having just Hibernate. One of the reasons is that such applications have a much larger codebase and are more complex. But the averages of all categories are spread closely around 3.25, as shown in the following chart. (The thin gray lines show how quality of all applications in a category is dispersed while the white horizontal bar in the middle represents the average for that category.)

  • Adding both Spring and Hibernate makes JEE applications 2-3 times larger than other variants of JEE apps: 498 KLoC compared to 184 KLoC for apps without any framework or 183 KLoC for those using Struts (shown in the picture below).

  • The codebase size of pure JEE application is up to 6 times smaller than of those using JEE and C++, as shown below.

  • Pure JEE applications (not mixed with non-Java technologies) have higher quality.
  • The quality of JEE applications tends to degrade when mixed with other technologies especially C/C++. Older/lower-level technologies seem to lower the quality of applications. The quality remains about the same when mixed with .NET technologies:

The report is based on source code analysis that CAST uses to evaluate the quality of many Fortune 500 enterprise software.

Rate this Article