real time developer studio - pragmadev studio · • uml 1.x is too generic to describe the...

50
Real Time Developer Studio Emmanuel Gaudin [email protected]

Upload: others

Post on 08-Mar-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Real Time Developer Studio

Emmanuel Gaudin [email protected]

Page 2: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

PragmaDev

Dedicated to the development of a modelling tool

for the development of Event driven software.

• French SME, • Beneficiary since 2006.

Page 3: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Partners

Page 4: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

References

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

Page 5: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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

Page 6: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Philosophy

Develop a modelling

tool based on the

users’ needs.

Page 7: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Target segment • Decomposed in tasks running

concurrently • Communicating • Synchronizing

hardware OS-RTOS-Scheduler

Application

Module 1 Module 2 Module 3

Message queue

driv

er

driv

er

Semaphore

Event driven systems Embedded & Real time

Page 8: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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

Source: James Martin study

“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.

Page 9: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 10: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 11: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Existing modelling languages SDL

Specification and Description Language is an ITU-T standard. • Event oriented, • Used by ETSI to standardize telecommunication protocols, • Formal (complete and non-ambiguous).

UML

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)

Page 12: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Modelling languages positioning

Sta

tic v

erifi

catio

n D

ynam

ic v

erifi

catio

n

Dynamic verification is best at identifying defects because requirements are usually dynamics

Requirements

Analysis

Architecture

SysML UML SDL AADL MARTE

Specification

Design

Matlab

Async SW Sync SW Generic Generic HW/SW HW/SW

URN

Page 13: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 14: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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)

Page 15: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

SDL: the figures

• 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

Years of experience allows to quantify gains of SDL usage.

Page 16: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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,

Page 17: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

An intermediate solution: SDL-RT

• Keep UML diagrams at high level during analysis and requirements

• Keep the SDL graphical abstraction (architecture, communication, behavior).

• Introduce C data types and syntax instead of SDL’s.

• Remove SDL concepts having no practical implementation.

• Extend SDL to deal with uncovered real time concepts (interrupts, semaphores).

Analysis

Specification

Design

Real time

SDL-RT

UML

SDL

C C++

Page 18: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 19: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

• 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.

Page 20: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Views: Library of components

Relations between static classes (C++) and dynamic classes (SDL)

Page 21: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Views: Architecture and communication

Page 22: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Views: Behavior and Data SDL abstract

data types or

SDL-RT C/C++ data

types.

Process A

Page 23: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Views: Operating system services

A semaphore take

A timer is started

When the timer goes off

A semaphore give

SDL-RT state

Page 24: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Views: Distributed systems

Physical deployment

Page 25: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Model views

• Library of components

• System architecture

• Interface definitions

• Application deployment

• Real time concepts

• Key points in the design

Page 26: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

MSC: dynamic view Message Sequence Chart • 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

Page 27: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

RTDS: supported languages

UML

C C++

Analysis

Specification

Design

SDL-RT SDL

Z.100

Informal Fully formal Semi formal Testing

TTCN-3

Page 28: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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

Page 29: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Model simulator

A graphical debugger for fully formal models

and TTCN-3 test cases

• Set breakpoints and step in the model,

• Dynamic traces.

Page 30: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 31: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Debugging architecture The Model debugger relies on a traditional C debugger or cross debugger to provide graphical debugging.

C code generator

Text editor

MSC tracer

Model editor

Model debugger

compiler

C debugger

RTOS

Model

External C/C++

Generated C code

Binary

Real Time Developer Studio tools Third party tools Source code Binary code

• MinGW • Tornado • Tasking • gdb • XRAY • Multi

cible

socket

socket / COM / pipe

Page 32: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Model debugger

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.

Relies on the target semantic: processor and RTOS.

Page 33: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Debug features • Switch between

• Model • Generated C/C++ code

Page 34: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Graphical traces Execution traces: • States, • Events, • Semaphores, • Timers. Trace level configuration Display of system time

MSC Diff allows to check: • Conformity, • Non-regression.

Page 35: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Model coverage

• Graphical model coverage analysis

• Merge feature

Page 36: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Prototyping interface

Connects automatically to the simulator or the debugger.

Knows about the model inputs and outputs.

Page 37: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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

Page 38: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Documentation generation A document

The generated documentation A publication

Page 39: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 40: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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)

Page 41: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Continuous integration

Specification Validation testing

Simulation

Simulation Execution

Execution

Design

Implementation

Integration testing

Unit testing

Page 42: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 43: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Implementation

IF compiler

socket

translate to file

executable

Python script

executes

SDL Model

Property

Test case

Analysis

Observer

TTCN

MSC

IF

State file Transition file Error file

Resulting scenario

Page 44: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Reference testing

Specification Validation testing

Design

Implementation

Integration testing

Unit testing

Requirements

Use cases

Reference scenarios

Properties

Simulation Execution

Execution

Page 45: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 46: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Property Sequence Chart

• PRESTO european project: • Functional property

verification. • Non functional property

verification. • Free too: PragmaDev Tracer

Page 47: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

ESA Taste framework integration

Event driven

AADL

RTDS Scade Matlab E

ncod

eurs

/ D

écod

eurs

Enc

odeu

rs /

Déc

odeu

rs

ASN.1 ASN.1

Ada

ASN.1

Enc

odeu

rs /

Déc

odeu

rs

Control law

Control law Generic

Page 48: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Model generation • From comments in legacy code

• Includes architecture information

/* _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*/

Page 49: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

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.

Page 50: Real Time Developer Studio - PragmaDev Studio · • UML 1.x is too generic to describe the dynamics of the model, • UML 2.x introduced domain specific profiles, • Lots of tools

Conclusion Three levels of modelling:

Informal, Semi-formal, Formal.

Tools to: Document, Simulate, Validate, Test.

Based on international standards.

Integrated in Taste framework.