Abstract
For the systematic development of logical, message-driven architectures, automating parallel decomposition of software components is important to achieve efficient modular and parallel system development. During development, monolithic components that realize multiple independent concerns need to be decomposed to obtain a higher quality architecture of cohesively encapsulated, better comprehensive components. Previous work did not address automated parallel decomposition of finite message-driven and logically timed components with respect to the influence of messages received via input channels on the messages sent via output channels. This, however, is a necessary prerequisite to enable the analysis of event chains across logically distributed architectures. To address this, we present a concept of influence between channels of components that supports automated semantics-preserving parallel decomposition of finite deterministic component implementations into independent, more comprehensible components that are better accessible for analysis and development. Therefore, we extend the Focus theory of time-synchronous components with the concept of influence, present a decomposition procedure leveraging this, and prove that the resulting system is semantically equivalent. This enables automatically decomposing monolithic software components (e.g., for stepwise refinement or refactoring) into smaller components of better cohesion and comprehensibility and thus facilitates automated software engineering.
Similar content being viewed by others
References
Béal, M., Carton, O.: Determinization of transducers over infinite words. In: ICALP, Springer, Lecture Notes in Computer Science, vol. 1853, pp. 561–570 (2000)
Béal, M.P., Carton, O.: Determinization of transducers over finite and infinite words. Theor. Comput. Sci. 289(1), 225–251 (2002)
Brim, L., Černá, I., Vařeková, P., Zimmerova, B.: Component-interaction automata as a verification-oriented component-based system specification. SIGSOFT Softw. Eng. Notes 31, 4-es (2006)
Broy, M.: A logical basis for component-oriented software and systems engineering. Comput. J. 53(10), 1758–1782 (2010)
Broy, M., Stølen, K.: Specification and Development of Interactive Systems: Focus on Streams, Interfaces and Refinement. Springer, Heidelberg (2001)
Büchi, J.R.: On a decision method in restricted second order arithmetic. In: International Congress on Logic, Methodology and Philosophy of Science, pp. 1–11 (1962)
Butting, A., Haber, A., Hermerschmidt, L., Kautz, O., Rumpe, B., Wortmann, A.: Systematic language extension mechanisms for the MontiArc Architecture Description Language. In: Modelling Foundations and Applications (ECMFA’17), Held as Part of STAF 2017, Springer International Publishing, pp. 53–70 (2017)
Butting, A., Kautz, O., Rumpe, B., Wortmann, A.: Semantic differencing for message-driven component & connector architectures. In: International Conference on Software Architecture (ICSA’17), IEEE, pp. 145–154 (2017)
Butting, A., Kautz, O., Rumpe, B., Wortmann, A.: Continuously analyzing finite, message-driven, time-synchronous component & connector systems during architecture evolution. J. Syst. Softw. 149, 437–461 (2019)
Campetelli, A., Hölzl, F., Neubeck, P.: User-friendly model checking integration in model-based development. In: International Conference on Computer Applications in Industry and Engineering (2011)
Carlsson, G., Yu, J.: A prime decomposition of probabilistic automata (2015). arXiv preprint arXiv:150301502
Cavalcante, E., Quilbeuf, J., Traonouez, L.M., Oquendo, F., Batista, T., Legay, A.: Statistical model checking of dynamic software architectures. In: European Conference on Software Architecture (2016)
de Alfaro, L., Henzinger, T.A.: Interface-based design. In: Engineering Theories of Software Intensive Systems (2005)
Debruyne, V., Simonot-Lion, F., Trinquet, Y.: EAST-ADL—an architecture description language. In: Architecture Description Languages, pp. 181–195. Springer (2005)
Díaz, J., Pérez, J., Garbajosa, J., Yagüe, A.: Change-impact driven agile architecting. In: 2013 46th Hawaii International Conference on System Sciences, pp. 4780–4789 (2013)
Díaz, J., Pérez, J., Garbajosa, J.: Agile product-line architecting in practice: a case study in smart grids. Inf. Softw. Technol. 56(7), 727–748 (2014)
Farwer, B.: ω-Automata. In: Grädel, E., Thomas, W., Wilke, T. (eds.) Automata Logics and Infinite Games: A Guide to Current Research, pp. 3–21. Springer, Berlin (2002)
Feiler, P.H., Gluch, D.P.: Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis & Design Language. Addison-Wesley, Boston, MA (2012)
France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: Future of Software Engineering 2007 at ICSE (2007)
Friedenthal, S., Moore, A., Steiner, R.: A Practical Guide to SysML: The Systems Modeling Language. The MK/OMG Press. Elsevier Science, Amsterdam (2011)
Gerace, G., Gestri, G.: Decomposition of synchronous sequential machines into synchronous and asynchronous submachines. Inf. Control 11(5), 568–591 (1967)
Grosu, R., Rumpe, B.: Concurrent timed port automata. Technical Report TUM-I9533, TU Munich (1995)
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978)
Hölzl, F., Feilkas, M.: AutoFocus 3—a scientific tool prototype for model-based development of component-based, reactive, distributed systems. In: Giese, H., Karsai, G., Lee, E., Rumpe, B., Schätz, B. (eds.) Model-Based Engineering of Embedded Real-Time Systems. Springer, Berlin (2010)
Jongmans, S.S., Clarke, D., Proença, J.: A procedure for splitting data-aware processes and its application to coordination. Sci. Comput. Program. 115, 47–78 (2016)
Koehler, C., Clarke, D.: Decomposing port automata. In: Proceedings of the 2009 ACM symposium on Applied Computing, pp. 1369–1373. ACM (2009)
Kokash, N., Krause, C., de Vink, E.P.: Data-aware design and verification of service compositions with Reo and mCRL2. In: Proceedings of the 2010 ACM Symposium on Applied Computing. ACM (2010)
Lynch, N.A., Tuttle, M.R.: An introduction to input/output automata. CWI Q. 2(3), 219–246 (1989)
Malavolta, I., Lago, P., Muccini, H., Pelliccione, P., Tang, A.: What industry needs from architectural languages: a survey. IEEE Trans. Softw. Eng. 39, 869–891 (2013)
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26, 70–93 (2000)
Milner, R.: Communicating and Mobile Systems: The π-Calculus. Cambridge University Press, New York, NY (1999)
Naur, P., Randell, B. (eds.): Software engineering: report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 Oct 1968, Brussels, Scientific Affairs Division, NATO (1969)
Nozaki, A.: Practical decomposition of automata. Inf. Control 36(3), 275–291 (1978)
Plotkin, B., Plotkin, T.: Decompositions and complexity of linear automata (2015). arXiv preprint arXiv:150606017
Poort, E.R.: Driving agile architecting with cost and risk. IEEE Softw. 31(5), 20–23 (2014)
Razavi, N., Sirjani, M.: Using Reo for formal specification and verification of system designs. In: Proceedings of the Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-design, 2006. MEMOCODE’06. Proceedings. IEEE Computer Society, pp. 113–122 (2006)
Ringert, J.O.: Analysis and Synthesis of Interactive Component and Connector Systems. Aachener Informatik-Berichte, Software Engineering, Band 19. Shaker Verlag, Herzogenrath (2014)
Ringert, J.O., Rumpe, B.: A little synopsis on streams, stream processing functions, and state-based stream processing. Int. J. Softw. Inform. 5(1–2), 29–53 (2011)
Ringert, J.O., Rumpe, B., Wortmann, A.: Model-based specification of component behavior with controlled underspecification. In: Modellbasierte Entwicklung eingebetteter Systeme (MBEES’16) (2016)
Safra, S.: On the complexity of σ-automata. In: Proceedings of the 29th Annual Symposium on Foundations of Computer Science, pp. 319–327. IEEE Computer Society (1988)
Schlegel, C., Steck, A., Lotz, A.: Model-driven software development in robotics: communication patterns as key for a robotics component model. In: Chugo, D., Yokota, S. (eds.) Introduction to Modern Robotics. iConcept Press, Hong Kong (2011)
Strobl, F., Wisspeintner, A., Marz, A.: Specification of an elevator control system. Technical report, TU Munich (1999)
ter Beek, M.H., Ellis, C.A., Kleijn, J., Rozenberg, G.: Synchronizations in team automata for groupware systems. Comput. Support. Coop. Work (CSCW) 12, 21–69 (2003)
Uygur, G., Sattler, S.M.: Parallel decomposition for safety-critical systems. In: 2013 3rd International Electric Drives Production Conference (EDPC), pp. 1–8 (2013)
Van Ommering, R., Van Der Linden, F., Kramer, J., Magee, J.: The Koala component model for consumer electronics software. Computer 33(3), 78–85 (2000)
Völter, M., Stahl, T., Bettin, J., Haase, A., Helsen, S., Czarnecki, K.: Model-Driven Software Development: Technology, Engineering, Management. Wiley Software Patterns Series. Wiley, Hoboken (2013)
Weber, A.: Transforming a single-valued transducer into a mealy machine. J. Comput. Syst. Sci. 56(1), 46–59 (1998)
Weber, A., Klemm, R.: Economy of description for single-valued transducers. Inf. Comput. 118(2), 327–340 (1995)
Acknowledgements
This research has partly received funding from the German Federal Ministry for Education and Research under Grant No. 01IS16043P. The responsibility for the content of this publication is with the authors.
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
Kautz, O., Rumpe, B. & Wortmann, A. Automated semantics-preserving parallel decomposition of finite component and connector architectures. Autom Softw Eng 27, 119–151 (2020). https://doi.org/10.1007/s10515-020-00268-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10515-020-00268-5