Skip to main content
Log in

Separation of non-orthogonal concerns in software architecture and design

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

Separation of concerns represents an important principle for managing complexity in the design and architecture of large component-based software systems. The fundamental approach is to develop local solutions for individual concerns first, and combine them later into an overall solution for the complete system. However, comprehensive support for the integration of interdependent, possibly conflicting concerns related to synchronization behavior is still missing. In our work, we propose a sound solution for this complex type of composition, employing well-known UML description techniques as well as a rigorous formal model of component synchronization behavior. Based on this foundation, we describe a constructive synthesis algorithm which reliably detects conflicting concerns or generates a maximal synchronization behavior for software components with multiple interactions. An optimized implementation of the algorithm has been integrated into a CASE tool to illustrate feasibility and scalability of the presented technique to the example of a moderately large case study.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  2. Szyperski, C.: Component software, beyond object-oriented programming. Addison-Wesley (1998)

  3. Shaw, M., Garlan, D.: Software architecture: perspectives on an emerging discipline. Prentice Hall (1996)

  4. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns, elements of reusable object-oriented software. Addison-Wesley (1994)

  5. Stoyen, A.D.: Fighting complexity in computer science. IEEE Computer 30(8), 47–48 (1997)

    Google Scholar 

  6. Dijkstra, E.W.: A discipline of programming. Prentice Hall, Englewood Cliffs, N.J. (1976)

    MATH  Google Scholar 

  7. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP), number 1241 in LNCS. Springer Verlag (1997)

  8. Harrison, W., Ossher, H.: Subject-oriented programming (a critique of pure objects). ACM SIGPLAN Notices 28(10), 411–428 (1993)

    Article  Google Scholar 

  9. Finkelstein, A., Gabbay, D., Hunter, A., Kramer, J., Nuseibeh, B.: Inconsistency handling in multi-perspective specifications. IEEE Transactions on Software Engineering 20(8), 569–578 (1994)

    Article  Google Scholar 

  10. Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., Lorensen, W.: Object-oriented modeling and design. Prentice Hall (1991)

  11. Deutsch, P.: Design reuse and frameworks in the Smalltalk-80 system. Software Reusability 2 (1989)

  12. Garlan, D., Perry, D.: Special issue on software architecture. IEEE Transactions on Software Engineering 21 (1995)

  13. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern oriented software architecture. John Wiley & Sons, Inc. (1996)

  14. Gruber, T.: A translation approach to portable ontology specifications. Knowledge Aquisition 5, 199–220 (1993)

    Article  Google Scholar 

  15. Vilbig, A.: Komponentenbasiertes Rapid Prototyping am Beispiel der Biomolekularen Sequenzanalyse. PhD thesis, Technische Universität München, Department of Computer Science (2001)

  16. Milner, R.: Communication and concurrency. Prentice-Hall International (1989)

  17. ISO: Genève. LOTOS – A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour. ISO/IS 8807 (1989)

  18. Vanhaute, B., Truyen, E., Joosen, W., Verbaeten, P.: Composing Non-orthogonal Meta-programs. In: First Workshop on Multi-Dimensional Separation of Concerns in Object-oriented Systems (at OOPSLA '99) (1999)

  19. Meyer, B.: Object-Oriented Software Construction. 2nd edition. Prentice Hall (1997)

  20. Allen, R., Garlan, D.: A Formal Basis for Architectural Connections. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)

    Article  Google Scholar 

  21. Bowman, H., Steen, M.W.A., Boiten, E.A., Derrick, J.: A formal framework for viewpoint consistency. Form. Methods Syst. Des. 21(2), 111–166 (2002)

    Article  MATH  Google Scholar 

  22. Bergner, K., Rausch, A., Sihling, M., Vilbig, A., Broy, M.: A Formal Model for Componentware. In: Leavens, G.T., Sitaraman, M. (eds.) Foundations of Component-Based Systems, chapter 9, pp. 189–210. Cambridge University Press, New York, NY (2000)

    Google Scholar 

  23. Shannon, B., Hapner, M., Matena, V., Davidson, J., Cable, L., Pelegri-Llopart, E.: Java 2 Platform, Enterprise Edition: Platform and Component Specifications. Addison-Wesley, Reading, MA (2000)

    Google Scholar 

  24. Microsoft Corporation.: The Microsoft .NET Framework. Microsoft Press (2001)

  25. Object Management Group.: OMG Unified Modeling Language Specification, Version 1.5, (September 2001). OMG document formal/03-03-01

  26. Beugnard, A., Jezequel, J.-M., Watkins, D.: Making Components Contract Aware. IEEE Computer 32(7), 38–45 (1999)

    Google Scholar 

  27. Andrews, G.R., Schneider, F.B.: Concepts and notations for concurrent programming. ACM Computing Surveys (CSUR) 15(1), 3–43 (1983)

    Article  MATH  Google Scholar 

  28. Harel, D.: STATECHARTS: A Visual Formalism for complex systems. Science of Computer Programming 3(8), 231–274 (1987)

    Article  MathSciNet  Google Scholar 

  29. Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F., Jeremaes, P.: Object-Oriented Development: The Fusion Method. Prentice-Hall (1994)

  30. Campbell, R.H., Habermann, A.N.: The Specification of Process Synchronization by Path Expressions. In: Gelenbe, E., Kaiser, C. (eds.) International Symposium on Operating Systems, Berlin, volume 16 of Lecture Notes in Computer Science, pp. 89–102, Springer Verlag (1974)

  31. Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice Hall (1990)

  32. Reenskaug, T., Wold, P., Lehene, O.A.: Working with Objects: The OOram Software Engineering Method. Addison-Wesley/Manning (1996)

  33. Selic, B., Gullekson, G., Ward, P.: Real-Time Object-Oriented Modeling. John Wiley & Sons, Inc. (1994)

  34. Giese, H., Graf, J., Wirtz, G.: Modeling Distributed Software Systems with Object Coordination Nets. In: Krämer, B., Uchihira, N., Croll, P., Russo, S. (eds.) Int. Symposium on Software Engineering for Parallel and Distributed Systems (PDSE'98), Kyoto, Japan, pp. 107–116. IEEE Press (1998)

  35. Medvidovic, N., Rosenblum, D.S., Redmiles, D.F., Robbins, J.E.: Modeling software architectures in the Unified Modeling Language. ACM Transactions on Software Engineering and Methodology (TOSEM) 11(1) (2002)

  36. Taft, S.T., Duff, R.A. (eds.): Ada 95 Reference Manual: Language and Standard Libraries, International Standard ISO/IEC 8652:1995(E). Springer Verlag (1997)

  37. Selic, B.: An Architectural Pattern for Real-Time Control Software. In: Workshop on Frameworks and Architectures, Pattern Languages of Programs Conference (PLoP '96), Allerton Park, Illinois, Sept. 4–6, 1996, Addison-Wesley (1996)

  38. Emerson, E.A., Clarke, E.M.: Using branching time temporal logic to synthesize synchronization skeletons. Science of Computer Programming 2, 241–266 (1982)

    Article  MATH  Google Scholar 

  39. Keller, R.M.: Formal verification of parallel programs. Communications of the ACM 19(7), 371–384 (1976)

    Article  MATH  Google Scholar 

  40. Nicola, R.D.: Extensional equivalences for transition systems. Acta Informatica 28, 211–237 (1987)

    Google Scholar 

  41. Uselton, A.C., Smolka, S.A.: A Compositional Semantics for Statecharts using Labeled Transition Systems. In: Proceedings of CONCUR '94 – Fifth International Conference on Concurrency Theory, Uppsala, Sweden, volume 836 of Lecture Notes in Computer Science, pp. 2–17 (1994)

  42. Lüttgen, G., Mendler, M.: The intuitionism behind Statecharts steps. ACM Transactions on Computational Logic (TOCL) 3(1), 1–41 (2002)

    Article  Google Scholar 

  43. Walicki, M., Meldal, S.: Algebraic Approaches to Nondeterminism – an Overview. ACM Computing Surveys 29(1), 30–81 (1997)

    Article  Google Scholar 

  44. Hopcroft, J.E., Ullman, J.D.: Introduction to Automata Theory, Languages and Computation. Series in Computer Science. Addison-Wesley, Reading, MA, USA (1979)

  45. Drusinsky, D., Harel, D.: On the Power of Bounded Concurrency I: Finite Automata. Journal of the ACM 41(3) (1994)

  46. Broy, M.: A theory of nondeterminism, parallelism, communication and concurrency. Theoretical Computer Science 45 (1986)

  47. Milner, R.: An algebraic definition of simulation between programs. In: Proceedings of the 2nd International Joint Conference on Artifical Intelligence, The British Computer Society, pp. 481–189 (1971)

  48. Abadi, M., Lamport, L.: The existence of refinement mappings. Theoretical Computer Science 82(2), 253–284 (1991)

    Article  MathSciNet  MATH  Google Scholar 

  49. Giese, H., Vilbig, A.: Separation of non-orthogonal concerns in software architecture and design. Technical Report tr-ri-05-254, Department of Computer Science, University of Paderborn, Germany (2005) (Version 2)

  50. Bryant, R.E.: Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Computing Surveys 24(3), 293–318 (1992)

    Article  Google Scholar 

  51. Garey, M.R., Johnson, D.S.: Computers and Intractability. W.H. Freeman and Company (1979)

  52. Coudert, O., Berthet, C., Madre, J.C.: Verification of Synchronous Sequential Machines Based on Symbolic Execution. In: Sifakis, J. (ed.) Proceedings of the International Workshop on Automatic Verification Methods for Finite State Machines, Grenoble, France, volume 407 of Lecture Notes in Computer Science, pp. 365–373 (1989)

  53. McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Publishers (1993)

  54. Lind-Nielsen, J., Andersen, H.R., Behrmann, G., Hulgaard, H., Kristoffersen, K., Larsen, K.G.: Verification of Large State/Event Systems using Compositionality and Dependency Analysis. In: Steffen, B. (ed.) Proceedings of the 4th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'98). Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS'98, Lisbon, Portugal, March 28–April 4, volume 1384 of Lecture Notes in Computer Science (1998)

  55. Köhler, H., Nickel, U., Niere, J., Zündorf, A.: Integrating UML Diagrams for Production Control Systems. In: Proceedings of the 22nd International Conference on Software Engineering (ICSE), Limerick, Irland, pp. 241–251. ACM Press (2000)

  56. Artwork.: Project ARTWORK Homepage. http://artwork.in.tum.de/ (2001)

  57. Kruchten, P.: The Rational Unified Process — an Introduction. Addison Wesley (1999)

  58. Kruchten, P.: The 4+1 View Model of Architecture. IEEE Software 12(6), 42–50 (1995)

    Article  Google Scholar 

  59. Abd-Allah, A., Boehm, B.: Models for composing heterogenous software architectures. Technical Report USC-CSE-96-505, University of Southern California (1996)

  60. Hoare, C.A.R.: Communicating Sequential Processes. Series in Computer Science. Prentice-Hall International (1985)

  61. Clarke, S., Harrison, W., Ossher, H., Tarr, P.: Subject-Oriented Design: Towards Improved Alignment of Requirements, Design and Code. In: Conference on Object-Oriented Programming, Systems, Languages, and Applications, November 1–5, 1999, Denver, Colerado, USA, pp. 325–339 (1999)

  62. Kendall, E.A.: Role Model Designs and Implementations with Aspect-oriented Programming. In: Confernece on Object-Oriented Programming, Systems, Languages, and Applications, November 1–5, 1999, Denver, Colerado, USA, pp. 353–369 (1999)

  63. Mekerke, F., Georg, G., Franc, R.: Tool Support for Aspect-Oriented Design. In: Proceedings of the Workshops on Advances in Object-Oriented Information Systems (OOIS 2002), Montpellier, France, volume 2426 of Lecture Notes in Computer Science, pp. 280–289. Springer Verlag (2002)

  64. Tarr, P., Ossher, H., Harrison, W., Sutton, S.M. N degrees of separation: multi-dimensional separation of concerns. In: Proceedings of the 1999 international conference on Software engineering May 16–22, 1999, Los Angeles, CA USA, pp. 107–119 (1999)

  65. Fradet, P., Metayer, D.L., Perin, M.: Consistency Checking for Multiple View Softeware Architecture. In: Nierstrasz, O., Lemoine, M. (eds.) 7th European Software Engineering Conference, Toulouse, France, volume 1687 of Lecture Notes in Computer Science, pp. 410–428 (1999)

  66. Ainsworth, M., Cruickshank, A.H., Wallis, P.J.L., Groves, L.J.: Viewpoint specification and z. Information and Software Technology 36(1), 43–51 (1994)

    Article  Google Scholar 

  67. Derrick, J., Bowman, H., Steen, M.W.A.: Maintaining cross-viewpoint consistency using z. In: In the IFIP International Conference on Open Distributed Processing, pp. 395–406. Chapman and Hall (1995)

  68. Jackson, D.: Structuring z specifications with views. ACM Trans. Softw. Eng. Methodol. 4(4), 365–389 (1995)

    Article  Google Scholar 

  69. ISO.: Open Distributed Processing Reference Model – parts 1,2,3,4, 1995. ISO 10746-1,2,3,4 or ITU-T X.901,2,3,4

  70. Hennessy, M.: Algebraic Theory of Processes. MIT Press (1988)

  71. Baeten, J.C.M., Bergstra, J.A., Klop, J.W.: On the consistency of Koomen's fair abstraction rule. Theoretical Computer Science 51, 129–176 (1987)

    Article  MathSciNet  MATH  Google Scholar 

  72. Engels, G., Küster, J.M., Groenewegen, L., Heckel, R.: A Methodology for Specifying and Analyzing Consistency of Object-Oriented Behavioral Models. In: Gruhn, V. (ed.) Proceedings of the Joint 8th European Software Engineering Conference (ESEC) and 9th ACM SIGSOFT Symposium on the Foundation of Software Engineering (FSE-9), Vienna, Austria, September 10–14, pp. 186–195. ACM Press (2001)

  73. Giese, H., Vilbig, A.: Towards Aspect-oriented Design and Architecture. In: Tarr, P., Bergmans, L., Griss, M., Ossher, H. (eds.) 15th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications October 15–19, 2000, Minneapolis, Minnesota, USA. Workshop: Advanced Separation of Concerns, Monday, 16 October, 2000 (2000)

  74. Selic, B., Ramackers, G., Kobryn, C.: Evolution, not revolution. Communications of the ACM 45(11), 70–72 (2002)

    Article  Google Scholar 

  75. Object Management Group.: UML 2.0 Superstructure Specification, 2003. Document ptc/03-08-02

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Holger Giese.

Additional information

This work was partly developed in the course of the Special Research Initiative 614 – Self-optimizing Concepts and Structures in Mechanical Engineering – University of Paderborn, and was published on its behalf and funded by the Deutsche Forschungsgemeinschaft. Alexander Vilbig contributed to this work during a research position at the Chair of Software and Systems Engineering of Technische Universitüt München.

Alexander Vilbig was born on February 10, 1968 in Karlsruhe, Germany. After achieving the European Baccalaureate at the European School Munich in 1986, he studied microbiology and computer science at Technische Universität München until 1996. During the following doctorate period at the Chair of Software and Systems Engineering at Technische Universität München, his research concentrated on component- and model-based software engineering both from a theoretical and practical perspective. In 2001, he successfully submitted his dissertation on component-based rapid prototyping in the domain of biomolecular sequence analysis. Since 2003 he works as a senior consultant at Stadtwerke München GmbH, the largest German municipal utility, leading an internal software development group for technical applications.

Holger Giese studied technical computer science at the University Siegen and received his engineering degree in October 1995. He received a doctorate in Computer Science at the Institute of Computer Science at the University of Münster in February 2001. Since 2001, he is assistant professor for object-oriented specification of distributed systems in the Software Engineering Group of the University of Paderborn.

His main research interest is software engineering for distributed, component-based real-time systems using a model-driven development approach. This includes techniques and tools for modeling, analysis, validation, and verification of safety-critical distributed real-time systems using design patterns, components, and software architecture modeling.

He is member of the Association for Computing Machinery (ACM), the IEEE Computer Society, and the German Informatics Society (GI).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Giese, H., Vilbig, A. Separation of non-orthogonal concerns in software architecture and design. Softw Syst Model 5, 136–169 (2006). https://doi.org/10.1007/s10270-005-0103-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-005-0103-4

Keywords

Navigation