Résumé

Extension d’UML récemment adoptée par l’OMG, le nouveau langage de modélisation SysML est dédié à la conception de systèmes dits complexes : satellites, avions, systèmes de défense, de télécommunication, appareils de radiologie, voitures modernes, systèmes de signalisation ferroviaire, de contrôle-commande de centrale d’énergie, etc.

Un ouvrage pour pratiquer SysML, langage de modélisation pour l’ingénierie de systèmes complexes

Cet ouvrage explore l’ensemble des diagrammes SysML pour en faire découvrir la richesse et les atouts. Au fil d’une étude de cas que tout expert peut s’approprier, quel que soit son domaine, l’auteur transmet une démarche cohérente de modélisation avec SysML, à commencer par l’identifi cation des véritables besoins utilisateur. Toutes les difficultés inhérentes à la modélisation sont abordées, et l’ouvrage explique quelles sont les exigences système induites, comment décrire l’architecture interne d’un système et garantir son adéquation aux fonctions demandées.

En tant qu’extension d’UML (profil), SysML rend plus aisé le passage toujours délicat du niveau système aux composants logiciels. Les ingénieurs ont ainsi l’occasion de parler un langage compréhensible en grande partie par les informaticiens, puisqu’il est basé sur des concepts et diagrammes similaires. Cela permet notamment d’améliorer la cohérence entre la vision globale du système et les parties souvent critiques réalisées en logiciel.

Au sommaire

La modélisation des exigences • Le diagramme d’exigences • Notation de base • Compléments • Traçabilité • Le diagramme de cas d’utilisation • Notation de base • Décrire les cas d’utilisation • Classification des acteurs • Relations entre cas d’utilisation • Version complexe du diagramme de cas d’utilisation • Le diagramme de séquence système • Notation de base • Fragments combinés • Cadre référence • Contraintes temporelles • La modélisation d’architecture • Diagramme de définition de blocs • Bloc et propriété • ValueType • Partie • Composition • Agrégation • Association • Généralisation • Opération • Le diagramme de bloc interne • Parties et connecteurs • Ports et interfaces : types de ports, flow ports, item flow, flow specification, interface, port standard, full port (SysML 1.3), proxy port (SysML 1.3) • Le diagramme de packages • Package • Contenance et dépendance • Model, view et viewpoint • La modélisation dynamique • Le diagramme d’états • Notation de base • Compléments : événement interne ou temporel, état composite, notations avancées • Animation du diagramme d’états • Le diagramme d’activité • Object node, object flow • Appel d’activité • Signaux et événements • Région interruptible • Région d’expansion • Compléments sur les flots d’objet • Opérateur de contrôle • La modélisation transverse • Le diagramme paramétrique • Allocation et traçabilité • Diagramme de définition de blocs • Diagramme d’activité • Représentation tabulaire • Diagramme de bloc interne • Diagramme de séquence • Décomposition structurelle dans le diagramme de séquence.

À qui s’adresse cet ouvrage ?

