Multi-Dimensional Separation of Concerns and the Hyperspace Approach [chapter]

Harold Ossher, Peri Tarr
2002 Software Architectures and Component Technology  
Separation of concerns is at the core of software engineering, and has been for decades. This has led to the invention of many interesting, and effective, modularization approaches. Yet many of the problems it is supposed to alleviate are still with us, including dangerous and expensive invasive change, and obstacles to reuse and component integration. A key reason is that one needs different decompositions according to different concerns at different times, but most languages and
more » ... approaches support only one "dominant" kind of modularization (e.g., by class in object-oriented languages). Once a system has been decomposed, extensive refactoring and reengineering are needed to remodularize it. Multi-dimensional separation of concerns allows simultaneous separation according to multiple, arbitrary kinds (dimensions) of concerns, with on-demand remodularization. Concerns can overlap and interact. This paper discusses multi-dimensional separation of concerns in general, our particular approach to providing it, called hyperspaces, and our support for hyperspaces in Java™, called Hyper/J™.
doi:10.1007/978-1-4615-0883-0_10 fatcat:s5sesx7gdvednp6lv67nblmahy