|
UML Analyzer
Overview
Model-Based
Software Development is about modeling real problems, solving the
model problems, and interpreting the model solutions in the real
world. This cycle places a major emphasis on transformation and
inconsistency detection between various representations of software
systems (e.g., models, diagrams, source code, etc.). UML/Analyzer is a
synthesis and analysis tool to support model-based software
development. It implements a generic view integration framework which
supports automated model transformation and consistency checking
within UML object and class diagrams as well as the C2SADEL
architectural description language.
To identify
inconsistencies in an automatable fashion we have devised and applied
a view integration framework accompanied by a set of activities and
techniques. Our view integration approach exploits the redundancy
between views which can be seen as constraints. Our view integration
framework enforces such constraints and, thereby, the consistency
across views. In addition to constraints and consistency rules, our
view integration framework also defines what information can be
exchanged and how information can be exchanged (Figure
1). This is critical for scalability and automateability. Our
approach has the following activities:
1)
Mapping: identifies and cross-references
related modeling elements that describe overlapping and thus redundant
pieces of information. Mapping is often done manually via naming
dictionaries or traceability matrices (e.g., trace matrices). Mapping
assists consistency checking by defining what to compare.
2)
Transformation: converts modeling elements or
diagrams into intermediate models in such a manner that they (or
pieces of them) can be understood easier in the context of other
diagram(s). Transformation assists consistency checking by defining how
to compare.
3)
Differentiation: compares model elements
and diagrams with intermediate models that were generated through
transformation where differences indicate inconsistencies.
Figure
2 (see manual) depicts the need for Transformation in the
context of Mapping and Differentiation. The figure shows
four inconsistency detection scenarios. In order to compare the two
user-defined views A and B (containing user-defined modeling
elements), we could either a) compare them directly b) transform
(convert) A into ‘something like B’ so that A becomes easier
comparable to B; c) transform B into ‘something like A’ so that B
becomes easier comparable to A; or d) transform both A and B into
‘something like C’ so that they are easier comparable in the
context of C.
The role of mapping
is to ease transformation and differentiation by specifying what
information needs to be exchanged and what information needs to
be compared. The role of transformation is to enable more direct
comparison by converting modeling elements into similar types and thus
defining how modeling elements can be compared. Transformation
also extends the model in that new (automatically generated) modeling
elements are derived from the user-defined ones.
Copyright 1995-2000 The
University of Southern California
The written material, text,
graphics, and software available on this page and all related pages
may be copied, used, and distributed freely as long as the University
of Southern California as the source of the material, text, graphics
or software is always clearly indicated and such acknowledgement
always accompanies any reuse or redistribution of the material, text,
graphics or software; also permission to use the material, text,
graphics or software on these pages does not include the right to
repackage the material, text, graphics or software in any form or
manner and then claim exclusive proprietary ownership of it as part of
a commercial offering of services or as part of a commercially offered
product.
|