Background:
Static verification is a sound programming methodology that permits automated
reasoning about the correctness of an implementation with respect to its formal specification
before its execution. Unified Modelling Language is most commonly used modelling language
which describes the client’s requirement. Object Constraint Language is a formal language which
allows users to express textual constraints regarding the UML model. Therefore, UML/OCL express
formal specification and helps the developers to implement the code according to the client’s requirement
through software design.
Objective:
This paper aims to compare the existing approaches generating Java, C++, C# code or
JML, Spec# specifications from UML/OCL.
Methods:
Nowadays, software system is developed via automatic code generation from software design
to implementation when using formal specification and static analysis. In this paper, the study
considers transformation from design to implementation and vice versa using model transformation,
code generation or other techniques.
Results:
The related tools, which generate codes, do not support verification at the implementation
phase. On the other hand, the specification generation tools do not generate all the required properties
which are needed for verification at the implementation phase.
Conclusion:
If the generated system supports the verification with all required properties, code developer
needs less efforts to produce correct software system. Therefore, this study recommends introducing
a new framework which can act as an interface between design and implementation to
generate verified software systems.