A practical use of model checking for synthesis: generating a dam controller for flood management
- 8 February 2011
- journal article
- research article
- Published by Wiley in Software: Practice and Experience
- Vol. 41 (11) , 1329-1347
Abstract
Program synthesis with automated methods has been an active research area for many years; however, we still lack well‐known and accepted techniques for this software engineering task. In this case, the design space to be considered is infinite, even when the solution is restricted to software that meets the requirements. In this paper we propose the use of model checking (MC) techniques to automatically synthesize controllers. Given a goal in the evolution of a plant, MC can be used to search for acceptable software controllers that enable the plant to evolve as desired. We also develop a realistic application in the context of a joint project with a major water reservoir management company. This application generates controllers for dam management during flood seasons. The controllers give the proper orders (open or close the outflow elements) at precise times in order to avoid disasters and to preserve the water level in the dam. Copyright © 2011 John Wiley & Sons, Ltd.Keywords
This publication has 38 references indexed in Scilit:
- PHAVer: algorithmic verification of hybrid systems past HyTechInternational Journal on Software Tools for Technology Transfer, 2008
- Controlling spillway gates of dams by using fuzzy logic controller with optimum rule numberApplied Soft Computing, 2008
- Towards the development of a decision support system for water resource managementEnvironmental Modelling & Software, 2005
- MULINO-DSS: a computer tool for sustainable use of water resources at the catchment scaleMathematics and Computers in Simulation, 2004
- Model checking JAVA programs using JAVA PathFinderInternational Journal on Software Tools for Technology Transfer, 2000
- Automated software synthesis: an application in mechanical CADIEEE Transactions on Software Engineering, 1998
- Discrete-time Promela and Spin1998
- The model checker SPINIEEE Transactions on Software Engineering, 1997
- Automatic verification of finite-state concurrent systems using temporal logic specificationsACM Transactions on Programming Languages and Systems, 1986
- Synthesis of Communicating Processes from Temporal Logic SpecificationsACM Transactions on Programming Languages and Systems, 1984