Published in Volume XXVI, Issue 2, 2016, pages 187–248, doi: 10.7561/SACS.2016.2.187

Authors: D. Marmsoler, M. Gleirscher

Abstract

The architecture of a system describes the system’s overall organization into components and connections between those components. With the emergence of mobile computing, dynamic architectures became increasingly important. In such architectures, components may appear or disappear, and connections may change over time. Despite the growing importance of dynamic architectures, the specification of properties for those architectures remains a challenge. To address this problem, we introduce the notion of configuration traces to model properties of dynamic architectures. Then, we characterize activation, connection, and behavior properties as special sets of configuration traces. We then show soundness and relative completeness of our characterization, i.e., we show that the intersection of an activation, connection, and behavior property contains all relevant configuration traces and that (almost) every property can be separated into these classes. Configuration traces can be used to specify general properties of dynamic architectures and the separation into different classes provides a systematic way for their specification. To evaluate our approach we apply it to the specification and verification of the Blackboard architecture pattern.

Full Text (PDF)

References

[1] G. D. Abowd, R. Allen, and D. Garlan. “Formalizing Style to Understand Descriptions of Software Architecture”. In: ACM Transactions on Software Engineering and Methodology (TOSEM) 4.4 (1995), pp. 319–364. doi: 10.1145/226241.226244.

[2] R. J. Allen. A Formal Approach to Software Architecture. Tech. rep. DTIC Document, 1997.

[3] R. Allen, R. Douence, and D. Garlan. “Specifying and Analyzing Dynamic Software Architectures”. In: Fundamental Approaches to Software Engineering. Ed. by E. Astesiano. Vol. 1382. Lecture Notes in Computer Science. Springer Berlin Heidelberg, 1998, pp. 21–37. doi: 10.1007/bfb0053581.

[4] M. Bernardo, P. Ciancarini, and L. Donatiello. “On the Formalization of Architectural Types with Process Algebras”. In: ACM SIGSOFT Software Engineering Notes. Vol. 25. 6. 2000, pp. 140–148. doi: 10. 1145/357474.355064.

[5] J. S. Bradbury et al. “A survey of self-management in dynamic software architecture specifications”. In: Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems – WOSS ’04. ACM Press, 2004, pp. 28–33. doi: 10.1145/1075405.1075411.

[6] M. Broy. “A Logical Basis for Component-Oriented Software and Systems Engineering”. In: The Computer Journal 53.10 (Feb. 2010), pp. 1758–1782. doi: 10.1093/comjnl/bxq005.

[7] M. Broy. “A Model of Dynamic Systems”. In: From Programs to Systems. The Systems perspective in Computing. Ed. by S. Bensalem, Y. Lakhneck, and A. Legay. Vol. 8415. Lecture Notes in Computer Science. Springer Berlin Heidelberg, 2014, pp. 39–53. isbn: 978-3-642- 54847-5. doi: 10.1007/978-3-642-54848-2_3.

[8] M. Broy. “Algebraic Specification of Reactive Systems”. In: Algebraic Methodology and Software Technology. Springer Berlin Heidelberg, 1996, pp. 487–503. doi: 10.1007/bfb0014335.

[9] F. Buschmann et al. Pattern-Oriented Software Architecture: A System of Patterns. Wiley West Sussex, England, 1996.

[10] P. F. Castro et al. “Towards Managing Dynamic Reconfiguration of Software Systems in a Categorical Setting”. In: Lecture Notes in Computer Science. Springer, 2010, pp. 306–321. doi: 10.1007/978-3-642- 14808-8_21.

[11] P. C. Clements. “A survey of architecture description languages”. In: Proceedings of the 8th International Workshop on Software Specification and Design. IEEE Comput. Soc. Press, 1996, p. 16. doi: 10.1109/ iwssd.1996.501143.

[12] E. M. Dashofy, A. Van der Hoek, and R. N. Taylor. “A Highly-Extensible, XML-Based Architecture Description Language”. In: Software Architecture, 2001. Proceedings. Working IEEE/IFIP Conference on. 2001, pp. 103–112. doi: 10.1109/wicsa.2001.948416.

[13] J. L. Fiadeiro and A. Lopes. “A Model for Dynamic Reconfiguration in Service-oriented Architectures”. In: Software & Systems Modeling 12.2 (2013), pp. 349–367. doi: 10.1007/s10270-012-0236-1.

