Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Coupling Metrics for Object-Oriented Design
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
The Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies
APSEC '10 Proceedings of the 2010 Asia Pacific Software Engineering Conference
The beauty and the beast: separating design from algorithm
Proceedings of the 25th European conference on Object-oriented programming
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Hi-index | 0.00 |
Models should represent the essential aspects of a system and leave out the inessential details. In this paper we propose an automatic approach to determine whether a model indeed focuses on the essential aspects. We define a new metric, structural essence, that quantifies the fraction of essential elements in a model. Our approach targets structural models, such as the prevalent UML class diagrams. It is inspired by the idea of algorithmic essence - the amount of repetitive constructs in a program - and the duality between behavior and structure. We present a framework for computing the essence of a structural model based on a transformation of that model into a "distilled model" and on an existing graph algorithm operating on that distilled model. We discuss the meaning of our concept of structural essence based on a set of example models. We hope that our notion of structural essence will spark discussions on the purpose and the essence of models.