conception et implantation de système fondé sur …...conception et implantation de système...

107

Upload: others

Post on 17-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Conception et Implantation de Système Fondé sur les

Composants. Vers une Uni�cation des Paradigmes Génie

Logiciel et Système.

Marc Poulhiès

Orange Labs1 & Verimag2

Directeur de thèse: Joseph Sifakis1

Co-encadrant: Jacques Pulou2

5 Mars 2010

Page 2: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Contexte

Développement logiciel pour système embarqué fondé sur les composants.

2 / 55

Page 3: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Contexte

Développement logiciel pour système embarqué fondé sur les composants.

2 / 55

Page 4: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Systèmes Embarqués

Caractéristiques principales :

encombrement réduit

performant

Limitations :

autonomie limitée

ressources in�mes comparées àdes stations de travail

=⇒ prise en compte de ces contraintes matérielles dans le logiciel

3 / 55

Page 5: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Systèmes Embarqués

Caractéristiques principales :

encombrement réduit

performant

Limitations :

autonomie limitée

ressources in�mes comparées àdes stations de travail

=⇒ prise en compte de ces contraintes matérielles dans le logiciel

3 / 55

Page 6: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Systèmes Embarqués

Caractéristiques principales :

encombrement réduit

performant

Limitations :

autonomie limitée

ressources in�mes comparées àdes stations de travail

guidage routier

appareil photo

musique

web

paiement

abonnement transportsmail

jeux

=⇒ prise en compte de ces contraintes matérielles dans le logiciel

3 / 55

Page 7: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Systèmes Embarqués

Caractéristiques principales :

encombrement réduit

performant

Limitations :

autonomie limitée

ressources in�mes comparées àdes stations de travail

guidage routier

appareil photo

musique

web

paiement

abonnement transportsmail

jeux

=⇒ prise en compte de ces contraintes matérielles dans le logiciel

3 / 55

Page 8: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Systèmes Embarqués

Caractéristiques principales :

encombrement réduit

performant

Limitations :

autonomie limitée

ressources in�mes comparées àdes stations de travail

guidage routier

appareil photo

musique

web

paiement

abonnement transportsmail

jeux

=⇒ prise en compte de ces contraintes matérielles dans le logiciel

3 / 55

Page 9: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Systèmes Embarqués

Caractéristiques principales :

encombrement réduit

performant

Limitations :

autonomie limitée

ressources in�mes comparées àdes stations de travail

guidage routier

appareil photo

musique

web

paiement

abonnement transportsmail

jeux

=⇒ prise en compte de ces contraintes matérielles dans le logiciel

3 / 55

Page 10: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Contexterappel

Développement logiciel pour système embarqué fondé sur les composants.

4 / 55

Page 11: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Développement logicielprésentation du �cycle�

Cycle composé de 4 étapes:

1 spéci�cation: expression des besoins

2 conception: création d'un modèle dusystème

3 Implantation: génération d'unexécutable (code machine)

4 analyse: l'exécutable remplit-il lesspéci�cations ?

SPECIFICATION

IMPLANTATION ANALYSE

CONCEPTION

Déroulement �idéal�, des problèmes existent...5 / 55

Page 12: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Développement logicielprésentation du �cycle�

Cycle composé de 4 étapes:

1 spéci�cation: expression des besoins

2 conception: création d'un modèle dusystème

3 Implantation: génération d'unexécutable (code machine)

4 analyse: l'exécutable remplit-il lesspéci�cations ?

besoin 2besoin 3

besoin 1

SPECIFICATIONS

SPECIFICATION

IMPLANTATION ANALYSE

CONCEPTION

Déroulement �idéal�, des problèmes existent...5 / 55

Page 13: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Développement logicielprésentation du �cycle�

Cycle composé de 4 étapes:

1 spéci�cation: expression des besoins

2 conception: création d'un modèle dusystème

3 Implantation: génération d'unexécutable (code machine)

4 analyse: l'exécutable remplit-il lesspéci�cations ?

besoin 2besoin 3

besoin 1

SPECIFICATIONS

MODÈLE DU SYSTÈME

SPECIFICATION

IMPLANTATION ANALYSE

CONCEPTION

Déroulement �idéal�, des problèmes existent...5 / 55

Page 14: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Développement logicielprésentation du �cycle�

Cycle composé de 4 étapes:

1 spéci�cation: expression des besoins

2 conception: création d'un modèle dusystème

3 Implantation: génération d'unexécutable (code machine)

4 analyse: l'exécutable remplit-il lesspéci�cations ?

besoin 2besoin 3

besoin 1

SPECIFICATIONS

MODÈLE DU SYSTÈME

010100101010100100101011010101001

exec.

SPECIFICATION

IMPLANTATION ANALYSE

CONCEPTION

Déroulement �idéal�, des problèmes existent...5 / 55

Page 15: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Développement logicielprésentation du �cycle�

Cycle composé de 4 étapes:

1 spéci�cation: expression des besoins

2 conception: création d'un modèle dusystème

3 Implantation: génération d'unexécutable (code machine)

4 analyse: l'exécutable remplit-il lesspéci�cations ?

besoin 2besoin 3

besoin 1

SPECIFICATIONS

MODÈLE DU SYSTÈME

010100101010100100101011010101001

exec.

?OK !

PAS OK!

SPECIFICATION

IMPLANTATION ANALYSE

CONCEPTION

Déroulement �idéal�, des problèmes existent...5 / 55

Page 16: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Contexte

Développement logicielprésentation du �cycle�

Cycle composé de 4 étapes:

1 spéci�cation: expression des besoins

2 conception: création d'un modèle dusystème

