The C1 Implementation is a C-language implementation of the modelling concepts of the FW Profile.It offers components to implement State Machines, Procedures (activity diagrams), and RT Containers (encapsulations of threads). The FW Profile is a specification-level modelling language defined as a restriction of UML. Its definition is publicly available on the FW Profile Web Site.
The main features of the C1 Implementation are:
- Well-Defined Semantics: semantics of state machines and procedure fully and unambiguously defined by FW Profile.
- Minimal Memory Requirements: core module footprint of a few kBytes.
- Small CPU Demands: one single level of indirection (due to actions and guards being implemented as function pointers).
- Excellent Scalability: code footprint and CPU requirement independent of number and size of state machine, procedure, and RT container instances.
- High Reliability: a test suite provides full code, branch, and condition coverage (with the exceptions error branches for system calls).
- Formal Specification: formal user requirements specify the implementation.
- Requirement Traceability: requirements individually traced to the source code and to the test suite.
- Formal Verification: key requirements are formally verified using the Spin verifier on a Promela model.
- Documented Code: doxygen documentation for all the source code.
- Support for Extensibility: an inheritance-like mechanism is provided through which a derived state machine is created from a base state machine by overriding some of its actions or guards and a derived procedure is created from a base procedure.
These characteristics make the C1 Implementation especially well-suited for use in mission-critical applications.
This implementation of the FW Profile consists of the following items:
A Usage Example for the state machine implementation can be found here, for the procedure implementation it can be found here, and for the RT Container implementation it can be found here.