Académique Documents
Professionnel Documents
Culture Documents
net/publication/30514977
CITATIONS READS
30 9,095
1 author:
Skander Turki
Umm Al-Qura University
18 PUBLICATIONS 117 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Model-based software engineering applied to the design of forensics-aware clouds View project
All content following this page was uploaded by Skander Turki on 31 May 2014.
Par
Skander TURKI
Ingénieur informaticien de la faculté des sciences de Tunis
DEA MCAO Aix-Marseille III
tel-00336839, version 1 - 5 Nov 2008
1
Avant propos
Les travaux présentés dans ce mémoire ont été réalisés au Laboratoire d’Ingénierie des
Systèmes Mécaniques et des MAtériaux (LISMMA) à l’institut SUPérieur de MECAnique de
Toulon (SUPMECA).
Je voudrais remercier toutes les personnes qui m'ont soutenu, de près et de loin, en particulier:
− Monsieur Thierry SORIANO, Maître de conférences HDR au LISMMA pour m'avoir
accueilli dans son laboratoire et soutenu tout au long de la thèse, qui a consacré son temps
pour encadrer ces travaux. Merci pour ses conseils scientifiques, l’encouragement et la
confiance qu’il m’a accordés.
− Monsieur Jacques LOTTIN, Professeur au Laboratoire SYMM à Polytech' Savoie, pour
avoir bien voulu présider ce jury.
− Monsieur Pierre de SAQUI-SANNES, Professeur à l’Institut Supérieur de L’Aéronautique
et de L’Espace (ISAE) pour l'honneur qu'il m'a fait en acceptant d'être rapporteur de ce
mémoire. Je le remercie pour les remarques très pertinentes apportées à cette thèse.
− Monsieur Hubert KADIMA, Professeur HdR à l’Ecole Internationale des Sciences du
Traitement de l’Information EISTI, pour avoir accepté d’être rapporteur de cette thèse et pour
les conseils très intéressants qu’il m’a adressés.
tel-00336839, version 1 - 5 Nov 2008
Je remercie également toute la famille, d’abord ma mère et mon père pour leur support
inconditionnel, puis mes sœurs Azza et Souhir pour leur gentillesse et leur affection, et aussi
ma femme Nadia et mon fils Zakarya qui m’ont permis de trouver un équilibre loin de ma
terre natale.
Je dédicace cette thèse à ma famille : ma mère, mon père, qui m’ont moralement soutenu
malgré la distance qui nous sépare.
2
Table des matières
NOMENCLATURE GENERALE ................................................................................ 7
I - PROBLEMATIQUE ................................................................................................ 9
2.7 Conclusion...................................................................................................................................................... 46
3
3.3.3 Le profile MARTE .................................................................................................................................. 61
3.3.4 Un profile pour SDL................................................................................................................................ 63
3.3.5 Le profile TURTLE................................................................................................................................. 64
3.3.6 Le profile OMEGA ................................................................................................................................. 65
3.3.7 Le profile SysML .................................................................................................................................... 65
3.3.8 Conclusion............................................................................................................................................... 65
Conclusion ........................................................................................................................................................... 78
5.1 Introduction................................................................................................................................................... 81
Conclusion ........................................................................................................................................................... 90
6.1 Introduction................................................................................................................................................... 93
6.5 Cycle de conception 15288 appliqué aux modèles adoptés ...................................................................... 119
4
6.6 Mise en correspondance des processus avec les modèles SysML ............................................................ 122
6.6.1 Le processus de définition des besoins des parties prenantes................................................................ 122
6.6.2 Le processus d’analyse des exigences ................................................................................................... 123
6.6.3 Le processus de conception de l’architecture d’un prototype................................................................ 123
6.6.4 Le processus de réalisation et d’intégration........................................................................................... 124
6.6.5 Le processus de vérification et de transition et le processus de validation............................................ 125
6.6.6 Le processus de conception de l’architecture du système ..................................................................... 125
5
ANNEXE A : LE STANDARD IEEE 15288 ............................................................ 189
tel-00336839, version 1 - 5 Nov 2008
6
Nomenclature générale
Nous commençons ce mémoire par une introduction à l’ensemble des acronymes utilisés pour
faciliter la compréhension. Le lecteur trouvera dans cette partie une référence complète, il
n’aura pas à rechercher, pour chaque acronyme, sa première occurrence pour en déceler la
signification.
7
MCSE : Méthodologie de Conception des Systèmes Electroniques
SA : Structured Analysis
8
Chapitre 1
I - Problématique
tel-00336839, version 1 - 5 Nov 2008
« Toutes choses étant causées et causantes,… et toutes s’entraînant par un lien naturel
et insensible, qui lie les plus éloignées et les plus différentes, je tiens impossible de
connaître les parties sans connaître le tout, non plus que de connaître le tout sans
connaître particulièrement les parties ».
Pascal.
9
1.1 Introduction de la problématique du mémoire :
de domaines tels que la CAO mécanique avec CATIA [CATIA], la CAO électronique
avec KICAD [KICAD] ou HyperLynx [HyperLynx]. Les possibilités qu’offre la
conception informatisée aux ingénieurs en ont fait un outil indispensable pour concevoir
des systèmes qui semblent diverger en termes de complexité et de taille, aussi bien vers
l’infiniment grand que vers l’infiniment petit. Ce qui rend le nombre d’informations
humainement impossibles à gérer et à prendre en compte. Mais les limites de ces outils
sont encore loin d’être atteintes.
Dans toute cette panoplie d’outils, chaque ingénieur peut trouver l’outil qui
correspond à son domaine, or, les systèmes conçus aujourd’hui sont de plus en plus
intégrés et de plus en plus hétérogènes, ainsi, l’approche systémique en conception est
devenue inévitable car la complexité de l’intégration des sous-systèmes de domaines
technologiques différents peut souvent être la cause de l’échec du projet. C’est pour
remédier à de tels problèmes que la conception informatisée des systèmes doit
aujourd’hui offrir des implémentations efficaces de méthodes systémiques qui
permettent le support et/ou la régie de tout le cycle de conception des systèmes. Cette
1
DOORS est l’outil de gestion des exigences de Telelogic.
2
ENOVIA SMARTEAM est le logiciel de gestion de données collaboratives de Dassault Systèmes.
3
STATEMATE est un produit de Telelogic permettant la conception graphique de systèmes embarqués.
4
CORE est un outil de VALTECH supportant tout le cycle de vie d’ingénierie système.
10
proposition n’implique pas de ne plus utiliser des outils spécifiques à des domaines
technologiques particuliers tels que ceux cités précédemment, mais il est nécessaire de
mettre en place une plateforme qui puisse représenter un repère pour tous les
concepteurs qui travaillent sur le projet en offrant l’interopérabilité des différents outils.
En tenant compte de ce double développement in extenso ; non seulement la complexité
des systèmes conçus croît continuellement mais en plus ils sont de plus en plus
hétérogènes et surtout intégrés, nous concentrons nos efforts dans cette thèse sur la
conception des systèmes hétérogènes hautement intégrés dits mécatroniques suivant
l’approche systémique ou l’ingénierie système.
11
spécifiques à des domaines particuliers, ces formats sont des AP (Application Protocol).
Parmi ces formats, l’AP233 [AP233] [AP233ConceptModel] est la spécification des
échanges relatifs aux données des activités d’ingénierie système.
Ainsi, les méthodes et outils dédiés aux concepteurs des systèmes mécatroniques
tel-00336839, version 1 - 5 Nov 2008
doivent leur permettre de s’insérer dans ce cadre général de standardisation. De plus, ils
doivent leur fournir les moyens d’entreprendre cette démarche systémique et
collaborative tout en leur permettant la créativité, l’expérimentation et le prototypage
virtuel qui est un moyen indispensable de vérification très tôt dans le cycle de
conception.
Il est clair que l’étude d’un système doit permettre de le comprendre sous un
certain nombre d’angles différents pour pouvoir le construire. Dire qu’il faut le
comprendre sous tous ses angles est bien sûr utopique, car tout système réel est régi par
un nombre infiniment grand de variables que nous ne pouvons pas dénombrer. Le
concepteur sélectionne alors, selon les limites de la science dont il dispose (ses
compétences), selon le type du système étudié et ses finalités, les différents angles ou
les vues sous lesquels il juge pertinent d’étudier le système. On peut ici citer Ross Ashby
qui a défini le mot « système » en ces termes: « A System is a set of variables sufficiently
isolated to stay discussable while we discuss it»6; Il met l’accent dans cette définition sur
l’importance de l’abstraction dans la conception. Ceci implique qu’un modèle du
système est spécifié (figure 1.1) car un modèle est une abstraction d’un système qui
5
OMG : L’Object Management Group est un organisme de standardisation de technologies objet.
6
Page web dédiée au professeur W.Ross Ashby sur le site web de la Georges Washinghton University,
http://www.gwu.edu/~asc/biographies/ashby/quotations.html
12
contient les propriétés les plus pertinentes de ce système de manière que le concepteur
peut supposer que son système final sera fidèle au modèle ou au moins aura des
différences qu’il juge insignifiantes.
Pour comprendre un système, les vues nécessaires que les concepteurs doivent
tel-00336839, version 1 - 5 Nov 2008
appréhender sont de natures différentes (figure 1.2); Elles peuvent être relatives à la
structure du système, à son comportement interne ou aux connections de ses interfaces
avec son environnement. Les méthodes et outils de conception doivent ainsi permettre
la spécification de ces éléments.
13
aspects sémantiques permettant de donner plus de précisions sur les idées exprimées
dans ces vues. Finalement il faut fournir les moyens aux concepteurs de vérifier leurs
idées et décisions.
Dans cette thèse nous nous sommes posé pour objectif de proposer une méthode
destinée à supporter les activités de l’ingénierie système et plus spécifiquement des
systèmes mécatroniques. Cette méthode doit couvrir toutes les tâches d’ingénierie
système à partir de l’expression des besoins jusqu’au prototypage virtuel et la
simulation en passant par l’analyse des besoins et la description du modèle avec ses
vues statiques et dynamiques. Ceci doit tenir compte de l’ouverture que doit offrir cette
méthode pour permettre l’intégration au fur et à mesure, de nouvelles vues pour la
14
représentation de la structure et du comportement ou encore des méthodes de fiabilité
(AMDEC, AEEL, QMU, etc.). De plus, cette méthode doit offrir une base pour
entreprendre une démarche de conception itérative qui permet d’exploiter les retours
d’informations des simulations en réintégrant itérativement des évolutions aux modèles.
Nous devons proposer dans chaque étape de conception les techniques et modèles
adéquats pour l’étude des systèmes mécatroniques permettant de laisser au concepteur
les libertés indispensables à la créativité.
15
nature du produit final (en génie logiciel du code source) et celle des modèles utilisés
par ces outils (Données ou bases de modèles).
Nous avons décidé d’explorer cette piste et d’en rendre compte dans cette thèse
pour fournir une réponse à la problématique introduite auparavant. Nous commencerons
par présenter les techniques, méthodes et formalismes qui nous intéressent en
l’occurrence dans ce travail.
16
Chapitre 2
Herbert Simon
17
2.1 Introduction à la conception
ensemble de 50.000 astuces et outils mentaux utiles dans un domaine d’expertise et que
résoudre un problème nécessite la mise en correspondance du problème avec les
connaissances dont il dispose. Il ajoute que plus les connaissances sont larges et
accessibles, plus le processus va réussir. Curtis [Curtis1988] ajoute que la réussite d’un
projet dépend d’un petit nombre de concepteurs exceptionnels qui réfléchissent au
niveau « système ». Ceci dit, on peut déduire de ces deux affirmations qu’il est
indispensable de fournir les méthodes et outils qui permettront de mieux utiliser ces
connaissances et expertises en fournissant une vue globale du système aux concepteurs.
18
systèmes mécatroniques d’autant plus qu’ils sont à grande composante logicielle. Ainsi
l’encapsulation est un patron de conception sécuritaire.
nécessaire de s’appuyer sur des représentations tant du problème que de ses solutions
possibles à différents niveaux d’abstraction pour appréhender, conceptualiser,
concevoir, estimer, simuler, valider, justifier des choix, communiquer. C’est le rôle de
la modélisation ». La modélisation [Endres2003] est une manière de décrire le système
de sorte que certaines propriétés soient visibles et de sorte de pouvoir analyser le
système automatiquement.
19
• Non-ambiguïté : Le langage doit être basé sur des sémantiques bien définies avec
une notation non-ambiguë, donnant lieu à un ensemble consistant de vues de
modèles qui adhérent à des règles de bonne formation (théorie des langages).
• Précis : Le langage doit spécifier la sémantique qui peut être transformée en une
représentation formelle basée sur les mathématiques (voir méthodes Z, B,
OCL..). Ce critère doit faciliter l’exécution de la spécification et des modèles
dans n’importe quel niveau hiérarchique afin de valider les besoins par rapport
au cahier des charges et vérifier que le modèle satisfait bien à ces besoins.
• Complet : Le langage doit supporter l’expression de tous les détails émanant de
la modélisation de systèmes, de l’analyse à la spécification, la conception et la
vérification.
• Adaptatif/taille du système: Le langage doit supporter l’abstraction, l’élaboration
tel-00336839, version 1 - 5 Nov 2008
7
L’AP233 ou Application Protocol 233 est un projet STEP [STEP] visant à établir un format d’échange des
informations d’ingénierie système.
20
• Indépendant du processus et méthode : Le langage doit pouvoir supporter des
processus d’ingénierie système tels que les standards EIA 632 [ANSI/EIA632],
ISO/IEC 15288 [IEEE15288] et non contraindre un choix de processus ou
méthode.
chaque solution.
• L’induction mathématique est le moyen de raisonnement permettant
d’induire des informations à partir de prédicats mathématiques (règles,
théorèmes) basé sur l’inférence logique.
• L’abstraction se fait par rapport à l’architecture du système (Dijkstra
parle de données en programmation) ou par rapport à son comportement
(Dijkstra parle des procédures). Elle permet de limiter l’espace du
raisonnement par énumération.
Il déduit alors qu’il ne faut utiliser que des outils de conception qui permettent de
mettre en œuvre ces outils mentaux. Dijkstra [Dijkstra1968], avec le système THE8
développe un système en utilisant les niveaux d’abstraction pour venir à bout de la
complexité et définit les règles qui lient ces niveaux d’abstraction :
• La conception est décrite en couches.
• Les niveaux supérieurs utilisent les services des niveaux plus bas.
• Les bas niveaux ne peuvent pas accéder aux niveaux plus hauts.
8
Le système THE est un système d’exploitation supportant le multiprogrammation conçu par une équipe dirigée
par Edsger Dijkstra.
21
• Les bas niveaux sont implémentés en premier et fournissent une machine
virtuelle pour implémenter les niveaux suivants. C’est une technique « Bottom
Up ».
22
système/environnement fait alors partie des vues nécessaires pour expliciter le
fonctionnement du système. Les échanges doivent être bien décrits en particulier le
sens, type (continu, discret) et flux de l’échange.
Ce que dit Budgen est aussi valable pour les systèmes hétérogènes car chaque
problème est différent, un processus dans lequel on réutilise beaucoup de composants
est différent d’un processus où on reconstruit tout de zéro. Mais quel que soit le
processus, nous pouvons définir un certain nombre de vues du système qui nous
permettront de concevoir une famille de systèmes que sont les systèmes mécatroniques.
23
Un système est un ensemble de composants inter reliés qui interagissent les uns
avec les autres d’une manière organisée pour accomplir une finalité commune.
[NASA1995]
Un système est un ensemble intégré d’éléments qui accomplissent un objectif
défini. [INCOSE2004]
Nous nous restreindrons à caractériser les systèmes conçus par l’homme et nous
les définissons par :
Un système est un ensemble de composants qui collaborent à la réalisation
d’un ensemble de tâches en vue de fournir un ensemble de services, cet
ensemble est soumis à un environnement donné et interagit ainsi avec un sous-
tel-00336839, version 1 - 5 Nov 2008
Frontières du système
Les systèmes mécatroniques (SM) sont les systèmes intégrant principalement les
technologies informatiques, mécaniques électroniques et automatiques. L’évolution de
la technologie a donné naissance à ces systèmes complexes qui améliorent les
rendements, ajoutent de la fonctionnalité, de l’autonomie dans tous types de systèmes.
Schöner [SCHONER2004] ajoute que les systèmes mécatroniques permettent d’arrêter
l’expansion physique des systèmes qui est due à cette multiplication des fonctionnalités
dans un volume donné. Ces systèmes mécatroniques deviennent alors de plus en plus
riches en fonctionnalités et de plus en plus complexes et leur distribution devient de
plus en plus large. La demande évoluant constamment, il y a aussi besoin d’une grande
24
réactivité face aux exigences du marché. Maîtriser le cycle de vie du produit devient un
impératif vital. Les techniques visant à améliorer la conception des systèmes tentent
d’apporter des solutions à ces contraintes.
Plusieurs définitions sont données pour définir les systèmes mécatroniques dont :
« La mécatronique est l’intégration synergique de l’ingénierie mécanique avec
l’électronique et le contrôle intelligent de calculateurs dans la conception et la
fabrication de produits et processus industriels. » [Harashima1996]
Nous allons axer nos réflexions sur ces spécificités dans notre étude des
méthodes de conception de tels systèmes.
Multi technologiques : Plusieurs domaines technologiques sont mis en œuvre pour les
parties commande et opérative. Les domaines technologiques auxquels nous nous
intéressons sont particulièrement la mécanique, l’électronique, l’automatique et
l’informatique.
25
Réactifs : L’électronique est la technologie la plus courante et économique aujourd’hui
pour mettre en œuvre cette réactivité.
A contraintes temps réel : Ces systèmes sont le plus souvent immergés dans leur
environnement et doivent permettre une automatisation d’un ensemble de tâches. Les
services exécutés par un système mécatronique doivent répondre à des contraintes de
temps satisfaisants pour permettre aux clients de ces services de les exploiter
correctement.
26
réforme de la pensée » Edgar Morin décrit globalement la modélisation systémique
complexe en disant : « La pensée complexe est une pensée qui cherche à la fois à
distinguer - mais sans disjoindre - et à relier. D'autre part, il faut traiter l'incertitude. Le
dogme d'un déterminisme universel s'est effondré. L'univers n'est pas soumis à la
souveraineté absolue de l'ordre, il est le jeu et l'enjeu d'une dialogique (relation à la fois
antagoniste, concurrente et complémentaire) entre l'ordre, le désordre et l'organisation ».
Ainsi le fait de distinguer une partie opérative d’une partie commande n’implique pas
de les disjoindre et de les penser séparément mais de les comprendre et de comprendre
les liens qui existent entre elles. Ceci est très bien présenté par Pascal qui dit : « Toutes
choses étant causées et causantes,… et toutes s’entraînant par un lien naturel et
insensible, qui lie les plus éloignées et les plus différentes, je tiens impossible de
connaître les parties sans connaître le tout, non plus que de connaître le tout sans
tel-00336839, version 1 - 5 Nov 2008
connaître particulièrement les parties ». L’ingénierie système est une discipline qui
entreprend cette vision systémique dans la conception.
27
Selon le DoD (Department of Defence): « L’ingénierie système est un processus
appliqué par une équipe en vue de transformer des besoins client en un système
effectif ». Cette définition limite l’ingénierie système aux activités techniques.
28
Le biologiste Ludvig Van Bertalanffy est identifié comme étant le premier a
avoir développé l’idée de généralisation de la réflexion systémique à tout type de
système. Les contributions sont ensuite venues de tous les domaines, de la psychologie,
l’anthropologie, la biologie, les communications. La théorie générale des systèmes a été
définie par Bertallanffy K.E Boulding, R.W. Gerard et A.Rappoport en 1955
[Yurstseven1999].
Un processus d’ingénierie système doit donner lieu à une solution qui soit :
Robuste : Par rapport aux évolutions techniques/technologiques, par rapport à la
taille du système (production) et aux évolutions du contexte.
Evolutive/adaptative : Par rapport aux besoins utilisateur.
Un point d’équilibre : Par rapport à l’ensemble des besoins, choix de conception,
tel-00336839, version 1 - 5 Nov 2008
L’aspect qui nous intéresse de l’ingénierie système dans cette thèse est
l’approche de conception systémique qui est appelée dans le standard IEEE15288
processus techniques. Les autres processus d’entreprise ou de gestion de projets décrits
dans les méthodes d’ingénierie système sont en dehors de la portée de notre réflexion
dans ce travail.
Dans cette thèse, nous nous sommes fixés de mettre en place une méthodologie
supportant un processus d’ingénierie système orienté vers les systèmes mécatroniques.
Nous définissons alors les termes « méthodologie », « processus », « méthode » et
« outil » :
• Un processus est une séquence de tâches. C’est la description de
l’articulation des tâches à accomplir sans la définition même de ces
tâches.
• Une méthode est la définition des techniques permettant de réaliser une
tâche particulière.
• L’outil est la plateforme permettant de s’avancer dans un processus
donné et d’exécuter les méthodes propres à chaque tâche.
29
• Finalement, une méthodologie est l’ensemble processus/méthodes/outils
pouvant être appliquée à un domaine particulier. [Estefan2007]
Ces méthodes sont limitées par leurs portées et leur expressivité et par la
difficulté de leurs intégrations avec d’autres méthodes ou formalismes. SADT et SA ne
couvrent pas les vues dynamiques. De plus, le lien entre ces méthodes et les exigences
ne sont pas couverts et toute implémentation de l’une ou l’autre de ces méthodes est une
variante propre à l’éditeur de l’outil. D’autres approches, par souci de standardisation et
de continuité du processus de conception, séparent les processus des modèles et
30
définissent des standards pouvant être adaptés dans des méthodes différentes : les
processus d’ingénierie système sont le fruit de cette approche.
31
génie logiciel tel que le RUP (Rational Unified Process) [RUP] qui est un processus
itératif et incrémental guidé par les besoins des utilisateurs et basé sur six Best
Practices9 [RUP]:
• Développement itératif.
• Gestion des exigences.
• Description de l’architecture par des composants.
• Modélisation graphique.
• Vérification de la qualité.
• Controller les changements.
PHASE 5 : Intégration
Livraison du produit
à jour
PHASE 4 : Conception
Hw/Sw détaillée
Activités de conception du Hw
ESDL
Activités de conception du Sw
9
Best Practice est un terme utilisé pour faire référence à un moyen ayant fait ses preuves et permettant de
résoudre une problématique de la manière la plus efficace possible sans qu’une preuve formelle de son optimalité
n’ai été produite.
32
Figure 2.2. Embedded Systems Design Lifecycle
Une autre variante de ESDL a été développée par Daniel Mann dans laquelle le
choix du processeur se fait avant le partitionnement des activités de conception du
matériel et de conception du logiciel. Ceci se fait en se basant sur l’expérience des
concepteurs, des anciens produits similaires, etc. [Berger2002]
10
SIMILAR est l’acronyme de: State the problem, Investigate alternatives, Model the system, Integrate, Launch
the system, Assess performance, Re-evaluate.
33
tel-00336839, version 1 - 5 Nov 2008
Ces processus n’entreprennent pas une approche système, car ils séparent la
partie matérielle de la partie logicielle dès les premières phases d’analyse puis prévoient
l’intégration. En mécatronique, nous devons entreprendre une approche systémique.
34
tel-00336839, version 1 - 5 Nov 2008
35
cadre plus large. Par exemple Internet où l’entité qui contrôle le système global est un
ensemble de clients qui déterminent leurs standards en fonction de leurs besoins (le
W3C World Wide Web Consortium), des systèmes inter-opérants très variés sont ainsi
conçus et mis en place. Le standard ISO/IEC 15288 (ou IEEE15288) ne traite cette
interaction entre projets d’une entreprise que de manière très succincte (voir Annexe D
[IEEE15288]).
tel-00336839, version 1 - 5 Nov 2008
Figure 2.6. Les trois normes d’ingénierie système et leurs portées [AFIS].
11
IEEE 15288 est au départ appelé l’ISO/IEC 15288 ensuite adopté par l’IEEE en 2004,
nous avons eu à notre disposition le document [IEEE15288], pour celà, dans cette thèse,
nous faisons référence au standard par l’appellation IEEE15288.
36
besoins pour un système donné en produit effectif, de le produire, l’utiliser, le maintenir
et finalement le mettre hors service. Ces processus techniques sont détaillés (en vue de
l’exploitation de ces détails dans notre proposition) dans l’annexe A de ce document
mais sont brièvement décrits dans ce qui suit :
• Le processus de définition des besoins des parties prenantes : Ce
processus permet la définition des exigences des parties prenantes sur le
système. Les parties prenantes étant les utilisateurs, mais aussi les agents
de maintenance, de formation et autres intervenants sur le système au
cours de son cycle de vie. Ce processus doit permettre l’identification de
ces intervenants et leurs besoins puis la transformation de ces besoins en
exigences sur le système. Ces exigences seront la référence pour valider le
système.
tel-00336839, version 1 - 5 Nov 2008
37
• Le processus de fin de vie : Il permet l’arrêt de service du système.
Elle représente l’ensemble des services qu’un système est destiné à fournir dans
un certain contexte. Elle doit être précise et compréhensible par le client demandeur du
projet et le concepteur. Cette spécification joue le rôle de contrat entre les deux parties.
tel-00336839, version 1 - 5 Nov 2008
Elle décrit le « quoi » non le « comment ». Cette spécification doit être transformée par
les concepteurs en une spécification de la conception. Elle comporte :
• Introduction : Il s’agit de la description du besoin du système ainsi que le
contexte dans lequel il devra fonctionner. Elle décrit les fonctions du système et
la manière dans laquelle le système est inscrit dans la stratégie et les objectifs
de l’entreprise cliente.
• Le modèle du système : C’est le modèle mettant en évidence les relations entre
les composants du système et entre le système et son environnement.
• L’évolution du système : Représente les hypothèses sur lesquelles est basé le
système et les changements anticipés grâce à une évolution technologique
attendue ou des besoins clients. Exemple : (Un PC muni d’un lecteur CD doit
être prévu pour évoluer en remplaçant le lecteur CD par un lecteur DVD-D ou en
augmentant la mémoire RAM à un certain point).
• Les objectifs du système ou besoins fonctionnels : Ce sont les services offerts par
le système, tenant compte des performances en temps et en qualité.
• Les contraintes du système : Les restrictions sur le comportement du système et
sur les libertés du concepteur. Ce sont des contraintes sur la manière de réaliser
les objectifs. Exemple : sécurité, technologies spécifiques, standards, qualité,
maintenabilité, robustesse…
38
• Les priorités du système : Si des choix entre les objectifs et les contraintes
doivent être faits, quelles sont les priorités ?
• L’interfaçage avec l’environnement : Les interfaces d’entrée/sortie et les
interactions avec d’autres systèmes.
• Le glossaire : Définition des termes utilisés dans le document.
• Les index : Différents types d’index peuvent être inclus.
La conception est une description abstraite du système qui explique comment les
besoins seront réalisés. Elle est destinée aux concepteurs et ingénieurs. Les objectifs et
contraintes exprimées dans les besoins doivent être retraçables dans cette spécification.
tel-00336839, version 1 - 5 Nov 2008
Une spécification adaptée à l’ingénierie des modèles doit être structurée dans une
hiérarchie de modèles conçue pour décrire le système de différents points de vue avec
une traçabilité entre les modèles. Une telle structure doit :
• Faciliter le traçage des besoins de niveau système et les contraintes de
conception vers la conception détaillée et l’implémentation et vice-versa.
• Assister le concepteur à assurer différentes propriétés du système.
• Réduire le coût de l’implémentation des changements. Ainsi que les coûts de la
revalidation lorsque le système est modifié.
39
devrait fournir les moyens de vérifier des propriétés et d’effectuer des preuves formelles
sur les modèles produits. Ensuite, pour les parties non vérifiables formellement, la
simulation doit être possible pour apporter des éléments de réponse à la vérification de
manière informelle. Ils appuient le fait que la génération automatique de code puisse
donner un code performant en termes de rapidité d’exécution et de ressources.
Finalement, ils expriment le besoin d’évaluer les performances du code généré en
termes de rapidité d’exécution en tenant compte des contraintes temporelles.
40
à mots où les composants représentent des sous-systèmes décrits par des boites noires,
ce niveau permet une première décomposition du système pour avoir une vue globale
des échanges énergétiques mis en œuvre. Le deuxième type est celui des Bond Graphs
acausaux où les composants sont des composants élémentaires indivisibles et dont le
comportement est connu (résistance, tige, condensateur, etc.), ce niveau est utilisé à une
étape avancée du processus de conception, où on peut assimiler les composants à des
composants élémentaires parfaits. Le dernier type est celui des Bond Graphs causaux
qui permet d’établir les équations du système.
Dans le formalisme Bond Graphs, un composant est représenté par une ligne
tel-00336839, version 1 - 5 Nov 2008
nommée fermée qui modélise les frontières du composant. Pour tout échange
énergétique avec l’extérieur, on associe à ce composant un port énergétique d’un type
donné (mécanique, électrique, etc.). Un port est caractérisé par une semi-flèche
unidirectionnelle qui porte les informations de l’énergie transportée, à savoir l’effort et
le flux correspondants au domaine énergétique du port. (tableau 2.1).
41
Tableau 2.2. Composants élémentaires en Bond Graphs
Eléments Actifs Génération d’effort.
Génération de flux.
Eléments passifs Nœud de dissipation d’énergie.
Les jonctions (tableau 2.3) sont utilisées pour associer les composants élémentaires.
Ils décrivent la transmission d’énergie de manière instantanée. Ils connectent deux ou
plusieurs liens.
42
transfert énergétique et est représenté par une semi flèche unidirectionnelle. Dans le cas
d’un BG causal, une ligne verticale est ajoutée à une des extrémités de la flèche. Les
liens énergétiques sont numérotés.
Les DSM (Design Structure Matrix ou encore Dependency Structure Matrix) ont
été crées par Steward en 1981 [Steward1981]. L’équipe DSM Group at MIT [DSM]
travaille à développer la théorie des DSM. Les DSM sont des matrices carrées ayant
pour lignes et colonnes les composants d’un système. L’élément (i,j) de la matrice
représente une relation entre le composant de la ligne i avec celui de la colonne j. Ainsi
les éléments de la diagonale n’ont aucun sens (figure 2.7).
43
• Les DSM basées sur les composants : Elles peuvent exposer plusieurs types
d’interactions (spatiales, énergétiques, informationnelles, échanges de matière,
etc.).
• Les DSM dédiées aux équipes de travail : Elles sont utilisées pour les analyses
organisationnelles et les flux informationnels entre individus ou groupes
participant à un projet.
• Les DSM d’activités : Elles expriment les interdépendances entre les tâches d’un
certain processus.
• Les DSM paramétrées : Elles sont construites en découpant un système, en
définissant les interactions entre ses composants puis en quantifiant un type
d’interactions (proximité spatiale, liaison mécanique, besoin de transferts
tel-00336839, version 1 - 5 Nov 2008
énergétiques, etc.)
Lors de la description d’un processus, une séquence du temps est associée aux
positions des composants dans les entêtes des lignes et colonnes de la matrice. Dans ce
cas [Sharman2004], un élément non-nul au dessus de la diagonale implique un
feedback et un élément non-nul en dessous de la diagonale représente une dépendance.
44
[Harmel2007] Utilise une description en DSM pour appliquer un algorithme de
clustering qui lui permet d’identifier le type de l’architecture du produit considéré selon
des modèles prédéfinis.
cycliques du système. Nous pouvons interpréter l’élément (i,j) d’une DSM par « Le
composant de la ligne j est atteignable par le composant de la colonne i en parcourant
un seul lien de dépendance ». Pour la matrice carrée ( M 2 ) l’interprétation devient « Le
composant de la ligne j est atteignable par le composant de la colonne i en parcourant
exactement deux liens de dépendance ». Ainsi, si on élève la DSM à la puissance n,
chaque élément non-nul de la diagonale implique que cet élément est atteignable en
parcourant n liens de dépendances en partant de lui-même. Ce qui veut dire qu’il
intervient dans un cycle de longueur n. Pour illustrer cela, considérons le système
suivant (figure 2.8) :
45
2
Les éléments dans la diagonale de M qui sont en surbrillance montrent que les
composants A et B appartiennent à des cycles de longueur 2 que l’on appellera des 2-
cycles (un n-cycle sera donc l’appellation adoptée pour un cycle de longueur n).
tel-00336839, version 1 - 5 Nov 2008
Le carré de la matrice de départ contient le nombre 1 dans tous les éléments diagonaux
tant que le composant en cause possède un lien bidirectionnel sortant ou entrant. Car
chaque lien bidirectionnel est un 2-cycle pour les deux composants reliés.
2.7 Conclusion
46
de représentation multi-technologiques. Après avoir décrit ce cadre, nous rappelons les
objectifs posés dans la problématique, en particulier, notre tentative d’appliquer des
approches du génie logiciel, en l’occurrence l’ingénierie guidée par les modèles à la
conception systémique des systèmes mécatroniques. Pour cela, nous allons présenter les
bases théoriques qui ont permis, en génie logiciel, d’entreprendre de telles approches.
Nous commençons, donc, dans ce qui suit, par nous focaliser sur les langages orientés
objet, puis par présenter l’approche MDA qui établit un cadre général pour entreprendre
une ingénierie système guidée par les modèles (ou MBSE : Model-Based Systems
Engineering).
tel-00336839, version 1 - 5 Nov 2008
47
Chapitre 3
48
3.1 L’approche Objet
L’objet est un concept qui a été inventé pour regrouper dans une même entité un
ensemble de procédures portant sur un ensemble de données. Ceci avait pour but de
simplifier la programmation impérative classique en intégrant une approche en
composants qui permet la réutilisation à la manière de ce qui se fait en électronique par
exemple. Sont apparus alors des langages orientés objet tels que C++ ou SmallTalk.
Dans la modélisation objet le concepteur analyse le système, son environnement et son
domaine de connaissances puis représente par des objets ces éléments du monde réel ou
des concepts abstraits. Les objets ainsi décrits sont les types des données qui seront
utilisés lors des activités de conception orientée objet. Durant cette analyse le
tel-00336839, version 1 - 5 Nov 2008
49
Nous allons présenter le langage UML et quelques langages orientés-objets
utilisés pour la conception de systèmes hétérogènes. UML est un langage qui a tenté de
résoudre la problématique de la couverture (ou universalité) en offrant des éléments de
modélisation qui puissent satisfaire à différents domaines :
collaboration avait pour but de donner une certaine stabilité aux technologies orientée-
objet en fournissant un langage unifié et plus riche que l’existant ce qui permettait aux
éditeurs logiciels de fournir des outils qui pourront être utilisés par un public encore
plus large que pour un outil ne supportant que la méthode OMT par exemple. Ces trois
pionniers de la technologie objet se sont fixé quatre objectifs :
• Permettre la modélisation de systèmes hétérogènes pas seulement des systèmes
logiciels en utilisant des concepts orientés-objets.
• Etablir un couplage entre les artefacts conceptuels et/ou architecturaux et les
artefacts exécutables ou comportementaux.
• Fournir des éléments permettant d’adresser des systèmes complexes à objectifs
critiques (dont le dysfonctionnement peut causer des pertes en termes de vies
humaines, pertes économiques ou autre).
• Permettre au langage d’être manipulé par des intervenants humains ou par
programme.
Cette collaboration a donné lieu à UML 0.9 en 1996. Ensuite l’OMG (Object
Management Group) [OMG] a rassemblé un groupe de travail composé d’industriels du
logiciel pour élaborer et standardiser UML. La version UML 1.0 a ainsi vu le jour puis
la version 1.1 qui a été adoptée en 1997. L’évolution d’UML a continué depuis sous
50
l’égide de l’OMG. La version 1.3 a été publiée en 1999 et représentait une évolution
mineure du langage. Ensuite la version 1.4 a été adoptée en 2001. En 2005 la version
2.0 qui est une réécriture du langage est adoptée.
3.2.2 Caractéristiques
Sémantique informelle : Les éléments du langage ne sont pas définis sur des
bases mathématiques (Backus-Naur Form), il est ainsi impossible de vérifier
mathématiquement la cohérence sémantique d’un diagramme UML. De plus, si nous
avons recours à deux types de diagrammes différents, pour décrire le même système
sous deux vues différentes, il est impossible de vérifier formellement la consistance du
modèle global. Pour l’étape de réalisation, il est impératif de dépasser cette lacune. Une
solution est de créer des profiles de langages formels.
tel-00336839, version 1 - 5 Nov 2008
51
particuliers. Ces mécanismes seront présentés avec plus de détail dans le
paragraphe « Qu’est-ce que la méta-modélisation ?».
UML est décrit par un méta-modèle (figure 3.2). Le méta-modèle d’UML permet
de décrire les éléments du langage UML et la structure qui les relie, ce sont les règles
syntaxiques du langage.
52
est une méta-méta-classe. La classe du niveau M2 est une méta-classe, c’est l’élément
de langage qui représente la classe UML dont l’instanciation permet de créer une classe
particulière (niveau M1) d’objets (niveau M0).
tel-00336839, version 1 - 5 Nov 2008
12
CWM ou Common Warehouse Metamodel est un metamodèle d’échange de méta-données entre les langages de
datawarehousing, business intelligence et gestion de connaissances et technologies web.
53
Core » (figure 3.5). Ce noyau est un méta-modèle qui regroupe des éléments
réutilisables de langages basés sur le MOF. Ses éléments sont réutilisés et/ou étendus
pour former des langages tels qu’UML ou encore le package « Profiles ».
Figure 3.5. Liens entre le noyau « Common Core », les profiles et UML.
tel-00336839, version 1 - 5 Nov 2008
Dans le paragraphe suivant nous présentons en détail ces mécanismes tels que
décrits par la spécification de l’infrastructure d’UML 2.1.1 issue en février 2007
[UML2007].
54
3.2.6 Le package UML « Profiles » V2.1.1
55
conception orientée-objet). L’exemple de la figure 3.7 suivante permet d’illustrer cette
problématique :
tel-00336839, version 1 - 5 Nov 2008
56
être mutuellement exclusifs. Cette contrainte doit alors être spécifiquement
déclarée, car la structure du profile ne l’impose pas.
Limites pour l’invention de nouveaux Outil à construire (il existe des outils
diagrammes, complexité du langage, permettant cela tels que eclipse/EOF
57
Ainsi on ne doit avoir recours à la première solution que si on constate que la
nature du langage UML est complètement inadéquate au langage cible. Dans ce cas là il
existe des solutions qui permettent de construire un outil en réutilisant des mécanismes
génériques tel que Eclipse Modeling Framework (EMF) et Graphical Editing
Framework (GEF) plug-ins de la plate-forme eclipse [Eclipse Project], ou encore les
DSL Tools de Microsoft [DSL_Tools].
Pour répondre à l’un des inconvénients décrits dans le tableau 3.1, nous
proposons un mécanisme d’extension ; le Blinder (figure 3.8) permettant de réduire un
méta-modèle visuellement. Ce Blinder, lorsqu’il est appliqué à un élément du méta-
modèle, veut dire que cet élément est inutile pour un profile donné et que l’outil doit
cacher cet élément à l’utilisateur. Cette proposition n’élimine pas complètement
tel-00336839, version 1 - 5 Nov 2008
-extension Extension
Class -metaclass -isRequired : Boolean
*
1
1
Property
1 -ownedEnd
-ownedStereotype
Stereotype -type
ExtensionEnd
1 *
1 *
Profile
*
{OR}
1
Blinder -type
-ownedBlinder *
58
3.3 Extensions d’UML pour systèmes hétérogènes et Profiles existants
3.3.1 UML et les systèmes hétérogènes
Dans [Caraa2004] les auteurs utilisent UML pour modéliser des circuits
analogiques en empruntant une approche systémique. Ils réalisent un mappage des
concepts de VHDL-AMS vers des éléments de modélisation UML pour permettre la
description du matériel et du logiciel sur une même plateforme. Ils utilisent le
diagramme de classes pour décrire la structure du système, les composants et leurs
interconnexions. Les entrées, les sorties et les valeurs génériques sont représentés par
des attributs de classe et une fonction de transfert est utilisée pour décrire le
comportement dans la partie opérations de chaque classe. Ceci est valable pour les
composants qui peuvent être représentés par un modèle mathématique. Une classe
nommée « system » est finalement utilisée pour décrire le système global et connecter
les différents composants, cette connexion est utilisée pour réaliser le mappage entre les
ports dans le code VHDL-AMS.
13
SystemC est une librairie écrite en C++ largement utilisée pour écrire du logiciel temps-réel.
59
modules du système) et l’échange séquentiel des messages entre elles tout en faisant
intervenir les acteurs extérieurs au système. Il expose ensuite un diagramme des classes
pour définir l’ensemble des classes nécessaires pour construire le système et les
relations qui les lient en détaillant les fonctions (méthodes) de chaque classe. Cette
approche est connue par l’approche orientée par les Use Cases (Use Case Driven
Design).
D’autres travaux ont introduit dans UML des modèles pour la vérification tel que
les réseaux de Petri [Paludetto2004]. Dans un projet antérieur [TURKI2004] nous
avons montré comment un PSM décrit en UML pouvait être utilisé pour décrire
graphiquement un système à comportement hybride puis être simulé sur la plate-forme
de simulation OpenMask14.
tel-00336839, version 1 - 5 Nov 2008
D’autres qualités d’UML ont été démontrées par d’autres travaux. Dans
[Bahill2003], par exemple, les auteurs utilisent UML dans toute la démarche de
conception en partant de l’expression des besoins vers l’analyse du système et
finalement la conception du système. Cet article montre les qualités d’UML pour
supporter les tâches de l’ingénierie système. Les auteurs déclarent que les outils
classiques de l’ingénierie systèmes (RDD-100, DOORS, Slate, RTM, Excel etc.) sont
dépassés et ne permettent pas de faire communiquer les ingénieurs du logiciel et les
ingénieurs électroniciens. Les ingénieurs système utilisent encore le processus
« waterfall » à cause de ces outils. Bahill et Daniels [Bahill2003] expriment la nécessité
aux ingénieurs système d’évoluer vers les outils/méthodes utilisés dans le génie logiciel
(UML, RUP etc.). Ils illustrent leur utilisation d’UML par la conception d’un système
de chauffage ventilation et air conditionné en mettant en œuvre le processus unifié pour
l’ingénierie système (Unified Systems Engineering Process) [Bahill1998] qui est une
évolution du « Unified software development process » [Jacobson1999].
14
OpenMask est une plateforme de réalité virtuelle Open Source développée par l’INRIA :
http://www.irisa.fr/bunraku/OpenMASK/
60
Ainsi UML est tout aussi adapté pour décrire des modèles exécutables de
systèmes mécatroniques mais aussi pour tout le processus de conception de systèmes
mécatroniques. L’ensemble de ces expériences ont montré les possibilités d’UML et son
utilité en tant que langage de base pour le MBSE des systèmes complexes et/ou
hétérogènes.
Par contre, ces expériences ont montré que certaines faiblesses d’UML devaient être
comblées pour en faire un langage efficace à l’ingénieur système. Nous en citons :
• Besoin de décrire les exigences dans le modèle UML, et d’en assurer la
traçabilité vers la conception.
tel-00336839, version 1 - 5 Nov 2008
Beaucoup de tentatives ont été développées durant ces quinze dernières années
pour répondre à ces besoins comme UML RT, UML/PNO [Paludetto2004Petri] et des
profiles UML ont été définis tels que MARTE [MARTE2007], OMEGA
[UMLOmega] TURTLE [Apvrille2004] et SysML [SysML2007].
61
Performance and Time [UML SPT 2005]. MARTE est conçu de manière à permettre
l’utilisation de techniques d’analyse quantitative variées. La figure 3.9 suivante décrit le
méta-modèle de description structurelle des composants dans MARTE.
tel-00336839, version 1 - 5 Nov 2008
62
Une autre couche représentée par le package MARTE analysis model est
destinée à fournir des éléments d’annotation des modèles permettant l’analyse des
propriétés du système décrit [Gérard2007]. MARTE propose aussi un modèle de
description des plateformes d’exécution, qui est un élément essentiel en systèmes
temps-réels embarqués. Ainsi le General Ressource Model ou GRM présente des
éléments de modélisation de ressources à un très haut niveau comme les sémaphores ou
les processus par exemple.
63
• L’architecture : L’architecture d’un système est décrite en SDL par
l’interconnexion d’un ensemble de blocs. Chaque bloc est décomposable en un
ensemble d’autres blocs.
• Le comportement : Description de processus qui contiennent des procédures.
• La communication : Canaux de communication, signaux.
• Les données : Données typées, données partagées.
En SDL un block est défini par « Le bloc est un agent contenant un automate à
états et éventuellement, un ou plusieurs processus ou blocks. L’automate à états d’un
block est interprété en parallèle avec ses agents contenus. » [SDL2000]
tel-00336839, version 1 - 5 Nov 2008
SDL a une sémantique formelle contrairement à UML qui définit des semantic
variation points (pour un élément de langage, dire qu’il peut être interprété
différemment). Par contre SDL ne couvre pas les exigences et ne peut être intégré à
d’autres langages que de manière propriétaire, pour cette raison la création du profile
UML for SDL (standard Z.109) [SDL] permet l’utilisation de tous les diagrammes
UML et de profiter de la sémantique formelle de la conception SDL.
64
3.3.6 Le profile OMEGA
3.3.8 Conclusion
UML n’est donc pas suffisant pour supporter un processus d’ingénierie système
de systèmes mécatroniques. Par contre ces profiles permettent de combler certaines
lacunes d’UML. Ainsi, pour obtenir un ensemble complet de modèles permettant de
supporter tout le processus de conception, nous pouvons articuler certains de ces
profiles autour d’un processus d’ingénierie système couvrant toutes les activités de
conception. Vu le chevauchement de ces profiles, et le fait qu’ils sont incomplets par
rapport aux systèmes mécatroniques, nous avons préféré ne pas nous restreindre à ces
modèles mais nous en proposons d’autres que nous trouvons appropriés à la description
de l’architecture de systèmes hétérogènes tels que les systèmes mécatroniques.
65
tel-00336839, version 1 - 5 Nov 2008
Chapitre 4
IV - Le langage SysML
66
4.1 Le langage SysML : Une approche systémique
entre des équipes hétérogènes. Dans cette optique, SysML a été conçu comme une
extension à UML pour minimiser les difficultés de son implémentation dans les outils
UML existants. Sa spécification a été écrite de manière à être abordable contrairement
à celle d’UML pour ne pas constituer un frein à son adoption dans le monde de
l’ingénierie système. SysML bénéficie donc des mécanismes d’extension d’UML qui
sont les stéréotypes, les tagged values (ou méta-propriétés) et les contraintes. Ces
mécanismes peuvent encore être utilisés pour spécialiser davantage SysML et en faire
une boite à outils de description de systèmes de domaines particuliers (Aéronautique,
automobile, énergie, etc.). La première spécification finalisée de SysML a vu le jour
en juillet 2006 et l’adoption de SysML a été accomplie en septembre 2007
[SysML2007]. Les premiers outils CASE à proposer le support de SysML sont Artisan
Software, No Magic, Telelogic, et en open-source TOPCASED [TOPCASED] et
PAPYRUS [PAPYRUS]. D’un autre côté, l’adoption par des ingénieurs systèmes de
cette nouvelle technologie est la question clé pour l’avenir de SysML. Nous pensons
que SysML doit avoir de sérieux arguments pour réussir cela. Et nous pensons que la
solution réside dans l’ingénierie orientée par les modèles ou MDD (Model Driven
Development). Cette nouvelle technologie a aussi été adoptée par l’OMG sous le nom
de MDA (Model Driven Architecture). Cette architecture MDA permet d’une part de
supporter une approche systémique de conception et d’autre part d’intégrer
l’utilisation de l’outil CASE avec les outils des experts de domaines en créant une
67
forte liaison entre ces deux classes d’outils et ceci en intégrant les modèles (par les
profiles) spécifiques aux plates-formes (ou PSM Platform Specific Model) au niveau
des outils CASE (figure 4.1).
tel-00336839, version 1 - 5 Nov 2008
68
Figure 4.2. Relations entre UML2 et SysML [SysML2007]
Les besoins suivants ont été exprimés par les ingénieurs système représentés par
l’INCOSE [INCOSE] au cours d’une étude préalable à la spécification de SysML. Ces
besoins l’ont motivée à développer sa propre méthode d’ingénierie système OOSEM
(Object Oriented Systems Engineering Method) [OOSEM2001] :
• Incompatibilités et problèmes de communication entre les ingénieurs système et
tel-00336839, version 1 - 5 Nov 2008
logiciel.
• Besoin d’un meilleur moyen pour représenter les informations relatives à
l’analyse et la conception des systèmes et d’un meilleur moyen pour la
communication des besoins.
De plus, l’INCOSE a exprimé les besoins ressentis par ses membres quant à la
représentation des informations, et a présenté en parallèle les solutions qu’ils ont
apportées à travers la méthode OOSEM :
69
Attributs stéréotypés : Caractéristiques physiques, non
comportementales.
Distributions probabilistes de ces attributs.
• Attributs de données pour des éléments physiques :
Attributs de données pour représenter des stocks de système,
extension du concept de stock persistant pour supporter des entités
physiques (énergie, fluides…).
• Eléments de modélisation explicites pour représenter des entrées/sorties :
Les entrées sorties peuvent inclure des données ou des échanges
physiques.
Un diagramme spécifique est utilisé (Elaborated Context Diagram)
pour représenter les flux entre les acteurs et le système ou encore
tel-00336839, version 1 - 5 Nov 2008
70
Figure 4.3. Les diagrammes de SysML [SysML2007]
71
Tableau 4.1. Stéréotypes utilisables dans un diagramme des exigences.
<<requirement>> Est une extension abstraite de "Classe" affichant deux méta-
propriétés spécifiques. La méta-propriété "id" est destinée à la
numérotation hiérarchisée des besoins. "text" permet de décrire le
texte du besoin.
<<deriveReqt>> permet d'expliciter un besoin qui était implicite dans un besoin de
niveau hiérarchique supérieur de la décomposition
<<Verify>> permet de lier des jeux de test à un besoin
Une deuxième extension importante est le Block qui est défini en tant que
stéréotype de la classe définie dans UML2 dans le package StructuredClasses
[UML2007] (figure 4.5). Cette classe étend la classe UML2 en y ajoutant la possibilité
d’avoir une structure interne et des ports. Un Block est une unité modulaire. Il peut
contenir des éléments structurels et comportementaux.
72
Le diagramme des blocks internes est aussi une extension apportée par SysML.
Il est basé sur le diagramme des structures composites d’UML2 [UML2007] (figure
4.6). Il décrit des structures internes de blocks par des interconnexions de blocks ou
des parties de blocks (<<parts>>) à travers des ports. Des connexions peuvent être
reliées directement à des propriétés internes d'un block sans passer par un port. Le
diagramme IBD permet de décomposer le système, de représenter les composants
(physiques ou logiques) et les interfaces qui les lient (figure 4.6). Il est utilisé pour
représenter les flux d’information et les flux continus ou discrets entre les composants.
tel-00336839, version 1 - 5 Nov 2008
73
Figure 4.7. Diagramme des contraintes paramétriques [SysML2007].
15
EFFBD est le Enhanced Functional Flow Block Diagram.
74
quel élément du modèle SysML pour décrire une limitation détectée par le concepteur.
<<View>> et <<Viewpoint>> sont introduites pour décrire des perspectives
particulières d'un système. Nous pouvons ainsi définir les points de vue que nous
jugeons utiles tels que les points de vue de la qualité de service, de la performance, de
l'ergonomie etc.
affectent dés le début de la conception les comportements aux structures statiques, ils
créent des classes dans lesquelles ils créent des propriétés et des méthodes, plus tard
dans la conception ils font du « refactoring » pour modifier ces classes. Par contre, les
ingénieurs système séparent les structures des comportements puis allouent ces
derniers aux structures. SysML permet de décrire cette allocation de manière à
documenter une décision de conception qui pourra être détaillée plus tard, Latta
critique alors cette approche en ajoutant qu’au-delà de la documentation, les
allocations devraient être en plus des éléments de conception sémantiquement actifs et
que l’allocation d’un comportement à une structure doit être équivalente à
l’implémentation d’une méthode pour une classe ; ce qui est le cas avec les allocations
dans MARTE.
SysML présente certaines lacunes que nous présentons dans ce qui suit :
75
• Liens entre diagrammes : Les allocations ne font que documenter, pas de
sémantique définie.
• Diagramme des contraintes paramétriques pas assez intuitif.
• Le chevauchement sémantique des différents diagrammes donne naissance à un
problème : Un changement dans l’un des diagrammes doit pouvoir se répercuter
dans un autre. Il y a donc besoin dans SysML de limiter les chevauchements au
minimum et à l’outil d’implémentation de supporter la mise à jour d’une vue
lorsqu’un modèle est modifié.
76
Un autre point doit être noté concernant la portée de SysML. En effet,
l’utilisation de SysML (le langage tel que décrit dans le standard [SysML2007])
s’arrête à la conception indépendante des plateformes et des technologies. Ensuite,
nous avons besoin pour la conception spécifique plus détaillée de mettre en place
d’autres profiles UML ou des extensions de SysML (MARTE, MecaML, ElecML)
comme le montre le processus décrit par la figure 4.8 :
tel-00336839, version 1 - 5 Nov 2008
Une autre problématique se pose par rapport aux niveaux d’abstraction du BDD
et de l’IBD autrement dit du block et des propriétés du block. Dans la figure 4.9 on
voit que le block, qui est un stéréotype de classe n’a pas de correspondant dans le
langage SysML au niveau des instances. Tim Weilkiens dans [Weilkiens2008]
explique la nuance entre le niveau des instances (M0) et le niveau d’abstraction dans
les IBD qui est le niveau des rôles et qu’il décrit comme un niveau entre le niveau
M1(classes) et M0(objets).
77
Le block est utilisé aussi pour désigner un classifieur non une instance. On peut
ainsi se demander à quoi correspondrait une classe pour un mécanicien. A-t-il
vraiment besoin de passer par ces niveaux d’abstraction ? Ou bien est-il superflu pour
lui de définir des classifieurs englobant toute une série d’instances ? Nous pensons que
les deux niveaux sont indispensables mais il est très utile de permettre aux non
informaticiens de ne pas confondre les niveaux d’abstraction. En effet, la conception
orientée objet a pour avantages de permettre un haut degré de réutilisation. On peut
donc faire correspondre les classes aux éléments d’une bibliothèque commune à
l’ensemble des projets d’une même entreprise. Lorsqu’un concepteur définit une
classe, il peut la publier dans la bibliothèque de classes. Il peut aussi l’utiliser dans un
diagramme de définition de blocks BDD pour concevoir d’autres classes.
tel-00336839, version 1 - 5 Nov 2008
L’un des grands avantages de SysML est qu’il soit basé sur UML, il peut ainsi
profiter de tous les outils UML existants sur le marché et les fournisseurs d’outils
CASE peuvent donc créer un profil SysML pour supporter ce nouveau langage. Sauf
que dans la situation actuelle, SysML n’est pas exactement un profile UML. Chaque
fournisseur implémentera donc une version qui sera intégrable dans son outil selon les
mécanismes d’extension dont son outil dispose. L’unification de SysML passe donc
forcément par le simple fait qu’il doit être un profile d’UML2 et non pas une union
d’un profile UML2 avec un nouvel ensemble d’éléments.
Conclusion
Nous avons choisi d’utiliser SysML comme langage de base des modèles. Nous
avons présenté le langage UML et le langage SysML, nous avons mis l’accent sur les
mécanismes d’extension qui nous permettront de compléter les modèles utilisés par la
méthodologie proposée. Nous avons dû présenter avec un certain niveau de détail ces
technologies car nos apports reposent sur ces technologies, il était alors indispensable
de présenter aux lecteurs l’ensemble de ces technologies.
78
maintenant présenter comment nous articulerons ces modèles (SysML et autres : Bond
Graphs, DSM, etc.). Ces modèles seront articulés de manière à supporter le processus
d’ingénierie système IEEE15288. Pour ce faire, nous présentons dans le chapitre
suivant l’ingénierie guidée par les modèles et, en particulier, l’architecture de modèles
MDA qui va permettre cette articulation.
tel-00336839, version 1 - 5 Nov 2008
79
Chapitre 5
80
5.1 Introduction
16
organisme de standardisation des technologies objet, ayant standardisé CORBA, UML, MDA etc.
81
ClientDistant
ServeurMétéo
1
1
PortMapper
Formateur
1
ClientBroker
1 * ServerBroker
PortNumber : integer * 1
PortNumber : integer
1 *
*
*
1
Client
Server
ServiceNumber : integer
ServiceNumber : integer
MDA étend ce principe utilisé pour les Design Patterns pour mettre en place des
tel-00336839, version 1 - 5 Nov 2008
modèles de haut niveau (ou méta modèles) de systèmes logiciels entiers. Ces méta
modèles contiennent donc des éléments de description de systèmes et peuvent contenir
plusieurs Design Patterns. Jean Bézivin [Bézivin2004] décrit l’évolution vers le MDD
en décrivant les deux relations de base (figure 5.2) qui ont régi la modélisation
orientée objet et les deux relations qui régissent la modélisation guidée par les
modèles :
Les modèles dans MDA [MDA2003] peuvent être des méta modèles de
description ou des méta modèles de transformation. Les méta modèles de description
sont le CIM (Computation Independent Model), le PIM (Platform Independant Model)
et le PSM(Platform Specific Model) :
82
• Le CIM : Expression des besoins par un modèle indépendant de la conception.
• Le PIM : En MDA, un PIM (Platform Independent Model) est un modèle d’un
haut niveau d’abstraction qui ne prend pas en compte les aspects relatifs aux
technologies d’implémentation.
• Le PSM : Le PSM (Platform Specific Model) est un modèle qui décrit la
solution technique à réaliser. Il est utilisé pour traduire le PIM en explicitant les
technologies mises en œuvre.
lieu du code. En effet on peut considérer une transformation d’un modèle en un autre
comme un projet à part entière.
L’approche MDA définit alors une chaîne de transformations que l’on veut
essentiellement automatisée entre le CIM vers le code et la documentation (figure 5.3).
Cette décomposition nous permet de décrire un système en termes de ses
fonctionnalités, ce qui encourage la créativité et donne plus de liberté à l’ingénierie.
Ceci permet de réutiliser des solutions abstraites (niveau PIM) en changeant le niveau
de l’implémentation si la technologie venait à évoluer (par exemple, si une contrainte
liée à une source d’énergie venait à changer). On n’aurait alors qu’à modifier la partie
relative à cette technologie au niveau PSM et les règles de génération de texte qui
suivent.
Toute la difficulté dans la mise en œuvre de MDA et le choix d’un PIM qui
puisse non seulement nous amener vers le(s) PSM que nous envisageons d’utiliser
mais aussi qui puisse être assez abstrait pour pouvoir être réutilisable et donc pérenne.
83
Ce sont les experts implémentant MDA qui fournissent le plus grand effort, les
développeurs/ingénieurs viennent travailler sur cette plateforme MDA en se
concentrant sur la créativité et les aspects conceptuels.
[Kleppe2003] page 32. UML est l’un des langages les plus largement acceptés dans la
communauté du génie logiciel et aussi dans d’autres communautés comme celle des
systèmes. Il est utilisé pour spécifier des modèles et le nombre d’outils implémentant
UML (de manière plus ou moins fidèle) a augmenté de manière fulgurante (plus d’une
centaine d’outils). Dans le langage UML, ces modèles (CIM, PIM et PSM) sont décrits
par des profiles UML. Dans [Fernandez2004] les auteurs présentent des guidelines
pour concevoir des profiles UML ainsi que le rôle des profiles dans la mise en œuvre
de MDA. Ces profiles sont utilisés pour guider la conception. Ces profils sélectionnent
les éléments de langage et les diagrammes utiles pour notre domaine d’application.
84
Utiliser UML pour implémenter MDA dans un contexte d’ingénierie système
n’est pas trivial. En effet, UML a été construit pour le génie logiciel. Les
vues/diagrammes qu’il offre sont donc celles utiles à la spécification de logiciels. Pour
l’ingénierie système nous utiliserons SysML.
MDA ne précise pas quel formalisme on doit utiliser pour exprimer des méta
modèles. Par contre l’OMG préconise l’utilisation du MOF (Meta Object Facility)
[MOF2006]. Le MOF est donc un formalisme de description de méta modèles. Il est
utilisé entre autres à décrire le méta modèle d’UML. Un méta modèle en réalité ne
permet de décrire que la forme des langages et non pas leur sémantique, ce qui
constitue une faiblesse majeure. Il en résulte qu’un méta modèle, tel qu’il est défini par
l’OMG, ne permet finalement pas de décrire des langages, car un langage est constitué
d’une syntaxe et d’une sémantique. C’est de cette approche-ci que découlent toutes les
faiblesses d’UML tel que sa non formalité. Ce que l’OMG appelle « precise natural
language » dans [UMLinfra2004] reste toujours un langage naturel pouvant être
interprété différemment par des personnes différentes et dans des contextes différents :
“The specification uses a combination of languages - a subset of UML, an
object constraint language, and a precise natural language to describe the abstract
syntax and semantics of the full UML.” [UMLInfra2004] page 21.
85
Quant aux modèles de transformations de modèles (QVT17 et ATL18), rappelons
que dans MDA tout est modèle. Même les transformations des PIM en PSM sont
décrites par des modèles. L’OMG propose le langage QVT pour décrire ces modèles
de transformations, mais d’autres langages sont développés par d’autres groupes de
recherche tels que ATL qui est développé par l’INRIA [ATL2006].
Les diagrammes de classes en UML sont des modèles de systèmes, les Design
Patterns ou patrons de conception sont des modèles de solutions à des problèmes
récurrents. C’est une manière efficace de capitaliser le savoir-faire. Ils sont très utilisés
en génie logiciel mais très peu en ingénierie système. Les design patterns sont aussi un
tel-00336839, version 1 - 5 Nov 2008
outil efficace pouvant être intégré dans une ingénierie guidée par les modèles.
L’application d’un pattern fournit un point de départ pour le concepteur, une solution
globale à affiner et, si besoin est, à modifier. Les design patterns définis évoluent avec
l’expérience. Le choix du nom d’un design pattern doit être fait de sorte à expliciter
brièvement le problème résolu. Dans le domaine du génie logiciel, il existe beaucoup
de design patterns dont les plus connus sont les « GoF19 Patterns » [Gamma1994].
17
QVT (Query/View/Transformation) est un langage standardisé par l’OMG pour permettre la transformation de
modèles.
18
ATL (ATLAS Transformation Language) est un langage de transformation de modèles développé par le
groupe ATLAS INRIA, http://www.eclipse.org/m2m/atl/.
19
GoF pour The Gang Of Four ou le gang des quatre qui sont les inventeurs du concept de design patterns.
86
embarquées temps-réel sur OSGi. Le choix du langage cible dépend de l’utilisation
que nous voulons en faire. Dans cette thèse, le choix s’est porté sur le langage
Modelica [Modelica] en tant que langage pouvant être simulé par les outils
spécifiques, ce choix a été fait pour plusieurs raisons :
• Langage orienté-objet donc mise en correspondance directe entre un modèle
UML/SysML et une classe/modèle Modelica. Dans [Dudra2003] Dudra simule
son système d’amortisseurs en utilisant Modelica. Ce dernier étant orienté-
objet, il est plus naturel de passer d’un diagramme de classe qui détaille les
différents composants du système vers un modèle en Modelica. Le processus de
décomposition hiérarchique lui a permis d’aller vers le détail de fonctionnement
du système.
• Langage orienté-objet donc extensible par la définition de librairies
tel-00336839, version 1 - 5 Nov 2008
87
généré en MODELICA par un éditeur externe et dans ce cas se pose aussi la question
du retour d’informations vers le modèle principal qui doit rester unique et complet.
Le mot clé « Partial » équivaut au mot clé « Abstract » en C++. Les équations
traduisent le comportement interne du composant. Par exemple que la somme de
l’intensité entrante et de l’intensité sortante est nulle. Ensuite on définit l’élément R :
model Resistor "Résistance électrique idéale"
extends OnePort;
88
parameter Real R(unit="Ohm") "Résistance";
equation
R*i = v;
end Resistor;
Le mot clé « Parameter » implique que R est constant pendant une simulation
mais peut changer d’une simulation à une autre. « Real » est l’un des types prédéfinis
dans la librairie standard. Il possède un ensemble d’attributs tel que l’unité de mesure,
valeur minimale, maximale ou initiale. Nous pouvons alors réutiliser la classe OnePort
pour décrire le modèle d’une capacité :
L’avantage majeur de Modelica est, donc, le mapping un-à-un que l’on peut
tel-00336839, version 1 - 5 Nov 2008
89
Dans l’outil Dymola qui implémente le langage Modelica, le concepteur
assemble graphiquement des éléments instanciés à partir de la BondLib et l’outil
génère le code Modelica (figure 5.8) :
tel-00336839, version 1 - 5 Nov 2008
Conclusion
Nous avons dans cet état de l’art présenté les technologies qui composent la
méthodologie proposée dans cette thèse (IEEE15288, MDA, SysML, mécanismes
90
d’extensions d’UML/SysML, Modelica, Bond Graphs et DSM). Vu le nombre de
technologies concourantes à l’élaboration de la méthodologie, il était nécessaire de les
présenter dans un niveau de détail permettant de montrer le cadre général de la
réflexion menée dans ce travail.
91
Chapitre 6
“…What I am suggesting is that the underlying language definition must deal with the
differences in some way explicitly. If the language does not differentiate between two types of
tel-00336839, version 1 - 5 Nov 2008
92
6.1 Introduction
93
tel-00336839, version 1 - 5 Nov 2008
Dans [Oliver2005] l’auteur rappelle que malgré que MDA fournisse une
« structure méthodologique », il reste à savoir comment les modèles s’insèrent dans
cette structure. Nous nous proposons de répondre à cette question fondamentale par
rapport à MDA. Nous présentons dans ce qui suit l’application de l’architecture MDA
en définissant les modèles choisis de la méthodologie de conception. Notre plateforme
d’aide à la conception des systèmes mécatroniques doit avoir les spécifications
suivantes :
94
• Elle doit reposer sur un méta-modèle supportant SysML pour la partie Analyse
et conception.
• Pour les tâches de réalisation, elle doit supporter les langages utiles pour chaque
domaine technologique. En permettant l’intégration de nouveaux langages.
• Elle doit supporter des cycles de vie mettant en œuvre des démarches de
décomposition et itératives.
• Elle doit permettre la capitalisation du savoir-faire et la réutilisation.
• Elle doit offrir des fonctionnalités de contrôle de la qualité des modèles
produits.
• Elle doit permettre la simulation de la réalisation.
Le PIM (ou Platform Independant Model) que nous proposons est basé sur
UML2. Ce qui a pour avantage de fournir des modèles Orientés-objet et standards, et
de bénéficier de la grande panoplie d’outils disponibles sur le marché. Il est composé
de SysML muni de deux profiles que nous appelons « SysML15288 » et
« SysMLMecatronics ». Le premier est une extension de SysML permettant de
supporter les besoins d’expressivité décrits dans le standard d’ingénierie système
IEEE15288 [IEEE15288]. Et le deuxième est une extension supportant une
description fonctionnelle liée aux systèmes mécatroniques. Ensuite, nous définissons
un PSM que nous appelons « BlockBondGraphs » permettant de décrire des Bond
Graphs dans un diagramme SysML (le Internal Block Diagram). Nous proposons
aussi d’utiliser le profile « ModelicaML » réalisé par [Pop2007] et permettant de
décrire des simulations pour générer le code Modelica correspondant. Et, finalement,
nous avons choisi d’utiliser Dymola (implémentation de Modelica) comme plateforme
de simulation du code généré à partir des PSM cités sachant que la bibliothéque
BondLib permet la simulation des Bond Graphs sur les outils Modelica (figure 6.2).
95
tel-00336839, version 1 - 5 Nov 2008
A – Extensions générales
96
Pour différencier entre les systèmes considérés, nous proposons {System-Of-
Interest} une méta-propriété de type String de la méta-classe package permettant de
spécifier que les éléments appartenant au package sont liés au cycle de conception du
système considéré.
Nous avons besoin de décrire la qualité souhaitée d’un service donné, que ce
soit une qualité de service d’ordre général, de sécurité ou d’ordre environnemental.
Pour cela, et pour les mêmes raisons que l’extension précédente, nous proposons trois
méta-propriétés de use case dédiées intitulées {QoS}, {SecurityQos} et
{EnvironmentalQoS} qui sont de type String.
20
Définition UML de l’association : Une association décrit un ensemble de tuples [UML superstructure] page
41.
97
cette exigence. Aussi {ConformToNeed}, méta-propriété booléenne de
« requirement » permettant de faire valider les exigences par les parties prenantes.
98
prévue. Par contre, nous ne reprenons pas la méta-propriété {Risk} telle qu’elle est
décrite dans la spécification de SysML, mais nous proposons une métapropriété
{Risk} de type RiskDataType que nous définissons par (RiskLevel : RiskKind,
Risk :String) permettant de noter les risques identifiés sur une exigence donnée et son
niveau de gravité en reprenant l’énumération RiskKind de la spécification. Nous ne
gardons pas la méta-propriété {source} définie dans l’annexe C, nous la remplaçons
par {Stakeholder}, présentée avec les extensions du processus de définition des parties
prenantes.
Pour les activités du standard IEEE 15288, nous complétons par la proposition
de {RequiredContext}, méta-propriété de type string des stéréotypes
« FunctionalRequirement » et « PhysicalRequirement » permettant de décrire les
tel-00336839, version 1 - 5 Nov 2008
Pour distinguer entre une architecture logique de haut niveau et une architecture
physique, nous proposons « LogicalArchitecture » et « PhysicalArchitecture », tous
99
deux des DiagramUsage21 (voir figure 6.4) du diagramme de description interne de
blocs (IBD). Nous proposons aussi « LogicalArchitecture » et
« PhysicalArchitecture », des DiagramUsage du diagramme de définition de blocs
(BDD).
tel-00336839, version 1 - 5 Nov 2008
100
DiagramDescription nous proposons la propriété AlternativeEvaluation de type string
permettant de noter les critiques que le concepteur peut avoir concernant une
conception donnée.
Nous récapitulons dans les deux tableaux suivants les extensions présentées ci-
dessus:
Tableau 6.1. Extensions induites par le standard IEEE 15288
Processus Extensions
Cycle de conception global « System-Of-Interest » : String // Méta-
propriété de type String de la méta-classe
package.
Le processus de définition des besoins {RequiredContext} : String // Méta-Propriété
des parties prenantes.
d’un use case.
{QoS},{SecurityQos},{EnvironmentalQoS} :
String // Méta-propriétés d’un use case.
PriorityLevel : Enumération = {1, 2, .. 10}
{Priority} : PriorityLevel // Méta-propriété
d’un « requirement ».
« Ambiguity » : Stéréotype d’Association.
101
{ConformToNeed} : Boolean // Méta-
propriété de « requirement ».
{Stakeholder} : String // Méta-propriété d’un
« requirement » qui permet de conserver la
trace de la partie prenante concernée par cette
exigence.
Le processus d’analyse des exigences {RequiredContext} : Métapropriété de type
string des stéréotypes
« FunctionalRequirement » et
« PhysicalRequirement ».
« SecurityRequirement », «EnvironmentalReq
uirement » : Stéréotypes de
tel-00336839, version 1 - 5 Nov 2008
« ExtendedRequirement ».
« ImplementationConstraint » : Stéréotype de
« ExtendedRequirement ».
{Risks} : RiskDataType(RiskLevel : RiskKind,
Risk :String) // Méta-propriété de
« extendedRequirement ».
Le processus de conception de « AllocationRequirement » : Stéréotype de
l’architecture
« requirement ».
ObtentionManners : Enumération = {à
acheter, à réutiliser, à construire}.
{ObtentionManner} : ObtentionManner //
Méta-propriété de « Block ».
« InternalLogicalArchitecture » et
« InternalPhysicalArchitecture », deux
DiagramUsage du diagramme de description
interne de blocs (IBD).
« LogicalArchitectureComposition » et
« PhysicalArchitectureComposition », deux
DiagramUsage du diagramme de définition de
102
blocs (BDD).
« Operator » : stéréotype de block.
{MinHumanCapabilities} : string // Méta-
propriété de « Operator ».
AvailabilityType : Enumération = {Make, Buy,
Reuse}.
{Availability} : AvailabilityType // Méta-
propriété de « block ».
{AlternativeIdentifier} : Integer // Propriété de
la note DiagramDescription de l’IBD et du
BDD.
{AlternativeEvaluation} : string // Propriété de
tel-00336839, version 1 - 5 Nov 2008
Nous présentons notre méta-modèle qui sera basé sur SysML. Pour chaque vue
que le processus de conception nécessitera nous réutiliserons une des vues fournies par
SysML, sinon nous inclurons des profiles d’UML2 qui compléteront notre méta-
modèle global. Quand nous construirons nos profiles complémentaires, ils devront être
complètement indépendants du reste du modèle pour privilégier la réutilisation sur la
redondance. En effet si un élément se répète dans deux profiles différents on choisira
de les garder tous les deux pour avoir deux profiles complètement réutilisables, la
différenciation entre les deux éléments se fait par les espaces de noms (namespace).
103
tel-00336839, version 1 - 5 Nov 2008
Nous avons adopté le langage SysML et nous l’avons étendu pour supporter la
conception de systèmes mécatroniques. Nous avons défini un élément intitulé
« Composant mécatronique » ou MC. Nous avons intégré dans ce composant MC une
matrice DSM qui affiche les interdépendances internes du composant. Nous avons
aussi intégré une DSM au système pour avoir une vue globale des interconnexions de
ses composants. Nous avons ensuite intégré l’utilisation des Bond Graphs comme outil
d’analyse. Puis nous avons défini des métriques et des procédures de contrôle de la
qualité des modèles. Finalement nous avons décrit un processus systématique pour la
mise en œuvre de ces éléments au sein de l’outil que nous décrirons dans la partie
faisabilité et expérimentation. Nous allons détailler ces points un par un dans ce qui
suit.
104
échange d’informations, etc. La nature de la connexion a une incidence sur le degré
d’intégration du composant et permet de décider si une séparation des composants
interconnectés est souhaitable. Pour permettre d’obtenir une meilleure conception que
celle proposée par le concepteur, la différentiation des connecteurs doit permettre de
détecter la pertinence de l’intégration du block. Y’a-t-il des composants qui peuvent
être isolés à l’extérieur du block? Cette isolation permet d’obtenir des blocks
hautement intégrés (augmenter la cohésion, voir chapitre métriques) pouvant être
réutilisés. La constitution d’une base de composants réutilisables est un outil pouvant
accélérer fortement la production.
Les connecteurs peuvent être utilisés conjointement avec les ports ou sans
utilisation de ports (figure 6.6). Mais dans SysML seuls les ports sont différenciés par
tel-00336839, version 1 - 5 Nov 2008
le stéréotype « FlowPort ». Par contre les connecteurs sont les mêmes pour les flux, les
événements ou les signaux. L’utilisation d’un connecteur sans spécification des ports
peut donc présenter une sous-spécification du connecteur. Pour remédier à cela nous
proposons le stéréotype de connecteurs « FlowConnector » qui ne peut être utilisé
qu’avec des « FlowPorts », nous représentons des « FlowConnector » par des flèches
en trait gras pour éliminer les annotations textuelles (: « nom_de_stereotype ») qui
peuvent surcharger le diagramme.
CM1
Liaiso n
Pa rt1: Pa rt2:
1 1
Liaison
Pa rt3: Pa rt4:
Po rtA
Po rtB
P ortD
Liaison
Part5: P art6:
P ortC
105
Puis nous proposons aussi des tagged values (méta-propriétés) qui nous
permettront de préciser si le connecteur participe à une fonction critique du block dans
le cas d’un « FlowConnector » et de préciser si le connecteur participe à un échange
temps-réel dans le cas d’un connecteur classique. Ainsi, nous intégrons aux
connecteurs des diagrammes de blocks internes les méta-propriétés suivantes (figure
6.7):
système.
Les ports tels que décrits dans SysML (voir présentation dans le chapitre IV)
permettent de faire une description physique de l’échange avec l’extérieur du block.
Pour plus d’expressivité nous avons besoin de rajouter sur cette couche physique du
langage, une couche fonctionnelle. Cette couche fonctionnelle permettra de distinguer
entre une interface de fixation et une interface de transmission d’énergie ou encore
entre une alimentation électrique et un échange d’énergie électrique. Nous établissons
alors les stéréotypes suivants (voir figure 6.8) :
106
• <<StructuralFlowPort>> : Ce stéréotype permet de décrire que la
fonctionnalité dans laquelle intervient le port est de type purement
structurel (fixation, assemblage, etc).
• <<FunctionnalFlowPort>> : Ce stéréotype permet de spécifier que le
port intervient dans une fonction du système (transmission d’énergie,
communication, etc).
• <<SupportFlowPort>> : Ce stéréotype permet de spécifier un port qui
permet de fournir au système les supports lui permettant de fonctionner
(fourniture d’énergie).
• <<ObservationFlowPort>> : Ce port permet de dire qu’un port est utilisé
pour observer le système (observation de la température, de la vitesse,
tel-00336839, version 1 - 5 Nov 2008
etc.).
107
6.4.3 Intégration de la vue DSM au modèle SysML
Les DSMs peuvent compléter une description UML d’un système en donnant
une vue globale des interdépendances des sous-systèmes. En effet, la représentation
graphique dans UML (boîtes et flèches) devient difficile à appréhender dès que le
nombre d’éléments devient important. Les DSM offrent une vue compacte et globale
des dépendances entre sous-systèmes. [Browning2001] décrit quatre applications
utilisant les quatre types de DSM (Architecturale, organisationnelle,
d’ordonnancement et paramétrée) et montre que les DSM répondent bien à ce besoin
que l’on rencontre avec les systèmes complexes.
108
De plus, cette représentation matricielle est plus adaptée pour dégager des
caractéristiques globales du système. Les diagrammes UML continuent à donner plus
de détails sur des régions du système.
Nous affectons à chaque lien un poids qui est calculé en fonction de deux
critères qui sont le type du connecteur (ou lien) et le type des ports utilisés. Nous
affectons aussi à chaque connecteur une couleur selon qu’il est standard ou de type
flux :
Connector
(standard) Port FlowPort
Sans contrainte
temps-réel 4
RealTime = False
Combinaison interdite
Avec contrainte
temps-réel 8
RealTime = True
FlowPort
FlowConnector Port
Structural Functionnal PoweSupply Observation
Sans contrainte
de criticité 2 5 3 1
Criticity = False Combinaison
Avec contrainte interdite
de criticité 6 10 9 7
Criticity = True
109
fonctionnelle doit être la plus recherchée pour obtenir une bonne conception. Ainsi
l’affectation des poids des connecteurs est choisie de manière à privilégier les
connecteurs participant à la fonction du bloc, de privilégier les connecteurs ayant une
contrainte de criticité ou temps-réel. Ensuite nous avons supposé qu’un
« FlowConnector » est plus important dans une architecture qu’un connecteur
standard. En effet, pour les informations par exemple, une information continue est
moins importante qu’une information événementielle. Nous avons aussi supposé
qu’une contrainte temps-réel était moins importante qu’une contrainte de criticité.
110
l’électronique, l’hydraulique, les Bond Graphs, etc. L’utilisation de ces interfaces est
plus adaptée que l’utilisation d’un outil UML muni d’un profile ModelicaML car
l’utilisation des outils cités ci-dessus permet de travailler sur un modèle qu’on peut
simuler et améliorer au fur et à mesure. Nous considérons que ce genre d’outils doit
être utilisé comme l’atelier de réalisation virtuelle et de simulation. Après la
conception générale utilisant SysML, nous générons le modèle Modelica du système
ou d’une partie du système pour pouvoir utiliser ce modèle comme un premier
prototype et une base de travail pour l’atelier de réalisation virtuelle et de simulation.
Cette approche permet d’utiliser les points forts de l’outil SysML pour la conception
générale et de ne pas perdre les avantages qu’offrent les outils de simulation.
Dans cette thèse nous avons pris pour exemple d’extensibilité, l’intégration de
Bond Graphs pour l’analyse énergétique des systèmes. Nous avons donc crée le profile
BlockBondGraphs.
111
profile. Dans [Borutzky1999] Borutzky fait une mise en correspondance entre les
Bond Graphs et la modélisation orientée objet. Nous constatons aussi cette
correspondance et nous la décrivons par un profile Bond Graphs pour SysML.
Pour des soucis de clarté et d’organisation, nous avons jugé utile de consacrer
un chapitre indépendant dédié à la présentation de ce profile BlockBondGraphs de
manière détaillée, chapitre intitulé « Le profile SysML Bond Graphs ».
112
y intégrant des éléments nécessaires pour décrire un composant mécatronique. Nous
appelons cette extension « composant mécatronique » ou CM qui est un composant
hautement intégré contenant des parties opératives, des parties commandes, des
actionneurs et des capteurs. Nous définissons donc ce CM comme un stéréotype de
block SysML. Un CM est décrit par une méta-propriété (Fonctionnality : string)
définissant ses fonctions dans le système et une méta-propriété (CorrectConditions :
string) spécifiant ses contraintes de fonctionnement correct. Un composant
mécatronique contient une DSM qui décrit les interconnexions de ses composants.
Nous définissons des compartiments pour séparer les différents parts qui forment le
composant mécatronique. La figure 6.9 suivante représente le stéréotype
« MechatronicComponent » tel que nous le définissons :
tel-00336839, version 1 - 5 Nov 2008
113
ensemble de parties contrôle, de parties opérative, de capteurs, d’actionneurs et,
récursivement, d’autres composants mécatroniques.
Une question importante se pose ici quant à la relation entre un Block et une
BlockProperty. Est-ce le même rapport qu’on trouve entre une classe et ses attributs ?
En réalité, le diagramme IBD n’est pas un diagramme décrivant des instances. Un IBD
est un diagramme de structure composite tel que décrit dans la spécification d’UML2
[UML2007]. C’est donc une structure interne qui représente des connections entre des
rôles et non entre des instances [Weilkiens2008]. Cette nuance peut générer des
difficultés de compréhension et donc de communication entre des utilisateurs qui n’ont
pas forcément de connaissances en UML2. Certains ingénieurs habitués à travailler
114
avec des langages tels qu’AADL [AADL2006] pourraient comprendre qu’un Block
représente le système, alors que ce n’est qu’un plan du système. En effet en AADL les
deux niveaux ComponentType et ComponentImplementation correspondent bien à un
système et sa composition non à un plan du système et à une structure possible de ce
système.
115
l’appelons « deploiment ». Le concept de déploiement est nécessaire pour allouer
physiquement un comportement à une structure.
6.4.8.2 Le pattern de création d’un IBD pour le composant mécatronique muni des
extensions apportées
116
tel-00336839, version 1 - 5 Nov 2008
mécatronique [Isermann2000].
22
Les connecteurs en trait fort sont des « FlowConnector ». Le port circulaire est un
« StructuralFlowPort » et il représente un point de fixation du CM.
117
6.4.8.3 Le Pattern du système à boucle fermée dédié au bloc de contrôle
Un système à boucle fermée peut être décrit par le diagramme suivant (figure
6.16):
Système à boucle fermée
<<Block>>
Unité de
mesure
118
6.5 Cycle de conception 15288 appliqué aux modèles adoptés
Dans cette partie nous présentons notre application du standard IEEE 15288 en
tenant compte des modèles induits par l’application de l’architecture MDA. Ce qui
résulte en l’instanciation d’une étape de conception du système contenant une sous-
étape de développement du prototype virtuel, suivie d’une étape de développement du
système. Dans la figure 6.18 suivante le terme système considéré (System-of-Interest)
est le système ayant pour frontières les limites des intérêts et des responsabilités de la
personne qui l’appréhende. Dans le processus décrit ci-dessous, nous lions, par
extension, le système considéré à l’étape du cycle de conception, réalisée par la ou les
personne(s) concernée(s). Le système objectif est la perception que cette (ces)
personne(s) a (ont) du système réel.
tel-00336839, version 1 - 5 Nov 2008
119
Le cycle démarre en ayant pour objectif la conception du système. Au départ, le
système considéré est donc le système objectif. La définition du concept est une phase
d’identification de nouveaux concepts, d’évaluation de la faisabilité de solutions et
d’identification des besoins des parties prenantes et exigences préliminaires sur le
système. Cette phase commence par un processus de définition des besoins puis une
phase d’analyse de ces besoins en considérant le système objectif, se poursuit, ensuite,
par une étape de développement d’un prototype du système, le système considéré dans
cette partie est donc un prototype du système. Cette étape de développement du
prototype est réitérée jusqu’à obtention d’un prototype satisfaisant. La deuxième phase
est la phase de développement du système objectif qui commence par un processus de
conception de l’architecture.
tel-00336839, version 1 - 5 Nov 2008
Le cycle peut être réitéré récursivement pour des sous-systèmes ou des éléments
du système considéré. Dans cette thèse nous nous penchons sur les étapes concernées
par SysML. Dans la figure précédente nous pouvons voir que la portée de SysML
s’arrête au processus de conception de l’architecture du système. Nous allons décrire
l’application de ce cycle de conception à SysML muni des extensions décrites
précédemment. La figure 6.19 représente le cycle associé à l’étape de définition du
concept en faisant la mise en correspondance entre les activités des processus
élémentaires et les modèles SysML (étendu).
120
tel-00336839, version 1 - 5 Nov 2008
121
tel-00336839, version 1 - 5 Nov 2008
Dans ce qui suit, nous décrivons les mises en correspondances entre le cycle
décrit précédemment et les modèles adoptés.
122
i. définition des exigences sur les fonctions moyennant le diagramme de
contexte et le diagramme des exigences fonctionnelles (diagramme des
exigences muni du DiagramUsage « FunctionalRequirements »).
ii. identification des services moyennant le diagramme des use cases.
123
ii. Définition des interconnexions entre composants du système moyennant le
diagramme interne des blocks IBD.
iii. Puis génération des DSM correspondantes à chaque composant et au
système.
iv. Calcul des métriques de vérification de la qualité des modèles. Et
proposition d’améliorations à partir de l’algorithme de réorganisation de la
structure interne d’un block qui utilise la DSM de ce block en cas de
métriques faibles.
tel-00336839, version 1 - 5 Nov 2008
124
Figure 6.24. Le processus de réalisation et d’intégration appliqué à SysML étendu.
125
Le premier processus de l’étape de développement du système est le processus
de conception de l’architecture qui est la limite de la portée de SysML. Le processus
de conception de l’architecture du système correspond aux activités de (figure 6.26):
i. Décomposition du système moyennant le diagramme de définition des
blocks BDD.
ii. Définition des interconnexions entre composants du système moyennant
le diagramme interne des blocks IBD.
iii. Puis génération des DSM correspondantes à chaque composant et au
système.
iv. Décisions sur les composants (Achat, Fabrication, Réutilisation)
moyennant les extensions proposées dans le paragraphe (6.3.2-D).
tel-00336839, version 1 - 5 Nov 2008
6.7 Conclusion
126
l’intégration des Bond Graphs pour l’analyse énergétique et pour mettre en relief les
capacités d’extension de cette méthodologie (capacités héritées de SysML).
127
Chapitre 7
128
7.1 Introduction
Les Bond Graphs sont un outil efficace pour l’analyse énergétique de systèmes
physiques hétérogènes. Ainsi cette intégration des Bond Graphs permettra d’offrir un
outil d’analyse pour le concepteur. Dans ce chapitre nous présentons le profile pour
SysML qui intègre l’utilisation des Bond Graphs. Nous utilisons une extension des
diagrammes de blocks internes (ou Internal Block Diagram IBD) pour ce que ce
diagramme a en commun avec la sémantique d’un Bond Graph. En effet, ces deux
diagrammes proposent une vue statique d’un système. Nous développons cette
argumentation dans le paragraphe introductif. Puis nous détaillons notre extension et
nous illustrons son application par un exemple.
tel-00336839, version 1 - 5 Nov 2008
Nous avons intitulé ce profile Block Bond Graphs BBG car dans cette
proposition nous associons un Bond Graph à un block qui est l’élément de base dans
SysML. Pour donner une sémantique formelle à un profile UML, une approche
consiste à avoir une étape de traduction du profile vers un langage dont la sémantique
formelle est ensuite établie. Cette approche est utilisée par W. Damm et al dans
[Damm2005] pour donner une sémantique formelle à rtUML à travers la traduction
d’un modèle rtUML dans le langage krtUML, ensuite ils établissent la sémantique
formelle de krtUML en utilisant le formalisme des systèmes de transitions
symboliques. De même, la sémantique formelle du profile présenté ici est établie par
traduction du profile vers le langage Modelica muni de la bibliothèque BondLib qui
est un modèle mathématique.
129
Figure 7.1. Les 4 Possibilités pour construire un langage
tel-00336839, version 1 - 5 Nov 2008
130
• Méthode D : Nous créons un nouveau méta-modèle à partir duquel on construit
un nouveau langage qui aura l’avantage de correspondre complètement au
domaine visé. Cette solution n’est avantageuse que lorsque l’on ne peut pas
utiliser l’une des autres méthodes car l’outil doit être construit à partir de zéro
même si des outils commencent à proposer des « usines de logiciels » (ou
software factories) qui génèrent des éditeurs graphiques munis de générateurs
de codes, tel que les DSL Tools de Microsoft [DSL_Tools].
L’un des avantages majeurs de SysML est qu’il bénéficie des outils UML déjà
sur le marché depuis plus d’une quinzaine d’années. Ainsi, si la spécification de
SysML introduit quelques incompatibilités avec UML, nous n’en ajoutons pas. En
d’autres termes, si SysML n’est pas exactement un profile UML, notre proposition doit
tel-00336839, version 1 - 5 Nov 2008
être, formellement, un profile SysML. Nous ne créerons donc que des extensions aux
éléments du langage SysML.
131
Dans ce profile BBG, nous privilégions l’aspect sémantique du diagramme
contrairement à l’approche utilisant les diagrammes d’activités [TURKI2005]. En
effet, le diagramme d’activités a une différence sémantique majeure car c’est un
diagramme dynamique qui est associé à un modèle d’exécution, de la même manière
qu’un GRAFCET, un réseau de Petri, un automate hybride, etc. Ce diagramme
d’activités présente de grands avantages syntaxiques que sont les nœuds et que nous
avons utilisés pour décrire les jonctions 0 et 1 des Bond Graphs, mais il y a un risque
de confusion sur la sémantique du diagramme d’activités étendu aux Bond Graphs, car
un Bond Graphs est un modèle statique (du point de vue du langage pas du système),
c’est-à-dire qu’il ne met pas en œuvre un modèle d’exécution ; c’est une
interconnexion de composants.
tel-00336839, version 1 - 5 Nov 2008
Ceci étant, nous ne devons pas négliger les aspects syntaxiques du diagramme
afin qu’un BBG puisse être reconnaissable en tant que Bond Graph classique. En effet,
cet outil étant destiné à des ingénieurs qui ne sont pas forcément familiers avec UML,
ils doivent retrouver dans ce diagramme le maximum de ressemblance avec un Bond
Graph tel qu’ils ont eu l’habitude de le décrire sous un éditeur dédié.
Dans un IBD on peut décrire des structures supportant les flux d’objets alors
que dans les diagrammes d’activités nous décrivons des flux de contrôle, aspect qui
n’existe pas dans un Bond Graph. Nous allons dans ce qui suit détailler le profile BBG
en mettant l’accent sur les éléments de langage les plus importants.
132
7.2.3.1 Les blocks en SysML
L'élément principal introduit en SysML est le "Block" (figure 7.2). Un bloc peut
avoir des ports ainsi qu'une structure interne. Il représente un système ou un
composant d'un système. Des compartiments peuvent être représentés (constraints,
operations, parts..) et d'autres peuvent être définis par le concepteur pour représenter
des propriétés particulières.
tel-00336839, version 1 - 5 Nov 2008
• Le diagramme des blocs internes IBD est basé sur le concept de bloc :
– Le Block est un stéréotype de classe (figure 7.3).
– Il permet de décrire l’architecture d’un système; un Système est composé
de plusieurs autres sous-systèmes.
• Les propriétés d’un bloc sont des stéréotypes de la propriété classique et sont au
nombre de trois (figure 7.4):
133
Figure 7.4 Les propriétés utilisées dans un IBD [SysML2007].
Les ports ont été étendus en introduisant le concept de « FlowPort » qui permet
tel-00336839, version 1 - 5 Nov 2008
134
7.2.3.3 Autres extensions
L’élément principal d’une description Bond Graph est le noeud qui peut être de
deux niveaux de granularité différents ; il peut représenter un sous-système complexe
135
ou un composant élémentaire pouvant être assimilé à un phénomène énergétique
élémentaire.
23
Figure 7.9. Stéréotypes BBG du Block SysML
Les composants élémentaires Se, Sf, R, C et I sont des 1-ports, Tf, Gy, De et Df
sont des 2-ports, on définit une FLowSpecification24 à chacun d’entre eux. La
spécification du flux associée à chacun des éléments R, C et I contient un FlowPort bi-
directionnel atomique25. On peut définir un sens par défaut pour chacun de ces ports,
ainsi pour R, C et I la valeur par défaut de la méta-propriété « direction » est « In »
23
. Noter que UML4SysML (UML for SysML) est un package qui contient un sous-ensemble des éléments de langage
d’UML2
24
. Une FlowSpecification est un ensemble de « FlowPort » d’un block.
25
. Le FlowPort atomique est un port utilisé dune manière unique dans un block.
136
(voir définition des FlowPorts page 61 [SysML2007]. Le sens de ces ports ne doit pas
être contraint au niveau du profile car dans certains cas en Bond Graphs ces éléments
peuvent être utilisés différemment. Pour Se et Sf on définit un FlowPort uni-
directionnel atomique avec « direction » contrainte à «Out ». Pour De et Df on définit
un FlowPort uni-directionnel atomique avec « direction » contrainte à « In » et un
deuxième à « Out ». Pour Tf et Gy une entrée et une sortie sont définis par défaut dans
leurs spécification de flux. Les éléments modulés sont représentés par une lettre « M »
qui préfixe le nom et par un FlowPort en plus dans la spécification du flux et qui est
contraint à être une entrée.
Dans cette proposition nous décrivons les jonctions 0 et 1 des Bond Graphs par
des blocs stéréotypés. Les jonctions en Bond Graphs sont des 3-ports, ainsi on
introduit trois FlowPorts bidirectionnels atomiques dans la spécification de flux de
chacune des jonctions (figure 7.10). Pour l’aspect graphique, cela dépend toujours de
l’outil CASE utilisé mais le plus approprié pour se rapprocher de la notation Bond
Graphs est d’affecter à un block jonction une forme circulaire ou même transparente
ne faisant apparaître que le label 0 ou 1 selon le stéréotype assigné.
137
Figure 7.11. Les extensions permettant la représentation des liens
138
-Causalité de Tf: Les deux traits doivent être ou adjacents à Tf ou dans l’autre
extrémité, comme les deux connecteurs ont un sens contraire l’un à l’autre, alors les
deux connecteurs doivent avoir des causalités inverses.
-Causalité de Gy: Les causalités des deux connecteurs sont mises égales.
Les diagrammes en block sont utilisés conjointement avec les Bond Graphs
pour exprimer l’aspect commande du système. Pour cette raison nous décrivons ici un
profile “BlockDiagramProfile” que nous intégrons au même titre que le BBG dans
SysML.
tel-00336839, version 1 - 5 Nov 2008
Chaque diagramme SysML est conforme à une description générique (figure 7.13).
139
Figure 7.13. Modèle d’un diagramme SysML
26
. Noter que pour les diagrammes on peut définir des stéréotypes même si les diagrammes ne font pas partie du méta-modèle
UML. Ils ont leur propre méta-modèle.
140
au diagramme en bloc pour un système asservi.
7.4 Conclusion
Nous avons proposé une extension pour SysML intégrant les Bond Graphs.
Nous sommes convaincus que l’intégration des Bond Graphs sera un atout à SysML
qui doit s’imposer en tant que langage standard couvrant les phases d’analyse des
besoins, d’analyse du système et sa conception. En effet SysML doit être la base d’un
outil de conception qui regroupe les différents domaines technologiques concourrant à
la conception d’un système mécatronique, et les Bond Graphs sont un parmi les outils
destinés à effectuer l’analyse et la conception basées sur une approche systémique.
141
Notre proposition n’utilise que des mécanismes d’extension classiques et peut
donc être intégrée dans tout outil supportant SysML et permettant la création de
profiles ce qui est devenu une fonctionnalité de base pour tout outil de qualité et
reconnu à l’échelle industrielle. Avec cette nouvelle proposition, nous avons un
diagramme permettant de décrire des Bond Graphs et ayant une sémantique statique au
même titre que les BG.
L’une des utilités des Bond Graphs est la simulation du système. La prochaine
tel-00336839, version 1 - 5 Nov 2008
27
. Modelica est un langage orienté objet pour la description textuelle de systèmes physiques et leurs simulation.
142
Chapitre 8
143
8.1 Introduction
Dans ce chapitre nous allons présenter un ensemble de métriques destinées à
améliorer la conception. Les métriques que nous avons établies concernent le
diagramme de blocks SysML muni des extensions présentées. En ingénierie logicielle
les métriques des diagrammes UML ont été développées pour améliorer la qualité des
modèles. Des techniques de transformation de modèles sont ensuite appliquées pour
améliorer la configuration d’un modèle donné et proposer cette nouvelle configuration,
la décision revient toujours au concepteur de garder ou non cette proposition.
144
exemple retrouver les composants mécatroniques qui présentent une faible intégration
et qui doivent donc être reconçus. Nous fixons aussi une règle ; Le choix doit toujours
revenir au concepteur, nous lui proposons un moyen de vérification de son architecture
tôt dans le cycle de conception sans lui imposer une solution particulière. Les critères
que nous définissons sont les suivants :
• Dans un bloc, un composant de ce bloc qui n’interagit pas avec les autres
composants du bloc devrait quitter le bloc.
• Dans un bloc, un composant de ce bloc qui n’a qu’une interaction sortante vers
les autres composants du bloc est éligible à quitter le bloc.
• Dans un bloc, un composant de ce bloc qui n’a que des interactions entrantes de
composants du bloc mais ne fournissant rien aux autres composants du bloc est
tel-00336839, version 1 - 5 Nov 2008
Concevoir un système mécatronique peut être une tâche très complexe, c’est
pour cette raison que nous devons respecter quelques patrons de conception en fin
d’obtenir une bonne conception. Une bonne conception est une conception qui permet
une bonne réutilisation et une bonne encapsulation. La loi de Constantine
[Stevens1974] annonce : « Une structure est stable si la cohésion est forte et le
couplage faible ». [Endres2003] qui analyse cette loi explique que la cohésion est la
communication intra-modèle et que le couplage est l’ensemble des interactions inter-
modèles. Il explique qu’une telle structure permet qu’un composant puisse être
implémenté, intégré ou échangé en ayant un minimum d’effets sur le système. La
stabilité du système veut dire qu’il est tolérant face aux problèmes qui peuvent arriver
comme la modification de la conception. Dans le cas d’un système mécatronique nous
définissons une bonne conception comme étant un graphe reliant des sous-systèmes
hautement intégrés (à haute cohésion). (figure 8.1)
145
Figure 8.1. Système mécatronique présentant une architecture bien conçue.
Pour pouvoir obtenir cette architecture, nous devons retrouver les sous-systèmes
hautement intégrés. Ensuite, nous définissons l’indicateur d’intégration mécatronique
IIM, qui sera utilisé dans un diagramme des blocks internes SysML pour estimer le
degré d’intégration (ou cohésion) d’un block ou d’un composant mécatronique.
(1) ni
CCi =
mi + NbMCi
146
8.4.2.2 L’indicateur de couplage syntaxique
Nous définissons cette situation par le couplage syntaxique minimal CSM d’un
ensemble de composants. CSM est égal à 2 pour un couple de composants.
nombre de connecteurs existants entre les parties contrôle et les parties opératives
NCE, divisé par le nombre minimum de connecteurs possibles entre ces deux sous-
ensembles NMCP.
NbCt : Nombre de parties contrôle.
NbOp : Nombre de parties opératives.
(3) NCE
ICS =
NMCP
147
Figure 8.2. IBD exemple.
tel-00336839, version 1 - 5 Nov 2008
Dans cet exemple nous obtenons un résultat très bas car le concepteur a utilisé
les nested connectors28 (connecteurs traversant en profondeur les frontières des
composants), le calcul confond alors les composants qui ne sont pas dans un même
niveau hiérarchique.
28
Le nested connector est un connecteur utilisé avec les boites blanches et ne respectant pas le pattern de
l’encapsulation [SysML page 43]
148
<<MechatronicComponent>>MC_1
<<ControlPart>>CP1: <<OperativePart>>OP1:
: : :
: : :
: : :
:
: :
<<ControlPart>>CP2: <<OperativePart>>OP2:
: :
: :
: :
: :
moins directement. Il se peut que CP1 soit en réalité couplé avec OP2 dans une boucle
passant par OP1 et/ou CP2 mais cette seule vue de l’architecture qu’est le IBD ne
permet pas de voir cela, c’est pour cette raison que nous avons appelé cet indicateur
l’indicateur de couplage syntaxique.
149
Nous pouvons vérifier qu’un cycle syntaxique est aussi logique en utilisant les
diagrammes d’états des composants et les diagrammes paramétriques de chaque état.
Ainsi, pour obtenir les cycles logiques nous appliquons cet algorithme :
• Pour chaque cycle, nous parcourons ses composants, si les ports de ce
connecteur n’interviennent pas dans l’une des équations paramétriques de son
diagramme d’états, le cycle est interrompu. Nous concluons que le cycle est
seulement syntaxique, sinon le cycle est aussi logique.
n’est pas un cycle logique, sinon, nous pouvons considérer qu’il l’est et dans ce cas,
nous ajoutons deux connecteurs virtuels (utilisés pour le calcul) entre CP1 et OP2 et
deux entre CP2 et OP1 puis nous recalculons ICS, nous obtenons :
ICE = 7 / 8 = 0,875
L’amélioration de la cohésion d’un block (que nous appellerons ACB) est une
transformation de modèle qui permet d’améliorer le partitionnement d’un block en
augmentant la cohésion de ses composants. Cet algorithme est appliqué après avoir
appliqué l’algorithme qui élimine les nested connectors. Il s’agit de restructurer un
150
block de manière à obtenir un block composé de composants hautement intégrés. Soit
l’exemple de la figure suivante (figure 8.4) :
151
ses composants sont opératifs, nous le transformons en <<OperativePart>> (et même
chose pour <<ControlPart>>), s’il contient un seul composant, nous le réduisons à ce
composant qu’il contient. Nous obtenons le résultat suivant (figure 8.7):
Le résultat montre que le block de la figure 8.3 est hautement intégré. Si nous
obtenons un résultat proche de zéro, nous pouvons conclure que le block est très peu
intégré et peut être dispatché. Si le résultat est très supérieur à 1, nous pouvons
conclure qu’il y a un mauvais partitionnement et qu’une re-conception pourrait aider à
réduire le nombre de communications entre les composants du block.
152
NCB : Nombre de connecteurs dans le block.
(4) NCSI
A IB =
NCB
Cette métrique nous donne une évaluation de l’autonomie d’un block donné, ainsi pour
l’exemple de la figure 8.3 :
AIB = 5 / 10 = 0.5
Ce résultat montre que le block de la figure 8.3 n’est pas très autonome. Plus le
résultat est proche de 1, plus on peut dire que le block est autonome. L’autonomie peut
être un objectif de qualité pour un modèle d’un composant mécatronique, ce qui
améliore en plus la modularité et la réutilisation.
tel-00336839, version 1 - 5 Nov 2008
L’indicateur d’interactivité Interact d’un block est une métrique qui permet de
mesurer le degré d’interactivité d’un block, il est calculé par la somme de ses entrées
et sorties.
Soir si le nombre des entrées d’un block, vi le nombre de ses sorties et pi le nombre de
ses autres ports, alors :
(5) Interact i = s i + v i + p i
Cette information peut être utilisée dans le cas où l’on voudrait apporter des
modifications à un modèle. Elle nous permet d’évaluer les effets de ce changement.
8.5 Conclusions
Dans ce chapitre, nous avons introduit quelques métriques pour les diagrammes
SysML étendus pour identifier des mauvaises décisions de conception potentielles.
Nous avons aussi présenté les transformations de modèles qui peuvent être appliqués
pour améliorer le modèle. Pour chaque métrique nous avons présenté son objectif et sa
formule. Pour les critères du modèle, nous avons décrit un algorithme permettant
d’améliorer le modèle. Nous avons aussi illustré chaque indicateur à travers un
exemple utilisant un IBD pour montrer l’impact de ces outils sur la qualité des
modèles SysML. Ces métriques ont été développées pour fournir un point de départ
153
pour la transformation de modèles en vue d’améliorer la qualité des modèles en
mécatronique.
154
tel-00336839, version 1 - 5 Nov 2008
Chapitre 9
IX - Expérimentations
155
9.1 Exemple de mise en ouvre de la méthodologie MISSyM
La première tâche est de structurer les besoins textuels du cahier des charges
pour décrire les besoins des parties prenantes en définissant les exigences sur les
fonctions du système.
156
Figure 9.2. (Rappel) Le processus de définition des besoins.
«FunctionalRequirement»
SystèmeAscenceur
Text= « Le système de ascenseur doit être capable de transporter des passagers entre le premier et
le dernier étage, d’ouvrir et de fermer la porte, d’aller chercher des passagers demandeurs du
tel-00336839, version 1 - 5 Nov 2008
service, ascenseur peut être appelé à partir d’interfaces installées à chaque étage, les passagers
choisissent leurs étages destination à partir d’une interface installée dans la cabine.… »
Id= 1.0
«FunctionalRequirement» «FunctionalRequirement»
TransportPassagers ControlEtage
Text= « L’ascenseur doit être Text= « Les passagers doivent
capable de transporter des pouvoir appeler l’ascenseur à
passagers entre les différents partir de l’étage où ils se
étages en répondant à leurs trouvent.»
demandes.» Id=1.2
Id= 1.1
«deriveReqt»
«deriveReqt»
«SecurityRequirement»
«FunctionalRequirement» «PerformanceRequirement»
SecuritéPassagers
ControleCabine TempsReponse
Text= « La sécurité des
Text= « Les passagers doivent Text= « Un passager qui
«deriveReqt» passagers doit être assurée
avoir accés à l’interface qui leur appelle un ascenseur doit être
à chaque instant du
permet de choisir leurs étage servi dans les plus brefs
processus de transport.»
destination. » délais.»
Id= 1.1.2
Id=1.1.1 Id= 1.2.1
«PerformanceRequirement»
PerformanceTransport
«FunctionalRequirement» Text= « Tous les passagers dans
«deriveReqt»
Historique l’ascenseur doivent être transportés vers
leurs destinations dans les plus brefs
Text= « Les appels de
délais en utilisant les modes de
l’ascenseur et ses
mouvement à grande vitesse lorsque cela
mouvements doivent être
est possible.»
archivés pour servir à des
Id=1.1.3
futures analyses pour
l’amélioration du service.»
Id= 1.1.3.3
<<PerformanceRequirement» «PerformanceRequirement»
PerformancesMoteur PrioritésService
Text= « Le moteur de l’ascenseur doit Text= « Le service doit être fourni
être controllable pour touner à en diminuant le temps d’attente
différents modes de vitesses;» moyen des passagers.»
Id= 1.1.3.1 Id= 1.1.3.2
157
Les éléments de modélisation de ce diagramme permettent de décomposer des
besoins en d’autres plus élémentaires, de décrire des inférences (le stéréotype
<<deriveReqt>>) de nouvelles exigences, de documenter les raisonnements desquels
le concepteur juge utile de garder une trace.
La deuxième étape est de décrire les services que le système doit fournir dans
des diagrammes de cas d'utilisation (figure 9.4). Il s’agit des besoins fonctionnels.
uc SevicesAscenceur
Elevator
AppelerAscenceur
OuvertureFermeturePorte
<<include>> <<include>>
UsagerPotentiel
tel-00336839, version 1 - 5 Nov 2008
Entretenir
SeDeplacer
PersonnelEntretien
<<extend>> «include»
ChoisirEtage
ControllerDeplacement
Usager
Le deuxième processus (figure 9.5) est celui d’analyse des exigences qui permet
de transformer des exigences sur des fonctions en exigences sur le système.
158
Au cours de ce processus, chaque cas d’utilisation est décrit par un diagramme
des séquences (figure 9.6), ce qui permet d’identifier des sous-systèmes, les
interactions qui les lient et les exigences inférées sur ces sous-systèmes.
tel-00336839, version 1 - 5 Nov 2008
Ce diagramme nous permet de passer d’un modèle basé sur les fonctions à un
modèle basé sur les composants du système. Ce qui permet de dresser alors des
diagrammes d’exigences sur ces composants/sous-systèmes. Dans ce diagramme des
exigences (figure 9.7) nous montrons la mise en œuvre des extensions proposées dans
le paragraphe 6.3.2.
159
<<SystemRequirements>>
req ExigencesControlAscenseur
«PhysicalRequirement»
ExigencesPCAscenseur
Text= « La partie commande de l’ascenseur doit comporter une interface interne et une interface
externe installée à chaque étage. L’interface externe de chaque étage doit comporter les boutons
perméttant d’appeler l’ascenseur. Si l’usager appuie sur le bouton monter, l’ascenseur…. »
Id=3.1
«PerformanceRequirement»
TempsDeRépExterne
«DesignConstraint» «PhysicalRequirement» Text= « Si le système est libre, il
EmplacementInterfaceExterne MenuInterfaceInterne doit arriver à l’étage de l’usager
en moins de 40 sec ».
Text= « L’emplacement de Text= « L’interface interne doit Id=3.1.2
l’interface à chaque étage doit être permettre de choisir les étages, et
fixée à la portée d’un individu de informer sur la position actuelle de
moyenne taille » la cabine. »
Id=3.1.1 Id=3.1.2
«deriveReqt»
«deriveReqt»
«deriveReqt»
tel-00336839, version 1 - 5 Nov 2008
«SecurityRequirement» «SecurityRequirement»
ContactAvecStandard DéplacementCabineAmorti «PerformanceRequirement»
Text= « La cabine doit AlignementCabineEtage
Text= « La cabine doit fournir un
système de communication accélérer et décélérer sans Text= « Dans des conditions
direct et fiable avec le standard brusquer les usagers.» normales, la cabine doit
du bâtiment.» Id= 3.1.2.1 s’arrêtter en face de l’étage avec
Id= 3.1.2.1 une marge maximale de 5mm»
Id= 3.1.2.2
«deriveReqt»
«SecurityRequirement»
«TestCase»
DefinitionProcédureDévacuation
TesterProcéduresDévacuation
Text= « Une procédure d’évacuation «Verify»
Text= « Des simulations de panne
en cas de panne doit être définie,
doivent être réalisées pour vérifier
affichée dans la cabine et enseignée
les procédures d’alerte de
aux personnels du bâtiment.»
pannes »
Id= 3.1.2.1.1
Figure 9.7. Diagramme des exigences utilisé en tant que support pour
l’analyse des exigences et la description des exigences sur le système.
160
Figure 9.8. (Rappel) Le processus de conception de l’architecture.
<<LogicalArchitecture>>
bdd Ascenseur
«composantmécatronique»
Ascenseur
«Operativeblock» «ExternalInterfaceBlock»
«Controlblock» POAscenseur InterfaceGuidageCabine
PCAsceuseur
InterfaceExterne
161
tel-00336839, version 1 - 5 Nov 2008
162
Figure 9.12. Application du partitionnement de la DSM sur l’exemple.
tel-00336839, version 1 - 5 Nov 2008
163
L’application de l’algorithme d’amélioration de la cohésion (paragraphe
8.4.2.4) donne le résultat de la figure 9.13. L’ensemble hautement intégré {CP, CCab,
Cab, Mot} est inséré dans un nouveau composant mécatronique. Les autres
composants ayant une interaction faible avec cet ensemble sont gardés en dehors du
nouveau composant mécatronique. Des ports sont ajoutés aux frontières du CM pour
respecter l’interdiction des nested connectors.
Nous utilisons pour cela les allocations pour allouer du comportement aux
différents composants/sous-systèmes. Nous pouvons ainsi allouer un diagramme
d’états à un block (figure 9.15).
164
ibd ControlleurCabine
allocatedFrom posCabine
«statemachine»Controlle
CorrectionHauteur
urCabine «block»
CapteurPosition_cabine
«block» «block»
Alarme Controlleur_cabine «block»
arrivée ControlMoteur
HauteurPorte
«block»
AfficheurSegments Ouvre/Ferme
numEtage «block»
CapteurHauteurCabine
EtatPorte
«block»
«block»
Controlleur_Porte
SystemeSecuritePorte
tel-00336839, version 1 - 5 Nov 2008
OuvertureAsync
Un diagramme d’états (figure 9.16) peut ainsi être associé aux composants pour
décrire les comportements des composants dits réactifs ; qui réagissent à des
événements. Ce comportement peut être hybride par l’association d’un comportement
continu à un état particulier.
165
stm ControlleurCabine
AppelCabine/
Repos Deplacement
Démarrage
MiseHS/
Arrêt
Stop/OuverturePorte OK[EtatPorte=Fermée]/
PorteOuverte/
MvtVitesseNormale
OrdreAcc/
allocatedFrom
«ConstraintBlock»
MouvementGrandeVitesse
MiseHS/
MvtGrandeVitesse OrdreDecelration/
tel-00336839, version 1 - 5 Nov 2008
166
9.2 Implémentation de la méthodologie MISSyM
9.2.1 Choix de l’outil
Nous reprenons ici la définition donnée par Deursen, Klint et Visser dans
[Deursen2000] : « Un DSL est un langage de programmation ou un langage de
spécification exécutable, qui offre avec des notations et des abstractions appropriées
l’expressivité nécessaire et souvent restreinte à, un domaine de problèmes
particulier. »
Deurse, Klint et Visser, ajoutent que la puissance de ces langages est qu’ils sont
totalement dédiés.
Nous avons implémenté un éditeur pour Bond Graphs sur la plateforme DSL
Tools. La figure 9.18 montre la structuration de cette implémentation :
• Nous commençons par définir le modèle dans le couloir vertical gauche
« Classes ans Relationships ». Nous décrivons alors les méta-classes
avec leurs propriétés (exemple des méta-classes C, I, Jonction_0 munis,
par héritage, d’un nom, d’une valeur et d’une unité) et les liens qui
peuvent exister entre ces méta-classes (exemple du lien
NodeElementReferencesTargets voir figure 9.18).
• puis nous définissons les éléments graphiques dans le couloir vertical
droit « Diagram elements » en leurs associant les icônes lorsque
nécessaire.
167
• Finalement, nous associons ces éléments graphiques aux méta-classes
qu’elles représentent et nous générons automatiquement l’éditeur
graphique Bond Graphs à partir de cette description graphique.
tel-00336839, version 1 - 5 Nov 2008
Figure 9.18. Description du langage Bond Graphs avec l’outil DSL Tools.
168
méta-modèle est propre à l’outil donc toute possibilité d’échange du modèle doit
passer par le fichier XMI généré puis par la transformation vers un autre format XMI
utilisant le méta-méta-modèle de l’outil cible, ce qui rend l’échange trop compliqué.
De plus, si notre méta-modèle devient très grand, l’utilisation de l’éditeur devient un
peu délicate. La structuration du méta-modèle n’est pas bien supportée (pas de
packages). L’outil est très bien adapté pour les petits langages (qui est la définition
d’un DSL), mais pour des langages plus complexes avec plusieurs diagrammes, cet
outil n’en a pas la vocation.
169
9.2.2 Présentation d’Objecteering MDA Modeler
Nous avons choisi d’utiliser cet outil car il permet de bien structurer l’ensemble
des éléments que nous avons décrit dans la définition de MISSyM (Sous-profiles,
design-patterns, séparation des traitements tels que les métriques et la génération de
code).
Figure 9.19. Architecture des outils MDA Modeler et UML Modeler d’Objecteering.
170
9.2.3 Implémentation des profiles proposés
171
<<BG_System>>
ServoSystem
Mass:
<<Se tP oint>>
Se tP oint:
_
+ <<BG_PowerFlow>>
<<Tra nsm ittence>> <<BG_InformationFlow>> {e (U), f (I), Id (1)}
C ontroller:
A mpli: Jonction1: Engine_I:
Comparator:
<<BG_InformationFlow>>
BondLib.Sources.mSe mSe;
BondLib.Junctions.J1p3 j1p3_1;
BondLib.Passive.I i(I=3);
BondLib.Passive.GY gY(r=2);
BondLib.Passive.TF tF(m=3);
BondLib.Junctions.J1p3 j1p3_2;
BondLib.Passive.I i1;
BondLib.Sensors.De de; Déclaration des composants avec leurs
BondLib.Sensors.Pbond pbond; paramètres en utilisant les librairies
BondLib.Sensors.Pbond pbond1; disponibles tel que la BondLib pour les
BondLib.Sensors.Pbond pbond2; composants Bond Graph et
BondLib.Sensors.Pbond pbond3; Modelica.Blocks pour les éléments du
BondLib.Sensors.Pbond pbond4; diagramme en blocks.
BondLib.Sensors.Pbond pbond5;
BondLib.Sensors.Pbond pbond6;
Modelica.Blocks.Sources.Constant const(k=5);
Modelica.Blocks.Math.Feedback feedback;
Modelica.Blocks.Continuous.Integrator
integrator;
Fin des déclarations et début de la
equation description du comportement
connect(pbond.BondCon2, i.BondCon1);
connect(j1p3_1.BondCon2, pbond.BondCon1);
connect(pbond1.BondCon2, j1p3_1.BondCon1);
connect(mSe.BondCon1, pbond1.BondCon1); Le comportement est décrit par
172
connect(j1p3_1.BondCon3, pbond2.BondCon1); connection des composants déclarés, le
connect(pbond2.BondCon2, gY.BondCon1); comportement de chaque composant est
connect(gY.BondCon2, pbond3.BondCon1); défini dans la librairie dans laquelle il
connect(pbond3.BondCon2, tF.BondCon2); est déclaré.
connect(tF.BondCon1, pbond4.BondCon1);
connect(pbond4.BondCon2, j1p3_2.BondCon1);
connect(j1p3_2.BondCon3, pbond5.BondCon1);
connect(pbond5.BondCon2, i1.BondCon1);
connect(j1p3_2.BondCon2, pbond6.BondCon1);
connect(pbond6.BondCon2, de.BondCon1);
connect(de.OutPort1, feedback.u2);
connect(const.y, feedback.u1);
connect(integrator.y, mSe.s);
connect(feedback.y, integrator.u);
173
Conclusion générale
Dans cette thèse, nous avons proposé une méthodologie d’ingénierie système
(IS) guidée par les modèles (ou Model-Driven Systems Engineering MDSE) avec une
spécialisation pour les systèmes mécatroniques, nous basant sur les standards de l’IS
(IEEE 15288) et de l’orienté-objet (standards OMG : MDA, UML/SysML). Nous
avons intitulé cette méthodologie MISSyM. Nous nous sommes limités aux processus
techniques de la recommandation IEEE 15288, car ce sont les processus qui se
focalisent, entre autres, sur la conception du système. Utiliser les standards était pour
nous une priorité car les ingénieurs ont besoin d’outils unifiés et pérennes. Mais ils
ont également besoin comprendre comment mettre en œuvre tous ces standards chacun
tel-00336839, version 1 - 5 Nov 2008
dans son domaine d’application et aussi comment les utiliser conjointement. Nous
avons tenté de répondre à ce besoin en combinant ces standards et en expliquant
comment ils s’articulaient au sein de MISSyM.
Du point de vue des modèles, au niveau des PIM (ou Platform Independent
Model), nous avons choisi pour base de travail le langage SysML. Nous avons ensuite
évalué l’expressivité de SysML par rapport aux besoins décrits par les activités de la
recommandation IEEE 15288, ce qui nous a amenés à apporter des extensions à
SysML induites de cette évaluation. Nous avons regroupé ces extensions sous le
profile SysML15288 pour permettre son utilisation de manière disjointe des autres
174
profiles proposés. Nous avons aussi proposé le profile SysML_Mecatronics contenant
les extensions spécifiques aux systèmes mécatroniques. Ce profile regroupe le
composant mécatronique ainsi que les extensions relatives aux connecteurs et aux
ports. Nous avons aussi proposé l’intégration des DSM et des design patterns.
Au niveau PSM (ou Platform Specific Model), nous avons intégré les Bond
Graphs pour fournir un outil d’analyse énergétique aux concepteurs. Nous avons aussi
intégré le diagramme en blocks (DB) avec les Bond Graphs (BG) pour permettre de
décrire des systèmes physiques commandés (processus en BG + commande en DB).
Puis nous avons décrit les mécanismes de la génération du code Modelica
correspondant et la simulation du modèle. Cela nous a aussi permis de démontrer les
possibilités de cette approche en termes d’extensibilités et donc d’universalité.
tel-00336839, version 1 - 5 Nov 2008
Perspectives
175
Le processus proposé est ouvert à la collaboration avec des outils CAD
mécanique ou électrique (tel que CATIA) en utilisant des modèles 3D simplifiés pour
le prototypage virtuel. Il serait utile d’augmenter cette collaboration en permettant le
partage de modèles entre ces outils CAD et des outils PLM (Product Lifecycle
Management), la norme STEP pourra apporter des réponses sur ces aspects.
D’autres langages peuvent être intégrés à SysML pour former une riche boite à
outils, tels que les réseaux de Petri qui ont d’ailleurs déjà été intégrés dans UML
nommés UML/PNO par [Paludetto2004Petri]. Ces travaux on montré que les réseaux
de Petri sont utiles dans la conception et permettent la simulation. Ainsi SysML
devrait intégrer les réseaux de Petri puisqu’ils sont très utilisés en conception. D’autres
intégrations doivent être examinées tels que le langage VHDL-AMS (électronique) qui
tel-00336839, version 1 - 5 Nov 2008
176
Enfin, l’application de la méthodologie dans un cadre de contrat industriel
pourrait aider à affiner les modèles, le processus et la méthode de vérification de la
qualité des modèles.
tel-00336839, version 1 - 5 Nov 2008
177
Références bibliographiques
178
[Bahill1998] T. Bahill, B.gissing, Re-evaluating systems engineering
concepts using systems thinking, IEEE Trans Syst Man
Cybernet Oart C Appl Rev 28(4) pg 516-527, 1998
179
Product Development Cycle Time Reduction. In
Proceedings of the fifth ISPE international conference on
concurrent engineering, research and applications, Tokyo,
Japan 15-17 Juillet 1998
180
Eng., vol 2, no 2, page 321-327, Juin 1976.
181
2003
182
Embedded Systems, 4(4):1-17, October 2007
[Harashima1996]
What is it, why and how? An editorial, IEEE/ASME
Transactions on Mechatronics 1, 1–4. 1996
183
Engineering (INCOSE), Systems engineering Handbook,
INCOSE-TP-2003-016-02, Version 2a, 1 Juin 2004
[KICAD] http://www.lis.inpg.fr/realise_au_lis/kicad/
184
[MARTE2007] A UML Profile for MARTE, Beta 1. OMG Adopted
Specification OMG Document Number: ptc/07-08-04, Août
2007
185
des besoins des systèmes embarqués, RSTI – TSI. Vol 23 –
n° 4, pages 543 to 567, 2004
186
[Steward1981] D. V. Steward, Systems Analysis and Management:
Structure, Strategy and Design. Petrocelli Books, New
York, 1981
187
[UMLOMEGA] The Omega UML Profile, http://www-
omega.imag.fr/index.php
[UMLSE RFP 2003] UML for systems engineering RFP, OMG Document: ad/03-
03-41, 2003
188
ANNEXE A : Le standard IEEE 15288
189
Vérifier avec les parties prenantes si les exigences répondent bien à leurs
besoins.
Mettre les exigences dans un format de stockage accessible pendant le
cycle de conception.
Maintenir la traçabilité des exigences aux parties prenantes et leurs
besoins originaux.
190
Continuer à enrichir ces spécifications par les choix, raisonnements,
suppositions, etc.
des interfaces.
• La traçabilité de l’architecture aux exigences.
• Un jeu de test de base pour vérifier les éléments du système.
• La préparation pour l’intégration des éléments du système.
191
Maintenir la traçabilité entre l’architecture et les exigences.
Les trois processus décrits jusque là sont réitérés récursivement jusqu’à
obtenir des éléments qu’on peut acheter, réutiliser ou construire.
192
• Le système assemblé et prêt à être testé.
• Une liste des non-conformités aux exigences.
193
o Questions d’intégrité comme la sécurité, l’ergonomie, la
disponibilité.
o Les technologies émergeantes.
o Profile du budget et ressources organisationnelles disponibles.
o Disponibilité des services des systèmes « support ».
Recueillir des informations des parties concernées par le cycle de
vie comme les parties prenantes du système.
Utiliser le processus de prise de décision (processus de projet) pour
décider de cette adaptation.
Définir un modèle de cycle de vie permettant la création et l’utilisation
du système de manière satisfaisante.
Identifier le modèle de cycle de vie en termes d’étapes, de leurs objectifs
tel-00336839, version 1 - 5 Nov 2008
194
Le standard donne en exemple six étapes du cycle de vie :
L’étape de définition du concept
L’étape de développement
L’étape de production
L’étape d’utilisation
L’étape de support
L’étape de mise hors service
Nous en présenterons les deux premiers car ils seront particulièrement développés et
adaptés dans le chapitre « solution adoptée ».
195
Identification de risques et plans d’évaluation de l’étape courante et des
suivantes.
Satisfaction du critère de sortie de l’étape.
Accord pour passer à l’étape de développement.
Cette étape vise à développer un système qui répond aux besoins des acquéreurs
et pouvant être produit, testé, évalué, mis en route, maintenu et aussi mis hors
service. Les contributions de cette étape doivent être :
Exigences du système, budget du projet et plan évalués et raffinés.
L’architecture du système composée d’éléments matériels, logiciels et
tel-00336839, version 1 - 5 Nov 2008
196
Définition des services de systèmes supports nécessaires dans les étapes
suivantes.
Plans et critères de sortie de la phase de production.
Identification de risques courants.
Critères de sortie satisfaits.
Accord pour continuer vers l’étape de production.
tel-00336839, version 1 - 5 Nov 2008
197