Ingénierie Système et SysML

Ingénierie Système (IS)

DéfinitionIngénierie Système

L’ingénierie système (IS) est une démarche méthodologique (ISO 15 288) pour maîtriser la conception des systèmes et produits complexes. On peut aussi la définir comme « une approche interdisciplinaire rassemblant tous les efforts techniques pour faire évoluer et vérifier un ensemble intégré de systèmes, de gens, de produits et de solutions de processus de manière équilibrée au fil du cycle de vie pour satisfaire aux besoins client ». Les pratiques de cette démarche sont aujourd’hui répertoriées dans des normes, réalisées à l'aide de méthodes et supportées par des outils.

L'outil SysML

Introduction

Pourquoi des modèles de description d’un système ?

Une description consiste à réunir toutes les informations concernant un système. Le langage utilisé pour la description doit donc être compréhensible par tous les acteurs pour faciliter les échanges et le travail collaboratif.

Un modèle SysML est fait pour représenter des systèmes hétérogènes complexes mettant en œuvre des technologies issues de corps de métiers différents comme la mécanique, l’électronique et l’informatique…

Pour décrire complètement un système, il est nécessaire de se placer suivant plusieurs points de vue qui dépendent de l’intention à communiquer :

  • Fonctionnel : permet de recenser toutes les fonctions à réaliser et leurs niveaux ;

  • Structurel : permet de mettre en évidence les composants du système et leurs interactions ;

  • Comportemental : permet de définir les conditions et paramètres de fonctionnement du système de manière ordonnée et optimisée, et les interactions avec les acteurs ;

  • Réaliste : permet de représenter les formes du système et de ses composants à l’aide de dessins ou de modèles 3D ;

  • Schématique : permet de décrire le système à l’aide de schémas de principe (non normalisés) ou de symboles normalisés.

Pourquoi SysML

Les systèmes pluritechnologiques actuels sont souvent d’une grande complexité tant au niveau fonctionnel que structurel. Leur conception est le fruit d’une collaboration entre différents acteurs (ingénieurs, techniciens, juristes, ergonomes, métiers du marketing, de la communication ...).

Afin de collaborer efficacement, l’ensemble de ces acteurs doit disposer d’un langage commun unique et fédérateur tel que le langage SysML.

A la fois simple à comprendre et suffisamment développé, le langage SysML est un langage graphique de modélisation spécifique au domaine de l’ingénierie système permettant de spécifier, d’analyser, de concevoir, de vérifier ... un système pluri-technologique complexe.

Véritable outil de communication et de suivi par toutes les parties prenantes du projet, le langage SysML permet de définir les exigences, le service rendu, l’aspect comportemental ainsi que structurel du système à concevoir. Il permettra en outre la traçabilité du projet tout au long de son avancement.

Son utilisation est également appropriée en phase de rétro-ingénierie pour reconcevoir un système existant. Dans une perspective d’innovation, il est d’autant plus important de disposer d’une solide connaissance du système afin d’éviter le "refaire plutôt que corriger" ainsi qu’une banque de modèles pour gagner en efficacité.

Les diagrammes SysML

L'Ingénierie système s'est dotée d'un outil de description permettant de modéliser les systèmes: SysML (Systems Modeling Language).

SysML est un langage de modélisation graphique. Un modèle SysML est ainsi composé de diagrammes.

L'outil se décline en une série de diagrammes regroupés en familles.

Ainsi, le langage SysML permet de représenter graphiquement :

  • Les exigences auxquelles le système doit satisfaire (point de vue transversal)

  • Le comportement attendu du système, ses phases de fonctionnement et ses interactions avec l’environnement extérieur (point de vue comportemental)

  • L’architecture structurelle du système (point de vue structurel)

Le langage SysML s’articule autour de 9 diagrammes selon ces 3 points de vue.

  1. Point de vue transversal : Les diagrammes d'exigences (Requirements Diagram - req), qui permettent de spécifier les exigences inhérentes au système.

    • Exigences système

    • Mission du système

    • Besoins de partie prenantes

  2. Les diagrammes comportementaux (qui définissent comment doit ou va fonctionner le système)

    • Le diagramme des cas d’utilisation (Use Case Diagram) ucd

    • Le diagramme de séquence (Sequence Diagram) sd

    • Le diagramme d’états (State Machine Diagram) stm

    • Le diagramme d’activité (Activity Diagram) act

  3. Les diagrammes structurels (qui définissent l'architecture du système et quelles relations existent entre ses composants)

    • Le diagrammme de blocs (Block Definition Diagram) bdd

    • Le diagramme de blocs internes (Internal Block Diagram) ibd

    • Le diagramme paramétrique (Parametric Diagram) par

    • Le diagramme de paquetage (Package Diagram) pkg

  4. Diagramme périphérique (non SysML) : Le diagramme de contexte (qui n'est pas un diagramme SysML au sens propre mais qui en adopte le formalisme). Il permet de situer le système dans son environnement et de définir les frontières de l'étude.

Remarque

Le diagramme de besoins des parties prenantes prend la forme d'un diagramme d'exigences mais il ne permet de formaliser que les besoins du clients. On le trouve dans la partie cahier des charges d'un projet.

Acronymes employés en SysML

RD

Requirement Diagram : diagramme des exigences

UCD

Use Case Diagram : diagramme de cas d'utilisation

SD

Sequence Diagram : Diagramme de séquence

SMD

State Machine Diagram : diagramme états/transitions

AD

Activity Diagram : diagramme d'activités

BDD

Block Definition Diagram : diagramme de définition de blocs

IBD

Internal Block Diagram : diagramme de blocs internes

Utilisation de SysML

Ce qu'est SysML

  • Un langage de modélisation.

  • Un outil de spécification, d'analyse, de conception, de vérification et de validation des systèmes qui comprennent le matériel, les logiciels, les données, les compétences humaines, les procédures et les installations. 

  • Un langage normé qui possède une sémantique et une notation.

Ce que n'est pas SysML

  • Ce n’est pas une méthode, il n’y a pas d’ordre dans l’établissement des diagrammes. (même si certains enchaînements paraissent logiques).

  • Ce n'est pas un outil de créativité. On n'attend pas de solution technique.

Les principaux cas d'utilisation de l'outil de description SysML

Lien SysML et Ingénierie Système

L’ensemble des diagrammes SysML est adapté aux processus de l’Ingénierie Système :

Les diagrammes ne sont pas indépendants et permettent d’associer les éléments de diagrammes différents.

C’est l’un des points forts de ce type de langage. Il est ainsi possible de conserver la traçabilité des éléments dans les différents diagrammes, par exemple :

  • lier une exigence avec des blocs pour établir le lien fonctions – solutions ;

  • lier des états avec les blocs pour établir le lien entre les actions et les composants qui les réalisent ;

  • lier les cas d’utilisation avec les scénarios des diagrammes de séquences

Description d’un système en SysML

Exemple des diagrammes SysML dans le cas de la balance Halo

Présentation

Les types de diagramme

SysML est un langage permettant de modéliser un système. ( Systems Modeling Language ). Cette modélisation se représente sous forme de diagrammes. Le type de diagramme utilisé dépend de la modélisation que l'on souhaite effectuer (comportementale, exigence ou structurelle).

Remarque

Pour décrire la raison d'être d'un produit ou son environnement, il est possible d'utiliser les diagrammes de mission principale et de contexte qui ont donc été ajoutés dans cette ressource.

Pour illustrer chaque diagramme Sysml, l'exemple utilisé sera une balance de cuisine dont les caractéristiques sont les suivantes :

  • Précision de 1 g ;

  • Charge maximale = 3 kg ;

  • Dimensions : 24 x 19,5 x 3,5 cm

  • Interface Homme/Machine :

  • Bouton Marche/Arrêt/Tare

  • Bouton Conversion g/ml

  • Afficheur LCD 4 digits

  • Design épuré aux formes circulaires ;

  • Gamme de 5 coloris tendances ;

  • Conforme aux directives DEEE et RoHS

Diagramme de mission principale (R.D)

Il permet de préciser la situation problème qui justifie la création du produit en répondant aux questions suivantes.

Diagramme de contexte (B.D.D)

Ce diagramme exprime l'environnement du système dans une situation donnée.

Le diagramme de contexte permet donc de définir les frontières de l'étude et de préciser la phase du cycle de vie dans laquelle on situe l'étude (généralement la phase d'utilisation). Il répond à la question :

« quels sont les acteurs et éléments environnants au système ? »

Diagramme de cas d'utilisation (U.C.D)

Les cas d'utilisation représentent les services ou les fonctionnalités rendues par le système du point de vue de l'acteur, donc d'un point de vue extérieur.

DéfinitionUn acteur

Un acteur représente un rôle qui peut être tenu par un humain ou n'importe quel autre système. Il indique avec quoi le système sera en interaction.

ExempleBalance Halo

Cette balance rend deux services : celui de peser des aliments et celui de convertir la pesée en volume d'eau.

Ce sont ceux que l'utilisateur peut mettre en œuvre. Elle ne rend aucun autre service.

L'interaction est représentée ici par une ligne appelée Association.

Par une certaine action de l'acteur (non précisée encore à ce stade, dépose de quelque chose sur le plateau ou bien appui sur un bouton), le système va peser et afficher le résultat.

RemarqueExtend et Include

Le cas d'utilisation Convertir la pesée en volume d'eau est relié au cas Peser les aliments avec un lien de type « extend ». Ce lien indique que dans toutes les étapes menant à peser des aliments, il est possible, mais pas obligatoire, de demander une conversion à un moment donné (attention au sens !).

ajoute une fonctionnalité facultative

fait ressortir une sous-fonctionnalité nécessaire

Diagramme d'exigences (R.D)

Définition

Le système est présenté comme devant satisfaire des exigences (requirements) qui peuvent être fonctionnelles, comportementales, structurelles, environnementales, esthétiques...

ExempleBalance Halo

Le diagramme d'exigence précise les fonctions à réaliser ainsi que le niveau de performance à atteindre.

Une exigence comporte un intitulé, un identifiant et une description.

Les exigences peuvent être reliées entre elles par des relations :

- la contenance : permet de décomposer une exigence en plusieurs exigences unitaires.

- le raffinement : (« refine ») consiste en l'ajout de précisions, par exemple de données quantitatives.

- la dérivation : (« deriveReqt ») consiste à relier des exigences de niveaux différents par exemple des exigences système à des exigences de niveau sous-système.

Différents liens du diagramme d’exigences

Diagramme de définition de blocs (B.D.D)

Définition

C'est un diagramme structurel qui permet de représenter les éléments constituant le système.

Architecture logique d’un système automatisé

ExempleBalance Halo

Les blocs représentent tous les éléments matériels et logiciels du système.

Différents liens du diagramme de définition des blocs

Diagramme de blocs internes (I.B.D)

Définition

Il permet de représenter les connexions entre blocs mais aussi (et surtout !) les échanges de matière, d'énergie et d'information avec la notion de ports.

Architecture fonctionnelle d’un système automatisé sous forme d'IBD

Exemple

Exemple

Diagramme de séquence (S.D)

Définition

Le diagramme de séquence indique comment le système rend un service en décrivant l'enchaînement séquentiel des interactions.

ExempleBalance Halo

Chaque élément situé dans le haut du diagramme est un objet ou constituant pris comme une boîte noire.

Les lignes verticales en pointillés représentent le temps sans qu'il y ait une échelle.

Les lignes horizontales entre objets sont des « messages ».

Les messages synchrones : l'émetteur attend une réponse suite à son message. Le retour de ce message est représenté par une flèche en pointillés.

Les messages asynchrones : l'émetteur envoie son message sans attendre de réponse en retour. Un message asynchrone est représenté par une flèche pleine terminée par deux traits.

ExempleBalance Halo

Chaque élément situé dans le haut du diagramme est un objet ou constituant pris comme une boîte noire.

Les lignes verticales en pointillés représentent le temps sans qu'il y ait une échelle.

Les lignes horizontales entre objets sont des « messages ».

Les messages synchrones : l'émetteur attend une réponse suite à son message. Le retour de ce message est représenté par une flèche en pointillés.

Les messages asynchrones : l'émetteur envoie son message sans attendre de réponse en retour. Un message asynchrone est représenté par une flèche pleine terminée par deux traits.

Diagramme États -Transitions (S.M.D)

Définition

Il sert à représenter les différents états d'un objet quelconque en fonction de son état courant et des événements qui lui arrivent.

Un état représente un moment spécifique du comportement d'un objet.

Une transition, représentée par une flèche, constitue un changement d'état allant d'un état source à un état cible. Un état est actif lorsqu'une transition y mène et devient inactif lorsqu'une transition le quitte.

ExempleBalance Halo

Exemple de diagrammes pour le drone de cinéma

Introduction

Des exemples de diagrammes sont données dans le cas particulier d'un drone multirotors utilisé pour la prise de vue aérienne lors de la réalisation de films ou de reportages et pouvant embarquer un appareil photo ou une caméra de masse inférieure à 3kg.

Le niveau de description est volontairement élémentaire car suffisant pour la présentation du produit. De même seuls les diagrammes les plus classiques sont présentés. En effet, les autres diagrammes servent à affiner la description et concernent plutôt les spécialistes.

Diagramme des exigences - Requirements Diagram - req

DéfinitionDiagramme des exigences

Le diagramme des exigences est le seul diagramme transversal du langage SysML.

L'objectif de ce diagramme est de modéliser les exigences devant être vérifiées par le système en liant les solutions mises en œuvre sur le système avec les besoins définis dans le cahier des charges. Il traduit, par des fonctionnalités ou des contraintes, ce qui doit être satisfait par le système.

De nombreux domaines peuvent être couverts, les plus classiques étant les exigences environnementales, économiques, fonctionnelles ou techniques.

DéfinitionExigence

Une exigence permet de spécifier une capacité ou une contrainte qui doit être satisfaite par un système.

Elle peut spécifier une fonction que le système devra réaliser ou une condition de performance, de fiabilité, de sécurité, etc.

Les exigences servent à établir un contrat entre le client et les réalisateurs du futur système.

Une exigence est représentée par un cadre sur lequel sont précisés :

  • requirement ;

  • le nom de l’exigence ;

  • un identifiant unique ;

  • une description textuelle de l’exigence si son nom n’est pas assez explicite.

Exigences sur l'accélération d'un véhicule

Diagramme des cas d'utilisation - Use Case Diagram - uc

DéfinitionDiagramme des cas d'utilisation

Le diagramme des cas d'utilisation est un diagramme comportemental.

L'objectif de ce diagramme est de montrer les fonctionnalités offertes par un système en identifiant les services qu'il rend. Il permet donc de modéliser les exigences selon un point de vue complémentaire à celui exposé par le diagramme des exigences.

L'énoncé d'un cas d'utilisation doit se faire hors technologie, puisqu'il est défini en termes de résultats attendus.

Diagramme de contexte

DéfinitionDiagramme des cas d'utilisation

Le diagramme de contexte est une extension non normalisée du langage SysML. Il permet de définir les frontières de l'étude et la phase du cycle de vie dans laquelle on situe l'étude (il s'agit généralement de la phase d'utilisation normale du système).

Ce diagramme permet de préciser, si possible de manière exhaustive, les acteurs et éléments environnants au système étudié. Il permet également de faire apparaître les différents acteurs ou éléments intervenant dans une exigence.

Diagramme de séquence - Sequence Diagram - seq

DéfinitionDiagramme de séquence

Le diagramme de séquence est un diagramme comportemental.

L'objectif de ce diagramme est de décrire les interactions existantes entre plusieurs entités, celles-ci pouvant être des acteurs, le système ou ses sous-systèmes. Le diagramme ne montre que l'enchaînement séquentiel des différentes interactions.

Un diagramme de séquence est rattaché à un cas d'utilisation et décrit ce dernier en entier ou en partie, ce qui correspond à un scénario de fonctionnement possible, défini dans un cadre précis. Il peut donc aboutir tout aussi bien à des évolutions positives (fonctionnement normal) ou négatives (gestion des problèmes), en particulier dans la phase de démarrage avant le fonctionnement normal.

Diagramme d'états - State Machine Diagram - stm

DéfinitionDiagramme d'états

Le diagramme d'états est un diagramme comportemental appelé State Machine Diagram (stm) dans le langage SysML.

Le diagramme d'état est rattaché à un bloc qui peut-être le système, un sous système ou un composant. Le comportement décrit par ce type de diagramme sert à montrer les différents états pris par le système en fonction des évènements qui lui arrivent.

Un état représente une situation d'une durée finie durant laquelle un système exécute une activité, satisfait une certaine condition ou bien est en attente d'un évènement. Le passage d'un état à un autre se fait en franchissant une transition.

Diagramme d'activité - Activity Diagram - act

DéfinitionDiagramme d'activité

Le diagramme d'activité est un diagramme comportemental appelé Activity Diagram (act) dans le langage SysML.

Ce diagramme permet de représenter le déroulement d'un processus sous la forme d'une activité correspondant à une décomposition séquentielle d'actions aussi appelées tâches.

Dans sa forme la plus restreinte, ce diagramme représente un algorigramme, c'est à dire un flux de contrôle (ce flux de contrôle n'a rien à voir avec ceux présents dans le diagramme de blocs internes).

Diagramme de définition des blocs - Block Defintion Diagram - bdd

DéfinitionDiagramme de définition des blocs

Le diagramme de définition des blocs est un diagramme structurel appelé Block Defintion Diagram (bdd) dans le langage SysML.

L'objectif de ce diagramme est de décrire le système via des blocs et représentants des éléments matériels (cas le plus fréquent) mais également des entités abstraites (regroupement logique d'éléments) ou des logiciels.

Ce diagramme présente les caractéristiques principales de chaque bloc ainsi que les liens entre eux. Il permet donc une modélisation de l'architecture du système.

Diagramme de blocs internes - Internal Block Diagram - ibd

DéfinitionDiagramme de blocs internes

Le diagramme de blocs internes est un diagramme structurel appelé Internal Block Diagram (ibd) dans le langage SysML.

Le diagramme de blocs internes est rattaché à un bloc issu du diagramme de définition de blocs, le cadre du diagramme représentant la frontière d'un bloc.

Le diagramme de définition de blocs introduit la notion fondamentale de « port » qui correspond à un point d'interaction avec l'extérieur du bloc.

Les connecteurs (traits) entre les ports indiquent soit les associations soit les flux de matière, d'énergie et d'information entre les différents blocs.

Diagramme paramétrique - Parametric Diagram - par

DéfinitionDiagramme paramétrique

Le diagramme paramétrique est un diagramme structurel appelé Parametric Diagram (par) dans le langage SysML.

Le diagramme paramétrique est une extension du diagramme de blocs internes. Il partage donc les mêmes éléments graphiques.

Ce diagramme modélise les paramètres physiques du système. Il sert à tester les performances physiques et quantitatives du système.

Il est utilisé pour exprimer les contraintes physiques entre les blocs avec des équations et des paramètres qui permettent de simuler le fonctionnement du système. Il peut ensuite être utilisé pour faire des simulations qui vérifieront si le système répond ou non aux spécifications.

Remarque

Les blocs de contrainte peuvent être utilisés pour spécifier un système de contraintes qui représentent des expressions mathématiques comme {F=m*a} et {a=dv/dt}, qui contraint les propriétés physiques d'un système.

De telles contraintes peuvent aussi être utilisées pour identifier des paramètres de performance critiques et leurs relations à d'autres paramètres, qui peuvent être suivis à la trace partout dans le cycle de vie de système.

Un bloc de contrainte inclut la contrainte, comme {F=m*a} et les paramètres de la contrainte comme F, m et a.

Ingénierie Système et SysML en rétro-ingénierie

Utilisation de l'Ingénierie Système dans le cadre de la rétro-ingénierie

Dans le cas de la rétro-ingénierie, le système existe. On peut en faire une description structurelle et comportementale en utilisant les différents diagrammes. Il est alors possible d'adopter la trajectoire suivante :

Etape 1 : Décrire le contexte

La première étape consiste à observer le système dans son environnement et d'en décrire le contexte.

A partir de cela, on peut établir un diagramme de contexte :

Diagramme de contexte en exploitation

Etape 2 : Définir la mission

La seconde étape consiste à faire fonctionner le système dans son environnement et d'en déduire la finalité et le besoin que satisfait le système.

A partir de cela, on peut établir le diagramme de mission principale :

Mission et finalité du système

Etape 3 : Définir les cas d'utilisation

La troisième étape consiste à partir de l'observation du fonctionnement du système.

A partir de cela, on peut établir le diagramme de cas d'utilisation :

Cas d'utilisations en exploitation

Etape 4 : Définir la structure interne

La quatrième étape consiste à partir de l'observation du fonctionnement de la machine et de l'étude du dossier technique à identifier les flux entre les différentes parties.

A partir de là, on peut établir la structure interne du système et identifier la(les) chaîne d'énergie et la chaîne d'information et donc établir un diagramme de blocs internes :

Etape 5 : Définir la structure hiérarchique

La cinquième étape consiste à partir de l'observation du fonctionnement de la machine et de l'étude du dossier technique, on peut décomposer le système en sous système jusqu'à identifier tous les composants.

A partir de là, on peut établir la structure système et construire le diagramme de définition de blocs :

Etape 6 : Définir les interactions du système

La sixième étape permet de décrire les interactions du système et d'établir un diagramme de séquence.

Etape 7 : Définir les états du système

La septième étape permet de décrire les états du système et d'établir un diagramme états/transitions.

Les différents états du système

Etape 8 : Définir les échanges avec les sous-systèmes

L'étape 8 permet de « rentrer » dans le système pour définir les flux entre les sous-systèmes. A partir de là, on pourra établir un diagramme de blocs internes faisant apparaître les flux entre les sous systèmes.

Etape 9 : Décrire l'architecture logique

L'étape 9 permet de réassocier chaque fonctions aux composants qui les réalisent. On peut ainsi établir l'architecture logique du système.

Etape 10 : Etablir les exigences du système

L'étape 10 permet d'établir le diagramme des exigences su système.

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.