Model-based design con strumenti open-source: possibilità ... · Model-based design con strumenti...

44
Model-based design con strumenti open-source: possibilità e opportunità Marco Di Natale Scuola Superiore S. Anna / Evidence Srl TeCIP/ReTiS: Embedded Systems Design [email protected] Betterembedded Firenze July 4 th , 2014

Transcript of Model-based design con strumenti open-source: possibilità ... · Model-based design con strumenti...

Model-based design con strumenti open-source: possibilità e opportunità

Marco Di NataleScuola Superiore S. Anna / Evidence Srl

TeCIP/ReTiS: Embedded Systems [email protected]

Betterembedded

Firenze

July 4th, 2014

Indice

• Uno e centomila, i dominii Embedded

• ES, V-model e Model-based Design

• Definizioni e fasi di sviluppo

• Soluzioni e standard (dominanti?) di mercato

• Eclipse EMF – Ecore al centro

• Requisiti e tracciabilità

• Modelli di sistema: Corrispondenza tra funzionalità e piattaforma

• Modelli funzionali e di behavior, Simulazione

• Generazione automatica di codice

• Unit testing, Structural testing – coverage

• Metodi formali e verifica

• Linguaggi di dominio: AUTOSAR

Uno, nessuno e centomila: i dominii embedded

• La parola Embedded (e la nuova keyword CPS) si applica a un enorme numero di

applicazioni

• Piccola scala/complessità, elettrodomestici, wearable,

•Applicazione su un dispositivo piccolo (16 bit) economico, pochi K (<32K),

prevalentemente switching o semplice controllo

• Media complessità, fuel injection, device control, consumer, infotainment

•Dispositivi single e multicore singolo nodo, funzioni di controllo complesse

• Distribuiti, vasta complessità

•Funzioni con complesse dipendenze, concorrenza e necessità di gestire

dinamicità e eccezioni

• Ciascun dominio reclamava la sua specificità

• Netta distinzione tra hand coding Assembly->C e uso di metodi rigorosi

• Point-tools, linguaggi di dominio

• Verifica e validazione riservata per applicazione safety-critical

• E’ ancora vero?

Embedded = dedicato (immerso)

Caratteristiche principali

Interazioni con processi fisici

sensori, attuatori, processi

Non tutte le proprietà fondamentali sono funzionali

real-time, fault recovery, potenza, security, robustness

Eterogenei

hardware/software tradeoffs, architetture miste

Concurrenza

interazioni con processi multipli

Reattività

operano alla velocità dell’ambiente

Vincoli su risorse

per costo, energia, spazio

(source Edward Lee – UC Berkeley)

Vincoli temporali

(latenza, jitter)

Modelli, metodi, strumenti eterogenei

Gestione delle risorse,

scheduling

Embedded=inside Cyber ↔ Physical

Focus is on the controller Restores equal dignity to the

Logic physical half

Software the key part is the Hardware

physical modeling

Cyber-Physical Systems

Non in UML (neanche in SysML).

Richiede modelli acausali e

risoluzione di equazioni differenziali

Obiezione: la modellazione fisica non serve per la maggior parte dei

sistemi embedded …. vero?

Il modello di sviluppo a V (V-model)

User Requirements Validation

Functional Specifications

Functional modeling

Architecture Exploration

Component modeling

Behavior modeling

Coding

System verification

Module testing

Integration testing

Modelli: il SW come eccezione?

On August 19, 1418, a competition was announced in Florence, where the city’s

magnificent new cathedral, Santa Maria del Fiore, had been under constructionfor more than a century

Whoever desires to make any model or design for the vaulting of the

main Dome of the Cathedral under construction by the Opera del

Duomo-for armature, scaffolding or other thing, or any lifting device

pertaining to the construction and perfection of said cupola or vault

shall do so before the end of the month of September. If the model be

used he shall be entitled to a payment of 200 gold Florins.

On August 19, 1418, a competition was announced in Florence, where the city’s

magnificent new cathedral, Santa Maria del Fiore, had been under constructionfor more than a century

Whoever desires to make any model or design for the vaulting of the

main Dome of the Cathedral under construction by the Opera del

Duomo-for armature, scaffolding or other thing, or any lifting device