3 Implantation: génération d'unexécutable (code machine)

4 analyse: l'exécutable remplit-il lesspéci�cations ?

besoin 2besoin 3

besoin 1

SPECIFICATIONS

MODÈLE DU SYSTÈME

010100101010100100101011010101001

exec.

?OK !

PAS OK!

SPECIFICATION

IMPLANTATION ANALYSE

CONCEPTION

Déroulement �idéal�, des problèmes existent...5 / 55

Page 17: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Limitations

Développement logicielproblèmes durant la conception - réutilisation/intégration

Pas de prise en compte de la réutilisation/intégration de logiciel tiers.

?

$$

développeur

anciendéveloppement

nouveaudéveloppement

vendeur ?

6 / 55

Page 18: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Limitations

Développement logicielproblèmes durant la conception - manque de structuration

Manque de structuration, complexité di�cile à maîtriser.

?7 / 55

Page 19: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Limitations

Développement logicielproblèmes durant la conception - langages/outils inadaptés

Di�culté de changer les habitudes=⇒ utilisation d'outils/langages inadaptés/trop complexes.

inline void* f(void* (*f)(int x), const int x) const __attribute__((naked)) { ...} ?

8 / 55

Page 20: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Limitations

Bilan - Développement logicielproblèmes durant la conception

réutilisation/intégration de logiciel

manque de structuration, complexitédi�cile à maîtriser

outils/langages inadaptés

inline void* f(void* (*f)(int x), const int x) const __attribute__((naked)) { ...}

?$$

?

=⇒ une réponse possible: les composants logiciels...

9 / 55

Page 21: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Limitations

Bilan - Développement logicielproblèmes durant la conception

réutilisation/intégration de logiciel

manque de structuration, complexitédi�cile à maîtriser

outils/langages inadaptés

inline void* f(void* (*f)(int x), const int x) const __attribute__((naked)) { ...}

?$$

?

=⇒ une réponse possible: les composants logiciels...

9 / 55

Page 22: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Limitations

Contexterappel

Développement logiciel pour système embarqué fondé sur les composants.

10 / 55

Page 23: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielsintroduction

Objectif:

Construction du logiciel par assemblage de briques compatibles entre elles.Idéalement, on souhaite un résultat correct par construction.

11 / 55

Page 24: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielsintroduction - encapsulation

Encapsulation (interface/contenu) =⇒ réutilisation/intégration

$$

développeur

anciendéveloppement

nouveaudéveloppement

vendeur

12 / 55

Page 25: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielsintroduction - architecture

Architecture =⇒ structuration

13 / 55

Page 26: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielsintroduction - hiérarchie

Hiérarchie (abstraction) =⇒ structuration

14 / 55

Page 27: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielsrésumé

Les points à retenir

encapsulation

architecture

hiérarchie

$$

15 / 55

Page 28: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielset cycle de développement, pour les systèmes embarqués

Composants utilisés à partir de la conception.

Composants adaptés �implantation�

implantation pour systèmes embarqués

analyses impraticables

Ex: TinyOS, Think

Composants adaptés �analyses�

analyse

pas d'implantation pour systèmesembarqués

Ex: Ptolemy II, BIP

SPECIFICATION

CONCEPTION

IMPLANTATION ANALYSE

SPECIFICATIO

NS

010100101010100100101011010101001exec. OK !

PAS OK!

=⇒ Comment concilier les deux approches ?

16 / 55

Page 29: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielset cycle de développement, pour les systèmes embarqués

Composants utilisés à partir de la conception.

Composants adaptés �implantation�

implantation pour systèmes embarqués

analyses impraticables

Ex: TinyOS, Think

Composants adaptés �analyses�

analyse

pas d'implantation pour systèmesembarqués

Ex: Ptolemy II, BIP

SPECIFICATION

CONCEPTION

IMPLANTATION ANALYSE

SPECIFICATIO

NS

010100101010100100101011010101001exec. OK !

PAS OK!

=⇒ Comment concilier les deux approches ?

16 / 55

Page 30: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielset cycle de développement, pour les systèmes embarqués

Composants utilisés à partir de la conception.

Composants adaptés �implantation�

implantation pour systèmes embarqués

analyses impraticables

Ex: TinyOS, Think

Composants adaptés �analyses�

analyse

pas d'implantation pour systèmesembarqués

Ex: Ptolemy II, BIP

SPECIFICATION

CONCEPTION

IMPLANTATION ANALYSE

SPECIFICATIO

NS

010100101010100100101011010101001exec. OK !

PAS OK!

=⇒ Comment concilier les deux approches ?

16 / 55

Page 31: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Composants logiciels: partie de réponse

Composants logicielset cycle de développement, pour les systèmes embarqués

Composants utilisés à partir de la conception.

Composants adaptés �implantation�

implantation pour systèmes embarqués

analyses impraticables

Ex: TinyOS, Think

Composants adaptés �analyses�

analyse

pas d'implantation pour systèmesembarqués

Ex: Ptolemy II, BIP

SPECIFICATION

CONCEPTION

IMPLANTATION ANALYSE

SPECIFICATIO

NS

010100101010100100101011010101001exec. OK !

PAS OK!

=⇒ Comment concilier les deux approches ?

16 / 55

Page 32: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Ce qu'il manque actuellement

Bilan - ce qu'il manque actuellement

Outils/langages:

adaptés aux systèmes développés

compatibles avec les habitudes des développeurs

implantables sur systèmes embarqués

permettant des analyses puissantes

17 / 55

Page 33: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Introduction Ce qu'il manque actuellement

