Title:
|
Specifying, refining and verifying reactive system design with UML and CSP
|
The strength of Formal Methods (FMs) lies in having a mathematical framework which supports a formal and logical approach towards specifying and verifying a system. However, the formal mathematical framework which serves as the selling point for FMs is at the same time an offset because it requires certain degrees of expertise and familiarity in order to use FMs. For many years, many practitioners have been reluctant to adopt FMs in their software development process simply because they are being put off by the steep learning curve and the complicated mathematical theories involved. With this reason in mind, we set off to find ways to improve the use of FMs and in this, we concentrate our effort in seeking ways to combine FMs with the intuitive graphical modelling language in order to reap the potentials offered by both. In this thesis, we have developed a lightweight approach which uses UML to visualize the syntactical behaviour of CSP. We have devised a way of mapping from UML to CSP and used UML as an entry point for system designers who wish to utilize CSP in their design. The results are encouraging in that we allow practitioners to use CSP without having to write the CSP themselves. We feel that this is a great step forward for system designers who are generally not familiar with Formal Methods but would wish to exploit the full advantage of using Formal Methods. Furthermore, we have also developed a formal semantics model which defines the behaviour of UML state diagrams in CSP. The model is crucial for it provides us with a set of unified semantics to work on when we design a system using the UML state diagrams. Our work enables practitioners to design in UML based on a set of unified semantics and later use CSP to formally check the correctness of their design. Lastly, we have developed a prototype tool which automatically takes UML diagrams as input and generate CSP that can be fed directly into FDR for model-checking.
|