Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The structure and value of modularity in software design
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Software Change Impact Analysis
Software Change Impact Analysis
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
The GenVoca Model of Software-System Generators
IEEE Software
An analysis of modularity in aspect oriented design
Proceedings of the 4th international conference on Aspect-oriented software development
Information hiding interfaces for aspect-oriented design
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Simon: modeling and analysis of design space structures
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Modular Software Design with Crosscutting Interfaces
IEEE Software
Modularity Analysis of Logical Design Models
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Modularity in design: formal modeling and automated analysis
Modularity in design: formal modeling and automated analysis
Supporting simultaneous versions for software evolution assessment
Science of Computer Programming
A systematic review of software architecture evolution research
Information and Software Technology
Assessing maintainability metrics in software architectures using COSMIC and UML
ICCSA'12 Proceedings of the 12th international conference on Computational Science and Its Applications - Volume Part IV
Software architecture evolution through evolvability analysis
Journal of Systems and Software
Phase wise effort estimation for software maintenance: an extended SMEEM model
Proceedings of the CUBE International Information Technology Conference
Hi-index | 0.00 |
The value of software design modularity largely lies in the ability to accommodate potential changes. Each modularization technique, such as aspect-oriented programming and object-oriented design patterns, provides one way to let some part of a system change independently of all other parts. A modularization technique benefits a design if the potential changes to the design can be well encapsulated by the technique. In general, questions in software evolution, such as which modularization technique is better and whether it is worthwhile to refactor, should be evaluated against potential changes. In this paper, we present a decision-tree-based framework to generally assess design modularization in terms of its changeability. In this framework, we formalize design evolution questions as decision problems, model software designs and potential changes using augmented constraint networks (ACNs), and represent design modular structure before and after envisioned changes using design structure matrices (DSMs) derived from ACNs. We formalize change impacts using an evolution vector to precisely capture well-known informal design principles. As a preliminary evaluation, we use this model to compare the aspect-oriented and object-oriented observer pattern in terms of their ability to accommodate envisioned changes. The results confirm previous published results, but in formal and quantitative ways.