Advertisement

Multi-Dimensional Separation of Concerns and the Hyperspace Approach

  • Harold Ossher
  • Peri Tarr
Chapter
Part of the The Springer International Series in Engineering and Computer Science book series (SECS, volume 648)

Abstract

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 modularization 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™.

Keywords

Separation of concerns software decomposition and composition modularization evolution traceability limited impact of change 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    R. Allen and D. Garlan. A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology, July, 1997.Google Scholar
  2. 2.
    E. P. Andersen and T. Reenskaug. System design by composing structures of interacting objects. In ECOOP ′92: European Conference on Object-Oriented Programming, Springer-Verlag. LNCS, no. 615, pp. 133–152, Utrecht, June/July 1992.Google Scholar
  3. 3.
    D. J. Barrett, et al. A Framework for Event-Based Software Integration. ACM Transactions on Software Engineering and Methodology, 5(4):378–421, October 1996.CrossRefGoogle Scholar
  4. 4.
    S. Clarke, W. Harrison, H. Ossher and P. Tarr. Subject-oriented design: Towards improved alignment of requirements, design and code. In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications, pages 325–339, November, 1999. ACM.Google Scholar
  5. 5.
    D. D’Souza and A. C. Wills. Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, 1998.Google Scholar
  6. 6.
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.Google Scholar
  7. 7.
    J. Gosling, et al.. The Java Language Specification. Addison-Wesley, 1996.Google Scholar
  8. 8.
    W. Harrison and H. Ossher. Subject-oriented programming (a critique of pure objects). In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications, pages 411–428, September 1993. ACM.Google Scholar
  9. 9.
    I. M. Holland. Specifying reusable components using contracts. In ECOOP ′92: European Conference on Object-Oriented Programming, Springer-Verlag. LNCS 615, pp. 287–308, Utrecht, June/July 1992.Google Scholar
  10. 10.
    Hyperspace web site, http://www.research.ibm.com/hyperspace.
  11. 11.
    M. Jackson. Some complexities in computer-based systems and their implications for system development. In Proceedings of the International Conference on Computer Systems and Software Engineering, pages 344–351, 1990.Google Scholar
  12. 12.
    R. K. Keller, et al. Pattern-Based Reverse-Engineering of Design Components. In Proceedings of the 21 st International Conference on Software Engineering (ICSE′99), pages 226–235, May, 1999.CrossRefGoogle Scholar
  13. 13.
    G. Kiczales. Aspect-oriented programming. In ECOOP ′97: European Conference on Object-Oriented Programming, 1997. Invited presentation.Google Scholar
  14. 14.
    Doug Kimelman, Multidimensional tree-structured spaces for separation of concerns in software development environments. Position paper, OOPSLA 99 Workshop on Multi-Dimensional Separation of Concerns in Object-Oriented Systems, http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99.
  15. 15.
    M. Mezini and K. Lieberherr. Adaptive plug-and-play components for evolutionary software development. In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications, October, 1998.Google Scholar
  16. 16.
    B. Nuseibeh, J. Kramer, and A. Finkelstein. A framework for expressing the relationships between multiple views in requirements specifications. IEEE Transactions on Software Engineering, 20(10):760–773, October, 1994.CrossRefGoogle Scholar
  17. 17.
    H. Ossher. A case study in structure specification: A Grid description of scribe. IEEE Transactions on Software Engineering, 15(11), 1397–1416, November, 1989.CrossRefGoogle Scholar
  18. 18.
    H. Ossher, M. Kaplan, A. Katz, W. Harrison, and V. Kruskal. Specifying subject-oriented composition. Theory and Practice of Object Systems, 2(3): 179–202, 1996.CrossRefGoogle Scholar
  19. 19.
    H. Ossher and P. Tarr, Operation-level composition: A case in (join) point. In ECOOP ′98 Workshop Reader, pages 406–409, July 1998. Springer Verlag. LNCS 1543.Google Scholar
  20. 20.
    D. L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12): 1053–1058, December 1972.CrossRefGoogle Scholar
  21. 21.
    D. L. Parnas, On the Design and Development of Program Families. In IEEE Transactions on Software Engineering, 2(1), March 1976.Google Scholar
  22. 22.
    J. Rumbaugh, I. Jacobson, and G. Booch. Unified Modeling Language Reference Manual. Addison-Wesley, 1998.Google Scholar
  23. 23.
    M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, April 1996.Google Scholar
  24. 24.
    P. L. Tarr and L. A. Clarke. PLEIADES: An object management system for software engineering environments. In Proceedings of the ACM SIGSOFT ′93 Symposium on Foundations of Software Engineering, pages 56–70, December, 1993.Google Scholar
  25. 25.
    P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton, Jr. N degrees of separation: Multidimensional separation of concerns. In Proceedings of the 21 st International Conference on Software Engineering (ICSE′99), 107–119, May 1999.CrossRefGoogle Scholar
  26. 26.
    C. R. Turner, et al. Feature Engineering. In Proceedings of the 9th International Workshop on Software Specification and Design, 162–164, April, 1998.CrossRefGoogle Scholar
  27. 27.
    M. VanHilst and D. Notkin. Using roles components to implement collaboration-based designs. In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages, and Applications, pages 359–369, October 1996. ACM.Google Scholar
  28. 28.
    A. L. Wolf, L. A. Clarke, and J. C. Wileden. The AdaPIC toolset: Supporting interface control and analysis throughout the software development process. IEEE Transactions on Software Engineering, 15(3):250–263, March 1989.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2002

Authors and Affiliations

  • Harold Ossher
    • 1
  • Peri Tarr
    • 1
  1. 1.IBM T.J. Watson Research CenterYorktown HeightsUSA

Personalised recommendations