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.
Similar content being viewed by others
Notes
The source code for TASoS is available at http://goo.gl/5ZNgDQ.
Xtend, http://www.eclipse.org/xtend/.
SosADE tool, https://www-archware.irisa.fr/software/.
Java, http://www.java.com.
The complete source code for the URM models referenced in Sect. 5 are available at http://goo.gl/5ZNgDQ.
DANSE, www.danse-ip.eu.
COMPASS, www.compass-research.eu.
References
Avgeriou, P., Stal, M., Hilliard, R.: Architecture sustainability. IEEE Softw. 30, 41–44 (2013). https://doi.org/10.1109/MS.2013.120
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)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley, Reading (2012)
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
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
Boehm, B.: Some future software engineering opportunities and challenges. In: Nanz, S. (ed.) The Future of Software Engineering, pp. 1–32. Springer, Berlin (2011)
Boehm, B., Brown, W., Basili, V., Turner, R.: Spiral acquisition of software-intensive systems-of-systems. In: Crosstalk, pp. 4–9 (2004)
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
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)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns, vol. 1. Wiley, New York (1996)
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)
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)
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
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
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
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
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
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
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
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
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/
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
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
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
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
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
ISO/IEC/IEEE 42010: International Standard for Systems and Software Engineering—Architectural description (2011)
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
Jackson, D.: Dependable software by design. Sci. Am. 294, 69–75 (2006). https://doi.org/10.1038/scientificamerican0606-68
Jackson, D.: Software Abstractions, rev edn. MIT University Press Group Ltd, Cambridge (2012)
Jamshidi, M. (ed.): System of Systems Engineering: Innovations for the Twenty-First Century. Wiley, New York (2008)
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
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
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)
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
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
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
Koontz, R.J., Nord, R.L.: Architecting for sustainable software delivery. In: CrossTalk, pp. 14–19 (2012)
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
OMG: Software and Systems Process Engineering Meta-model Specification v2.0. [On-line] (2008). http://www.omg.org/spec/SPEM/2.0/
OMG: Unified Modeling Language v2.4.1. [On-line] (2011). http://www.omg.org/spec/UML/2.4.1/
OMG: Systems Modeling Language v1.3. [On-line] (2012). http://www.omgsysml.org/
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
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
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
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)
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
Rhodes, D.: Evolving systems engineering for innovative product and systems development. In: Massachusetts Institute of Technology (MIT) Systems Design and Management Alumni Conference (2004)
Roure, D.D.: Floodnet: a new flood warning system. Ingenia 23, 50–51 (2005)
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
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
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
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
Ulieru, M., Doursat, R.: Emergent engineering: a radical paradigm shift. Int. J. Auton. Adapt. Commun. Syst. 4(1), 39–60 (2011)
Valerdi, R., Ross, A.M., Rhodes, D.H.: A framework for evolving system of systems engineering. In: Crosstalk pp. 28–30 (2007)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer, Berlin (2012)
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
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
Corresponding author
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
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-019-00764-7