– Aux professionnels de l’ingénierie système en charge de systèmes complexes logiciels et matériels (aéronautique, astronautique, automobile, énergie, transports, armement, etc. ;

– Aux enseignants et leurs étudiants en école d’ingénieurs.

La connaissance préalable du langage de modélisation UML est préférable, mais facultative.

Biographie auteur

Pascal Roques

Consultant senior et formateur indépendant, Pascal Roques a plus de vingt ans d’expérience dans la modélisation de systèmes complexes (SADT, OMT, UML, SysML). Il a ainsi été responsable des formations Valtech Training sur le thème « Analyse, conception et modélisation avec UML » pendant de nombreuses années. Auteur de plusieurs livres consacrés à UML et SysML aux éditions Eyrolles, il a obtenu la certification OMG-Certified UML Advanced Professional proposée par l’OMG.

www.editions-eyrolles.com

Modélisation

de systèmes complexes

avec SysML

Pascal Roques

Préface de Jean-Michel Bruel

ÉDITIONS EYROLLES

61, bd Saint-Germain

75240 Paris Cedex 05

www.editions-eyrolles.com

Remerciements à Anne Bougnoux pour sa relecture.

En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie, 20, rue des Grands Augustins, 75006 Paris.

© Groupe Eyrolles, 2013, ISBN : 978-2-212-13641-8

CHEZ LE MÊME ÉDITEUR

Du même auteur

P. ROQUES. – Mémento UML.

N°13268, 2011, 14 pages.

P. ROQUES. – UML 2 par la pratique.

N°13344, 2009, 370 pages.

P. ROQUES. – UML 2 pour modéliser une application web.

N°12389, 4e éd., 2008, 246 pages.

P. ROQUES, F. VALLÉE. – UML 2 en action. De l’analyse des besoins à la conception.

N°12104, 4e éd., 2007, 382 pages (collection Architecte logiciel).

Techniques industrielles

P. FICHEUX, É. BÉNARD – Linux embarqué, 4e édition.

N°13482, 2012, 540 pages.

C. BLAESS – Linux temps réel.

N°13382, 2012, 294 pages.

UML, modélisation objet, processus de développement, industrie

V. MESSAGER. – Coacher une équipe agile. Guide à l’usage des ScrumMasters, chefs de projet, managers… et de leurs équipes !

N°13414, 2012, 300 pages.

V. MESSAGER ROTA. – Gestion de projet agile. Avec Scrum, Lean, eXtreme Programming…

N°13666, 2e édition, 2009, 272 pages (collection Architecte logiciel).

J.-L. BÉNARD, L. BOSSAVIT, R. MÉDINA, D. WILLIAMS. – Gestion de projet Extreme Programming.

N°11561, 2002, 300 pages (e-book).

C. HOHMANN. – Lean management.

N°55381, 2012, 424 pages.

H. BERSINI, I. WELLESZ. – Programmation orientée objet. Cours et exercices en UML 2 avec Java 6, C#, C++, Python, PHP5

N°128061, 5e édition,...

Préface

Enfin un livre sur SysML en français, qui plus est écrit par Pascal Roques qui a commis les livres sur UML les plus utilisés dans la francophonie à ma connaissance. Voilà qui va réjouir bon nombre de mes collègues enseignants qui commencent à intégrer SysML dans leurs cursus et bon nombre d’ingénieurs fatigués de ne trouver que des articles de recherche ou de vulgarisation utilisant souvent les mêmes exemples, pour la plupart issus des documents de l’Object Management Group, à l’origine de SysML.

La frontière entre le logiciel et le matériel est de plus en plus étroite. L’automobile en est l’illustration la plus frappante car elle touche tout le monde (le métier de garagiste est en pleine évolution !). Toutefois, l’aéronautique avait commencé avant elle. Et pour sévir depuis de nombreuses années dans le milieu de la formation toulousaine, Pascal Roques ne le sait que trop bien. Il est fort opportun qu’il n’ait pas attendu trop longtemps pour mettre à profit ses talents de pédagogue et d’auteur pour nous concocter un livre simple, clair et abordable qui, j’en suis persuadé, n’est que le premier d’une série d’autres qui germent sûrement déjà dans son esprit fertile. Le monde des informaticiens et celui des « systémistes » sont souvent restés étanches et les barrières culturelles vont être longues à faire tomber. SysML, s’il n’est qu’une notation au service d’une meilleure communication entre ces deux mondes, n’en reste pas moins un passage obligé pour toute personne amenée à participer au développement de systèmes complexes, où les notations classiques trouvent leurs limites.

Pascal a fait appel à un universitaire pour sa préface. Mais ne vous y trompez pas. Ce livre va au-delà du manuel que l’on indique en référence dans son support de cours, ou celui duquel on tire ses exemples (voire ses idées d’examens, chers étudiants !). Les relations industrielles très variées de l’auteur sont utilisées pleinement dans l’ouvrage que vous avez entre les mains pour à la fois nous expliquer simplement les tenants et les aboutissants de cette notation nouvelle, mais aussi coller à une réalité de terrain qui satisfera aussi bien les enseignants, les étudiants que les concepteurs de systèmes. Les premiers y trouveront des exemples concrets pour illustrer leurs recherches et leurs enseignements, les derniers y trouveront un décodage clair et didactique des subtilités de la spécification. Tous trouveront la plupart des réponses aux interrogations et aux points d’ombre qui subsistent dans la spécification OMG de SysML. Je vous souhaite une très bonne lecture !

Jean-Michel Bruel

Professeur des universités

Université de Toulouse – IUT de Blagnac

Membre de l’institut de recherche en informatique de Toulouse

(Unité mixte de recherche CNRS)

Avant-propos

Objectifs du livre

L’ingénierie système est une démarche méthodologique générale qui englobe l’ensemble des activités adéquates pour concevoir, faire évoluer et vérifier un système apportant une solution économique et performante aux besoins d’un client tout en satisfaisant l’ensemble des parties prenantes. Depuis longtemps, les ingénieurs système ont utilisé des techniques de modélisation. Parmi les plus connues, on trouve SADT et SA/RT, qui datent des années 1980, ainsi que de nombreuses approches basées sur les réseaux de Pétri ou les machines à états finis. Mais ces techniques étaient limitées par leur portée et leur expressivité ainsi que par la difficulté de leur intégration avec d’autres formalismes et avec les...

Introduction

Dans ce chapitre introductif, nous dévoilons les objectifs et l’historique du nouveau langage de modélisation SysML. Après un tour rapide de la problématique de l’ingénierie système et des différentes normes existant sur le sujet, nous expliquons pourquoi l’OMG a décidé de définir un nouveau langage de modélisation. Nous présentons également rapidement les différents diagrammes SysML qui sont détaillés dans la suite du livre.

Problématique de l’ingénierie système

L’ingénierie système (IS) est une démarche méthodologique 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.

B.A.-BA Système

Un système est un ensemble de composants interreliés qui interagissent les uns avec les autres d’une manière organisée pour accomplir une finalité commune (NASA 1995).

Un système est un ensemble intégré d’éléments qui accomplissent un objectif défini (INCOSE 2004).

Les normes d’IS décrivent les pratiques du métier en termes de processus et d’activités, de manière invariante par rapport aux domaines d’application de l’ingénierie système. Les méthodes d’ingénierie système fournissent des démarches techniques pour réaliser ces activités générales. Contrairement aux normes, elles dépendent des secteurs d’application et résultent de choix industriels. La mise en œuvre des processus et des méthodes est assistée par des outils, aujourd’hui très généralement informatisés.

Figure 0–1
Les processus, méthodes et outils

Les normes d’IS

RÉFÉRENCE AFIS

L’Association française d’ingénierie système (AFIS) vise à promouvoir l’ingénierie système par la présentation et l’explication de ses principes et de son approche multidisciplinaire, en vue de la réalisation de systèmes complexes réussis. Nous nous sommes beaucoup inspirés des textes et images présents sur son site pour ce sous-chapitre.

www.afis.fr

Trois normes générales d’ingénierie système décrivant les processus du métier d’IS sont actuellement disponibles. Elles en définissent les types d’activités à réaliser et les types de résultats produits. Elles...

PARTIE I

La modélisation des exigences

La partie I de l’ouvrage concerne la modélisation des exigences.

Nous apprendrons tout d’abord à mettre en œuvre la technique des cas d’utilisation, déjà présente en UML et très utilisée. Nous présenterons ensuite une première application du diagramme de séquence au niveau du système « boîte noire ». Nous verrons enfin que SysML innove en permettant de modéliser les exigences système et surtout de les relier ensuite aux éléments structurels ou dynamiques de la modélisation, ainsi qu’à des exigences de niveau sous-système ou équipement.

1

Le diagramme de cas d’utilisation

Ce chapitre présente le diagramme de cas d’utilisation, qui fournit une description de haut niveau des fonctionnalités du système.

Notation de base

Il est souhaitable de représenter les services attendus du système à l’étude par un modèle de cas d’utilisation. Ce modèle contient un ou plusieurs diagrammes de cas d’utilisation, montrant les interactions fonctionnelles entre les acteurs et le système.

B.A.-BA Cas d’utilisation

Un cas d’utilisation (use case, ou UC) représente un ensemble de séquences d’actions qui sont réalisées par le système et qui produisent un résultat observable intéressant pour un acteur particulier. Chaque cas d’utilisation spécifie un comportement attendu du système considéré comme un tout, sans imposer le mode de réalisation de ce comportement. Il décrit ce que le futur système devra faire, sans spécifier comment il le fera.

Nommez les cas d’utilisation par un verbe à l’infinitif suivi d’un complément, du point de vue de l’acteur (et non du système).

B.A.-BA Acteur

Rôle joué par un utilisateur humain ou un autre système qui interagit directement avec le système étudié. Un acteur participe à au moins un cas d’utilisation. Un cas d’utilisation...

2

Le diagramme de séquence

Ce chapitre présente le diagramme de séquence. Pour documenter les cas d’utilisation, la description textuelle est utile, car elle permet de communiquer facilement avec les utilisateurs et de s’entendre sur le vocabulaire « métier » employé. En revanche, le texte présente des désavantages puisqu’il est difficile de montrer comment les enchaînements se succèdent, ou à quel moment les acteurs secondaires sont sollicités. En outre, la maintenance des évolutions s’avère souvent fastidieuse. Il est donc recommandé de compléter la description textuelle par un ou plusieurs diagrammes de séquence SysML. Ces derniers seront ensuite utilisés pour montrer des interactions entre les éléments d’architecture, comme nous le verrons au chapitre 10.

Notation de base

Le...

3

Le diagramme d’exigences

Ce chapitre présente le diagramme d’exigences. Il capture les hiérarchies d’exigences, ainsi que leurs relations de dérivation, de raffinement, de satisfaction et de vérification. Ces relations fournissent la capacité de relier les exigences les unes aux autres, ainsi qu’aux éléments de conception et aux cas de tests.

Notation de base

Le diagramme d’exigences représente graphiquement les exigences dans le modèle.

B.A.-BA Exigence

Une exigence sert à 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...

PARTIE II

La modélisation d’architecture

La partie II concerne la modélisation structurelle. Nous apprendrons à utiliser le concept universel de « bloc » proposé par SysML pour modéliser tout élément structurel, ainsi que les deux types de diagrammes associés. Nous verrons tout d’abord comment définir les éléments structurels de base de notre modèle dans le diagramme de définition de blocs. Nous apprendrons ensuite à décrire la décomposition des éléments complexes avec le diagramme de bloc interne. Nous verrons enfin comment structurer notre modèle en packages, à des fins de travail en équipe ou de réutilisation.

4

Diagramme de définition de blocs

Ce chapitre présente le diagramme de définition de blocs. Le bloc SysML (block) constitue la brique de base pour la modélisation de la structure d’un système. Il peut représenter un système complet, un sous-système ou un composant élémentaire. Les blocs sont décomposables et peuvent posséder un comportement. Le diagramme de définition de blocs (block definition diagram ou bdd) décrit la hiérarchie du système et les classifications système/composant.

Bloc et propriété

Le bloc SysML (block) constitue la brique de base pour la modélisation de la structure d’un système. Il peut représenter un système complet, un sous-système ou un composant élémentaire. Le bloc décrit également les flots qui circulent à travers un système.

Les blocs sont décomposables et peuvent posséder un comportement (par exemple, une machine à états et/ou des opérations). Ils servent à représenter des entités physiques, mais aussi des entités logiques ou conceptuelles.

Les propriétés sont les caractéristiques structurelles de base des blocs. Elles sont de deux types principaux :

• les valeurs (value properties) décrivent des caractéristiques quantifiables en termes de value types (domaine de valeur, dimension et unité optionnelles) ;

• les parties (part properties) décrivent la hiérarchie de décomposition du bloc en termes d’autres blocs.

Par exemple, si l’on considère le bloc Voiture, on peut définir des valeurs :

• numéro d’immatriculation ;

• kilométrage ;

• vitesse courante ;

• etc.

La valeur vitesse courante sera typée par un value type Vitesse, lui-même défini par un type de base réel, une dimension Distance/temps et une unité km/h. Dans les pays anglo-saxons, l’unité sera miles/h.

Pour ce même bloc, on définira des parties telles que :

• un moteur ;

• quatre roues ;

• quatre portes ;

• un coffre ;

...

PARTIE IV

La modélisation transverse

La partie IV concerne la modélisation transverse. SysML permet de décrire plusieurs types de liens de traçabilité entre éléments de modélisation, et en particulier de mettre en œuvre le concept fondamental d’allocation. Nous verrons également comment décrire des équations grâce au nouveau diagramme paramétrique.