Architecture Reconstruction of J2EE Applications
Independent Study - Summer/2003
Student: Paulo Merson E-mail: pmerson
cs
cmu
edu
Advisor: Liam O’Brien (SEI)
Purpose:
The objective of architecture
reconstruction is to recover the architecture of an existing system
from
its implementation. Such process relies on tools that examine source
code and other artifacts of the deployed system in order to gather
information and abstract it to the architecture level. This independent
study comprises the investigation of the architecture reconstruction
problem in the scope of Java applications built using J2EE (Java 2
Platform, Enterprise Edition).
Results:
The outcome of this study is a
technical report that describes the architectural views that can be
extracted from a deployed J2EE system and how elements at the
implementation level can map to elements of the architecture
(components
and connectors).
Motivation (in a nutshell):
- J2EE is widely used to
build enterprise applications that span multiple tiers, use different
types of components, integrate with other systems and run on several
machines. In short, many J2EE applications are large and complex.
- J2EE applications are
necessarily built from standardized components (e.g. EJBs, JSPs,
Servlets). As a platform that purports component-based software
development, J2EE is very suiltable for architecture
reconstruction, because the architecture can be represented depicting
the very components used as implementation/deploymisent units.
- In fact, J2EE literature
extensively uses architecture diagrams showing components that map
directly to deployed components (example).
That is to say that in J2EE the idea of a generic architecture
component (in the C&C view) is close to the idea of a component as
defined by Chessman & Daniels in "UML Components: A Simple Process
for Specifying Component-Based Software".
- Nonetheless, architecture
diagrams of J2EE applications found in the J2EE literature lack several
aspects of good architecture representation.
- Using deep knowledge of
the construct and deployment artifacts of a J2EE application, one can
define a process and create tools to extract the components that
comprise a J2EE application, along with the relationships among them.
The automatization of the process is higher than in most software
platforms, because of the high level specification of components in the
deployment artifacts.
- Using the best practics
for documenting sofware architectures, the reconstruction process can
produce quality diagrams and reports that will be very useful to
developers and maintainers of J2EE applications.
Links: