Real Time Developer Studio. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com

Similar documents
BENEFITS OF MODELING WITH A FORMAL LANGUAGE. Emmanuel Gaudin emmanuel.gaudin@pramadev.com

SCADE Suite in Space Applications

Which Enterprise Architect Edition Should I Purchase?

dominique <dot> toupin <at> ericsson <dot> com GYORGY <dot> RETHY <at> ericsson <dot> com

Certification of a Scade 6 compiler

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

TASTE: A Real-Time Software Engineering Tool-Chain Overview, Status, and Future

F-16 Modular Mission Computer Application Software

TASTE: An open-source tool-chain for embedded system and software development

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Testing automation of projects in telecommunication domain

Development Process Automation Experiences in Japan

UML-based Test Generation and Execution

Embedded Software development Process and Tools:

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

What is a life cycle model?

Introduction to Automated Testing

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Model Driven Testing AGEDIS Architecture Interfaces and Tools

WebSphere Business Modeler

Virtual Platforms Addressing challenges in telecom product development

ARINC 653. An Avionics Standard for Safe, Partitioned Systems

VAIL-Plant Asset Integrity Management System. Software Development Process

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

U.S. Navy Automated Software Testing

Model Based Software Development for DDG 1000 Advanced Gun System

SOFTWARE DEVELOPMENT USING SPECIFICATION AND DESCRIPTION LANGUAGE REAL TIME

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

Application Architectures

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Federated, Generic Configuration Management for Engineering Data

Technical Data Sheet SCADE R17 Solutions for ARINC 661 Compliant Systems Design Environment for Aircraft Manufacturers, CDS and UA Suppliers

CDC UNIFIED PROCESS JOB AID

UML for the C programming language.

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff

Getting Embedded C Applications to Market Faster using the Model-Driven Development Technologies of Modeling, Simulation and Code Generation

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Integrating Legacy Code / Models with Model Based Development Using Rhapsody

Mastering increasing product complexity with Collaborative Systems Engineering and PLM

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

x86 ISA Modifications to support Virtual Machines

Chapter 4 Software Lifecycle and Performance Analysis

DOWNLOAD COURSE PRESENTATIONS. Scan to download course presentations

Example Software Development Process.

Chapter 6, The Operating System Machine Level

FreeForm Designer. Phone: Fax: POB 8792, Natanya, Israel Document2

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler

OSA-RTS SPHE H RE R A A

SignalDraw: GUI Tool For Generating Pulse Sequences

PIE. Internal Structure

Assessment for Master s Degree Program Fall Spring 2011 Computer Science Dept. Texas A&M University - Commerce

Model based testing tools. Olli Pekka Puolitaival

Assessment Plan for CS and CIS Degree Programs Computer Science Dept. Texas A&M University - Commerce

Software in safety critical systems

UML SUPPORTED SOFTWARE DESIGN

A Methodology for the Development of New Telecommunications Services

TEST AUTOMATION FRAMEWORK

Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer. Dr. Johan Kraft, Percepio AB

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

HPC Wales Skills Academy Course Catalogue 2015

Software Engineering Question Bank

RTAI. Antonio Barbalace (modified by M.Moro 2011) RTAI

An Easier Way for Cross-Platform Data Acquisition Application Development

Dr. Jana Koehler IBM Zurich Research Laboratory

SOFTWARE TESTING TRAINING COURSES CONTENTS

Model Based System Engineering (MBSE) For Accelerating Software Development Cycle

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

OpenClovis Product Presentation

Requirements Exchange: From Specification Documents to Models

SAMPLE RESUME FORMAT

Visual Programming of Logic, Motion, and Robotics

Applying 4+1 View Architecture with UML 2. White Paper

Automatic Test Data Generation for TTCN-3 using CTE

Telecommunications Management Network (TMN)

IBM Operational Decision Management v8

How To Design An Information System

Selbo 2 an Environment for Creating Electronic Content in Software Engineering

GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications

Software Specification and Testing

TESSY Automated dynamic module/unit and. CTE Classification Tree Editor. integration testing of embedded applications. for test case specifications

Software Testing A Time for Standard Models

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

Effective Team Development Using Microsoft Visual Studio Team System

School of Computer Science

Linux A multi-purpose executive support for civil avionics applications?

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Project Management Planning

Best Practices for Verification, Validation, and Test in Model- Based Design

1/20/2016 INTRODUCTION

ECU State Manager Module Development and Design for Automotive Platform Software Based on AUTOSAR 4.0

DIABLO VALLEY COLLEGE CATALOG

Transcription:

Real Time Developer Studio Emmanuel Gaudin emmanuel.gaudin@pragmadev.com

PragmaDev French SME, Beneficiary since 2006. Dedicated to the development of a modelling tool for the development of Event driven software.

Partners

References Universities : ENST, Polytechnica Bucarest, Telecom Beijing Distributors: United States, Asia, Europe

Long term investment Source code access in case of failure: Economical Technical Strategic Possible audit of the code Possible third party take over Continuous integration

Philosophy Develop a modelling tool based on the users needs.

Target segment Event driven systems Embedded & Real time Decomposed in tasks running concurrently Communicating Synchronizing Application Module 1 Module 2 Module 3 Message queue driver OS-RTOS-Scheduler hardware driver Semaphore

Issues The software content is doubling about every two years. The sheer volume is making it increasingly difficult for QA and test teams to keep up with traditional tools and processes. Wind River Market Survey of Device Software Testing Trends and Quality Concerns in the Embedded Industry - June 2010. Never forget the 1:10:100 rule Software development costs only comprise a portion of the total cost of software ownership. However, the development process itself has a significant impact on total cost of ownership. Total Cost of Ownership: Development is (only) Job One by Daniel D. Galorath - June 2008. Source: James Martin study

What modelling can solve Focus first on the What (Req) instead of focusing on the How (code), Modelling is about Communication and Documentation, Legibility of large systems gets critical. Would you build a house without drawing detailed plans? Get control over productivity, Improve quality.

Requirements for a good modeling language The abstract model must be platform independant, as its name states. The abstract model must be translatable to an implementation platform. For that purpose, the abstract model is based on a virtual machine offering: Some basic services A strong enough semantic.

Existing modelling languages SDL UML Specification and Description Language is an ITU-T standard. Event oriented, Used by ETSI to standardize telecommunication protocols, Formal (complete and non-ambiguous). Unified Modeling Language is an OMG standard. Can be used to represent any type of systems, Informal. SysML System Modelling Language AADL Architecture Analysis Description Language MARTE profile Modeling and Analysis of Real-Time and Embedded systems Z.109 UML profile based on SDL Lustre / Esterel Synchronous programming languages for the development of complex reactive systems MATLAB MAtrix LABoratory Autosar AUTomotive Open System Architecture SART Structured Analysis for Real Time (obsolete)

Modelling languages positioning Requirements Architecture Analysis URN AADL SysML UML SDL MARTE Matlab Static verification Specification Design Generic Generic HW/SW HW/SW Async SW Sync SW Dynamic verification is best at identifying defects because requirements are usually dynamics Dynamic verification

No real time specificity in UML UML 1.x is too generic to describe the dynamics of the model, UML 2.x introduced domain specific profiles, Lots of tools defined proprietary profiles, Users spend more defining their profile thatn their system, Z.109 is a standardized profile based on SDL.

SDL: the perfect picture SDL graphical abstraction (architecture, communication, behavior, services) fits the needs. SDL being formal, it is possible to simulate the model. SDL being formal, partial or full code generation is possible. SDL being object oriented, software components are reusable. System are globally asynchronous (GALS) so SDL can be used at system level. SDL has the characteristics to describe a good PIM. SDL is recognized by certification authorities (European Aviation Safety Agency Certification Memorandum, ETSI, ESA)

