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.










Similar content being viewed by others
Notes
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.
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.
More precisely, its eigen part.
For the sake of simplicity, clients are limited to participating in at most one relationship at a time.
One example of this approach can be found in the industry-standard UML language [6].
Collaborations were incorporated into UML as a first-class language construct [5].
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.
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.
This is why most real-world systems are much more accurately described by complex graphs as opposed to simple treelike topologies.
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
Gray, J., Rumpe, B.: Modeling dynamic structures. J. Softw. Syst. Model. 19(3), 527–528 (2020)
Luckham, D., Vera, J.: An event-based architecture definition language. IEEE Trans. Softw. Eng. 21(9), 717–734 (1995)
Magee, J., Kramer, J.: Dynamic structure in software architectures. SIGSOFT Softw. Eng. Notes 21(6), 3–14 (1996)
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)
Object Management Group: OMG Unified Modeling Language—Version 2.5, OMG document number: formal 2015-03-01 (2015)
Object Management Group: Precise semantics of UML composite structures (PSCS)—OMG document number: ad/14-06-05 (2014)
Parnas, D.: On criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)
Reenskaug, T., et al.: Working With Objects—The OOram Software Engineering Method. Manning Publications Co., Greenwhich (1996)
Selic, B., Gullekson, G., Ward, P.: Real-Time Object-Oriented Modeling. Wiley, New York (1994)
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)
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
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-021-00875-0