1 IntroductionContexteLimitationsComposants logiciels: partie de réponseCe qu'il manque actuellement

2 ContributionsDémarche de création de langageApplication de cette démarche: BuzzLe langage BuzzLes traductions de BuzzLe compilateur de Buzz

3 RésultatsApplication de réseau de capteursDîner des geeks philosophes

4 Conclusion et perspectives

18 / 55

Page 34: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions

1 IntroductionContexteLimitationsComposants logiciels: partie de réponseCe qu'il manque actuellement

2 ContributionsDémarche de création de langageApplication de cette démarche: BuzzLe langage BuzzLes traductions de BuzzLe compilateur de Buzz

3 RésultatsApplication de réseau de capteursDîner des geeks philosophes

4 Conclusion et perspectives

19 / 55

Page 35: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Démarche de création de langage

Notre démarche

création d'un langageuni�cateur

deux traductions vers deslangages existants

TRADUCTION 1 TRADUCTION 2

CONCEPTION

IMPLANTATION ANALYSE

LANGAGEEXISTANT 1

LANGAGEEXISTANT 2

010100101010100100101011010101001

exec. OK !PAS OK!

LANGAGEUNIFICATEUR

20 / 55

Page 36: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Buzzun prototype de langage

Les Motivations

Réaliser un exemple complet: un langage et une chaîne d'outils dedéveloppement.

Fondements

besoins internes à notre équipe à Orange Labs

inspiration de l'existant et de notre expérience

pas d'objectifs d'exhaustivité ou de généricité du langage

21 / 55

Page 37: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Buzzun prototype de langage

Les Motivations

Réaliser un exemple complet: un langage et une chaîne d'outils dedéveloppement.

Fondements

besoins internes à notre équipe à Orange Labs

inspiration de l'existant et de notre expérience

pas d'objectifs d'exhaustivité ou de généricité du langage

21 / 55

Page 38: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Buzzchoix techniques

Le langage Buzz et ses outils reposent sur des traductions vers deuxlangages existants.

Nos choix:

BIP pour les analyses

Think pour l'implantation

BUZZ

BIP

THINK

22 / 55

Page 39: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Buzzchoix techniques

Le langage Buzz et ses outils reposent sur des traductions vers deuxlangages existants.

Nos choix:

BIP pour les analyses

Think pour l'implantation

BUZZ

BIP

THINK

22 / 55

Page 40: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - présentation

BIP: framework de modélisation de système à composants.

BIP dé�ni trois �couches�:

Comportement (�Behavior�)

Interaction

Priorité

c1

23 / 55

Page 41: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - présentation

BIP: framework de modélisation de système à composants.

BIP dé�ni trois �couches�:

Comportement (�Behavior�)

Interaction

Priorité

c1

a

s

portsdonnées

xy

23 / 55

Page 42: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - présentation

BIP: framework de modélisation de système à composants.

BIP dé�ni trois �couches�:

Comportement (�Behavior�)

Interaction

Priorité

c1

S1

S2 S3

a

sas

a

s

portsdonnées

xy

23 / 55

Page 43: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - présentation

BIP: framework de modélisation de système à composants.

BIP dé�ni trois �couches�:

Comportement (�Behavior�)

Interaction

Priorité

c1

S1

S2 S3

a

sas

a

s

ports

cr3 S1

S2

c

r3

c3

b

r2c2

S1

S2

b

r2S1

r2

b

S1

r2

b

données

xy

23 / 55

Page 44: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - présentation

BIP: framework de modélisation de système à composants.

BIP dé�ni trois �couches�:

Comportement (�Behavior�)

Interaction

Priorité

c1

S1

S2 S3

a

sas

a

s

ports

cr3 S1

S2

c

r3

c3

b

r2c2

S1

S2

b

r2S1

r2

b

S1

r2

bconnecteurs

données

xy

23 / 55

Page 45: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - présentation

BIP: framework de modélisation de système à composants.

BIP dé�ni trois �couches�:

Comportement (�Behavior�)

Interaction

Priorité

c1

S1

S2 S3

a

sas

a

s

ports

cr3 S1

S2

c

r3

c3

b

r2c2

S1

S2

b

r2S1

r2

b

S1

r2

bconnecteurs

{s,r2,r3} {a,b,c}

données

xy

23 / 55

Page 46: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - présentation

BIP: framework de modélisation de système à composants.

BIP dé�ni trois �couches�:

Comportement (�Behavior�)

Interaction

Priorité

c1

S1

S2 S3

a

sas

a

s

ports

cr3 S1

S2

c

r3

c3

b

r2c2

S1

S2

b

r2S1

r2

b

S1

r2

bconnecteurs

{s,r2,r3} {a,b,c}priorité

<

données

xy

23 / 55

Page 47: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - résumé

Les points forts:

sémantique formelle

outils d'analyses (véri�cation, simulation)

Les points faibles:

actuellement, pas d'implantation sur le typede systèmes embarqués visés

changement radical pour les développeurs

24 / 55

Page 48: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - résumé

Les points forts:

sémantique formelle

outils d'analyses (véri�cation, simulation)

Les points faibles:

actuellement, pas d'implantation sur le typede systèmes embarqués visés

changement radical pour les développeurs

Behavior

Interation

Priority

Inter4

Inter3Inter2

Inter1

Prio1: Inter3 < inter4

24 / 55

Page 49: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - résumé

Les points forts:

sémantique formelle

outils d'analyses (véri�cation, simulation)

Les points faibles:

actuellement, pas d'implantation sur le typede systèmes embarqués visés

changement radical pour les développeurs

C++

bipcDfinder

C++ modèle

moteurd'exécution

