Skip to main content
Log in

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

  • Regular Paper
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. The source code for TASoS is available at http://goo.gl/5ZNgDQ.

  2. Xtend, http://www.eclipse.org/xtend/.

  3. SosADE tool, https://www-archware.irisa.fr/software/.

  4. Java, http://www.java.com.

  5. The complete source code for the URM models referenced in Sect. 5 are available at http://goo.gl/5ZNgDQ.

  6. DANSE, www.danse-ip.eu.

  7. COMPASS, www.compass-research.eu.

References

  1. Avgeriou, P., Stal, M., Hilliard, R.: Architecture sustainability. IEEE Softw. 30, 41–44 (2013). https://doi.org/10.1109/MS.2013.120

    Article  Google Scholar 

  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)

  3. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley, Reading (2012)

    Google Scholar 

  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). https://doi.org/10.1109/sysose.2006.1652284

  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). https://doi.org/10.1145/1134285.1134288

  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. Boehm, B., Brown, W., Basili, V., Turner, R.: Spiral acquisition of software-intensive systems-of-systems. In: Crosstalk, pp. 4–9 (2004)

  8. Breivold, H.P., Crnkovic, I., Larsson, M.: A systematic review of software architecture evolution research. Inf. Softw. Technol. 54(1), 16–40 (2012). https://doi.org/10.1016/j.infsof.2011.06.002

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. 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)

  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. Cook, S.A.: The complexity of theorem proving procedures. In: Annual ACM Symposium on Theory of Computing (STOC). ACM Press (1971). https://doi.org/10.1145/800157.805047

  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). https://doi.org/10.1002/9780470403501.ch4

    Chapter  Google Scholar 

  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). https://doi.org/10.1109/MAES.2011.5719652

    Article  Google Scholar 

  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). https://doi.org/10.1109/SYSCON.2011.5929039

  17. Gagliardi, M., Bergey, J., Wood, B.: System of systems (SoS) architecture centric acquisition. [On-line], World Wide Web (2010). https://resources.sei.cmu.edu/asset_files/Presentation/2010_017_001_53032.pdf

  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). https://doi.org/10.1109/sesos.2015.10

  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). https://doi.org/10.1145/2695664.2695795

  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). https://doi.org/10.1109/sysose.2016.7542939

  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 http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06022018-105449/

  22. Harmon, R.R., Corno, F., Castro-Leon, E.G.: Smart systems. IT Prof. 17, 14–17 (2015). https://doi.org/10.1109/mitp.2015.115

    Article  Google Scholar 

  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). https://doi.org/10.1109/compsac.2010.23

  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). https://doi.org/10.1016/j.jss.2006.05.024

    Article  Google Scholar 

  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). https://doi.org/10.1145/1821748.1821787

  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). https://doi.org/10.1007/s13173-011-0029-3

    Article  Google Scholar 

  27. ISO/IEC/IEEE 42010: International Standard for Systems and Software Engineering—Architectural description (2011)

  28. Jackson, D.: Alloy: a lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. 11(2), 256–290 (2002). https://doi.org/10.1145/505145.505149

    Article  Google Scholar 

  29. Jackson, D.: Dependable software by design. Sci. Am. 294, 69–75 (2006). https://doi.org/10.1038/scientificamerican0606-68

    Article  Google Scholar 

  30. Jackson, D.: Software Abstractions, rev edn. MIT University Press Group Ltd, Cambridge (2012)

    Google Scholar 

  31. Jamshidi, M. (ed.): System of Systems Engineering: Innovations for the Twenty-First Century. Wiley, New York (2008)

    Google Scholar 

  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). https://doi.org/10.1109/wicsa.2005.61

  33. Jaspan, C., Keeling, M., Maccherone, L., Zenarosa, G.L., Shaw, M.: Software mythbusters explore formal methods. IEEE Softw. 26, 60–63 (2009). https://doi.org/10.1109/ms.2009.188

    Article  Google Scholar 

  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)

  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). https://doi.org/10.1007/s10270-012-0274-8

    Article  Google Scholar 

  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). https://doi.org/10.1145/2642803.2642833

  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). https://doi.org/10.1109/IPSN.2004.239229

  38. Koontz, R.J., Nord, R.L.: Architecting for sustainable software delivery. In: CrossTalk, pp. 14–19 (2012)

  39. Kramer, J., Magee, J.: A rigorous architectural approach to adaptive software engineering. J. Comput. Sci. Technol. 24(2), 183–188 (2009). https://doi.org/10.1007/s11390-009-9216-5

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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). https://doi.org/10.1007/978-3-642-35813-5_1

  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). https://doi.org/10.2991/icacsei.2013.9

  43. Maier, M.W.: Architecting principles for systems-of-systems. In: INCOSE International Symposium, vol. 6, pp. 565–573 (1996). http://dx.doi.org/10.1002/j.2334-5837.1996.tb02054.x

  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). https://doi.org/10.1109/tse.2012.74

    Article  Google Scholar 

  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). https://doi.org/10.1109/formalise.2015.8

  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). https://doi.org/10.1109/32.825767

    Article  Google Scholar 

  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). https://doi.org/10.1002/j.2334-5837.2013.tb03067.x

  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). https://doi.org/10.1007/978-3-642-02704-8_3

  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). https://doi.org/10.1145/2489850.2489853

  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). https://doi.org/10.1186/s13173-017-0062-y

    Article  Google Scholar 

  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). https://doi.org/10.1145/2794381

    Article  Google Scholar 

  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). http://www.acq.osd.mil/se/docs/SE-Guide-for-SoS.pdf

  53. OMG: Software and Systems Process Engineering Meta-model Specification v2.0. [On-line] (2008). http://www.omg.org/spec/SPEM/2.0/

  54. OMG: Unified Modeling Language v2.4.1. [On-line] (2011). http://www.omg.org/spec/UML/2.4.1/

  55. OMG: Systems Modeling Language v1.3. [On-line] (2012). http://www.omgsysml.org/

  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). https://doi.org/10.1109/SYSOSE.2016.7542926

  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). https://doi.org/10.1109/sysose.2016.7542925

  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). https://doi.org/10.1007/978-3-319-48992-6

  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)

  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). https://doi.org/10.1145/2489850.2489858

  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)

  62. Roure, D.D.: Floodnet: a new flood warning system. Ingenia 23, 50–51 (2005)

    Google Scholar 

  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). https://doi.org/10.1007/978-3-319-27392-1

    Chapter  Google Scholar 

  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). https://doi.org/10.1109/MC.2012.286

    Article  Google Scholar 

  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). https://doi.org/10.1109/sysose.2015.7151951

  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). https://doi.org/10.1007/978-3-540-71209-1_49

  67. Ulieru, M., Doursat, R.: Emergent engineering: a radical paradigm shift. Int. J. Auton. Adapt. Commun. Syst. 4(1), 39–60 (2011)

    Article  Google Scholar 

  68. Valerdi, R., Ross, A.M., Rhodes, D.H.: A framework for evolving system of systems engineering. In: Crosstalk pp. 28–30 (2007)

  69. Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer, Berlin (2012)

    Book  Google Scholar 

  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). https://doi.org/10.1016/j.jss.2009.11.709

    Article  Google Scholar 

Download references

Acknowledgements

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Milena Guessi.

Ethics declarations

Conflicts of interest

The authors declare that they have no conflict of interest.

Additional information

Communicated by Professor Marsha Chechik.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This work was supported by the São Paulo Research Foundation (FAPESP), grants 2012/24290-5, 2017/22107-2, and 2017/06195-9.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Guessi, M., Oquendo, F. & Nakagawa, E.Y. Ark: a constraint-based method for architectural synthesis of smart systems. Softw Syst Model 19, 741–762 (2020). https://doi.org/10.1007/s10270-019-00764-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-019-00764-7

Keywords

Navigation