CRASH Special Report - JEE

287 views

Published on

Hear the webinar on-demand here: http://ow.ly/hC4sE

Whether you have ever wondered about the perfect mix of Java frameworks and technologies, you should care since the combination can significantly affect the likelihood of system crash and has a material impact on the business.

CAST Research Labs (CRL) has a repository of static analysis data on Java business applications with different framework and database combinations, and we analyzed 496 applications with 152 million lines of code to provide data that can create a better vision for future Java application development.

This research shows the impact of frameworks on application structural quality, including identifying the frameworks with the highest and lowest quality scores, and how other languages and technologies affect Java application reliability.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
287
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CRASH Special Report - JEE

  1. 1. CRASH Special Report Impact of JEE frameworks on the structural quality of applicationsCAST Confidential 1
  2. 2. Content1. CRASH Special Report – JEE Framework Analysis Overview2. Approach and Terminology3. Data Summary4. JEE Frameworks Analysis – Key Findings5. JEE Technology Mix Analysis – Key Findings6. ConclusionsCAST Confidential
  3. 3. CRASH Special Report – JEE Framework Analysis Overview Objective: – Understand the impact of frameworks on structural quality – reliability, security and performance of applications – Understand the impact on structural quality of combining JEE applications with other technology Data Sample: – Source: CAST Appmarq benchmarking database – 496 JEE-based business applications – 152 million lines of code – Frameworks analyzed: Hibernate, Spring, Struts Findings: – Applications with only Hibernate tend to be of higher quality – Applications with Hibernate + Spring tend be of larger size – Huge variation in quality of applications with no frameworks – Majority of JEE applications don’t use frameworks – Overall quality tends to degrade for JEE applications when combined with C/C++ – Pure JEE applications tend to be of higher qualityCAST Confidential
  4. 4. Content1. CRASH Special Report – JEE Framework Analysis Overview2. Approach and Terminology3. Data Summary4. JEE Frameworks Analysis – Key Findings5. JEE Technology Mix Analysis – Key Findings6. ConclusionsCAST Confidential
  5. 5. Appmarq benchmarking repository – largest database of its kindwith structural quality data from source code analysis Application Quality Central Benchmarking Data From CASTAIP Database Benchmarking Application Source Code Analyzed Across Industries Across Industry Technologies Trends Across Best Development Anonymized / Practices & Regions Normalized Standards DevelopmentCAST Confidential
  6. 6. All data gathered from the automated analysis of businessapplications using CAST Application Intelligence Platform (AIP) CAST AIP - Leading Software Analysis and Measurement Platform The CAST Application Intelligence Center Actionable visibility & measures for all: Compliance Checks Reports on application Quality & Sizing health, team Measures performance, Code, benchmarking … Architecture & CxOs and VPs Data structure Analysis … Dashboard featuring software characteristics, CAST Application Intelligence Platform cost and risk drivers, root cause analysis… Management WEB RDBMS .NET DB2 Cobol … and feedback & advice C++ Oracle on software quality and engineering BI SAP Siebel Java EAI Dev TeamsCAST Confidential Copyright CAST 2011 6
  7. 7. CAST AIP: Structural Quality Characteristics1. Robustness: the stability of an application and the likelihood of introducing defects when modifying it2. Performance: the responsiveness of an application3. Security: an application’s ability to prevent unauthorized intrusions4. Transferability: the ease with which a new team can understand the application and quickly become productive working on it5. Changeability: an application’s ability to be easily modified6. Total Quality Index: a composite score computed from the five Quality Characteristics listed aboveCAST Confidential
  8. 8. Content1. CRASH Special Report – JEE Framework Analysis Overview2. Approach and Terminology3. Data Summary4. JEE Frameworks Analysis – Key Findings5. JEE Technology Mix Analysis – Key Findings6. ConclusionsCAST Confidential
  9. 9. Data Sample for this Report JEE Applications by different frameworks JEE Frameworks Sum of Groups # Apps # Cos KLoCStruts 1.x 64 33 11,713.39Hibernate 24 13 3,265.23Hibernate-Spring 29 20 14,439.43 JEE Applications in combinationHibernate-Struts 1.x 37 19 10,319.72 with other technologiesNo Frameworks 170 49 31,323.39 JEE Sum of Technology Mix # Apps # Cos KLoCGrand Total 324 - 71,061.16 JEE-.NET 18 11 9,343.66 JEE-C 19 9 8,186.32 JEE-C++ 17 7 15,247.45 JEE-Cobol 50 9 20,975.09 JEE-Mixed 29 16 17,689.99 JEE 120 20 16,914.93 JEE-DB 243 56 63,992.35 Grand Total 496 - 152,349.79CAST Confidential
  10. 10. JEE Frameworks: Wide range by application size Wide range of applications: 10 KLOC to > 2,4 MLOCCAST Confidential
  11. 11. JEE Frameworks: Primarily from 6 industry segments Hibernate- Hibernate- No Frame- GrandIndustry Segment Struts 1.x Hibernate Spring Struts 1.x works TotalFinancial Services 9 3 10 5 67 94Government 5 3 2 2 9 21Insurance 9 4 2 7 13 35Manufacturing 11 7 2 2 12 34Telecommunications 13 3 8 9 32 65Utilities 5 0 1 1 13 20Other 12 4 1 11 17 45Grand Total 64 24 29 37 170 324CAST Confidential
  12. 12. JEE Frameworks: Good representation of shoring & sourcing type Hibernate- Hibernate- No Frame- GrandSourcing Type Struts 1.x Hibernate Spring Struts 1.x works TotalPrimarily In-House 29 9 10 18 62 128Primarily Outsourced 34 15 15 19 85 168Grand Total 63 24 25 37 147 324 Hibernate- Hibernate- No Frame- GrandShoring Type Struts 1.x Hibernate Spring Struts 1.x works TotalPrimarily Offshore 16 3 7 8 30 64Primarily Onshore 47 21 16 29 117 230Grand Total 64 24 29 37 170 324CAST Confidential
  13. 13. JEE with Technology Mix: Primarily from 6 industry segments JEE - JEE – JEE – JEE – JEE – JEE – GrandIndustry Segment .NET C C++ COBOL Mixed JEE DB TotalFinancial Services 9 1 7 44 10 37 70 178Government 0 0 0 0 0 12 9 21Insurance 4 1 0 3 1 8 30 47Manufacturing 0 2 0 0 3 20 26 51Telecommunications 1 3 8 0 10 14 57 93Utilities 3 6 1 0 1 10 10 31Other 1 6 1 3 4 19 32 66Grand Total 18 19 17 50 29 120 243 496CAST Confidential
  14. 14. JEE Technology Mix: Good representation of shoring &sourcing type JEE- JEE- JEE- JEE- JEE- GrandSourcing Type .NET JEE-C C++ Cobol Mixed JEE DB TotalPrimarily In-House 6 6 12 29 16 37 112 218Primarily Outsourced 10 12 5 20 12 66 120 245Unknown 2 1 0 1 1 17 11 33Grand Total 16 18 17 49 28 103 232 496 JEE- JEE- JEE- JEE- JEE- GrandShoring Type .NET JEE-C C++ Cobol Mixed JEE DB TotalPrimarily Offshore 7 1 8 7 8 26 48 105Primarily Onshore 9 17 8 41 20 77 180 352Unknown 2 1 1 2 1 17 15 39Grand Total 16 18 16 48 28 103 228 496CAST Confidential
  15. 15. Content1. CRASH Special Report – JEE Framework Analysis Overview2. Approach and Terminology3. Data Summary4. JEE Frameworks Analysis – Key Findings5. JEE Technology Mix Analysis – Key Findings6. ConclusionsCAST Confidential
  16. 16. Sample indicates that majority of JEE applications still don’t useframeworks JEE Applications by different frameworks Combined JEE Frameworks Size of all Average App Groups # Apps # Cos Apps (KLoC) Size (KLoC) Struts 1.x 64 33 11,713 183 Hibernate 24 13 3,265 136 Hibernate-Spring 29 20 14,439 498 Hibernate-Struts 1.x 37 19 10,320 279 No Frameworks 170 49 31,323 184 Grand Total 324 - 71,061 219 Majority of the applications that don’t use frameworks could be part of older generation applications As one of the first frameworks, Struts could be used on more applications than other frameworks Applications with Hibernate-Spring combination are significantly larger in size than other JEE applicationsCAST Confidential
  17. 17. Applications that use Hibernate have higher quality scores thanother frameworksCAST Confidential
  18. 18. JEE applications that don’t use Hibernate or Spring have bigvariance in quality  Reasons for this variation could be: – These application tend to be of older generation, as discussed earlier (or) – Hibernate and Spring enable developers to build applications in a more consistent mannerCAST Confidential
  19. 19. Content1. CRASH Special Report – JEE Framework Analysis Overview2. Approach and Terminology3. Data Summary4. JEE Frameworks Analysis – Key Findings5. JEE Technology Mix Analysis – Key Findings6. ConclusionsCAST Confidential
  20. 20. Applications with cross technology components are larger thanpure JEE applications JEE Average Technology Sum of App Size Groups # Apps # Cos KLoC KLoC JEE-.NET 18 11 9,344 519 JEE-C 19 9 8,186 431 JEE-C++ 17 7 15,247 897 JEE-Cobol 50 9 20,975 420 JEE-Mixed 29 16 17,690 610 JEE 120 20 16,915 141 JEE-DB 243 56 63,992 263 Grand Total 496 152,350 307  Applications with C++ components are significantly larger than other combinations of technologiesCAST Confidential
  21. 21. JEE-Technology Mix: Distribution across industries JEE- JEE- JEE- JEE- JEE- Grand Industry Segment .NET JEE-C C++ Cobol Mixed JEE DB Total Financial Services 9 1 7 44 10 37 70 178 Government 0 0 0 0 0 12 9 21 Insurance 4 1 0 3 1 8 30 47 Manufacturing 0 2 0 0 3 20 26 51 Telecommunications 1 3 8 0 10 14 57 93 Utilities 3 6 1 0 1 10 10 31 Grand Total 17 13 16 47 25 101 202 421 Pure JEE applications are spread across industries As expected, JEE-Cobol apps are concentrated in the Financial Services sector C, C++ are more popular in Financial Services and Telecom industries – They are frequently used in embedded systems in telecom equipment – They are also the language of choice for low-level programming needed for speed in trading systemsCAST Confidential
  22. 22. JEE applications with C/C++ tend to be of lower quality This finding is consistent with 2011 CRASH Report C/C++ programming languages tend to be lower level, closer to machine language, harder to program, and have more scope for making mistakesCAST Confidential
  23. 23. JEE + .NET behave similar to pure JEE applications This may be because they both are newer generation languages with higher level of abstraction They also simplify development and the bulk of common development tasks are standardizedCAST Confidential
  24. 24. Content1. CRASH Special Report – JEE Framework Analysis Overview2. Approach and Terminology3. Data Summary4. JEE Frameworks Analysis – Key Findings5. JEE Technology Mix Analysis – Key Findings6. ConclusionsCAST Confidential
  25. 25. Conclusions In addition to ease of development, frameworks do enable higher quality of applications Larger more complex applications tend to use a combination of frameworks in their architecture (Hibernate + Spring) Special attention should be given to quality when mixing JEE with different technologies – Cross-technology applications tend to be more complex – Developers are often familiar with only one technology – Applications with older generation low-level languages like C, C++ can be of lower quality to begin withCAST Confidential
  26. 26. Contact Information Pete Pizzutillo p.pizzutillo@castsoftware.com www.castsoftware.com blog.castsoftware.com/ linkedin.com/company/cast @OnQuality slideshare.net/castsoftwareCAST Confidential

×