pertaining to the construction and perfection of said cupola or vault

shall do so before the end of the month of September. If the model be

used he shall be entitled to a payment of 200 gold Florins.

From Brunelleschi's Dome:

How a Renaissance Genius Reinvented

Architecture by Ross King

Model-based design

Engineering has made use of models since its very early days

Engineering has made use of models since its very early days

Filippo Brunelleschi's design for the dome of the cathedral ofSanta Maria del Fiore in Florence remains one of the mosttowering achievements of Renaissance architecture. Completedin 1436, the dome remains a remarkable feat of design and engineering. Its span of more than 140 feet exceeds St Paul's in London and St Peter's in Rome, and even outdoes the Capitol in Washington, D.C., making it the largest dome ever constructedusing bricks and mortar. When work on the dome began in 1420 Brunelleschi wasvirtually unknown. Sixteen years later the dome was built, and its architect was a superstar.

Filippo Brunelleschi's design for the dome of the cathedral ofSanta Maria del Fiore in Florence remains one of the mosttowering achievements of Renaissance architecture. Completedin 1436, the dome remains a remarkable feat of design and engineering. Its span of more than 140 feet exceeds St Paul's in London and St Peter's in Rome, and even outdoes the Capitol in Washington, D.C., making it the largest dome ever constructedusing bricks and mortar. When work on the dome began in 1420 Brunelleschi wasvirtually unknown. Sixteen years later the dome was built, and its architect was a superstar.

Definizioni e scopo

• Il termine model-based design crea necessariamente ambiguità

• Di scopo: a che servono i modelli?

•Almeno due scopi possibili, documentare il sistema o verificarne

proprietà

• Di natura: quali modelli? A che livello di formalismo? Il codice è

esso stesso un modello?

•Chiave: concetto di astrazione

• Modelli omogenei o eterogenei? Modelli generici o domain-

specific?

•E come si integrano?

• Senza trattare le implicazioni riguardo ai processi e alle metodologie

• … e quelle (notevoli) sulla formazione e la creazione di competenze

• … e quelle relative ai costi (licenze, ore di sviluppo …)

Modelli come documentazione

• Almost the only way to build a concise and usable representation of

the large-scale system architecture

Almost impossible to see as a set of C-files

Improve chances of identifying architecture patterns for reuse

Clearly and formally identify components

Visually identify dependencies and consistency

• Method to define components/type/dependencies among

components (improving the reuse decision)

Use and refinement dependencies are not shown in the code

Use: to reuse a component it is better to know what component

needs/serves

Refinement: to find opportunities to reuse after extension

Modello come Astrazione

Doppio messaggio

• Concentrarsi sulle caratteristiche di interesse e mostrarle in primo

piano (per verificare le proprietà di interesse)

• Fornire una semantica ben definita e circoscritta

• Leggasi: ti impedisco di fare qualsiasi cosa potrebbe passarti per

la testa

Il problema è risolvibile a livello di programmazione?

Oops!

Il problema è risolvibile a livello di programmazione?

MDA, MBD and AUTOSAR

Si potrebbe discutere per ore sulla

stessa definizione !

(ecco la mia)

MDA – Definito dall’OMG, basato sull’uso di meta-

modelli, sui linguaggi UML e SysML, e sulla separa-

zione della logica applicativa dalla piattaforma di esecuzione. Enfasi sull’uso

di trasformazioni M2M e M2T. Tool: Eclipse EMF and tutti i tool UML/SysML

MBD – Uso di linguaggi di modellazione con una forte (formale)

caratterizzazione sematica (MoC, in genere SR) e la possibilità di verifica

formale e raffinamento a tutti i livelli di sviluppo. Tool: Simulink, SCADE

AUTOSAR – Standard automotive per la definizione di componenti SW e

interoperabilità di componenti. In seguito associato a un metamodello per

consentire modellazione di sistema semi-formale. In seguito dotato di un

timing model

MBD

Characteristics

Executable models (for simulation purposes)

Models based on formal MoC (for analysis) , typically SR

Continuous V&V

Automatic generation of implementation

Issues

.. the available paths to implementation are de-facto for single-core platforms only

Or, at most time-triggered platforms

