Embedded Software

Embedded Software

Scade One – A Visual Coding Experience

Tagged: Scade One, UI/UX

    • SolutionSolution
      Participant

      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 (this blog): 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 Design and Traditional 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 modeling 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: 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.


      A visual coding experience

      Scade One’s modern and engaging user interface (UI) offers numerous services, enabling you to quickly and efficiently design models and to focus on application development. To make the tool friendly to newcomers, interactive documentation and examples are included, ensuring a great starting experience.

      A modern and immersive user interface

      Upon launching Scade One, you will immediately notice its new and improved user interface, built from scratch on fresh, modern foundations. It is designed for today’s desktop environment, with multiples screens and 4k/high-DPI screens. The UI is available in light and dark themes to suit your preferences.


      Scade One UI in dark (default) and light themes

      We want the tool to be easy to learn for new users. As you launch the application, you are greeted with a ‘Welcome page’ to get started quickly, which gives quick access to:

      • ‘Getting started’ videos that illustrate, for instance, the process of creating and debugging a simple model from scratch.
      • Examples showcasing the tool’s features and the modeling language.
      • The HTML user documentation, including a ‘First steps’ section to get familiar with the tool and the modeling language.


      Welcome page

      In addition to standard user documentation, Scade One features built-in user assistance accessible seamlessly from within the tool, without interrupting user workflow. You can invoke the help overlay at any moment, showing interactive documentation for the various parts of the user interface directly over the current view.


      Help overlay

      Creating block diagrams efficiently

      Creating graphical block diagrams can be a time-consuming process in model-based tools. This is why Scade One provides many features to make the design of readable block diagrams more efficient than ever:

        • The editing area is maximized to keep focus on model design. Editing properties of model elements is performed contextually, without having to switch to a different view or panel. The quick insert feature eases model construction through a contextual search field that can be triggered from anywhere within the diagram.


      Quick insert

        • In terms of diagram layout, smart guides help align blocks to obtain clear models with as many straight wires as possible. The modeler also provides automatic layout, enabled by default for wires. These wires are automatically recalculated as needed when you move or resize a block. You can also trigger a complete layout of the diagram or a part of it, including blocks, wires and all language constructs such as state machines.


      Auto-layout of block diagrams

        • You can also integrate textual notation, in the Swan language, seamlessly inside block diagrams. Scade One incorporates essential text editor features, including syntax coloring, indentation, comments and error reporting.


      Text edition features

      Modeling flexibility

      Flexibility is a key area of focus for Scade One, allowing the manipulation of inconsistent or incorrect models, which typically occurs during model building or updates. For instance, the modeler allows blocks to overlap, accommodates textual blocks with syntax errors, and handles references to unknown declarations or operator instances that don’t match their definitions. Of course, your goal is to design a consistent and correct model, so the modeler features on-the-fly checks (see below) to detect inconsistencies and errors as you edit the model. Quick fixes are also available to correct errors or perform model-wide refactoring (e.g. rename a declaration and all its uses).

      Such an increased flexibility eases model edition. In other model-based tools, you must declare an operator (or a constant, or an input) before using it. In Scade One, it is possible to do it the other way around:

      • First, create an instance (of a yet unknown operator)
      • Edit the instance like any other, connect its inputs and outputs
      • On-the-fly checks detect and report this inconsistency. Use quick fix to create a matching definition from the instance


      Creating an operator instance for an undefined operator thanks to modeler flexibility


      Operator definition resulting from the quick fix

      This approach can be particularly useful during early design phases, where it feels natural to build your model in a top-down manner, starting from the root operator.

      Smart services

      Scade One models are not just drawings. Diagrams and textual notation are based on a domain-specific programming language called Swan. This language is formally defined, from the syntax to static analyses, to guarantee model correctness – such as type consistency and the singular definition of flows.

      In Scade One, these checks are seamlessly applied on-the-fly, as you edit the model, providing instantaneous feedback. There is no need to trigger explicit model checks: construction is natural and iterative, yielding a readable and correct model.


      On-the-fly checks

      These analyses are used to offer additional services, such as auto-completion that considers identifier visibility or the ability to display inferred wire types as tooltips.

      Stay tuned!

      In this blog, we’ve demonstrated the new Scade One 2024 R1 visual coding experience. It offers many services to allow you to design models quickly and effectively, focusing on the development of your application rather than the intricacies of the tool.

      In the next blog, we’ll discuss how Scade One bridges the gap between the ease of use of model-based tools and the expressiveness of programming.

      About the author



      Cédric Pasteur (LinkedIn) is a Senior Product Manager at Ansys. He has been working on Scade One, Ansys’ latest-generation model-based embedded software development product, since its inception. He specializes in programming language theory and its application to safe embedded systems.