DocumentCode :
142485
Title :
APECS code synthesis: Extending ocarina for multi-threaded code synthesis from AADL models for Safety Critical applications
Author :
Anderson, Matthew ; Shukla, Sandeep K.
Author_Institution :
Bradley Dept. of Electr. & Comput. Eng., Virginia Polytech. Inst. & State Univ., Blacksburg, VA, USA
fYear :
2014
fDate :
7-9 April 2014
Firstpage :
36
Lastpage :
41
Abstract :
For Safety Critical CPS applications, Architecture Analysis and Design Language (AADL) can provide a framework for formally modeling end-to-end Cyber Physical Systems (CPS). Such a model includes hardware platform model, software architecture model, the real-time bounds on software and hardware components. An AADL model of the system allows early formal analysis of real-time schedulability, end-to-end performance, power, memory requirements and correctness. Multiple tool support for AADL modeling and analysis exists, including software code generator, which glues together software components declared in the software architecture model. Ocarina is one such tool for software generation but it requires that the modeler provides the subprogram code in C/C++ or Ada. For correct-by-construction code synthesis, it is ideal to eliminate manually written code, and instead of using Ocarina as a glue code generator, using it for complete code synthesis from formal models. Support for Esterel and Lustre based specification of subprograms already have been attempted, but they usually specify specific subprogram elements, and the specific code generators are invoked to synthesis C/C++ code and then Ocarina glues them together based on the architectural constraints specified in the AADL model. This means that in a multi-threaded or multi-process software architecture, we still have to maneuver to get correct synchronization code. Moreover, if the granularity of code synthesis is at the function or subprogram level, we cannot gain much towards the goal of correct-by-construction synthesis and we believe that taking advantage of polychronous modeling and code synthesis would be ideal to achieve that goal. In this work, we show how to extend the Ocarina code generator to work with our Polychronous modeling and code synthesis solution to obtain multi-threaded code, improving the code-synthesis granularity from subprograms to processes while guaranteeing the implementation correctness- Moreover, a real-time extension of our polychronous code synthesis can provide the opportunity to enhance the real-time schedulability analysis of AADL. In this paper, we will outline the problem of AADL based model-driven implementation of CPS systems, describe the state-of-art code generation through Ocarina, point out why the extensions we propose are needed, and finally describe our code synthesis extension for multi-threaded code synthesis in our AADL modeling, analysis and code synthesis tool APECS which extends OSATE and Ocarina tools for AADL.
Keywords :
formal specification; multi-threading; safety-critical software; software architecture; specification languages; AADL based model-driven implementation; AADL models; APECS code synthesis; Ada language; C-C++ language; Esterel based specification; Lustre based specification; Ocarina; architecture analysis and design language; cyber-physical systems; end-to-end performance; formal analysis; glue code generator; hardware components; hardware platform model; memory requirements; multithreaded code synthesis; power; realtime schedulability; safety critical CPS applications; software architecture model; software code generator; software components; subprogram code; Analytical models; Context; Generators; Manuals; Process control; Standards; Synchronization; AADL; CPS; Model-based code synthesis; OSATE; Ocarina; Polychrony; code generators; correct-by-construction code synthesis;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Networking, Sensing and Control (ICNSC), 2014 IEEE 11th International Conference on
Conference_Location :
Miami, FL
Type :
conf
DOI :
10.1109/ICNSC.2014.6819596
Filename :
6819596
Link To Document :
بازگشت