OK !PAS OK!

Behavior

Interation

Priority

Inter4

Inter3Inter2

Inter1

Prio1: Inter3 < inter4

24 / 55

Page 50: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - résumé

Les points forts:

sémantique formelle

outils d'analyses (véri�cation, simulation)

Les points faibles:

actuellement, pas d'implantation sur le typede systèmes embarqués visés

changement radical pour les développeurs

C++

bipcDfinder

C++ modèle

moteurd'exécution

OK !PAS OK!

Behavior

Interation

Priority

Inter4

Inter3Inter2

Inter1

Prio1: Inter3 < inter4

24 / 55

Page 51: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - résumé

Les points forts:

sémantique formelle

outils d'analyses (véri�cation, simulation)

Les points faibles:

actuellement, pas d'implantation sur le typede systèmes embarqués visés

changement radical pour les développeurs

C++

bipcDfinder

C++ modèle

moteurd'exécution

OK !PAS OK!

Behavior

Interation

Priority

Inter4

Inter3Inter2

Inter1

Prio1: Inter3 < inter4

24 / 55

Page 52: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

BIP: Behavior Interaction Prioritylangage d'analyse pour Buzz - résumé

Les points forts:

sémantique formelle

outils d'analyses (véri�cation, simulation)

Les points faibles:

actuellement, pas d'implantation sur le typede systèmes embarqués visés

changement radical pour les développeurs

C++

bipcDfinder

C++ modèle

moteurd'exécution

OK !PAS OK!

Behavior

Interation

Priority

Inter4

Inter3Inter2

Inter1

Prio1: Inter3 < inter4

24 / 55

Page 53: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Thinklangage d'implantation pour Buzz

Think: une implantation du modèle de composant Fractal.

Un composant Fractal possède:

3 catégories d'interface

un contenu

une membrane

Think: Fractal en spéci�ant lanature:

du contenu

de la membrane

du type des interfaces

25 / 55

Page 54: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Thinklangage d'implantation pour Buzz

Think: une implantation du modèle de composant Fractal.

Un composant Fractal possède:

3 catégories d'interface

un contenu

une membrane

Think: Fractal en spéci�ant lanature:

du contenu

de la membrane

du type des interfaces

interfaces de contrôle

interfacesserveurs

interfacesclientes

25 / 55

Page 55: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Thinklangage d'implantation pour Buzz

Think: une implantation du modèle de composant Fractal.

Un composant Fractal possède:

3 catégories d'interface

un contenu

une membrane

Think: Fractal en spéci�ant lanature:

du contenu

de la membrane

du type des interfaces

interfaces de contrôle

interfacesserveurs

interfacesclientes

contenu

25 / 55

Page 56: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Thinklangage d'implantation pour Buzz

Think: une implantation du modèle de composant Fractal.

Un composant Fractal possède:

3 catégories d'interface

un contenu

une membrane

Think: Fractal en spéci�ant lanature:

du contenu

de la membrane

du type des interfaces

interfaces de contrôle

interfacesserveurs

interfacesclientes

contenu

membrane

25 / 55

Page 57: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Thinklangage d'implantation pour Buzz

Think: une implantation du modèle de composant Fractal.

Un composant Fractal possède:

3 catégories d'interface

un contenu

une membrane

Think: Fractal en spéci�ant lanature:

du contenu

de la membrane

du type des interfaces

interfaces de contrôle

interfacesserveurs

interfacesclientes

contenu

membrane

C/ASM

C/ASM

C

25 / 55

Page 58: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Thinklangage d'implantation pour Buzz - résumé

Les points forts:

implantation adaptée aux systèmeembarqués

chaîne d'outils complète

plusieurs cibles embarquées

Les points faibles:

sémantique ∼ langage C

capacités d'analyse insu�santes

void * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);

void * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);

.L_memccpy_loop: subi len_lo, lo8(1) sbci len_hi, hi8(1) brcs .L_memccpy_notfound ld __tmp_reg__, Z+ st X+, __tmp_reg__ cp __tmp_reg__, val_lo brne .L_memccpy_loop

void * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);

C

C

C

ASM

COMPILATEUR

010100101010100100101011010101001

exec.

DEBUG

010100101010100100101011010101001

exec.010100101010100100101011010101001

exec.

26 / 55

Page 59: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Application de cette démarche: Buzz

Thinklangage d'implantation pour Buzz - résumé

Les points forts:

implantation adaptée aux systèmeembarqués

chaîne d'outils complète

plusieurs cibles embarquées

Les points faibles:

sémantique ∼ langage C

capacités d'analyse insu�santes

void * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);

void * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);

.L_memccpy_loop: subi len_lo, lo8(1) sbci len_hi, hi8(1) brcs .L_memccpy_notfound ld __tmp_reg__, Z+ st X+, __tmp_reg__ cp __tmp_reg__, val_lo brne .L_memccpy_loop

void * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);

C

C

C

ASM

COMPILATEUR

010100101010100100101011010101001

exec.

DEBUG

010100101010100100101011010101001

exec.010100101010100100101011010101001

exec.

26 / 55

Page 60: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzrappel de la démarche

BUZZ

BIP

THINK

27 / 55

Page 61: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzles primitives du langage - composant actif

actif [∼ composant BIP, acteur]

28 / 55

Page 62: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzles primitives du langage - composant interrupteur

interrupteur [contexte matériel]

interruptionmatérielle

29 / 55

Page 63: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzles primitives du langage - composant passif

passifs [∼ composants Think ]

invocation

30 / 55

Page 64: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzles primitives du langage - liaison synchrone

synchrone (i.e.bloquante)

foo

