| |
[Download PDF here!]
Authors: Alexander Egyed
Designers can easily become overwhelmed with details when dealing with large class diagrams. This paper presents an approach for automated abstraction that allows designers to “zoom out” on class diagrams to investigate and reason about their bigger picture. The approach is based on a large number of abstraction rules that individually are not very powerful, but when used together, can abstract complex class structures quickly. This paper presents those abstraction rules and an algorithm for applying them. The technique was validated on over a dozen models where it was shown to be well-suited for model understanding, consistency checking, and reverse engineering.
Categories and Subject Descriptors: D.2 [Software Engineering]: Design Tools and Techniques
General Terms: Class Diagrams, Transformation, Unified Modeling Language, Reverse Engineering,
Class Abstraction, Class Patterns
CORRECTION!
On page 488, the paper incorrectly describes an article from Murphy
et al. [1995]. Their technique allows a developer to define a
high-level model of what the system is expected to be doing which is
then compared to what the system is actually doing. While the
high-level model is defined by a developer, the observation of what
the low-level model is doing can be derived statically from source
code or dynamically from the system's execution. The latter was
misrepresented in this article. Their technique can be used to map
(almost all) binary relationships one can extract between
source-level program elements. Some common examples of relationships
they look at are calls between functions (methods), accesses to
global variables, event interactions, and inheritance. So contrary
to our characterization, their technique is not limited to runtime behavior. |
|