Abstract:
Design patterns are proven solutions that help to develop quality software applications
and program comprehension at the design level. Recovering design information from
source code supports source code analysis for better program understanding, reuse, and
re-engineering. With the advent of modern technologies in software development
paradigm, the size and complexity of software applications are increased, consequently,
extracting software design has become harder and challenging. In these multilingual
applications, the design information is scattered in various cross-language artifacts that
are interdependent on each other. Therefore, in order to analyze these applications, all
the cross-language components and their relationships needs to be resolved. At present,
there is no approach known to us that is capable of extracting design information from
multilingual applications by using design patterns. The purpose of this thesis is to build
the foundation for the analysis of multilingual applications by using design patterns.
Java Enterprise Applications are the examples of multilingual applications i.e. their
design information is scattered in several multilingual artifacts. This platform is
equipped with verified design solutions in the form of J2EE Patterns. J2EE Platform is
a multi-tiered architecture. The instances of these patterns are scattered in various crosslanguage components in different layers of J2EE Platform. It is difficult to resolve
cross-language artifacts and extract desirable information and dependencies. J2EE
Patterns have abstract representations and their formal definitions are not known. In
addition, to the best of our insight, there is no approach available to recognize J2EE
Patterns from Java enterprise applications. In this dissertation, a novel approach is
presented for the detection of J2EE Patterns from the multilingual source code of J2EE
applications. For this purpose, customizable and reusable feature types are presented as
a catalog of J2EE Pattern definitions. These feature types can accommodate new pattern
definitions and are adaptable to detect the variants of any pattern.
A prototype toolkit, JPDT (J2EE Pattern Detection Tool) is developed that uses J2EE
Pattern definitions based on a catalog of customizable feature types and extracts J2EE
Patterns from the multilingual source code of enterprise applications. This tool has three
xi
basic components; including J2EE Extended Parsing Module (JPSP), J2EE Pattern
Detection Engine (JPDE) and J2EE Patterns Visualization Module (JPVM). In order to
evaluate the validity of approach and prototype tool, a corpus is built that contains the
repository of the source code of J2EE Pattern definitions. Additionally, the tool is
evaluated on five open source medium and large enterprise applications. The results
reveal 100 % accuracy of approach in successful recognition of J2EE Patterns in source
code repository and open source applications. The results also establish the significance
of customizable definitions of J2EE Pattern’s catalog and capability of prototype tool.