Abstract

Several languages and techniques have been proposed for formal specification and validation of concurrent systems. However, these techniques provide no support for modelling incremental changes that take place during software development, such as successive refinements that take place during the design phase or changes that take place later on as a result of software evolution. Consequently any changes to the system model need to be incorporated by manual editing of the system specification, which is cumbersome and error-prone. Moreover, editing being an uncontrolled process, there is no way to automatically carry over (most of the) correctness properties after minor changes to the system. These factors can make formal approaches very expensive for large and evolving systems. To alleviate this problem, we present a language RL (stands for Refinement Language) in this paper that provides syntactic as well as semantic support for modelling incremental changes. Based on the language mechanisms, we then present a method for automatically carrying over properties after refinement. We also present algorithms for compiling RL specifications into finite state automata (FSA) that can be analyzed using traditional algorithms for establishing new properties that hold only after refinement.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.