Ark: a constraint-based method for architectural synthesis of smart systems

As smart systems leverage capabilities of heterogeneous systems for accomplishing complex combined behaviors, they pose new challenges to traditional software engineering practices that considered software architectures to be mostly static and stable. The software architecture of a smart system is inherently dynamic due to uncertainty surrounding its operational environment. While the abstract architecture offers a way to implicitly describe different forms taken by the software architecture at run time, it is still not sufficient to guarantee that all concrete architectures will automatically adhere to it. To address this issue, this work presents a formal method named Ark supporting the architectural synthesis of smart systems. This is achieved by expressing abstract architectures as a set of constraints that must be valid for any concrete architecture of the smart system. This way, we can benefit from existing model-checking techniques to guarantee that all concrete architectures realized from such an abstract model will comply with well-formed rules. We also describe how this method can be incorporated to a model-driven approach for bridging the gap between abstract and concrete architectural models. We demonstrate our method in an illustrative case study, showing how Ark can be used to support the synthesis of concrete architectures as well check the correctness and completeness of abstract architecture descriptions. Finally, we elaborate on future directions to consolidating a process for the synthesis of run-rime architectures that are correct-by-construction.

[1]  Mihaela Ulieru,et al.  Emergent engineering: a radical paradigm shift , 2011, Int. J. Auton. Adapt. Commun. Syst..

[2]  Massimo Poncino,et al.  Smart Systems Integration and Simulation , 2016 .

[3]  Flávio Oquendo,et al.  Software Architecture Challenges and Emerging Research in Software-Intensive Systems-of-Systems , 2016, ECSA.

[4]  Wouter Joosen,et al.  LooCI: a loosely-coupled component infrastructure for networked embedded systems , 2009, MoMM.

[5]  Khalil Drira,et al.  A multi-scale modelling perspective for SoS architectures , 2014, ECSAW '14.

[6]  Marcelo G. Manzato,et al.  Exploiting feature extraction techniques on users’ reviews for movies recommendation , 2017, Journal of the Brazilian Computer Society.

[7]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[8]  Kristen Baldwin,et al.  An implementers' view of systems engineering for systems of systems , 2011, 2011 IEEE International Systems Conference.

[9]  Jo Ann Lane,et al.  System engineering artifacts for SoS , 2011, 2010 IEEE International Systems Conference.

[10]  Wouter Joosen,et al.  A middleware platform to support river monitoring using wireless sensor networks , 2011, Journal of the Brazilian Computer Society.

[11]  Barry Boehm,et al.  Spiral Acquisition of Software-Intensive Systems of Systems , 2004 .

[12]  Barry W. Boehm,et al.  Some Future Software Engineering Opportunities and Challenges , 2010, The Future of Software Engineering.

[13]  Jan Peleska,et al.  Systems of Systems Engineering , 2015 .

