Le langage de modélisation SysML⚓
Introduction
Le langage SysML (Systems Modeling Language) est fait pour
Analyser la structure et le fonctionnement des systèmes.
Décrire et concevoir les systèmes.
Vérifier et valider la faisabilité d'un système avant sa réalisation.
SysML permet de « représenter » et « communiquer » sous forme de blocs ou diagrammes les divers aspects d'un système :
Diagrammes structurels : représentation statique du système (définition des matériels mis en œuvre).
Diagrammes comportementaux : représentation dynamique du système (cycle de fonctionnement de la machine)
Diagrammes d'exigences : mettent en évidence l'expression des besoins liés au système et à ses fonctionnalités.
Ces diagrammes ne sont pas indépendants les uns des autres. Les données qui les constituent sont des
objets informatiques munis de propriétés cohérentes, aussi ce langage ne prend toute sa signification qu'avec
un support informatique qui assure la cohérence entre les différentes données introduites dans les
diagrammes. On peut ainsi obtenir un système virtuel testable.
Définition :
SysML : Systems Modeling Language
Les diagrammes SysML
SysML est aussi une méthode de conception, les diagrammes sont donc ordonnés. La première action consiste à traduire le besoin fonctionnel en exigences en s'appuyant sur le cahier des charges.
En sciences de l'ingénieur on effectuera des analyses de systèmes, on comparera donc le système modélisé par le langage SysML avec le système réel.
Les exigences
Il décrit les exigences du cahier des charges fonctionnel. Une exigence exprime une capacité ou une contrainte à satisfaire par un système. Elle peut exprimer une fonction que devra réaliser le système ou une condition de performance technique, physique, de sécurité, de fiabilité, d'ergonomie, d'esthétisme... Les exigences servent à établir un contrat entre le client et les réalisateurs du futur système.
On indique l'exigence du système dans le premier rectangle, avec un texte descriptif et un identifiant unique.
On décompose cette exigence en exigences unitaires
On peut ajouter des données quantitatives et des précisions

Définition : Lien de contenance :
L'exigence située du côté du cercle avec la croix, contient l'exigence (plus détaillée) placée à l'autre
extrémité.
Préciser/afiner une exigence
Une fois les exigences correctement explicitées, il peut être utile de préciser quantitativement certaines exigence. On utilise pour cela une exigence avec un lien refine (ex ci-dessous) :

Définition : Lien de raffinement "refine" :
Il précise, souvent par des données quantitatives, l'exigence pointée par la flèche.
Définition : Lien de solution "satisfy" :
Il précise le composant satisfaisant l'exigence pointée par la flèche.
Conseil :
Ne pas chercher à poser toutes les exigences pour rester lisible.
Réaliser plusieurs diagrammes d'exigences si nécessaire, regrouper les exigences techniques sur un seul diagramme par exemple, puis les autres groupes d'exigences sur d'autres diagrammes.
Diagramme des cas d'utilisation
Il montre les interactions fonctionnelles des acteurs et du système d'étude. Il délimite précisément le système, décrit ce que fera le système sans spécifier comment (et non ce que fera l'utilisateur). Il exprime les services (use cases) offerts par le système aux utilisateurs (actors).
« Quels services le système va rendre à l'utilisateur ? »
On trace un cadre délimitant le système et contenant un ensemble de séquences d'actions (Elles peuvent aussi être liées entre elles).
A gauche on place les acteurs humains à droite les acteurs non humains (un acteur non humain est représenté par un rectangle).
On décrit les actions réalisables par le système (les services rendus par le système aux acteurs, sous forme de verbe à l'infinitif plus compléments)
Les acteurs peuvent être reliés entre eux soit par une flèche bidirectionnelle (chaque acteur agit sur l'autre) soit par une flèche unidirectionnelle (un acteur agit sur l'autre)

Définition : Lien d'extension "extend"
Le cas d'utilisation de base peut (option) incorporer celui placé à l'origine de la flèche.
Définition : Lien d'inclusion " include"
Le cas d'utilisation de base incorpore systématiquement celui placé à l'extrémité de la flèche.
Définition : Lien de spécialisation/généralisation :
Ils relient des cas d'utilisation descendants qui héritent de la description d'un cas d'utilisation supérieur
(parent commun).
Diagramme de définition de blocs (BDD)
Il définit l'architecture matérielle et logicielle globale du système sous une représentation arborescente de blocs. Chacun d'eux se limite à la définition d'une famille (classe) de composants principaux.

Traçabilité
Lors de la conception du système il est important de vérifier que toutes les exigences sont satisfaites par un bloc. On reprend alors le digramme des exigences et on y ajoute les blocs correspondants :

Diagramme de blocs internes
Il décrit la structure interne d'un bloc issu du BDD, c'est-à-dire ses composants et les échanges (flux de matière, d'énergie ou d'information) entre les blocs internes.

Diagramme de séquence
MESSAGES : Élément de communication unidirectionnel entre lignes de vie qui déclenche une activité dans le destinataire. La réception d'un message provoque un événement chez le récepteur.
La flèche pointillée représente un retour. Cela signifie que le message en question est le résultat direct du message précédent. Un message synchrone (émetteur bloqué en attente de réponse) est
représenté par une flèche pleine, alors qu'un message asynchrone est représenté par une flèche évidée. La flèche qui boucle (message réflexif) permet de représenter un comportement interne.

fragment combiné : Chaque fragment possède
un opérateur et peut être divisé en opérandes. Les principaux opérateurs sont :
loop : boucle. Le fragment peut s'exécuter plusieurs fois, et la condition de garde
explicite l'itération ;
opt : optionnel. Le fragment ne s'exécute que si la condition fournie est vraie ;
alt : fragments alternatifs. Seul le fragment possédant la condition vraie s'exécutera.
Diagramme d'état
C’est un diagramme dynamique. Il montre les différents états successifs et les transitions possibles des blocs dynamiques.Il représente la succession des états d’un système ou d’un sous-système.La dynamique des changements est entretenue par des événements.

Condition ou condition de garde : C'est une expression booléenne qui doit être vraie lorsque l'événement arrive pour que la transition soit déclenchée. Elle est notée entre crochets. S'il y a plusieurs transitions avec un même événement, elles doivent avoir des conditions différentes.
Lorsqu'il y a plus de deux conditions, il est recommandé d'utiliser le mot-clé else pour garantir l'exhaustivité.
Les changements d'état interne se modélisent en utilisant le mot-clé when suivi d'une expression booléenne dont le passage de faux à vrai déclenche la transition. Le passage du temps se modélise en utilisant le mot-clé after suivi d'une expression représentant une durée, décomptée à partir de l'entrée dans l'état courant.
