N Degrees of Separation: Multi-Dimensional Separation of Concerns

N Degrees of Separation: Multi-Dimensional Separation of Concerns

1999 | Peri Tarr, Harold Ossher, William Harrison, Stanley M. Sutton, Jr.
This paper introduces a new paradigm for modeling and implementing software artifacts that allows for multi-dimensional separation of concerns. The approach addresses numerous problems throughout the software lifecycle, enabling well-engineered, evolvable, flexible software artifacts and traceability across artifacts. The primary goals of software engineering are to improve software quality, reduce the costs of software production, and facilitate maintenance and evolution. These goals are achieved through reduced complexity, improved comprehensibility, promotion of reuse, and facilitation of evolution. However, existing formalisms support only orthogonal separations of concerns along single dimensions of composition and decomposition, leading to well-known and difficult problems. The paper describes a model of software artifacts, decomposition, and composition that allows for simultaneous, multi-dimensional decomposition and composition. This model complements existing formalisms, giving developers additional modularization flexibility while continuing to use the formalisms of their choice. It is not particular to any phase of the software lifecycle and enables the representation of alternative decompositions of artifacts within a development phase, allowing artifacts to be related in multiple ways across phases and even to co-structure artifacts. The paper also discusses the challenges of software engineering, including the impact of change, reuse, and traceability. These challenges are attributed to the "tyranny of the dominant decomposition," where existing modularization mechanisms typically support only a small set of decompositions, usually only a single "dominant" one at a time. This dominant decomposition satisfies some important needs but often at the expense of others. The paper proposes a model that allows for simultaneous separation of overlapping concerns in multiple dimensions. This model enables the separation of concerns along multiple dimensions, addressing the problems of software complexity and comprehensibility and difficulties with reuse, facilitating software evolution, and enhancing traceability between artifacts. The model is illustrated through an example involving the construction and evolution of a simple software engineering environment for programs consisting of expressions. The example demonstrates the challenges of software engineering and how the proposed model can address these challenges. The paper also discusses the instantiation of the model for particular artifact development formalisms, such as UML and Java. It describes the issues involved in instantiating the model, including mapping to units and modules, representation of hyperslices, and support for composition. The paper also discusses related work, including subject-oriented programming and aspect-oriented programming, and how they relate to the proposed model. The paper concludes that the proposed model is a valuable tool with potentially high benefit, if used properly.This paper introduces a new paradigm for modeling and implementing software artifacts that allows for multi-dimensional separation of concerns. The approach addresses numerous problems throughout the software lifecycle, enabling well-engineered, evolvable, flexible software artifacts and traceability across artifacts. The primary goals of software engineering are to improve software quality, reduce the costs of software production, and facilitate maintenance and evolution. These goals are achieved through reduced complexity, improved comprehensibility, promotion of reuse, and facilitation of evolution. However, existing formalisms support only orthogonal separations of concerns along single dimensions of composition and decomposition, leading to well-known and difficult problems. The paper describes a model of software artifacts, decomposition, and composition that allows for simultaneous, multi-dimensional decomposition and composition. This model complements existing formalisms, giving developers additional modularization flexibility while continuing to use the formalisms of their choice. It is not particular to any phase of the software lifecycle and enables the representation of alternative decompositions of artifacts within a development phase, allowing artifacts to be related in multiple ways across phases and even to co-structure artifacts. The paper also discusses the challenges of software engineering, including the impact of change, reuse, and traceability. These challenges are attributed to the "tyranny of the dominant decomposition," where existing modularization mechanisms typically support only a small set of decompositions, usually only a single "dominant" one at a time. This dominant decomposition satisfies some important needs but often at the expense of others. The paper proposes a model that allows for simultaneous separation of overlapping concerns in multiple dimensions. This model enables the separation of concerns along multiple dimensions, addressing the problems of software complexity and comprehensibility and difficulties with reuse, facilitating software evolution, and enhancing traceability between artifacts. The model is illustrated through an example involving the construction and evolution of a simple software engineering environment for programs consisting of expressions. The example demonstrates the challenges of software engineering and how the proposed model can address these challenges. The paper also discusses the instantiation of the model for particular artifact development formalisms, such as UML and Java. It describes the issues involved in instantiating the model, including mapping to units and modules, representation of hyperslices, and support for composition. The paper also discusses related work, including subject-oriented programming and aspect-oriented programming, and how they relate to the proposed model. The paper concludes that the proposed model is a valuable tool with potentially high benefit, if used properly.
Reach us at info@study.space