bar

foo bar

tem

ps

1:invocation 2:exécution

3:fin de l'invocation

liaisonsynchrone

12

3

31 / 55

Page 65: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzles primitives du langage - liaison asynchrone

asynchrone (i.e. non bloquante)

foo

bar

foo bar

tem

ps

1:invocation2':exécution

2:fin de l'invocation

liaisonasynchrone

1,2

2'

32 / 55

Page 66: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzles primitives du langage - liaison asynchrone retardée

asynchrone retardée

foo

bar

foo bar

tem

ps

liaisonretardée

1:invocation 2':exécution

1

22'

2: fin de l'invocation

33 / 55

Page 67: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Bilan - Buzzles primitives du langage

Les composants peuvent être:

actifs

interrupteurs

passifs

Les interactions entre les composantspeuvent être:

synchrones

asynchrones

asynchrones retardées

COMPOSANTACTIF

COMPOSANTINTERRUPTEUR

COMPOSANTPASSIF

LIAISONSYNCHRONE

LIAISONASYNCHRONE

LIAISONRETARDÉE

34 / 55

Page 68: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzordonnancement

Politique d'ordonnancement:

non �xée par le langage Buzz

extensible: il est possible de dé�nir des politiques au besoin.

Nous fournissons des politiques prédé�nies:

�Round-Robin�

�Round-Robin� préemptif avec partage de temps

35 / 55

Page 69: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzordonnancement

Politique d'ordonnancement:

non �xée par le langage Buzz

extensible: il est possible de dé�nir des politiques au besoin.

Nous fournissons des politiques prédé�nies:

�Round-Robin�

�Round-Robin� préemptif avec partage de temps

35 / 55

Page 70: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzordonnancement

Politique d'ordonnancement:

non �xée par le langage Buzz

extensible: il est possible de dé�nir des politiques au besoin.

Nous fournissons des politiques prédé�nies:

�Round-Robin�

�Round-Robin� préemptif avec partage de temps

35 / 55

Page 71: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzordonnancement

Politique d'ordonnancement:

non �xée par le langage Buzz

extensible: il est possible de dé�nir des politiques au besoin.

Nous fournissons des politiques prédé�nies:

�Round-Robin�

�Round-Robin� préemptif avec partage de temps

35 / 55

Page 72: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzordonnancement

Politique d'ordonnancement:

non �xée par le langage Buzz

extensible: il est possible de dé�nir des politiques au besoin.

Nous fournissons des politiques prédé�nies:

�Round-Robin�

�Round-Robin� préemptif avec partage de temps

35 / 55

Page 73: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzordonnancement

Politique d'ordonnancement:

non �xée par le langage Buzz

extensible: il est possible de dé�nir des politiques au besoin.

Nous fournissons des politiques prédé�nies:

�Round-Robin�

�Round-Robin� préemptif avec partage de temps

35 / 55

Page 74: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzcontenu des composants

Hypothèse utilisée par les outils

Une représentation en Think et en BIP peutêtre obtenue à partir du contenu de chaquecomposant Buzz.

En pratique

fourniture des deux représentations danschaque composant Buzz

d'autres solutions sont possibles

key_pressed

display

main

send

key_pressed

display

main

sendvoid * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);C

key_presseddisplay

main

send

BUZZ

THINK BIP

36 / 55

Page 75: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzcontenu des composants

Hypothèse utilisée par les outils

Une représentation en Think et en BIP peutêtre obtenue à partir du contenu de chaquecomposant Buzz.

En pratique

fourniture des deux représentations danschaque composant Buzz

d'autres solutions sont possibles

key_pressed

display

main

send

key_pressed

display

main

sendvoid * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);C

key_presseddisplay

main

send

BUZZ

THINK BIP

