Embedded Software

Embedded Software

Scade One – An Open Model-Based Ecosystem, Ready for MBSE

    • SolutionSolution

      Introducing the Scade One launch blog series

      This article is part of the Scade One launch blog series. Scade One is a model-based solution for the development of embedded software applications. As we approach the launch of the first product version of Scade One, we are publishing this blog series on the main highlights of Scade One 2024 R1, starting with:

      • A Visual Coding Experience: We’ll introduce the new modern user interface and user experience of Scade One, designed to make the tool intuitive and engaging.
      • Bridging the Gap between Model-based and Programming: We’ll show how Scade One combines the ease of use of model-based tools and the power and expressivity of programming languages. New modelling constructs allow Scade One to be used both in traditional control software and more complex mission and autonomy software.
      • An Open Model-Based Ecosystem, Ready for MBSE (this blog): Scade One is designed to be integrated into a Model-Based Systems Engineering (MBSE) process, and is bundled with the Ansys System Architecture Modeler, a web-based SysML v2 modeler. We’ll also describe the import of software component interfaces from SysML v2 into Scade One.
      • Democratizing Model-Based Development: We’ll introduce the new entry-level offering of Scade One, making the model-based approach, used successfully for safety-critical applications for more than 20 years, accessible to any company developing safe and reliable embedded software.

      We are eager to share with you what is coming in this new chapter for SCADE.

      Model-Based Systems Engineering

      Model-Based Systems Engineering (MBSE) is increasingly used as a process to structure product development. It consists in a formalized application of modeling to support system requirements, design, analysis, verification, and validation activities beginning in the conceptual design phase and continuing throughout development and later life cycle phases. A comprehensive MBSE workflow includes seamless paths between tools dedicated to requirements engineering, system design, safety and security analysis, system simulation at different levels of fidelity, embedded software design and validation and verification (V&V).

      Ansys offers a comprehensive solution for MBSE (see Ansys Blog – Model-Based Systems Engineering Explained), including:

      • Architecture modeling (structure, behavior, requirements) at system level with real-time cooperation capabilities: Ansys System Architecture Modeler (see next section)
      • Model-based design & verification of safety-critical embedded software: Ansys SCADE and Ansys Scade One
      • Model-based safety and cybersecurity analysis: Ansys medini analyze
      • Connecting engineering analysis, simulation & verification workflows to System Architecture Models: Ansys ModelCenter
      • Detailed physics simulation, analysis & optimization capabilities: Ansys optiSLang and Ansys 3D Physics Solvers
      • Predictive maintenance and operation feedback into product design: Ansys Twin Builder
      • An open ecosystem notably to interface with System Architecture Modeling tools and Requirements Management Systems

      High-level view of the Ansys MBSE offering

      Ansys System Architecture Modeler (SAM)

      The Ansys System Architecture Modeler is a web-based SysML v2 modeler, that allows real-time collaboration, enabling multiple users to work on system model development at the same time, and to see in real time how other users are contributing to the system architecture.

      The SAM is bundled with Scade One.

      Ansys System Architecture Modeler view

      SysML has become the language for MBSE; SysML v2 is a brand new language defined from the lessons learned from using SysML for MBSE. Compared to SysML v1, SysML v2 was designed to be more regular, intuitive, precise, and expressive, with a powerful support for inheritance with redefinitions and subsetting. The SysML v2 specification is available on GitHub. It is defined with a metamodel (contrary to the UML profile definition for SysML v1.x) and brings a textual syntax equivalent to the graphical syntax (same idea as in Scade One) and a standardized API for better tool interoperability.

      Ansys SAM is a cloud-based software that supports the SysML v2 language. It is accessible from a standard web browser, allowing you to create SysML v2 models with graphical and tabular views, import libraries, requirements, and textual SysML v2 specifications. Ansys SAM enables multiple users to work on model building at the same time and includes support for versioning. It implements the SysML v2 standard API allowing tools such as Scade One to access the SysML v2 model programmatically.

      From system architecture to software design in Scade One

      The SAM supports the refinement process from requirements and conceptual levels down to the physical level where the system architecture includes the software architecture, identifying software components and their interfaces, and the communications between components. It describes applicative components, but also their scheduling (threads, partitions, etc), the runtime environments down to more low-level considerations like operating systems, drivers, and the mapping to HW (sensors, actuators, CPUs, memory).

      After the software architecture has been defined, Scade One is used to develop applicative software components, from design to code generation (and in next releases also verification & validation activities like review, testing, coverage). Scade One allows to refine the software architectural design of each software component. This can be especially important as software components become more complex and are themselves composed of multiple sub-components. In parallel, the underlying Swan language introduces new constructs, designed to create complex data structures (including arrays, structures, variants/tagged unions) and manipulate them (with a new loop-like construct for iterating and traversing these data structures). This allows to use Scade One for new applications, like mission, flight management and autonomy, that are more complex than typical control applications, making software design a necessity.

      From system architecture to software design

      It’s important to understand here why there are two different tools (SAM and Scade One):

      • SAM is a generic system and software architecture tool, based on SysML v2. It is a semi-formal approach, that offers a lot of flexibility and configurability, which is very useful at the system level for early design phases.
      • Scade One is a software development tool, based on a domain-specific language called Swan (that was introduced in our previous blog). It is precise enough to generate code running on an embedded target.

      Both tools are complementary and adapted to their respective use cases. The next section describes a seamless workflow to go from software architecture to software development.

      From SysML v2 to Swan

      It is possible to automatically import the interface and connections of software components from a system architecture model design using SysML v2 into a Swan model. This process is demonstrated in the following video:

      Importing the SysML v2 model from SAM consists in 4 automated steps:

      1. Connect to the SAM server using user credentials,
      2. Using the SysML v2 standard API, extract the considered SysML v2 subset (the structural part), and resolve the model objects inheritance chains,
      3. Model transformation from SysML v2 to Swan,
      4. Swan model creation.

      The import takes advantage of new features in Scade One:

      • The result of the import is a module interface, including types, groups and constants definitions, as well as operator declarations (including inputs and outputs) for each part definition in the SysML v2 model. Interfaces are a new feature of Swan, allowing to separate the interface of a module from its implementation. Thanks to this separation, it is also possible to re-import the software architecture after an update: only the interface will be overwritten. The implementation of the operator can be kept, and the designer can detect and fix inconsistencies between the interface and implementation. See our previous blog for more information.
      • The import uses groups to represent ports with multiple attributes. This allows to generate a simpler model, with less wires and closer to the SysML v2 model.
      • The import also takes into account connectors between software components and generates the corresponding block diagrams. Automated layout is used to compute the layout of these diagrams (see the first blog).

      Stay tuned!

      In this blog, we’ve demonstrated how Scade One integrates into a Model-Based System Engineering (MBSE) workflow, starting from system architecture using the bundled Ansys System Architecture Modeler, down to software implementation in Scade One.

      In the next blog, we’ll show how Scade One is democratizing Model-Based development, thanks to its new entry-level offering.