Abstract
Model-based software engineering plays an increasing role in system development. The abstractions offered by models provide a basis for tasks such as analysis, synthesis, and automated reasoning. However, like traditional software engineering, model-based engineering must also deal with challenges that arise during system evolution, including requirement changes and platform updates. This paper describes our vision for a model-based workflow for adaptive software that reduces the burden caused by evolution. Our vision includes a modeling paradigm centered around the concepts of objectives, intents, and constraints, which define, respectively, (1) what the system must do in terms of domain-specific abstractions, (2) the concretization choices made to refine a model into implementation, and (3) the system requirements not expressed in terms of domain-specific abstractions. We also discuss a vision of integrated program synthesis via refinement in a theorem prover.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Abadi, M., Lamport, L.: The existence of refinement mappings. J. Theo. Comput. Sci. 82(2), 253–284 (1991)
Abrial, J.R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press (1996)
Bjørner, D.: Domain Engineering: Technology, Management, Research and Engineering. JAIST Press (2009)
Boßelmann, S., et al.: DIME: a programming-less modeling environment for web applications. In: Margaria, T., Steffen, B. (eds.) Leveraging Applications of Formal Methods, Verification and Validation: Discussion, Dissemination, Applications, pp. 809–832. Springer, Cham (2016)
Coglio, A.: Pop-refinement. Archive of Formal Proofs, July 2014. http://afp.sf.net/entries/Pop_Refinement.shtml, Formal proof development
Coglio, A., Kaufmann, M., Smith, E.: A versatile, sound tool for simplifying definitions. In: Proceedings 14th International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2-2017), pp. 61–77 (2017). https://doi.org/10.4204/EPTCS.249.5
Coglio, A., Westfold, S.: Isomorphic data type transformations. In: Proceedings 16th International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2-2020) (2020)
Crapo, A., Moitra, A., McMillan, C., Russell, D.: Requirements capture and analysis in assert(tm). In: 2017 IEEE 25th International Requirements Engineering Conference (RE), pp. 283–291 (2017). https://doi.org/10.1109/RE.2017.54
Dijkstra, E.W.: A constructive approach to the problem of program correctness. BIT 8(3), 174–186 (1968)
Documentation, S.: Simulation and model-based design (2020). https://www.mathworks.com/products/simulink.html
Fuentes-Fernández, L., Vallecillo-Moreno, A.: An introduction to UML profiles. UML Model Eng. 2(6–13), 72 (2004)
Heung, K.H.: A tool for generating UML diagram from source code (2013)
Hoare, C.A.R.: Proof of correctness of data representations. Acta Informatica 1(4), 271–281 (1972)
Hunt, W.A., Jr., Kaufmann, M., Moore, J.S., Slobodova, A.: Industrial hardware and software verification with acl2. Philos. Trans. R. Soc. A Math. Phys. Eng. Sci. 375(2104), 20150399 (2017)
Jolak, R., Ho-Quang, T., Chaudron, M.R., Schiffelers, R.R.: Model-based software engineering: a multiple-case study on challenges and development efforts. In: Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, pp. 213–223. MODELS 2018. Association for Computing Machinery, New York (2018). https://doi.org/10.1145/3239372.3239404
Jones, C.: Systematic Software Development using VDM, 2nd edn. Prentice Hall (1990)
Kaufmann, M., Moore, J.S.: The ACL2 theorem prover. http://www.cs.utexas.edu/users/moore/acl2
Kestrel Institute: APT (Automated Program Transformations). http://www.kestrel.edu/home/projects/apt
Kestrel Institute: Specware. http://www.specware.org
Maróti, M., et al.: Next generation (meta) modeling: web-and cloud-based collaborative tool infrastructure (2014)
Milner, R.: An algebraic definition of simulation between programs. Tech. Rep. CS-205, Stanford University (1971)
Morgan, C.: Programming from Specifications, 2nd edn. Prentice Hall (1998)
Nierstrasz, O., Achermann, F.: Supporting compositional styles for software evolution. In: Proceedings International Symposium on Principles of Software Evolution, pp. 14–22 (2000). https://doi.org/10.1109/ISPSE.2000.913216
Parr, T.: The Definitive ANTLR 4 Reference. Pragmatic Bookshelf (2013)
Roberts, R.D.: Why software really will eat the world-and whether we should worry. Independent Rev. 20(3), 365–368 (2016)
Rodriguez-Prieto, O., Mycroft, A., Ortin, F.: An efficient and scalable platform for java source code analysis using overlaid graph representations. IEEE Access 8, 72239–72260 (2020). https://doi.org/10.1109/ACCESS.2020.2987631
Ronacher, A.: Jinja2 documentation. Welcome to Jinja2-Jinja2 Documentation (2.8-dev) (2008)
Sánchez-Gordón, M., Colomo-Palacios, R.: Characterizing DevOps culture: a systematic literature review. In: Stamelos, I., O’Connor, R.V., Rout, T., Dorling, A. (eds.) Software Process Improvement and Capability Determination, pp. 3–15. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-00623-5_1
Selic, B.: Personal reflections on automation, programming culture, and model-based software engineering. Autom. Softw. Eng. 15(3), 379–391 (2008)
Smith, D.R.: KIDS: a semi-automatic program development system. IEEE Trans. Softw. Eng. Spec. Issue Formal Method. 16(9), 1024–1043 (1990)
Smith, E.: Software Synthesis with ACL2. https://www.cs.utexas.edu/users/moore/acl2/workshop-2015/slides/eric-smith-synthesis/eric-smith-software-synthesis.pdf
Spivey, J.M.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall (1992)
Sztipanovits, J., Karsai, G.: Model-integrated computing. Computer 30(4), 110–111 (1997). https://doi.org/10.1109/2.585163
Voelter, M.: DSL Engineering: Designing, Implementing and Using Domain-specific Languages. CreateSpace Independent Publishing Platform (2013)
Voelter, M., Pech, V.: Language modularity with the MPS language workbench. In: 2012 34th International Conference on Software Engineering (ICSE), pp. 1449–1450. IEEE (2012)
Wirth, N.: Program development by stepwise refinement. Commun. ACM 14(4), 221–227 (1971)
Acknowledgement
The work was supported by the DARPA and Air Force Research Laboratory. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of DARPA or AFRL.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Balasubramanian, D., Coglio, A., Dubey, A., Karsai, G. (2021). Towards Model-Based Intent-Driven Adaptive Software. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. ISoLA 2021. Lecture Notes in Computer Science(), vol 13036. Springer, Cham. https://doi.org/10.1007/978-3-030-89159-6_24
Download citation
DOI: https://doi.org/10.1007/978-3-030-89159-6_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-89158-9
Online ISBN: 978-3-030-89159-6
eBook Packages: Computer ScienceComputer Science (R0)