by Alexander Egyed
Abstract:
Class diagrams are among the most widely used object-oriented design techniques. They are effective in modeling the structure of software systems at any stages of the software life cycle. Still, class diagrams can become as complex and overwhelming as the software systems they describe. This paper describes a technique for abstracting lower-level class structures into higherlevel ones by 'collapsing' lower-level class patterns into single, higher-level classes and relationships. This paper is an extension to an existing technique that re-interprets the transitive meaning of lower-level classes into higher-level relationships (relational reasoning). The existing technique is briefly summarized. The extensions proposed in this paper are two-fold: This paper augments the set of abstraction rules to also collapse class patterns into higher-level classes (compositional reasoning). While this augmentation is simple and in sync with traditional views of refinement and abstraction, it has drawbacks in defining class features like methods and attributes. This paper thus also demonstrates how to filter low-level class features during abstraction. Our approach requires some human guidance in deciding when to use compositional or relational reasoning but is otherwise fully automated. Our approach is conservative in its results guaranteeing completeness but at the expense of some false positives (i.e., the filter errs in favor of not eliminating in case of doubt). The proposed technique is applicable to model understanding, inconsistency detection, and reverse engineering.
Reference:
Compositional and Relational Reasoning during Class Abstraction. (Alexander Egyed), In Prroceedings of the 6th International Conference on the Unified Modeling Language (UML), San Francisco, USA, 2003.
Bibtex Entry:
@Conference{DBLP:conf/uml/Egyed03,
author = {Alexander Egyed},
title = {Compositional and Relational Reasoning during Class Abstraction.},
booktitle = {Prroceedings of the 6th International Conference on the Unified Modeling Language (UML), San Francisco, USA},
year = {2003},
pages = {121-137},
abstract = {Class diagrams are among the most widely used object-oriented design
techniques. They are effective in modeling the structure of software
systems at any stages of the software life cycle. Still, class diagrams
can become as complex and overwhelming as the software systems they
describe. This paper describes a technique for abstracting lower-level
class structures into higherlevel ones by 'collapsing' lower-level
class patterns into single, higher-level classes and relationships.
This paper is an extension to an existing technique that re-interprets
the transitive meaning of lower-level classes into higher-level relationships
(relational reasoning). The existing technique is briefly summarized.
The extensions proposed in this paper are two-fold: This paper augments
the set of abstraction rules to also collapse class patterns into
higher-level classes (compositional reasoning). While this augmentation
is simple and in sync with traditional views of refinement and abstraction,
it has drawbacks in defining class features like methods and attributes.
This paper thus also demonstrates how to filter low-level class features
during abstraction. Our approach requires some human guidance in
deciding when to use compositional or relational reasoning but is
otherwise fully automated. Our approach is conservative in its results
guaranteeing completeness but at the expense of some false positives
(i.e., the filter errs in favor of not eliminating in case of doubt).
The proposed technique is applicable to model understanding, inconsistency
detection, and reverse engineering.},
doi = {10.1007/978-3-540-45221-8_12},
file = {:Conferences\\UML 2003 - Compositional and Relational Reasoning during Abstraction\\Compositional and Relational Reasoning During Class Abstraction-preprint.pdf:PDF},
keywords = {},
}