Explore chapters and articles related to this topic
The Future of Numerical Simulation in Industry: The Early Twenty-First Century
Published in Dubois Guillaume, Modeling and Simulation Challenges and Best Practices for Industry, 2018
Automatic code generation: Embedded codes in systems are still usually manually encoded. Several situations can occur. Command controllers can be considered, then directly encoded manually. In some other cases, as surprising as it may seem, the command controllers are modeled, then written down, and then manually encoded afterward in the embedded systems. These cases occur when there is no proper design continuity (e.g., if the design stakeholders are displayed in distant teams from an organizational point of view or even if a part is subcontracted). Some software programs enable automated code generation, coming from the model that will be implantable in the system’s embedded software. Progress is still to be expected in that field for the code-automated generation to no longer be a best practice but an obvious one.
Applications of Formal Methods, Modeling, and Testing Strategies for Safe Software Development
Published in Qamar Mahboob, Enrico Zio, Handbook of RAMS in Railway Systems, 2018
Alessandro Fantechi, Alessio Ferrari, Stefania Gnesi
With code generation, the code that will be deployed in the microprocessor(s) of the system is automatically generated from the models. Some modeling tools—normally those that allow to model statecharts or UML state machines—enable generation of the complete source code, while others—normally those that allow to define the architecture and high-level design of the software—generate skeletons for the classes or functions of the code, which have to be manually completed by the developer. Even in the case of complete generation, the developer normally has to manually define glue code, i.e., an adapter module, to attach the generated code to the drivers. It is worth remarking that, for example, the code generator from SCADE is qualified16 for railway systems, which, in principle, implies that the models exhibit the same behavior of the code. In case that nonqualified code generators are used, one has to ensure model-to-code compliance by means of translation validation, as mentioned in the previous section.
Esterel SCADE Approach to MBD
Published in Cary R. Spitzer, Uma Ferrell, Thomas Ferrell, Digital Avionics Handbook, 2017
Experience has shown that MBDV is an efficient means to achieve high integrity at reduced cost when combining the following: First of all, a real understanding of the principles of DO-178B/C with an appropriate application to MBDV. This was first done in the frame of DO-178B and is now transposed into DO-331 (MBDV supplement to DO-178C and DO-278A). We would like to stress that a model is no more no less than other development lifecycle data: there is no mystery; there shall be no less rigor.Use of an application-oriented language with a formal basis.Qualified model semantic check.Qualified code generation.Unified simulation and testing with model coverage analysis.
Extended continuous improvement model for Internet of Things system design environments
Published in Journal of Information and Telecommunication, 2021
Cezary Orłowski, Dawid Cygert, Przemysław Nowak
Code generation can be performed, among others, from the level of UML (Unified Modelling Language) or class schemes. It significantly accelerates the process of software development, organizes it, which also translates into faster TTM (Time to Market) and thus reduces costs. It is also easier to find inconsistencies in naming or action. The generator that we write can use many parsers, e.g. we can design a REST API generator for C# at the beginning, and then add a parser for C which will allow us to change the target language or framework or the library we want to use. A good example is database schemas with which we can generate DAO (Data Access Object) which allows us to easily map objects on elements in the system, and sometimes even entire generation CRUD (Create, Read, Update, Delete) (Fowler, 2016; Hasura Blog, 2019).