Using Object Orientation in High Integrity Applications: A Case Study A. Alonso, R. López,* T. Vardanega, J. A. de la Puente Dept. Ingeniería de Sistemas.

Slides:



Advertisements
Similar presentations
Object Oriented Programming
Advertisements

COM vs. CORBA.
The Hard Real-Time Unified Modeling Language (HRT-UML) method provides a comprehensive solution to the modeling of Hard Real Time systems. HRT-UML incorporates.
Lightweight Abstraction for Mathematical Computation in Java 1 Pavel Bourdykine and Stephen M. Watt Department of Computer Science Western University London.
Transparent Environment for Replicated Ravenscar Applications Luís Miguel Pinho Francisco Vasques Ada-Europe 2002 Vienna, Austria June 2002.
ITEC200 – Week03 Inheritance and Class Hierarchies.
Software Reuse Building software from reusable components Objectives
Aarhus University, 2005Esmertec AG1 Implementing Object-Oriented Virtual Machines Lars Bak & Kasper Lund Esmertec AG
1 ) Definition 2) Note on structured and modular programming, and information hiding 3) Example imperative languages 4) Features of imperative languages.
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Programming Languages Structure
ESA UNCLASSIFIED – For Official Use Deterministic Communication with SpaceWire Martin Suess CCSDS Spring Meeting /03/2015.
CS 104 Introduction to Computer Science and Graphics Problems Software and Programming Language (2) Programming Languages 09/26/2008 Yang Song (Prepared.
SIMULATING ERRORS IN WEB SERVICES International Journal of Simulation: Systems, Sciences and Technology 2004 Nik Looker, Malcolm Munro and Jie Xu.
10th TTCN-3 User Conference, 7-9 June 2011, Bled, Slovenia AUTOSAR Conformance Tests - Feedback on their development and utilization Alain Feudjio-Vouffo,
Language Evaluation Criteria
PROGRAMMING LANGUAGES The Study of Programming Languages.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
OOPs Object oriented programming. Based on ADT principles  Representation of type and operations in a single unit  Available for other units to create.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Designing a HEP Experiment Control System, Lessons to be Learned From 10 Years Evolution and Operation of the DELPHI Experiment. André Augustinus 8 February.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
An Introduction to Software Architecture
PHP TUTORIAL. HISTORY OF PHP  PHP as it's known today is actually the successor to a product named PHP/FI.  Created in 1994 by Rasmus Lerdorf, the very.
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
ARTEMIS JU Grant Agreement number ARTEMIS JU Grant Agreement number Sept 25-27, 2013 Riga Safety Certification of Software-intensive.
© GMV S.A., 2004 Property of GMV S.A. All rights reserved 2004/05/13 XML in CCSDS CCSDS Spring Meeting - Montreal Fran Martínez GMVSA 4081/04.
Introduction to Object Oriented Programming CMSC 331.
An Overlay Network Providing Application-Aware Multimedia Services Maarten Wijnants Bart Cornelissen Wim Lamotte Bart De Vleeschauwer.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
CS699: Professional Seminar in CS / Professor V. Riabov Keith Armentrout Presentation #3 : Portable GUI in Ada and GtkAda 2005 March 12Keith Armentrout1.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
ESA UNCLASSIFIED – For Official Use SOIS EDS & Toolchain ESA YGT Study F. Torelli & P. Skrzypek CCSDS Fall Meeting /10/2013.
 2006 Pearson Education, Inc. All rights reserved Classes and Objects: A Deeper Look.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Atlas CHEP‘2000 Padova, ITALY February 2000 Implementation of an Object Oriented Track Reconstruction Model into Multiple LHC Experiments.
OOPs Object oriented programming. Abstract data types  Representationof type and operations in a single unit  Available for other units to create variables.
Design and Implementation of Spacecraft Avionics Software Architecture based on Spacecraft Onboard Interface Services and Packet Utilization Standard Beijing.
Inheritance CSI 1101 Nour El Kadri. OOP  We have seen that object-oriented programming (OOP) helps organizing and maintaining large software systems.
1 Compiler & its Phases Krishan Kumar Asstt. Prof. (CSE) BPRCE, Gohana.
EPICS Release 3.15 Bob Dalesio May 19, Features for 3.15 Support for large arrays Channel access priorities Portable server replacement of rsrv.
(1) ICS 313: Programming Language Theory Chapter 11: Abstract Data Types (Data Abstraction)
Java Programming, Second Edition Chapter Twelve Advanced Inheritance Concepts.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
Linking FMI-based Components with Ptolemy II’s Discrete Event Domain Introduction In the simulation of cyber-physical systems, event driven models with.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Deterministic Communication with SpaceWire
Design Patterns: MORE Examples
Reuse Separate classes could be developed for all the different objects that are needed in each program. However that would be wasteful. Often many functionalities.
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Inheritance ITI1121 Nour El Kadri.
MPCS – Advanced java Programming
Design and Implementation of Spacecraft Avionics Software Architecture based on Spacecraft Onboard Interface Services and Packet Utilization Standard Beijing.
Ada – 1983 History’s largest design effort
An Introduction to Software Architecture
Quality-aware Middleware
Presentation transcript:

Using Object Orientation in High Integrity Applications: A Case Study A. Alonso, R. López,* T. Vardanega, J. A. de la Puente Dept. Ingeniería de Sistemas Telemáticos, UPM, Spain *ESTEC, European Space Agency, The Netherlands Ada-Europe Conference Vienna, June 20th, 2002

19/06/2015© DIT/UPM 2dit UPM Contents 1. Introduction 2. OBOSS redesign 3. Analysis of the OO design 4. Conclusions

19/06/2015© DIT/UPM 3dit UPM 1. Introduction: Goals of the project Approach: Take an existing system Redesign it to include OOP Analyse the results Expected gains: Better design Make the code easier to understand Facilitate system extension Is it suitable to use OOP in High Integrity Systems? Is it worthwhile to redesign a system implementation to include OOP features?

19/06/2015© DIT/UPM 4dit UPM Target System: OBOSS PUS: ESA standard that defines a packet-based interface, for the execution of on-board services: Basis for sending Telecommands OBOSS: Software framework to develop PUS-based the on-board Data Handling Control System Goal: To promote reuse Originally developed with Ada 83 Later, it was upgraded according to RAVENSCAR Execution platform: GNAT/ORK/ERC32 ORK: Open Ravenscar Real-Time Kernel

19/06/2015© DIT/UPM 5dit UPM Analysis of OBOSS OBOSS basic operation: The TC is routed to the service provider Parse the packet and convert to the sub-service internal representation Execute the sub-service Handle possible errors Main drawbacks Packets are represented as variant records The sub-service is selected by case statements Packet operations are in different Ada packages Data representation is also based on variant records

19/06/2015© DIT/UPM 6dit UPM 2. OBOSS Redesign Change the types definition Convert variant records into tagged types Use dynamic dispatching to select operations Use class wide programming to interpret packets Change the design make basic type operations primitive improve reuse of code by rearranging packages

19/06/2015© DIT/UPM 7dit UPM Example of a Service Provider Internal_TC_Representation (type) Parse_TC Parser Initialize Handle_PUS_Packet Device_TC_interpreter TC_Interpreter Verify_Stage Device_Auxiliary_Functions Start_New_TC_Interpretation Verify_Step Generic packages and instantiation Internal_TC_Source_Data (type) Device_Command_Parser Command types Interpret_TC (class wide) Parse_Source_Data

19/06/2015© DIT/UPM 8dit UPM Basic Types Modification Standard_Value is a type that is the union of all the supported parameters and structures in PUS It is defined as an abstract null record It is extended for each of the parameters types Proper functions are provided Function selection, through dispatching

19/06/2015© DIT/UPM 9dit UPM Analysis of the OO Design Space: Less space for representing data types Big increment in program size: Compiler can corrected by optimizing code generation Execution time: OO version is slightly faster

19/06/2015© DIT/UPM 10dit UPM Analysis of the OO design (II) Time predictability The use of OO does not preclude this property Visible case statements are replaced by internal mechanisms Dynamic memory Should be avoided in HIS The new OBOSS system uses the heap: »Can be solved using a pool of access objects Primitive detection technique has been used More help from compilers will be welcome

19/06/2015© DIT/UPM 11dit UPM Analysis of the OO design: Cost of retrofitting OOP The cost of the type modifications has been low, after we managed to understand the code and the side effects The redesign of the service providers has been much higher, but affordable. The expected gains were reached However, we think that arguably there is little benefit in retrofitting OOP into OBOSS, because: The system is well designed Addition of sub-services is not frequent The structure of client packages will not significantly improved

19/06/2015© DIT/UPM 12dit UPM Conclusions Results of the experiment: It is feasible to use (with care) OO in HIS Improvements in the system Code more readable System easier to maintain and extend Some gains in type size and performance System behaviour is predictable Drawbacks Size of the executable Use of heap has to be dealt with more care In this case specific system, is not worthwhile to retrofit OOP into non-OOP