Abstract

In general, requirements expressed in natural language are the first step in the software development process and are documented in the form of use cases. These requirements can be specified formally using some precise mathematical notation (e.g. Linear Temporal Logic (LTL), Computational Tree Logic (CTL) etc.) or using some modeling formalism (e.g. a Kripke structure). The rigor involved in writing formal requirements requires extra time and effort, which is not feasible in several software development scenarios. A number of existing approaches are able to transform informal software requirements to formal specifications. However, most of these approaches require additional skills like understanding of specification languages additional artifacts, or services of domain expert(s). Consequently, an automated approach is required to reduce the overhead of effort for converting informal requirements to formal specifications. This work introduces an approach that takes a use case model as input in the proposed template and produces a Kripke structure and LTL specifications as output. The proposed approach also considers the common use case relationships (i.e., include and extend). The generated Kripke structure model of the software allows analysis of software behavior early at the requirements specification stage which otherwise would not be possible before the design stage of the software development process. The generated LTL formal specifications can be used against a formal model like a Kripke structure generated during the software development process for verification purpose. We demonstrate the working of the proposed approach by a SIM vending machine example, where the use cases of this system are inputs in the proposed template and the corresponding Kripke structure and LTL formal specifications are produced as final output. Additionally, we use the NuSMV tool to verify the generated LTL specifications against the Kripke structure model of the software, which reports no counterexamples thus validating the proposed approach.

Highlights

  • We demonstrate the working of the proposed approach by a Subscriber Identification Module (SIM) vending machine example, where the use cases of this system are inputs in the proposed template and the corresponding Kripke structure and LTL formal specifications are produced as final output

  • This paper presents an approach to transform use case description(s) to a Kripke structure and LTL formal specifications

  • The transformation process consists of nine rules to handle the provided use case description and to generate the resultant Kripke structure model KS

Read more

Summary

Introduction

Consistent and verifiable software requirements are more useful for software verification and validation activities than ambiguous, inconsistent and unverifiable software. The proposed template requires to specify a use case description using a set of keywords along with the distinct listing of software input and output symbols. To overcome these difficulties and to make the transformation process simple, we propose a use case template that lists the input and output symbols explicitly It enlists the alternate scenario(s) along with the normal scenario. This template does not handle use case relationships, i.e., include and extend Their proposed template requires the lengthofBitVector, BitVector and binary values for output symbols. The proposed template in this work does not require the user to calculate lengthofBitVecor, BitVector and corresponding binary values for output symbols Ensure: UCflattened as a use case description in the proposed template 1: Define UCtemp, UCflattened.ActorSet UC.ActorSet, UCflattened.InputSet

4: UCtemp Ucname
42: OutputLabel 43: end if
28: InputbeforeExtension
Related work
Conclusion
Limitations
Full Text
Published version (Free)

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