Ever increasing demands on the complexity of onboard software has lead the European Space Agency to define the On­Board Software Reference Architecture (OSRA) creating a common framework for modeling onboard software for space applications. OSRA provides tools for the description of onboard software (OSW) in a component­centric way, but leaves the implementation of the OSW itself or related auto­coding tools to other institutions. As a first step towards a code­generation framework from high level software models, we present source code mappings from the OSRA data type model to a C++ type system. The goal of the framework is to take care of type safety and value consistency issues and to provide an intuitive interface to the application developer for defining and working with data types, while at the same time having the target of auto­coding in mind. We use language features introduced with the modern C++ standards to allow for extensive validity checks at compile­time and additional checks at runtime. For the integration with OSRA tools, we take an intermediate step transforming the graphically declared types of OSRA into an ASN.1 representation before generating the corresponding C++ source code. The integration is bidirectional, i.e. data types, which have been constructed solely in ASN.1 notation, can also be used inside OSRA models which helps maintaining more complex data structures in a textual format and enables us to use existing complex data sets from previous projects and from The Assert Set of Tools for Engineering (TASTE) project to test the feasibility and the limitations of the type system. In the end, we present a type system which can be auto­generated and automatically avoids common sources of error like faulty initialization, out­of­bound access and accidental range overflows. Such errors cause compile­time errors if possible and runtime errors otherwise. In order to provide developers with a practical solution, efforts were made to facilitate integration with existing code bases or third party libraries which allows an iterative process of adaption. We strive to generate complete onboard software projects from the OSRA component model. The data type system defined here provides therefore the basis for that endeavor as it determines the way components will exchange data and how developers will need to interact with them.


    Access

    Download


    Export, share and cite



    Title :

    Creating a Reliable Data Type Framework for the OSRA Using Modern C++


    Contributors:

    Conference:

    2019 ; Washington D.C.



    Publication date :

    2019-10-01


    Type of media :

    Conference paper


    Type of material :

    Electronic Resource


    Language :

    English