[14] D. Garlan. “Formal Modeling and Analysis of Software Architecture: Components, Connectors, and Events”. In: Formal Methods for Software Architectures. Springer, 2003, pp. 1–24. doi: 10.1007/978-3-540-39800-4_1.

[15] D. Hirsch and U. Montanari. “Two Graph-Based Techniques for Software Architecture Reconfiguration”. In: Electronic Notes in Theoretical Computer Science 51 (May 2002), pp. 177–190. doi: 10.1016/s1571-0661(04)80201-9.

[16] P. Inverardi and A. L. Wolf. “Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model”. In: Software Engineering, IEEE Transactions on 21.4 (1995), pp. 373– 386. doi: 10.1109/32.385973.

[17] D. Le Métayer. “Describing Software Architecture Styles Using Graph Grammars”. In: Software Engineering, IEEE Transactions on 24.7 (1998), pp. 521–533. doi: 10.1109/32.708567.

[18] D. C. Luckham et al. “Specification and Analysis of System Architecture Using Rapide”. IEEE Transactions on Software Engineering 21.4 (1995), pp. 336–354. doi: 10.1109/32.385971.

[19] J. Magee and J. Kramer. “Dynamic Structure in Software Architectures”. In: ACM SIGSOFT Software Engineering Notes 21.6 (1996), pp. 3–14. doi: 10.1145/239098.239104.

[20] Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer New York, 1992. doi: 10.1007/978-1-4612-0931-7.

[21] D. Marmsoler. “On the Specification of Constraints for Dynamic Architectures”. In: ArXiv e-prints (Mar. 2017). arXiv: 1703.06823[cs.SE].

[22] D. Marmsoler. “Towards a Theory of Architectural Styles”. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering – FSE 2014. ACM Press, 2014, pp. 823–825. doi: 10.1145/2635868.2661683.

[23] D. Marmsoler and M. Gleirscher. “Specifying Properties of Dynamic Architectures using Configuration Traces”. In: Theoretical Aspects of Computing. Springer, 2016. doi: 10.1007/978-3-319-46750-4_14.

[24] N. Medvidovic. “ADLs and dynamic architecture changes”. In: Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints ’96) on SIGSOFT ’96 workshops -. ACM Press, 1996, pp. 24–27. doi: 10.1145/243327.243340.

[25] M. Moriconi, X. Qian, and R. A. Riemenschneider. “Correct Architecture Refinement”. In: Software Engineering, IEEE Transactions on 21.4 (1995), pp. 356–372. doi: 10.1109/32.385972.

[26] F. Oquendo. “π-ADL: An Architecture Description Language based on the Higher-Order Typed π-Calculus for Specifying Dynamic and Mobile Software Architectures”. In: ACM SIGSOFT Software Engineering Notes 29.3 (May 2004), pp. 1–14. doi: 10.1145/986710.986728.

[27] J. Penix, P. Alexander, and K. Havelund. “Declarative Specification of Software Architectures”. In: Automated Software Engineering. 1997, pp. 201–208. doi: 10.1109/ase.1997.632840.

[28] M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Vol. 1. Prentice Hall Englewood Cliffs, 1996. isbn: 9780131829572.

[29] J. Spivey. The Z Notation: A Reference Manual. Prentice-Hall international series in computer science. Prentice Hall, 1992. isbn: 9780139785290.

[30] R. N. Taylor, N. Medvidovic, and E. M. Dashofy. Software Architecture: Foundations, Theory, and Practice. Wiley Publishing, 2009. isbn: 9780470167748.

[31] M. Wermelinger, A. Lopes, and J. L. Fiadeiro. “A Graph Based Architectural (Re)configuration Language”. In: Software Engineering Notes. Vol. 26. 5. 2001, pp. 21–32. doi: 10.1145/503271.503213.

[32] M. Wirsing. “Algebraic Specification”. In: Handbook of Theoretical Computer Science (Vol. B). Ed. by J. van Leeuwen. Cambridge, MA, USA: MIT Press, 1990, pp. 675–788. isbn: 0-444-88074-7. doi: 10.1016/b978-0-444-88074-1.50018-4.

Bibtex

@article{sacscuza:marmsoler2016oacabida,
  title={On Activation, Connection, and Behavior in Dynamic Architectures},
  author={D. Marmsoler and M. Gleirscher},
  journal={Scientific Annals of Computer Science},
  volume={26},
  number={2},
  organization={``A.I. Cuza'' University, Iasi, Romania},
  year={2016},
  pages={187–248},
  doi={10.7561/SACS.2016.2.187},
  publisher={``A.I. Cuza'' University Press}
}