Static scheduling of code or simple task models

There is no easy way (in commercial tools) to represent the execution platform and

the task and message models

Large-scale CPS might require the platform modeling and the modeling of the “mapping” of functionality to platform where the platform can be LTTA (not

necessarily TT)

What are the limitations for the model verification?

MDA

Recognize that the process is a 3-tier

PIMPlatform-Independent Model

Analysis of functional properties

PSMPlatform-Specific Model

Analysis of architecture properties

Model-to-model (automatic) transformations

Based on metamodels

Model-to-model (automatic) transformations

Based on metamodels

Code/Implementation

(Some) issues with UML and MDA

• Problems/Issues

• Lack of a formal semantics (or existence of a tool-dependent

semantics only)

• Asynchronous models make verification of properties much harded

• OCL not widely used as a language for property specification

• Stereotypes for architecture modeling can easily be cumbersome

(MARTE?), standardization of architecture models is difficult

• Not enough case studies (yet) for embedded systems

• Mapping of (PIM) functional models into (PSM) platform-dependent

models representing tasks, messages, cores, networks …

• What are the constraints on this mapping, how do you represent

them ?

SysML

UML was strongly oriented to the modeling of SW

Insufficient to represent data-oriented communication (as in dataflow

models)

Insufficient for system-level modeling (modeling of signals, physical

components, functional dependencies and constraints)

SysML was defined to fill these gaps

How fit/mature is SysML for the representation of embedded

systems?

Are there examples of application of SysML w. MDA on embedded

systems with sufficient complexity?

Can MDA “borrow” from or integrate with methodologies with a

formal MoC?

How about integration with other architecture languages or

standards for component modeling ADL, AUTOSAR?

AUTOSAR and Architecture mapping

AU

TO

SA

R

SW

-C

1

SW-C Description

Virtual Functional Bus

Basic Software

RTE

AU

TO

SA

R

SW

-C

1

ECU1

AU

TO

SA

R

SW

-C

2

SW-C Description

AU

TO

SA

R

SW

-C

3

SW-C Description

AU

TO

SA

R

SW

-C

n

SW-C Description

ECU Descriptions

System ConstraintDescription

Deployment tools

Gateway

Basic Software

RTE

AU

TO

SA

R

SW

-C

2

ECU2A

UT

OSA

R

SW

-C

3

Basic Software

RTE

AU

TO

SA

R

SW

-C

n

ECU3

Un esempio di linguaggi e prodotti per modellare sistemi

MDA-UML-SysMLSystem-level modeling

HW-level modeling

system-level

modeling

physical

modeling

Hybrid system

modeling (SR)

Quote di mercato

Models, models, models

La galassia dei modelli (open)

Infrastruttura comune

Integrazione (FMI)

???

Model-based design

• Quattro concettifondamentali per il model-based design

• I concetti fondamentalisono: test, verifica, simulazione, validazione

• Perché la generazioneautomatica del codice?

by Ali Behboodian, DSP Magazine

Alcune riflessioni / Prerequisiti

• I vantaggi dei modelli sono solo parzialmente come

documentazione del SW/HW• Non che non siano utili a questo scopo ma….

• Per sviluppare i vantaggi del model-based la simulazione deve

essere efficace• Più veloce dell’esecuzione su target

• Anticipare la disponibilità del target

• Richiede: competenze di modellazione fisica

•Meno programmatori e più fisici e controllisti

(esempi a breve)

Alcune riflessioni / Prerequisiti

• La generazione automatica del codice è una necessità• Senza generazione automatica i modelli sono pura documentazione

• Diventano presto disallineati e obsoleti

• La generazione automatica di documentazione serve ad

alleviare la percezione dell’extra effort

• Necessità di integrazione• Il tutto è molto maggiore della somma delle parti !

• Il ruolo della verifica mediante metodi formali crescerà

enormemente nei prossimi anni• Esplosione della complessità

• ISO26262

• … e questo comporta ancor di più il bisogno di generazione

automatica

Strumenti open source per MBD ?

• Capacità di metamodeling di Eclipse EMF come punto di partenza• Insieme agli strumenti per la conversione M2M e M2T offre supporto per

