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

  • Milena GuessiEmail author
  • Flavio Oquendo
  • Elisa Yumi Nakagawa
Regular Paper


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.


Smart system Software architecture Formal method Architectural synthesis Constraints Alloy 



The authors would like thank the reviewers who helped to improve this paper. The authors also thank the researchers at the Institut de Recherche en Informatique et Systèmes Aléatoires (IRISA) who have contributed to the SosADL language.

Compliance with ethical standards

Conflicts of interest

The authors declare that they have no conflict of interest.


  1. 1.
    Avgeriou, P., Stal, M., Hilliard, R.: Architecture sustainability. IEEE Softw. 30, 41–44 (2013). CrossRefGoogle Scholar
  2. 2.
    Baldwin, W.C., Sauser, B.: Modeling the characteristics of system of system. In: IEEE International Conference on System of Systems Engineering (SoSE), pp. 1–6. Albuquerque, United States (2009)Google Scholar
  3. 3.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley, Reading (2012)Google Scholar
  4. 4.
    Boardman, J., Sauser, B.: System of systems—the meaning of of. In: IEEE/SMC International Conference on System of Systems Engineering (SoSE), pp. 1–6. IEEE, Los Angeles, United States (2006).
  5. 5.
    Boehm, B.: A view of 20th and 21st century software engineering. In: International Conference on Software Engineering (ICSE), pp. 12–29. ACM Press, Shanghai, China (2006).
  6. 6.
    Boehm, B.: Some future software engineering opportunities and challenges. In: Nanz, S. (ed.) The Future of Software Engineering, pp. 1–32. Springer, Berlin (2011)Google Scholar
  7. 7.
    Boehm, B., Brown, W., Basili, V., Turner, R.: Spiral acquisition of software-intensive systems-of-systems. In: Crosstalk, pp. 4–9 (2004)Google Scholar
  8. 8.
    Breivold, H.P., Crnkovic, I., Larsson, M.: A systematic review of software architecture evolution research. Inf. Softw. Technol. 54(1), 16–40 (2012). CrossRefGoogle Scholar
  9. 9.
    Broy, M.: Seamless method- and model-based software and systems engineering. In: Nanz, S. (ed.) The Future of Software Engineering, pp. 33–47. Springer, Berlin (2011)CrossRefGoogle Scholar
  10. 10.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns, vol. 1. Wiley, New York (1996)Google Scholar
  11. 11.
    Chattopadhyay, D., Ross, A.M., Rhodes, D.H.: A framework for tradespace exploration of systems of systems. In: Conference on Systems Engineering Research (CSER), pp. 1–13. Los Angeles, United States (2008)Google Scholar
  12. 12.
    Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond, 2nd edn. Addison-Wesley, Boston (2011)Google Scholar
  13. 13.
    Cook, S.A.: The complexity of theorem proving procedures. In: Annual ACM Symposium on Theory of Computing (STOC). ACM Press (1971).
  14. 14.
    Dagli, C.H., Kilicay-Ergin, N.: System of systems architecting. In: Jamshidi, M. (ed.) System of Systems Engineering, pp. 77–100. Wiley, New York (2009). CrossRefGoogle Scholar
  15. 15.
    Dahmann, J., Rebovich, G., Lane, J.A., Lowry, R.: System engineering artifacts for SoS. IEEE Aerosp. Electron. Syst. Mag. 26(1), 22–28 (2011). CrossRefGoogle Scholar
  16. 16.
    Dahmann, J., Rebovich, G., Lowry, R., Lane, J.A., Baldwin, K.: An implementers’ view of systems for systems of systems. In: IEEE International Systems Conference (SysCon), pp. 212–217 (2011).
  17. 17.
    Gagliardi, M., Bergey, J., Wood, B.: System of systems (SoS) architecture centric acquisition. [On-line], World Wide Web (2010).
  18. 18.
    Guessi, M., Cavalcante, E., Oliveira, L.B.R.: Characterizing architecture description languages for software-intensive systems-of-systems. In: IEEE/ACM International Workshop on Software Engineering for Systems-of-Systems (SESoS), pp. 12–18. IEEE, Florence, Italy (2015).
  19. 19.
    Guessi, M., Neto, V.V.G., Bianchi, T., Felizardo, K.R., Oquendo, F., Nakagawa, E.Y.: A systematic literature review on the description of software architectures for systems of systems. In: Annual ACM Symposium on Applied Computing (SAC), pp. 1442–1449. ACM Press, Salamanca, Spain (2015).
  20. 20.
    Guessi, M., Oquendo, F., Nakagawa, E.Y.: Checking the architectural feasibility of systems-of-systems using formal descriptions. In: System of Systems Engineering Conference (SoSE), pp. 1–6. IEEE, Kongsberg, Norway (2016).
  21. 21.
    Guessi Margarido, M.: Synthesis of software architectures for systems-of-systems: an automated method by constraint solving. Ph.D. thesis, Institute of Mathematics and Computer Science, University of São Paulo (2017). Available at
  22. 22.
    Harmon, R.R., Corno, F., Castro-Leon, E.G.: Smart systems. IT Prof. 17, 14–17 (2015). CrossRefGoogle Scholar
  23. 23.
    Heyman, T., Scandariato, R., Joosen, W.: Security in context: analysis and refinement of software architectures. In: IEEE Annual Computer Software and Applications Conference (COMPSAC), pp. 161–170. IEEE, Seoul, South Korea (2010).
  24. 24.
    Hofmeister, C., Kruchten, P., Nord, R., Obbink, H., Ran, A., America, P.: A general model of software architecture design derived from five industrial approaches. J. Syst. Softw. 80(1), 106–126 (2007). CrossRefGoogle Scholar
  25. 25.
    Hughes, D., Thoelen, K., Horré, W., Matthys, N., Del Cid, J., Michiels, S., Huygens, C., Joosen, W.: LooCI: a loosely-coupled component infrastructure for networked embedded systems. In: International Conference on Advances in Mobile Computing and Multimedia (MoMM), pp. 195–203. ACM, Kuala Lumpur, Malaysia (2009).
  26. 26.
    Hughes, D., Ueyama, J., Mendiondo, E., Matthys, N., Horré, W., Michiels, S., Huygens, C., Joosen, W., Man, K.L., Guan, S.U.: A middleware platform to support river monitoring using wireless sensor networks. J. Braz. Comput. Soc. 17(2), 85–102 (2011). CrossRefGoogle Scholar
  27. 27.
    ISO/IEC/IEEE 42010: International Standard for Systems and Software Engineering—Architectural description (2011)Google Scholar
  28. 28.
    Jackson, D.: Alloy: a lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. 11(2), 256–290 (2002). CrossRefGoogle Scholar
  29. 29.
    Jackson, D.: Dependable software by design. Sci. Am. 294, 69–75 (2006). CrossRefGoogle Scholar
  30. 30.
    Jackson, D.: Software Abstractions, rev edn. MIT University Press Group Ltd, Cambridge (2012)Google Scholar
  31. 31.
    Jamshidi, M. (ed.): System of Systems Engineering: Innovations for the Twenty-First Century. Wiley, New York (2008)Google Scholar
  32. 32.
    Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 1–10. IEEE, Pittsburgh, USA (2005).
  33. 33.
    Jaspan, C., Keeling, M., Maccherone, L., Zenarosa, G.L., Shaw, M.: Software mythbusters explore formal methods. IEEE Softw. 26, 60–63 (2009). CrossRefGoogle Scholar
  34. 34.
    Kenley, C.R., Dannenhoffer, T.M., Wood, P.C., DeLaurentis, D.A.: Synthesizing and specifying architectures for system of systems. In: INCOSE International Symposium, vol. 24, pp. 94–107 (2014)Google Scholar
  35. 35.
    Keznikl, J., Bureš, T., Plášil, F., Hnětynka, P.: Automated resolution of connector architectures using constraint solving (ARCAS method). Softw. Syst. Model. 13(2), 843–872 (2014). CrossRefGoogle Scholar
  36. 36.
    Khlif, I., Kacem, M.H., Kacem, A.H., Drira, K.: A multi-scale modelling perspective for SoS architectures. In: European Conference on Software Architecture Workshops (ECSAW), pp. 1–5. ACM Press, Vienna, Austria (2014).
  37. 37.
    Kogekar, S., Neema, S., Eames, B., Koutsoukos, X., Ledeczi, A., Maroti, M.: Constraint-guided dynamic reconfiguration in sensor networks. In: International Symposium on Information Processing in Sensor Networks (IPSN), pp. 379–387 (2004).
  38. 38.
    Koontz, R.J., Nord, R.L.: Architecting for sustainable software delivery. In: CrossTalk, pp. 14–19 (2012)Google Scholar
  39. 39.
    Kramer, J., Magee, J.: A rigorous architectural approach to adaptive software engineering. J. Comput. Sci. Technol. 24(2), 183–188 (2009). CrossRefGoogle Scholar
  40. 40.
    Kruchten, P.: Documentation of software architecture from a knowledge management perspective—design representation. In: Babar, M.A., Dingsøyr, T., Lago, P., van Vliet, H. (eds.) Software Architecture Knowledge Management Theory and Practice, pp. 39–57. Springer, Berlin (2009)CrossRefGoogle Scholar
  41. 41.
    Lemos, R., Giese, H., Müller, H.A., Shaw, M., Andersson, J., Litoiu, M., Schmerl, B., Tamura, G., Villegas, N.M., Vogel, T., Weyns, D., Baresi, L., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Desmarais, R., Dustdar, S., Engels, G., Geihs, K., Göschka, K.M., Gorla, A., Grassi, V., Inverardi, P., Karsai, G., Kramer, J., Lopes, A., Magee, J., Malek, S., Mankovskii, S., Mirandola, R., Mylopoulos, J., Nierstrasz, O., Pezzé, M., Prehofer, C., Schäfer, W., Schlichting, R., Smith, D.B., ao Pedro Sousa, J., Tahvildari, L., Wong, K., Wuttke, J.: Software engineering for self-adaptive systems: a second research roadmap. In: Software Engineering for Self-Adaptive Systems II, pp. 1–32 (LNCS 7475) (2013). CrossRefGoogle Scholar
  42. 42.
    Lu, H., Guo, F., Huang, F., de Chen, R.: The construction of smart city based on SoS. In: International Conference on Advanced Computer Science and Electronics Information ICACSIS, pp. 34–37. Atlantis Press, Beijing, China (2013).
  43. 43.
    Maier, M.W.: Architecting principles for systems-of-systems. In: INCOSE International Symposium, vol. 6, pp. 565–573 (1996). MathSciNetCrossRefGoogle Scholar
  44. 44.
    Malavolta, I., Lago, P., Muccini, H., Pelliccione, P., Tang, A.: What industry needs from architectural languages: a survey. IEEE Trans. Softw. Eng. 39(6), 869–891 (2013). CrossRefGoogle Scholar
  45. 45.
    Mandrioli, D.: On the heroism of really pursuing formal methods. In: IEEE/ACM FME Workshop on Formal Methods in Software Engineering, pp. 1–5. IEEE, Florence, IT (2015).
  46. 46.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000). CrossRefGoogle Scholar
  47. 47.
    Mour, A., Kenley, C.R., Davendralingam, N., DeLaurentis, D.: Agent-based modeling for systems of systems. In: INCOSE International Symposium, vol. 23, pp. 973–987. Wiley (2013). CrossRefGoogle Scholar
  48. 48.
    Nafz, F., Ortmeier, F., Seebach, H., Steghfer, J.P., Reif, W.: Universal self-organization mechanism for role-based organic computing systems. In: Autonomic and Trusted Computing (ATC), pp. 17–31 (LNCS v. 5586). Springer, Berlin (2009). Google Scholar
  49. 49.
    Nakagawa, E.Y., Gonçalves, M., Guessi, M., Oliveira, L.B.R., Oquendo, F.: The state of the art and future perspectives in systems of systems software architectures. In: International Workshop on Software Engineering for Systems-of-Systems (SESoS), pp. 13–20. ACM Press, Montpellier, France (2013).
  50. 50.
    Neto, V.V.G., Paes, C.E.B., Garcés, L., Guessi, M., Manzano, W., Oquendo, F., Nakagawa, E.Y.: Stimuli-SoS: a model-based approach to derive stimuli generators for simulations of systems-of-systems software architectures. J. Braz. Comput. Soc. 23(1), 1–22 (2017). CrossRefGoogle Scholar
  51. 51.
    Nielsen, C.B., Larsen, P.G., Fitzgerald, J., Woodcock, J., Peleska, J.: Systems of systems engineering: basic concepts, model-based techniques, and research directions. ACM Comput. Surv. 48(2), 1–41 (2015). CrossRefGoogle Scholar
  52. 52.
    Office of the Deputy Under Secretary of Defense for Acquisition and Technology, Systems and Software Engineering: Systems Engineering Guide for Systems of Systems . [On-line], World Wide Web (2008).
  53. 53.
    OMG: Software and Systems Process Engineering Meta-model Specification v2.0. [On-line] (2008).
  54. 54.
    OMG: Unified Modeling Language v2.4.1. [On-line] (2011).
  55. 55.
    OMG: Systems Modeling Language v1.3. [On-line] (2012).
  56. 56.
    Oquendo, F.: Formally describing the software architecture of systems-of-systems with SosADL. In: System of Systems Engineering Conference (SoSE), pp. 1–6. IEEE, Kongsberg, Norway (2016).
  57. 57.
    Oquendo, F.: \(\pi \)-calculus for SoS: a foundation for formally describing software-intensive systems-of-systems. In: System of Systems Engineering Conference (SoSE), pp. 1–6. Institute of Electrical and Electronics Engineers (IEEE), Kongsberg, Norway (2016).
  58. 58.
    Oquendo, F.: Software architecture challenges and emerging research in software-intensive systems-of-systems. In: European Conference on Software Architecture (ECSA), pp. 3–21. Springer, Copenhagen, Denmark (2016). zbMATHGoogle Scholar
  59. 59.
    Oquendo, F., Buisson, J., Leroux, E., Mogurou, G., Quilbeuf, J.: SoS ADL for formal architecture description and analysis of software-intensive systems-of-systems. In: Presentation at the Colloquium on Software-intensive Systems-of-Systems at ECSA (2016)Google Scholar
  60. 60.
    Pérez, J., Díaz, J., Garbajosa, J., Yagüe, A., Gonzalez, E., Lopez-Perea, M.: Large-scale smart grids as system of systems. In: International Workshop on Software Engineering for Systems-of-Systems (SESoS), pp. 38–42. ACM Press, Montpellier, FR (2013).
  61. 61.
    Rhodes, D.: Evolving systems engineering for innovative product and systems development. In: Massachusetts Institute of Technology (MIT) Systems Design and Management Alumni Conference (2004)Google Scholar
  62. 62.
    Roure, D.D.: Floodnet: a new flood warning system. Ingenia 23, 50–51 (2005)Google Scholar
  63. 63.
    Sassone, A., Grosso, M., Poncino, M., Macii, E.: Smart electronic systems: an overview. In: Bombieri, N., Poncino, M., Pravadelli, G. (eds.) Smart Systems Integration and Simulation, pp. 5–21. Springer, Berlin (2016). CrossRefGoogle Scholar
  64. 64.
    Sawyer, P., Mazo, R., Diaz, D., Salinesi, C., Hughes, D.: Using constraint programming to manage configurations in self-adaptive systems. Computer 45(10), 56–63 (2012). CrossRefGoogle Scholar
  65. 65.
    Silva, E., Batista, T., Oquendo, F.: A mission-oriented approach for designing system-of-systems. In: 10th System of Systems Engineering Conference (SoSE). IEEE (2015).
  66. 66.
    Torlak, E., Jackson, D.: Kodkod: a relational model finder. In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 632–647. Springer, Berlin Heidelberg, Braga, Portugal (2007).
  67. 67.
    Ulieru, M., Doursat, R.: Emergent engineering: a radical paradigm shift. Int. J. Auton. Adapt. Commun. Syst. 4(1), 39–60 (2011)CrossRefGoogle Scholar
  68. 68.
    Valerdi, R., Ross, A.M., Rhodes, D.H.: A framework for evolving system of systems engineering. In: Crosstalk pp. 28–30 (2007)Google Scholar
  69. 69.
    Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer, Berlin (2012)CrossRefGoogle Scholar
  70. 70.
    Zhang, P., Muccini, H., Li, B.: A classification and comparison of model checking software architecture techniques. J. Syst. Softw. 83(5), 723–744 (2010). CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  1. 1.ICMCUniversity of São PauloSão PauloBrazil
  2. 2.IHPMEUniversity of TorontoTorontoCanada
  3. 3.IRISA - UMR CNRS/Université de Bretagne-SudVannesFrance

Personalised recommendations