A model-based bridge tool between system specification and dynamic architecture design
ASTERIOS® Designer is an automated model-based engineering tool that assists Software Architects to early validate that the design of their multi-rate realtime critical software systems (i.e. tasks, memory partition, timing properties) fulfills the high-level requirements (e.g. end-to-end timing constraints).
As input models, the software system is described as:
- a set of software functional blocks, i.e. software functions, that exchange data through communication links: a static architecture that shall be enriched with a multitasking multirate architecture;
- a set of design constraints (required function rates, required end-to-end constraints) that the multitasking multirate architecture shall satisfy.
ASTERIOS® Designer helps the user to define its timing design at the function-level on one hand and to generate the associated dynamic architecture (the PsyC code) at the task-level on the other hand , used as input of both source code development and integration activities.
From a timing point of view, ASTERIOS® Designer helps user:
- to define the functions rates and tasks timing descriptions in order to satisfy the application timing constraints: rate constraints and end to end timing constraints;
- to produce a report about the satisfaction of end-to-end constraints specified in the input models;
- to produce the timing diagrams (.svg files) of the application that can be integrated in the software application design documents;
From an integration point of view, ASTERIOS® Designer helps user:
- to generate the dynamic architecture descriptions, i.e. the descriptions used as inputs of ASTERIOS® Developer: IDE project configuration, compilation configuration, task sequence of calls and task communications;
- to generate the C integration code between the user C functional code and the task implementation.
ASTERIOS® Designer input models conforms to the Open System Description (OSD): a domain specific language shared between high-level architecture tools (software design description), functional detailed-design tools (function algorithms description) and real-time multitasking design tools (ASTERIOS® Designer). The internal dynamic architecture and detailed design description of each C function is not required in this language and thus by ASTERIOS® Designer. It is developed in a parallel sub process named the functional design.
Strong integration with ANSYS tools
As an example, ANSYS SCADE environment tool suite provides a connector to generate the Open System Description. SCADE ARCHITECT, a SysML-based environment, allows to design the high-level software architecture. SCADE SUITE allows to design the functional models. The delivered Open System Description bridge allows to interface those models with ASTERIOS® Designer and to provide an integrated flow.
The SCADE Suite KCG Code Generator generated codes are automatically integrated with ASTERIOS® Designer generated descriptions (C code, task sequence of calls and task communications). Concretely the Open System input Descriptions are conformed to an open xml schema. It is the description of:
- a functional architecture: the functional blocks and the communications between those blocks (in the .oasd file);
- the timing properties required for this architecture: periods, deadlines, interested functional chains and end-to-end timing constraints (in the .oasd file);
- the code integration artifacts: C and h files path produced by the functional sub process (in the .oasd file);
- a preliminary allocation of functions to software execution unit, i.e. the software tasks, to refine (in the .oad file).
- A companion of the MBSE tools (SCADE, AADL, .. ) to achieve 100% of automatic code generation
- Early Validation: automatic iteration over candidate dynamic architectures that fulfills the high-level requirements
- Further modifications in the High-Level requirements are quickly take in account because of automation
- Compliant with XML description format (OSD)
The Open System Description is detailed in the Github KRONO-SAFE OSD project. This project describes the usage of the Eclipse OSD integration plugin that provides a tree editor to read/write the OSD xml descriptions.