Francesco Trucchia: Rapid Application Developement con strumenti Open Source
Model-based design con strumenti open-source: possibilità ... · Model-based design con strumenti...
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
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)
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)
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)
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
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