Welcome!

Java Authors: Liz McMillan, Elizabeth White, Pat Romanski, Jim Kaskade, Dana Gardner

Related Topics: Java, Eclipse, Oracle

Java: Article

Five Years Waiting for JRE 7: Is It Justified? (Part 1)

Comparing JRE 6 to JRE 7

JRE 6 was released in 2006, five years after a major JRE version was released. For the past few years Java was looking stagnant, and many Java developers began to worry; this concern was amplified when Oracle purchased Sun.

We will try to discover if there's a big refactoring or maybe many features were added that can explain the time span between these two releases. In this first part we will focus on design and implementation changes, and the second part will focus on added features and breaking changes.

With JavaDepend we can compare two versions and detect any modifications concerning architecture, design or implementation. We can provide a summary of the changes using the following views.

Info View

JRE 7 has improved almost 10% compared to JRE 6. We noticed that the metrics ProjectCa and ProjectCe were decreased. When proofed with JRE7 there was less coupling between projects, and it's an indicator that a refactoring was made for this new release.

Class Browser

What’s interesting with this view is that we can easily discover what’s added (in bold), removed (crossed) and changed (underlined).

Dependency Structure Matrix
The Dependency Structure Matrix is a compact way to represent and navigate across dependencies between components. For most engineers, talking of dependencies means talking about the dependency graph. But the matrix can have the following advantages:

  • Graph is more intuitive but can be totally confusing when the numbers of nodes and edges grow (a few dozens boxes can be enough to produce a graph that's too complex)
  • DSM is less intuitive but can be a very efficient way to represent a large and complex graph. We say that DSM scales compare to graph.

After a comparison we can see what has changed - the sign (+) shows that a dependency is added, and the sign (-) indicates that a dependency was removed.

More Stories By Lahlali Issam

Lahlali Issam Lead Developer at JavaDepend, a tool to manage and understand complex Java code. With JavaDepend, software quality can be measured using Code Metrics, visualized using Graphs and Treemaps, and queried using CQL language, a SQL like to query the code base.