Eclipse XSM

Tuesday, July 23, 2024 - 07:43 by Carsten Pitz
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Community Review
Background

State machines are a common way to define behavior in safety relevant applications. Furthermore the source code of safety relevant applications often has to be certified by an authority.

Scope

Eclipse XSM (eXtensible State Machine) provides a middleware to implement state machines. It allows to alter an existing state machine without altering the existing code. As a middleware it does not provide a  service to a user directly but helps developers to focus on business logic.

Description

Eclipse XSM (eXtensible State Machine) provides a middleware to implement state machines. It allows to alter an existing state machine without altering the existing code. As a middleware it does not provide a  service to a user directly but helps developers to focus on business logic.

An example:

Imagine a simple LIN slave. The standard behavior might be, that if it cannot serve due to internal issues it signals no service to its master. A carmaker explicitly requires the LIN slave to signal operating the first 2s after powering on. With Eclipse XSM you can add this custom behavior without touching the existing code.

Why Here?

Governance done by EMO is good.

Future Work

Scope 1 - documented runtime including a documented example

An ANSI C89 compliant source code of the runtime with inline comments. An additional printable documentation in PDF of the runtime which covers basic principles, rationale besides an API reference.

An ANSI C89 compliant source code of the example with inline comments. An additional printable documentation in PDF of the example which mainly how to run it.

Scope 2 - an Eclipse Papyrus & Eclipse Acceleo based generator.

A set of MOFM2T scripts to transform state machines modeled within Papyrus into ANSI C Code using the runtime. An additional printable documentation in PDF of the scripts which covers basic principles, rationale besides an API reference.

Scope 3 - further generators 

-- to be defined after Scope 2 is mature --

Project Scheduling

tbd, initial contribution planned before OCX'24

Project Leads
Committers
Florian Stechmann
Interested Parties

safety critical embedded systems in general

automotive

medical devices

aerospace

Initial Contribution

documented runtime

Source Repository Type

This project is in an early phase. First source code will be published as soon as a repository has been chosen. I already reserved a repository @ GitHub.