Flexible Component Composition through Communication Abstraction
2016, Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development
https://doi.org/10.5220/0005830304420449Abstract
Software architectures are often abstracted as a combination of reusable components connected to each other by various means. Specifications of components' semantics have been widely studied and many modeling languages have been proposed from coarse-grained loosely-defined elements to operational objects with behavioral semantics that may be generated and executed in a dedicated framework. All these modeling facilities have proven their advantages in many domains through either case studies or real-world applications. However, most of those approaches either consider a subset of composition facilities, i.e. the available types of bindings between components, or do not even consider communication properties at all, staying at behavioral-related compatibility between components. Verifications of communication-related properties are then postponed to the hand of software developers and finally considered at deployment-time only. Part of a general architecture framework, we propose an abstraction formalism to specify communication paths between components. This modeling facility relies on a taxonomy of types of links and the specifications of communication protocols. This protocol serves as a reification element between abstract component compositions, architecture instances and deployment infrastructure, making explicit communication-related constraints and properties.
References (14)
- Beugnard, A., Jézéquel, J.-M., Plouzeau, N., and Watkins, D. (1999). Making components contract aware. Com- puter, 32(7):38-45.
- Dashofy, E. M., Hoek, A. v. d., and Taylor, R. N. (2005). A comprehensive approach for the development of mod- ular software architecture description languages. ACM Trans. Softw. Eng. Methodol., 14(2):199-245.
- de Jonge, M. (2003). To Reuse or to be Reused -Techniques for Component Composition and Construction. PhD thesis, Universiteit van Amsterdam.
- Garlan, D., Monroe, R. T., and Wile, D. (1997). Acme: An architecture description interchange language. In Conference of the Centre for Advanced Studies on Collaborative research (CASCON 97), pages 169- 183, Toronto, Ontario.
- Gilson, F. (2015). Transformation-Wise Software Architec- ture Framework. Presse Universitaire de Namur, Na- mur (Belgium). Ph.D. Thesis.
- Gössler, G. and Sifakis, J. (2005). Composition for component-based modeling. Science of Computer Programming, 55(1-3):161 -183. Formal Methods for Components and Objects: Pragmatic aspects and applications.
- Grinkrug, E. (2014). Dynamic component composition. In- ternational Journal of Software Engineering & Appli- cations, 5(4).
- Malavolta, I., Lago, P., Muccini, H., Pelliccione, P., and Tang, A. (2013). What industry needs from architec- tural languages: A survey. IEEE Trans. Softw. Eng., 39(6):869-891.
- Object Management Group (2011). OMG Unified Model- ing Language (OMG UML), Superstructure, version 2.4.1, chapter 8, pages 161-182. Object Management Group. OMG document formal/2011-08-06.
- Object Management Group (2012). OMG Systems Model- ing Language (OMG SysML™), version 1.3. OMG document formal/2012-06-01.
- Open Group (2013). Open Group Standard ArchiMate®2.1 Specification. Document Number: C13L.
- Oquendo, F. (2004). π-adl: an architecture description language based on the higher-order typed π-calculus for specifying dynamic and mobile software archi- tectures. SIGSOFT Software Engineering Notes, 29(3):1-14.
- Society of Automotive Engineers (2012). Architecture Analysis & Design Language (AADL). Standard number AS5506 Revision: B.
- Szyperski, C. (2002). Component Software: Beyond Object-Oriented Programming. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2nd edition.