2007 · 28 citations · 16 references
ComputingComputer SystemsSoftware EngineeringSystems ArchitectureSystems DesignObject-oriented DesignSoftware ArchitectureSoftware DesignSoftware EvolutionSoftware ModelingAspect-oriented ProgrammingDecision ProblemsDecision Tree DesignDesign PrinciplesModular DesignModular StructureModularityModularity Decisions
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.
16
Consistency in networks of relations
Alan K. Mackworth · Artificial Intelligence · 1977 · 2.4K citations
Design pattern implementation in Java and aspectJ
Jan Hannemann, Gregor Kiczales · 2002 · 575 citations
Computing, Computer Science, Design +16
The structure and value of modularity in software design
Kevin Sullivan, William G. Griswold, Yuanfang Cai et al. · 2001 · 306 citations
Computing, Design, Design Theory +13