l’integrazione di modelli e la generazione di codice

• Sistema tende ad avvicinarsi al “tutto o niente”• Se non esiste un offerta integrata è facile tornare al codice scritto a

mano

• Necessità di ampliare offerta di strumenti• Integrare modelli di sistemi fisici, macchine a stati in ambienti di

simulazione e possibilmente verifica

• Necessità di generazione di codice di buona qualità

• Estendere l’offerta a strumenti HIL

• Coprire le fasi di gestione dei requisiti e generazione di documentazione

• Coprire le fasi di test

• Il compito è estremamente gravoso

Il processo e i tool open

User Requirements

Validation

Functional Specifications

Functional modeling

Architecture Exploration

Component modeling

Behavior modeling

Coding

System verification

Module testing

Integration testing

AceUnit, CTest, CUnit, EmbeddedUnit, Opmock, Unity

AceUnit, CTest, CUnit, EmbeddedUnit, Opmock, Unity

Unit test

gcovgcov Coverage analysis

Model checking

Simulation

Wiki tools?Wiki tools?

Esempio di uso di Ecore

Estrazione di un metamodello da un formato XML di

calibrazione per centraline automotive

Esempio di uso di Ecore

Generazione del documento di descrizione (con GenDoc2) e

del codice (con Acceleo)

Generazione di codice con Acceleo

We are using the UML2.0 and sysML metamodels

We are using the UML2.0 and sysML metamodels

Acceleo template language

The first template: same name asmodule, it takes as argument the

model itself

The first template: same name asmodule, it takes as argument the

model itself

It is the main templateIt is the main template

Acceleo template language

for statement: iterates over all the ownedElements of self (the argument of the template – b).

for statement: iterates over all the ownedElements of self (the argument of the template – b).

ownedElements is an OCL function – the Acceleo template languageincludes OCL functions for referring to the model structure

ownedElements is an OCL function – the Acceleo template languageincludes OCL functions for referring to the model structure

p is a generic UML Element (uml::Element refers to the uml metamodelnamespace)

p is a generic UML Element (uml::Element refers to the uml metamodelnamespace)

Acceleo template language

An if statement: selects over all

the model elements only the Package elements

An if statement: selects over all

the model elements only the Package elements

oclIsTypeOf is another OCL functionoclIsTypeOf is another OCL function

Acceleo template language

Ecore consente di definire metamodelli

Fu

nc

tio

na

lP

latf

orm

Ta

sk

sa

nd

m

sg

sPer integrare un modello

funzionale (da Scicos/ Simulink)

con modelli architetturali

(SysML/Papyrus)

Un metamodello per Scicos (Simulink?)

O semplicemente come passo

intermedio per la generazione di

codice (con Acceleo)

Modellazione di sistema con SysML

Functional components

HW platform and “SW platformservices”

SW application architecture

model (code structure and task

model)

Corrispondenza tra livelli funzionale e fisico

Platform models, task models, deployment models

SysML has domain specific

extensions (MARTE profile) for

the platform and Mapping

models

Esempio, front end di bruciatore/solare/pompa di calore

• Sviluppo del sistema in modo convenzionale

• Sistema molto economico ma di complessità non banale• Controller 16 bit, <32K ROM

• Macchina a stati con >5 livelli gerarchici

Capacità chiave: verificare le funzionalità *prima* della disponibilità

dell’HW

Prototipato in Scicos (demo)

Emulazione front-endLogica interfaccia

(FSM)Modello della parte fisica: scambi di calore

bruciatore, circuito termosifoni, ambienti

interni, ambiente esterno

Prossimi passi

Emulazione della parte fisica…

Da sostituire con MIL

Simulink

Flow

Simulink/SCICOS

XML

Eclipse EMF (Ecore)

Functionalmodel

Functional

metamodel

SysML

Behavioral

code

Simulink coder

Functional

model

Platform

model

QVT M2M

Mapping

model

Platform-dependent

code

VFBmodel

Platform

model

RTE

model

ARXML

Information lost in

ARXML translation

Model

modifications

for delays

(Truetime)AcceleoM2Text

Task code

I/O code

commcode

App. code

.m

.c.h

Acceleo M2Text

Q&A

Thank you!