Architectural design support for composition and superimposition

The ever growing size and complexity of software systems is making it increasingly harder to build systems that meet both current and future requirements. During architecture design, many important design decisions are made. In this paper we present an architecture design notation based on UML activity diagrams. The notation allows for the specification of architecture fragments and supports composition of these fragments as well as their superimposition on each other. This notation allows us to make various compositions of architecture fragments (reflecting design decision alternatives) to adapt the architecture to new requirements. We have found that our notation is very suitable for modelling separate concerns at the architectural level.

[1]  James M. Coggins,et al.  Subject-Oriented Programming , 1996 .

[2]  John Leaney,et al.  Structural Analysis of the Software Architecture - A Maintenance Assessment Case Study , 1999, WICSA.

[3]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[4]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[5]  Recommended Practice for Architectural Description of Software-Intensive Systems , 1999 .

[6]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[7]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[8]  Bart W. Stuck,et al.  A Computer and Communication Network Performance Analysis Primer (Prentice Hall, Englewood Cliffs, NJ, 1985; revised, 1987) , 1987, Int. CMG Conference.

[9]  Jan Bosch,et al.  Superimposition: a component adaptation technique , 1999, Inf. Softw. Technol..

[10]  Robert J. Allen A formal approach to software architecture , 1997 .

[11]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[12]  Jan Bosch,et al.  Design erosion: problems and causes , 2002, J. Syst. Softw..

[13]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[14]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[15]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[16]  Jan L. A. van de Snepscheut,et al.  Trace Theory and VLSJ Design , 1985, Lecture Notes in Computer Science.

[17]  Mehdi Jazayeri,et al.  Software Architecture for Product Families: Principles and Practice , 2000 .

[18]  John K. Ousterhout,et al.  Scripting: Higher-Level Programming for the 21st Century , 1998, Computer.

[19]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[20]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[21]  David C. Luckham,et al.  Rapide: A language and toolset for simulation of distributed systems by partial orderings of events , 1997, Partial Order Methods in Verification.

[22]  Don Roberts,et al.  Patterns for evolving frameworks , 1997 .

[23]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[24]  David Garlan,et al.  Acme: an architecture description interchange language , 1997, CASCON.

[25]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[26]  Henk Sol,et al.  Proceedings of the 54th Hawaii International Conference on System Sciences , 1997, HICSS 2015.

[27]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[28]  Lennart Ohlsson,et al.  Points & Deviations : A Pattern Language for Fire Alarm Systems , 1996 .

[29]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[30]  Jan Bosch,et al.  Design Erosion: Problems & Causes , 2001 .

[31]  Kendall Scott,et al.  UML distilled - applying the standard object modeling language , 1997 .

[32]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[33]  David Garlan,et al.  A Formal Approach to Software Architectures , 1992, IFIP Congress.

[34]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[35]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .