ementary properties of that design entity or links to
other related data structures. For example, the struc-
ture that models the Class design entity has a field
of type Method that establishes its connection to the
methods the class contains. The model of the sys-
tem, extracted based on the meta-model, contains also
information regarding the calls (i.e., which methods
are called by a particular method) and accesses (i.e.,
which variables are accessed by a particular method)
from existing methods.
Modeling Relational Entities. According to the
presentation of relational databases from (Ramakrish-
nan and Gehrke, 2002), a relational database consists
of one or more tables where each table has its own
schema. A schema of a table consists of the name of
the table, the name of each field (or attribute, or col-
umn) and the type of each field from the table. Ad-
ditionally, integrity constraints can be defined on the
database schema. Thus, our meta-model for repre-
senting relational databases contains the entities Table
and Column found in a relational database.
Modeling Object-relational Interactions. The en-
tities (e.g., classes, methods) that ensure the commu-
nication with the relational database belong to a layer
called data source. Consequently, between the object-
oriented part of an enterprise system and the relational
part there are interactions only within the data source
layer. In order to capture these interactions we take
into account the various usages of third-party libraries
and/or frameworks that are specific for the data source
layer: a method is considered to belong to the data
source layer if it invokes one or more methods from a
specific library that provides an API for accessing and
processing data stored in a data source, usually a rela-
tional database (e.g., the method invokes the execute-
Query() method from the java.sql package). A class
containing one or more methods belonging to the data
source layer is also mapped to the data source layer.
The methods of classes are the primary entities
that ensure the communication with the databases -
in this context, the Method entity from the object-
oriented meta-model has to be enriched with infor-
mation regarding the operations performed upon a re-
lational database. Within our solution, we propose to
annotate the Method entity from the object-oriented
meta-model with information regarding the opera-
tions upon the database the method performs: e.g.,
delete, insert, select, update, each of these operations
involving one or more tables. The class which models
the SQL statement contains an attribute that stores the
tables accessed by the operation. The information re-
garding the tables accessed by an entity is propagated
from low-level entities (operations performed within
the bodies of methods) to high-level entities (classes)
according to the following rules:
• a method stores the set of the tables accessed by
its body.
• a class stores the set of the tables accessed by its
methods.
We store in the entity Table also information regard-
ing the entities that access the table (e.g., methods,
classes).
Due to the fact that our meta-model for enterprise
systems contains entities specific to regular object-
oriented systems, we decide not to build our tool sup-
port for modeling enterprise systems from scratch –
we built it on the top of the MEMORIA (Rat¸iu, 2004)
meta-model which is part of IPLASMA (Marinescu
et al., 2005). IPLASMA is an integrated environment
for quality analysis of object-oriented software sys-
tems that includes support for all the necessary phases
of analysis: from model extraction up to high-level
metrics-based analysis, or detection of code duplica-
tion. The tool platform relies only on the source code
as input. All of the provided support is integrated by
an uniform front-end. The DATES module (Mari-
nescu, 2007) extracts a model of enterprise applica-
tions relying on top of the presented meta-model.
3 APPLICATIONS OF THE
META-MODEL
The goal of this section is to present several types of
specific information extracted by DATES from enter-
prise software systems. These are intended to help us
in order to understand and assess the design quality of
the analyzed systems. The size characteristics of the
applications for which we present the obtained results
are summarized in Table 1.
Table 1: Characteristics of the case studies.
TRS Payroll CentraView
Size 590 Kb 995 Kb 14,3 Mb
Classes 54 115 1527
Methods 500 580 13369
Tables 10 12 217
LOC 13598 13025 177655
TRS is an enterprise system developed by a team
of students within the software engineering project
classes. Payroll is an industrial enterprise applica-
tion whose scope is to manage information about
the employees from a company. CentraView is an
Applications of Automated Model’s Extraction in Enterprise Systems
255