SDL: the figures Years of experience allows to quantify gains of SDL usage. C code: 35 to 50 mistakes per 1000 lines SDL code: 8 mistakes per 1000 lines Development time is globally reduced by 35% Reduced up to 50% in the left branch of the V cycle Less gain on the right side of the V because of the gap with technical reality

SDL: design problems All existing software modules (RTOS, drivers, legacy code) provide C APIs, not SDL, Some classical real time concepts are not present in SDL such as pointers and semaphores, SDL syntax is not suited for design. Integration with legacy code is difficult, Integration with COTS components is tricky (driver or RTOS), Developers are frustrated, Generated code is not legible,

An intermediate solution: SDL-RT Keep UML diagrams at high level during analysis and requirements Keep the SDL graphical abstraction Analysis UML (architecture, communication, behavior). Introduce C data types and syntax Specification SDL SDL-RT instead of SDL s. Remove SDL concepts having no practical implementation. Design C C++ Extend SDL to deal with uncovered real time concepts (interrupts, semaphores). Real time

SDL-RT SDL-RT is: Generalization of SDL to all applications running on top of a RTOS, Available from http://www.sdl-rt.org for free, Legible, Standardized by ITU-T in December 2012 as part of SDL (Z.104), A UML real time profile.

Specification and Description Language, l ITU-T standard intended to write the detailed specifications of the protocols in order to make sure they will interoperate. Major updater every 4 years since 1976. Major releases: SDL 1988: First mature version SDL 1992: Object orientation SDL 2000: UML alignment SDL 2010: C types support in Z.104 Anual conference SDL Forum (http://www.sdl-forum.org/) SAM workshop (satellite event of Models) 11 commercial tools, 10 public domain tools. Integrated technology in TASTE ESA framework.

Views: Library of components Relations between static classes (C++) and dynamic classes (SDL)

Views: Architecture and communication

SDL abstract data types or SDL-RT C/C++ data types. Views: Behavior and Data Process A

Views: Operating system services A semaphore take A timer is started When the timer goes off A semaphore give SDL-RT state

Physical deployment Views: Distributed systems

Model views Library of components System architecture Interface definitions Application deployment Real time concepts Key points in the design

Message Sequence Chart MSC: dynamic view Vertical lines represent a task, the environment or a semaphore, Arrows represent message exchanges, semaphore manipulations or timers. Can be used: As specification Execution traces

RTDS: supported languages Analysis UML Specification SDL Z.100 SDL-RT TTCN-3 Design C C++ Informal Fully formal Semi formal Testing

RTDS: supported languages Informal modelling for requirements: UML Edition C++ stubs generation Semi-formal modelling for design: SDL-RT Edition Syntaxic et semantics checking Code generation Graphical debugging Fully formal modelling for specification: SDL Z.100 Edition Syntaxic et semantics checking Simulation Verification Code generation Graphical debugging Test

Model simulator A graphical debugger for fully formal models and TTCN-3 test cases Set breakpoints and step in the model, Dynamic traces.

Code generation C++ skeleton for static classes C or C++ for dynamic classes Generated code is legible Generation profile wizard The code is: Integrated with: FreeRTOS, VxWorks, OSE, OSE Epsilon, CMX RTX, Nucleus, uitron, Posix, ThreadX, and Win32, Provided with an scheduler, Royalty free, Documented for customization.

Debugging architecture The Model debugger relies on a traditional C debugger or cross debugger to provide graphical debugging. Model C code generator Generated C code compiler External C/C++ Model editor socket Binary RTOS cible MSC tracer Text editor Model debugger Real Time Developer Studio tools Third party tools Source code Binary code socket / COM / pipe C debugger MinGW Tornado Tasking gdb XRAY Multi

Relies on the target semantic: processor and RTOS. Debug in the model: Breakpoints, stepping, in the SDL/RT diagrams or in the generated C files, Dynamic MSC traces, Connecting an external tool is possible through a socket. Model debugger

Switch between Model Generated C/C++ code Debug features

Execution traces: States, Events, Semaphores, Timers. Trace level configuration Display of system time Graphical traces MSC Diff allows to check: Conformity, Non-regression.

Model coverage Graphical model coverage analysis Merge feature

Prototyping interface Knows about the model inputs and outputs. Connects automatically to the simulator or the debugger.

Documentation generation Logical publications (state, transition, partition, diagram) Comments preceeding or following the publication Styles for paragraphs Styles for characters Export format RTF OpenDocument HTML SGML Exported elements Texts with publications Index entries Table of contents entries

Documentation generation A document The generated documentation A publication

Standard testing language Relies on basic services Messages Procedures Timers Parallel execution Based on TTCN-3 international standard: Data types definitions or ASN.1, Templates definitions, Test cases, Verdict, Execution control.

TTCN-3 support Textual language Simulator with Test manager C++ code generator TTCN-3 to MSC generation MSC to TTCN-3 generation TTCN-3 generation from a property on the model (Verimag) TTCN-3 generation based on model coverage (to come)

Continuous integration Specification Simulation Validation testing Design Simulation Execution Integration testing Implementation Execution Unit testing

Model checking Partnership with Verimag on IF technology. Exhaustive simulation, Observers, Test generation. RTDS feature Export to IF, Execute a script Generate an MSC feedback.

Implementation Model SDL translate to file IF Property Observer IF compiler executable executes State file Transition file Error file Test case Analysis TTCN MSC socket Python script Resulting scenario

Reference testing Requirements Use cases Specification Reference scenarios Properties Validation testing Design Simulation Execution Integration testing Implementation Execution Unit testing

Upcoming collaboration Common lab with French Nuclear Research Agency (CEA): Symbolic technology: Diversity. Generate a minimum number of test cases covering all transitions. SDL -> XLIA -> TTCN-3 Export FIACRE: CADP. TINA.

Property Sequence Chart PRESTO european project: Functional property verification. Non functional property verification. Free too: PragmaDev Tracer

ESA Taste framework integration ASN.1 AADL ASN.1 ASN.1 Matlab Encodeurs / Décodeurs RTDS Encodeurs / Décodeurs Scade Encodeurs / Décodeurs Ada Control law Event driven Control law Generic

/* _PRAGMADEV_START*/ /* _PRAGMADEV_TASK_START */ i = 0; j = 0; /* _PRAGMADEV_TASK_END */ /* _PRAGMADEV_NEXTSTATE Idle*/ /* _PRAGMADEV_STATE Idle*/ /* _PRAGMADEV_INPUT Error(); */ /* _PRAGMADEV_NEXTSTATE ErrorState*/ /* _PRAGMADEV_INPUT Valueof(coor); */ /* _PRAGMADEV_DECISION coor == 3 */ if ( coor == 3 ) /* _PRAGMADEV_BRANCH true */ /* _PRAGMADEV_TASK_START */ {x = 5;} /* _PRAGMADEV_TASK_END */ /* _PRAGMADEV_NEXTSTATE Idle*/ /* _PRAGMADEV_BRANCH false */ else /* _PRAGMADEV_TASK_START */ {x = 7;} /* _PRAGMADEV_TASK_END */ /* _PRAGMADEV_NEXTSTATE Idle*/ /* _PRAGMADEV_ENDDECISION */ /* _PRAGMADEV_ENDSTATE*/ /* _PRAGMADEV_STATE ErrorState*/ /* _PRAGMADEV_INPUT End(); */ /* _PRAGMADEV_STOP */ /* _PRAGMADEV_ENDSTATE*/ Model generation From comments in legacy code Includes architecture information

Project management Textual storage format, graphical diff tool, and an automatic merge tool provide a consistent integration with configuration management tools. Single diagrams can be exported as PNG, JPEG, PS, and HTML. Full documentation of the model can be generated. Traceability information and Reqtify integration. System requirements: Solaris, Windows, Linux. Floating licenses.

Conclusion Three levels of modelling: Informal, Semi-formal, Formal. Tools to: Document, Simulate, Validate, Test. Based on international standards. Integrated in Taste framework.