Download Asger Jensen - KindSoftware

Transcript
Abstract
In computer science designing systems, whether it is hardware or software, using an abstract state machine
diagram to model the system is a common approach. When using the diagram as a blueprint for
programming, it is possible to lose the equality between the diagram and the actual code, not to mention
the time that was spent creating the code.
Having a tool which generates skeleton code from a state machine is not a new idea. In 2003 Engelbert
Hubbers and Martijn Oostdijk created the AutoJML tool, which derives Java Modeling Language
specifications from UML state diagrams.
The same kind of tool does not exist in the .NET environment. Visual Studio 2010 does offer the possibilities
of creating state machine diagrams, but it is not possible to generate code from the diagram. This thesis is
about creating such a tool, based on Hubbers and Oostdijk work, where the user can create their abstract
state machine diagram and generate contracted skeleton C# code from it.
To accomplice this, a Domain Specific Language has been created, with an added feature to generate code.
The user can create their state machine by adding states and transitions, specify what states should be
initial-, normal- and final state, fill out the transition properties and initiate the validation and generation of
the code. Code Contracts is used in the generated code to keep the constraints of the abstract state
machine diagram.
The result of this thesis is a Visual Studio extension, which makes it possible to get generated contracted C#
code from an abstract state machine diagram.
2