[14]  Milena Margarido,et al.  Synthesis of software architectures for systems-of-systems : an automated method by constraint solving. (Synthèse d'architectures logicielles pour systèmes-de-systèmes : une méthode automatisée par résolution de contraintes) , 2017 .

[15]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[16]  Manfred Broy,et al.  Seamless Method- and Model-based Software and Systems Engineering , 2010, The Future of Software Engineering.

[17]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[18]  Daniel Diaz,et al.  Using Constraint Programming to Manage Configurations in Self-Adaptive Systems , 2012, Computer.

[19]  C. Robert Kenley,et al.  Agent‐Based Modeling for Systems of Systems , 2013 .

[20]  Cihan H. Dagli,et al.  System of Systems Architecting , 2008 .

[21]  Flávio Oquendo,et al.  A systematic literature review on the description of software architectures for systems of systems , 2015, SAC.

[22]  Philippe Kruchten Documentation of Software Architecture from a Knowledge Management Perspective - Design Representation , 2009, Software Architecture Knowledge Management.

[23]  Yang Liu,et al.  Collaborative Security , 2015, ACM Comput. Surv..

[24]  Dino Mandrioli,et al.  On the Heroism of Really Pursuing Formal Methods , 2015, 2015 IEEE/ACM 3rd FME Workshop on Formal Methods in Software Engineering.

[25]  Bixin Li,et al.  A classification and comparison of model checking software architecture techniques , 2010, J. Syst. Softw..

[26]  Adam M. Ross,et al.  A Framework for Tradespace Exploration of Systems of Systems , 2008 .

[27]  Petr Hnetynka,et al.  Automated resolution of connector architectures using constraint solving (ARCAS method) , 2014, Software & Systems Modeling.

[28]  Frank Ortmeier,et al.  A Universal Self-Organization Mechanism for Role-Based Organic Computing Systems , 2009, ATC.

[29]  Brian J. Sauser,et al.  System of Systems - the meaning of of , 2006, 2006 IEEE/SMC International Conference on System of Systems Engineering.

[30]  Enrico Macii,et al.  Smart Electronic Systems: An Overview , 2016 .

[31]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[32]  Brian J. Sauser,et al.  Modeling the characteristics of system of systems , 2009, 2009 IEEE International Conference on System of Systems Engineering (SoSE).

[33]  Wouter Joosen,et al.  Security in Context: Analysis and Refinement of Software Architectures , 2010, 2010 IEEE 34th Annual Computer Software and Applications Conference.

[34]  Daniel Jackson,et al.  Dependable Software by Design , 2006 .

[35]  Jeff Magee,et al.  A Rigorous Architectural Approach to Adaptive Software Engineering , 2009, Journal of Computer Science and Technology.

[36]  Robert L. Nord,et al.  A general model of software architecture design derived from five industrial approaches , 2007, J. Syst. Softw..

[37]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[38]  Michael Stal,et al.  Architecture Sustainability , 2013, IEEE Softw..

[39]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[40]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[41]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[42]  Mary Shaw,et al.  Software Mythbusters Explore Formal Methods , 2009, IEEE Software.

[43]  Sandeep Neema,et al.  Constraint-guided dynamic reconfiguration in sensor networks , 2004, Third International Symposium on Information Processing in Sensor Networks, 2004. IPSN 2004.

[44]  Adam M. Ross,et al.  A framework for evolving system of systems engineering , 2007 .

[45]  Flávio Oquendo,et al.  Checking the architectural feasibility of Systems-of-Systems using formal descriptions , 2016, 2016 11th System of Systems Engineering Conference (SoSE).

[46]  Bradley R. Schmerl,et al.  Software Engineering for Self-Adaptive Systems: A Second Research Roadmap , 2010, Software Engineering for Self-Adaptive Systems.

[47]  Haluk Demirkan,et al.  IT-Enabled Business Innovation , 2015, IT Prof..

[48]  Feng Huang,et al.  The Construction of Smart City Based on SoS , 2013 .

[49]  Flávio Oquendo,et al.  Stimuli-SoS: a model-based approach to derive stimuli generators for simulations of systems-of-systems software architectures , 2017, Journal of the Brazilian Computer Society.

[50]  Flávio Oquendo,et al.  π-Calculus for SoS: A foundation for formally describing software-intensive Systems-of-Systems , 2016, 2016 11th System of Systems Engineering Conference (SoSE).

[51]  Juan Garbajosa Sopeña,et al.  Large-Scale smart grids as system of systems , 2013 .

[52]  Flávio Oquendo,et al.  A mission-oriented approach for designing system-of-systems , 2015, 2015 10th System of Systems Engineering Conference (SoSE).

[53]  Everton Cavalcante,et al.  Characterizing Architecture Description Languages for Software-Intensive Systems-of-Systems , 2015, 2015 IEEE/ACM 3rd International Workshop on Software Engineering for Systems-of-Systems.

[54]  Barry Boehm,et al.  A view of 20th and 21st century software engineering , 2006, ICSE.

[55]  Henry Muccini,et al.  What Industry Needs from Architectural Languages: A Survey , 2013, IEEE Transactions on Software Engineering.

[56]  Flávio Oquendo,et al.  The state of the art and future perspectives in systems of systems software architectures , 2013, SESoS.

[57]  Bill Wood,et al.  System of Systems (SoS) Architecture Centric Acquisition , 2010 .

[58]  Flávio Oquendo Formally describing the software architecture of Systems-of-Systems with SosADL , 2016, 2016 11th System of Systems Engineering Conference (SoSE).

[59]  Flavio Oquendo,et al.  The SoS Architect Studio: Toolchain for the Formal Architecture Description and Analysis of Software-intensive Systems-of-Systems with SosADL , 2016 .

[60]  Fulvio Corno,et al.  Smart Systems , 2015, IT Prof..

[61]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[62]  C. Robert Kenley,et al.  1.4.2 Synthesizing and Specifying Architectures for System of Systems , 2014 .

[63]  Mark W. Maier,et al.  Architecting Principles for Systems‐of‐Systems , 1996 .

[64]  Emina Torlak,et al.  Kodkod: A Relational Model Finder , 2007, TACAS.

[65]  Robert L. Nord,et al.  Architecting for Sustainable Software Delivery , 2012 .

[66]  Ivica Crnkovic,et al.  A systematic review of software architecture evolution research , 2012, Inf. Softw. Technol..