void * f(int x){ char i[256]; int j,i=x%10?5*x:2; int *z; for (j=0;j<y(x);j++){ i+=g(j); } foo(z);C

36 / 55

Page 76: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzun exemple simple

log

foobtn

bar

assemblage

btn

37 / 55

Page 77: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzun exemple simple

log

foobtn

bar

assemblage

btn

component assemblage [schedule=coop-round-robin]{ contains footype as foo [active] contains bartype as bar [active] binds foo.log to bar.btn [async] } ADL(Think)

37 / 55

Page 78: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzun exemple simple

log

foobtn

bar

assemblage

btn

component assemblage [schedule=coop-round-robin]{ contains footype as foo [active] contains bartype as bar [active] binds foo.log to bar.btn [async] } ADL(Think)

component footype { provides api.Button as btn requires api.Log as log content footype }

ADL(Think)

37 / 55

Page 79: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le langage Buzz

Buzzun exemple simple

log

foobtn

bar

assemblage

btn

component assemblage [schedule=coop-round-robin]{ contains footype as foo [active] contains bartype as bar [active] binds foo.log to bar.btn [async] } ADL(Think)

component footype { provides api.Button as btn requires api.Log as log content footype }

ADL(Think)

/* footype.c *//* @@ClientMethod(writeln,log,writeln)@@ *//* @@ServerMethod(btn,exec)@@ */void btn_exec(char x){ ... writeln("received char: %c\n",x); ...} C

/* footype.bip */component footype port btn__exec port log__writeln ... behavior state IDLE on btn__exec to EXEC1 state EXEC1 on log__writeln to EXEC2 ... endend

BIP

37 / 55

Page 80: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Les traductions de Buzz

Buzzexemple de traduction

Chacune des primitives du langage est accompagnée de règles de traductionvers Think et BIP.

composant actif

interaction asynchrone

Autres traductions similaires.

BUZZ THINK

BIPassemblage

assemblageassemblage

int_btn

ordo_srv

ordo_clt

clt_btn

barbtn

foologbtn

int_btn

ordo_srvordo_clt

clt_btn

int_log clt_log

ordonnanceur

ordo

boot ordo_comp1

ordo_comp2

bootboot

foologbtn

barfoo

IDLE

in outin out

ordonnanceur

btn__exec

log__log terminate

IDLE

in outin out

S1IDLE

btn__exec

btn__exec_fifo

core_instancelog__log

terminate

ready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

IDLE

EXECBLOC

SUSP

active_stub

exec

IDLE

in outin out

input_fifo

S3

btn__exec

terminateready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

S1IDLE btn__exec

terminate

IDLE

EXECBLOC

SUSP

core_instanceactive_stub

exec

IDLE

in outin out

btn__exec_fifo

IDLE

in outin out

input_fifo

barbtn

38 / 55

Page 81: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Les traductions de Buzz

Buzzexemple de traduction

Chacune des primitives du langage est accompagnée de règles de traductionvers Think et BIP.

composant actif

interaction asynchrone

Autres traductions similaires.

BUZZ THINK

BIPassemblage

assemblageassemblage

int_btn

ordo_srv

ordo_clt

clt_btn

barbtn

foologbtn

int_btn

ordo_srvordo_clt

clt_btn

int_log clt_log

ordonnanceur

ordo

boot ordo_comp1

ordo_comp2

bootboot

foologbtn

barfoo

IDLE

in outin out

ordonnanceur

btn__exec

log__log terminate

IDLE

in outin out

S1IDLE

btn__exec

btn__exec_fifo

core_instancelog__log

terminate

ready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

IDLE

EXECBLOC

SUSP

active_stub

exec

IDLE

in outin out

input_fifo

S3

btn__exec

terminateready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

S1IDLE btn__exec

terminate

IDLE

EXECBLOC

SUSP

core_instanceactive_stub

exec

IDLE

in outin out

btn__exec_fifo

IDLE

in outin out

input_fifo

barbtn

38 / 55

Page 82: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Les traductions de Buzz

Buzzexemple de traduction

Chacune des primitives du langage est accompagnée de règles de traductionvers Think et BIP.

composant actif

interaction asynchrone

Autres traductions similaires.

BUZZ THINK

BIPassemblage

assemblageassemblage

int_btn

ordo_srv

ordo_clt

clt_btn

barbtn

foologbtn

int_btn

ordo_srvordo_clt

clt_btn

int_log clt_log

ordonnanceur

ordo

boot ordo_comp1

ordo_comp2

bootboot

foologbtn

barfoo

IDLE

in outin out

ordonnanceur

btn__exec

log__log terminate

IDLE

in outin out

S1IDLE

btn__exec

btn__exec_fifo

core_instancelog__log

terminate

ready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

IDLE

EXECBLOC

SUSP

active_stub

exec

IDLE

in outin out

input_fifo

S3

btn__exec

terminateready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

S1IDLE btn__exec

terminate

IDLE

EXECBLOC

SUSP

core_instanceactive_stub

exec

IDLE

in outin out

btn__exec_fifo

IDLE

in outin out

input_fifo

barbtn

38 / 55

Page 83: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Les traductions de Buzz

Buzzexemple de traduction

Chacune des primitives du langage est accompagnée de règles de traductionvers Think et BIP.

composant actif

interaction asynchrone

Autres traductions similaires.

BUZZ THINK

BIPassemblage

assemblageassemblage

int_btn

ordo_srv

ordo_clt

clt_btn

barbtn

foologbtn

int_btn

ordo_srvordo_clt

clt_btn

int_log clt_log

ordonnanceur

ordo

boot ordo_comp1

ordo_comp2

bootboot

foologbtn

barfoo

IDLE

in outin out

ordonnanceur

btn__exec

log__log terminate

IDLE

in outin out

S1IDLE

btn__exec

btn__exec_fifo

core_instancelog__log

terminate

ready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

IDLE

EXECBLOC

SUSP

active_stub

exec

IDLE

in outin out

input_fifo

S3

btn__exec

terminateready

idle

resume

suspend

block

exec

unblock

ready

idle

resume

suspend

block

unblock

S1IDLE btn__exec

terminate

IDLE

EXECBLOC

SUSP

core_instanceactive_stub

exec

IDLE

in outin out

btn__exec_fifo

IDLE

in outin out

input_fifo

barbtn

38 / 55

Page 84: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le compilateur de Buzz

Détails pratiques sur Buzz

Le compilateur de Buzz:

est constitué d'environs 10 K-lignes de Java + C + ASM

est une extension du compilateur Think

est distribué sur le web (licence libre: GPL/LGPL)

39 / 55

Page 85: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le compilateur de Buzz

Détails pratiques sur Buzz

Le compilateur de Buzz:

est constitué d'environs 10 K-lignes de Java + C + ASM

est une extension du compilateur Think

est distribué sur le web (licence libre: GPL/LGPL)

Char

gem

ent

Char

gem

ent

THINK

Compilateur Think

Générateur de code

010100101010100100101011010101001

exec.

39 / 55

Page 86: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le compilateur de Buzz

Détails pratiques sur Buzz

Le compilateur de Buzz:

est constitué d'environs 10 K-lignes de Java + C + ASM

est une extension du compilateur Think

est distribué sur le web (licence libre: GPL/LGPL)

Char

gem

ent

Char

gem

ent

BUZZ

Générateur de code

010100101010100100101011010101001

exec.

PluginBuzz

THINKTraduction BUZZ vers THINK

39 / 55

Page 87: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le compilateur de Buzz

Détails pratiques sur Buzz

Le compilateur de Buzz:

est constitué d'environs 10 K-lignes de Java + C + ASM

est une extension du compilateur Think

est distribué sur le web (licence libre: GPL/LGPL)

Char

gem

ent

Char

gem

ent

THINK

Compilateur Think

Générateur de code

010100101010100100101011010101001

exec.

39 / 55

Page 88: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le compilateur de Buzz

Détails pratiques sur Buzz

Le compilateur de Buzz:

est constitué d'environs 10 K-lignes de Java + C + ASM

est une extension du compilateur Think

est distribué sur le web (licence libre: GPL/LGPL)

Char

gem

ent

Char

gem

ent

BUZZ Générateur de BIP

BIP

Inter4

Inter3Inter2

Inter1

Prio1: Inter3 < inter4

Traduction BUZZ vers BIP

OK !PAS OK!

39 / 55

Page 89: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Le compilateur de Buzz

Détails pratiques sur Buzz

Le compilateur de Buzz:

est constitué d'environs 10 K-lignes de Java + C + ASM

est une extension du compilateur Think

est distribué sur le web (licence libre: GPL/LGPL)

Char

gem

ent

Char

gem

ent

BUZZ

Générateur de code

010100101010100100101011010101001

exec.

PluginBuzz

THINKTraduction BUZZ vers THINK

Générateur de BIP

BIP

Inter4

Inter3Inter2

Inter1

Prio1: Inter3 < inter4

Traduction BUZZ vers BIP

OK !PAS OK!

39 / 55

Page 90: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Contributions Rappel démarche

Notre démarcherappel

création d'un langageuni�cateur

deux traductions vers deslangages existants

TRADUCTION 1 TRADUCTION 2

CONCEPTION

IMPLANTATION ANALYSE

LANGAGEEXISTANT 1

LANGAGEEXISTANT 2

010100101010100100101011010101001

exec. OK !PAS OK!

LANGAGEUNIFICATEUR

Buzz est une application de cette démarche à un domaine précis

40 / 55

Page 91: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats

1 IntroductionContexteLimitationsComposants logiciels: partie de réponseCe qu'il manque actuellement

2 ContributionsDémarche de création de langageApplication de cette démarche: BuzzLe langage BuzzLes traductions de BuzzLe compilateur de Buzz

3 RésultatsApplication de réseau de capteursDîner des geeks philosophes

4 Conclusion et perspectives

41 / 55

Page 92: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Application de réseau de capteurs

Application de réseau de capteurré-ingénierie d'une application existante

Plate-forme matérielle utilisée

TI MSP430 (16bits, 10KiB RAM, 48KiB �ash)

42 / 55

Page 93: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Application de réseau de capteurs

Application de réseau de capteurré-ingénierie d'une application existante - résultats

Application existante:

log

boot

appli_run

thread

net_run

link_run

main

appli

net

link

gdo0handler

phy

gdo2handler

com

ctrl

rand

rand

irqsafe

irqsafe

neigh

main

coord

msgSnd

runner

var

sensor

timer

sender

msrRdy

sensorssensormsghdlr

adcAlr

sndRdy

msrRdy

exec

varvar

timerAeTimer h0

usartsend recv

msghandler

main

pksender

coord

msgSnd

varvar

routerrouter var

varrunner

pkthandler

pkthandler

routerrunner

pktsender

neighviewer

gdo0

gdo2

radiocom

radioctrl

tx

main

var

alarm

neighid

rand

rx

pktsender

runner

alarm

tx

leds

radioctrl

txrouter

radiocom

var

bc

router

rx

leds

alarm

rxbc

var

radiocom

radioctrl

pkthandler

rand

gdoSwitchbc

gdo0

gdo2

gdo0out

gdo2out

varvar irqsafe

ledsleds

ds2411id delay

delaydelay

irqsafe

timerBeTimerctl h0

h1

neighviewer

coordviewer

msgsender

runner

msghdlr

msghandler

pktsenderrunner

msgsender

coordviewer

pkthandler

router

Application portée en Buzz:

sensor

applimain

applisensors

netmain

linkmain linkdelay

linktimerB

linkds2411

applitimerA

phycc1100com

phycc1100ctrl

phycc1100io

physpi

usart

linkgdoSwitch

done

adcDone

sensortimer

eTimerControl

adcAlarm

senderAlarm

APPLIadcAlarm

APPLIsenderAlarm

msgsender

neigh

msgsendercoord

neigh

exec

sender

receiver

coord

sender

cc1100io

cc1100io

cc1100io

spi

spi

spilcc

spilcc

pktsender

pktsender

msghandler

msghandler

radioctrl

cc1100ctrl

id

ididlcc

idlcc

radiocom cc1100com

alarm

eTimerControl

bc

bc

router

router

pkthandler

pkthandler

RXwakeupRXwait0RXdata0RXnewcw0RXdata2RXfinackRXcomplete0TXstartcwTXack0TXerrorTXtxdataTXrxfinackTXcomplete0

RXwakeupRXwait0RXdata0

RXnewcw0RXdata2RXfinack

RXcomplete0TXstartcw

TXack0TXerror

TXtxdataTXrxfinack

TXcomplete0

delay

delay

RXrxframeRXtimeout

RXtxackTXtxuf

TXtxnewcwTXctrl

TXtimeoutTXready

RXrxframeRXtimeout

RXtxackTXtxufTXtxnewcwTXctrlTXtimeoutTXready

done

spidone

sspidone

cspidone

43 / 55

Page 94: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophes

Lorsqu'un geek a faim, il doit détenir 2 baguettes pour manger.

Un geek a faim suite à un évènement externe

Il y a autant de baguettes que de geeks

toleft

fromleft

toright

fromright

geek1

handlerhandler

sigusr1

toleft

fromleft

torightfrom

right

geek2

handler

tole

ft from

left

torigh

t

from

righ

t

geek3

hand

ler

handler

sigusr2

handler

sigusr3

composants actifscomposantsinterrupteurs

composantinterrupteur

44 / 55

Page 95: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophesrésultat d'implantation

Plate-forme matérielle utilisée

Atmel AVR ATM256-1 (8bits, 8KiB RAM, 256KiB �ash)

taille logiciel ajouté par Buzz taille totale du logiciel

code 5302 17750(<256KiB)données 1085 2299(<8KiB)

Les tailles sont données en octets.

45 / 55

Page 96: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophesrésultat d'analyse - non débordement des �les d'attente

Les �les d'attentes débordent-elles ?

toleft

fromleft

toright

fromright

geek1

handlerhandler

sigusr1

toleft

fromleft

torightfrom

right

geek2

handler

toleft from

left

toright

from

right

geek3

handler

handler

sigusr2

handler

sigusr3

?taille des �les d'attente 1 2 3 4 et plus

cas de débordements (3 repas) 93 41 3 0

46 / 55

Page 97: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophesrésultat d'analyse - pas d'interblocage ni de famine

Tous les geeks mangent-ils à leur faim (pas de famine ou d'interblocage) ?

toleft

fromleft

toright

fromright

geek1

handlerhandler

sigusr1

toleft

fromleft

torightfrom

right

geek2

handler

tole

ft from

left

torigh

t

from

righ

t

geek3

hand

ler

handler

sigusr2

handler

sigusr3

Interblocage ?

nombre de repas par geek 1 2 3

interblocages/famines 0 65 804

47 / 55

Page 98: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophesrésultat d'analyse - exemple de véri�cation temporelle simple

Un geek va-t-il attendre une baguette plus d'un certain temps ?

toleft

fromleft

toright

fromright

handler

toleft

fromleft toright

fromright

handler

temps d'attente accepté 50 18 17 15 10dépassements 0 0 4 28 148

48 / 55

Page 99: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophesrésultat d'analyse - exemple de véri�cation temporelle simple

Débordement/famine/interblocage si un geek a faim trop souvent ?

toleft

fromleft

toright

fromright

geek1

handlerhandler

sigusr1

toleft

fromleft

torightfrom

right

geek2

handler

toleft from

left

toright

from

right

geek3

handler

handler

sigusr2

handler

sigusr3

?périodes de faim par geek 5,5,5 50,50,50 40,50,60 75,50,125

fam./interb./débord. 119149 0 6 0

49 / 55

Page 100: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophesrésultat d'analyse - résumé

Propriétés véri�ées:

non débordement de �les d'attente

les geeks mangent à leur faim (interblocage/famine)

les geeks n'attendent pas plus d'un temps �xé pour obtenir unebaguette

Ce ne sont que des exemples de propriétés.

50 / 55

Page 101: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Résultats Dîner des geeks philosophes

Le dîner des geeks philosophesrésultat d'analyse - résumé

Propriétés véri�ées:

non débordement de �les d'attente

les geeks mangent à leur faim (interblocage/famine)

les geeks n'attendent pas plus d'un temps �xé pour obtenir unebaguette

Ce ne sont que des exemples de propriétés.

50 / 55

Page 102: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Conclusion et perspectives

1 IntroductionContexteLimitationsComposants logiciels: partie de réponseCe qu'il manque actuellement

2 ContributionsDémarche de création de langageApplication de cette démarche: BuzzLe langage BuzzLes traductions de BuzzLe compilateur de Buzz

3 RésultatsApplication de réseau de capteursDîner des geeks philosophes

4 Conclusion et perspectives

51 / 55

Page 103: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Conclusion et perspectives

Conclusionrésumé des contributions

Rappel de la problématique:

Outils/langages:

implantables sur systèmes embarqués

permettant des analyses puissantes

adaptés aux systèmes développés

compatibles avec les habitudes des développeurs

Nos contributions

une démarche de mise au point d'un tel langage

illustration de l'application de cette démarche pour la création de Buzz

démonstration de l'e�ectivité de Buzz au travers de cas concrets etréalistes

52 / 55

Page 104: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Conclusion et perspectives

Conclusionrésumé des contributions

Rappel de la problématique:

Outils/langages:

implantables sur systèmes embarqués

permettant des analyses puissantes

adaptés aux systèmes développés

compatibles avec les habitudes des développeurs

Nos contributions

une démarche de mise au point d'un tel langage

illustration de l'application de cette démarche pour la création de Buzz

démonstration de l'e�ectivité de Buzz au travers de cas concrets etréalistes

52 / 55

Page 105: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Conclusion et perspectives

Perspectivesrelatives à Buzz

Améliorations possibles

spéci�cation de l'ordonnancement

modèle de l'environnement

hiérarchie (utilisation de BIP 2)

sélection du niveau d'abstraction

53 / 55

Page 106: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Conclusion et perspectives

Perspectives

Combinaison des aspects comportementaux avec les aspects

sécurité

recon�guration

qualité de service

pour la création d'un atelier de développement de système embarqué.

54 / 55

Page 107: Conception et Implantation de Système Fondé sur …...Conception et Implantation de Système Fondé sur les Composants. Vers une Uni cation des Paradigmes Génie Logiciel et Système

Conclusion et perspectives

Merci de votre attention.

Questions ?

55 / 55