Skip to main content
Log in

Specifying dynamic software system architectures

  • Expert Voice
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

The inexorable penetration of software into practically every facet of modern society calls for sophisticated architectural styles, including ones that can support architectures with dynamically shifting structures, which are required to cope with the dynamics of their applications. With the advent of modern Internet-based systems operating in real time, these types of systems are becoming more widespread. Unfortunately, to date there has been insufficient theoretical work on suitable architectural design patterns for such systems. This work describes two such patterns: the dynamic part pattern and the dynamic role pattern, both of which have been proven in earlier-generation dynamic real-time systems. In addition to describing the form and semantics of these design patterns, this work proposes a notational form suitable for specifying them in component-and-connector-style architecture description languages in a clear and unambiguous manner. The practical application of the two patterns is illustrated using a running example.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

Notes

  1. The term “peer” is used here to refer to components that appear at the same level and in the same context within a decomposition hierarchy.

  2. The word “eigen” is taken from German and represents a feature that is an integral and inseparable part or aspect of some entity. The author could not find an accurate English equivalent.

  3. More precisely, its eigen part.

  4. For the sake of simplicity, clients are limited to participating in at most one relationship at a time.

  5. One example of this approach can be found in the industry-standard UML language [6].

  6. Collaborations were incorporated into UML as a first-class language construct [5].

  7. The constraint that only unbound ports will be connected in an import is intended to avoid potential conflicts, but it could be relaxed in some realizations.

  8. The notation used here for capturing composition (a filled diamond for owned parts) and aggregation (unfilled diamond for roles) is borrowed from UML [5]. Also, to simplify the diagram, the class names of the various parts are omitted while their instance names are abbreviated.

  9. This is why most real-world systems are much more accurately described by complex graphs as opposed to simple treelike topologies.

  10. Darwin also defines a Lazy Instantiation pattern, which is a variant of the Dynamic Instantiation pattern, except that instantiation occurs automatically on first access.

References

  1. Gray, J., Rumpe, B.: Modeling dynamic structures. J. Softw. Syst. Model. 19(3), 527–528 (2020)

    Article  Google Scholar 

  2. Luckham, D., Vera, J.: An event-based architecture definition language. IEEE Trans. Softw. Eng. 21(9), 717–734 (1995)

    Article  Google Scholar 

  3. Magee, J., Kramer, J.: Dynamic structure in software architectures. SIGSOFT Softw. Eng. Notes 21(6), 3–14 (1996)

    Article  Google Scholar 

  4. Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)

    Article  Google Scholar 

  5. Object Management Group: OMG Unified Modeling Language—Version 2.5, OMG document number: formal 2015-03-01 (2015)

  6. Object Management Group: Precise semantics of UML composite structures (PSCS)—OMG document number: ad/14-06-05 (2014)

  7. Parnas, D.: On criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  8. Reenskaug, T., et al.: Working With Objects—The OOram Software Engineering Method. Manning Publications Co., Greenwhich (1996)

    MATH  Google Scholar 

  9. Selic, B., Gullekson, G., Ward, P.: Real-Time Object-Oriented Modeling. Wiley, New York (1994)

    MATH  Google Scholar 

  10. Selic, B., Rumbaugh, J.: Using UML for modeling complex real-time systems, IBM Rational https://www.ibm.com/developerworks/rational/library/content/03July/1000/1155/1155_umlmodeling.pdf, Accessed 09 May 2020 (1998)

Download references

Acknowledgements

The author would like to express his gratitude to the editors of the journal as well as to David Schmalzing, who provided extensive and very constructive feedback on an earlier draft of this article. This led to significant revisions of portions of the text and resulted in what the author hopes is much improved clarity of the text.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bran Selić.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Selić, B. Specifying dynamic software system architectures. Softw Syst Model 20, 595–605 (2021). https://doi.org/10.1007/s10270-021-00875-0

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-021-00875-0

Keywords

Navigation