Architectures logicielles
Principes, techniques et outils
Mourad Chabane Oussalah
Hermes Sciences
Lavoisier
Avant-propos15
Mourad Chabane Oussalah
Chapitre 1. Paradigmes objet, composant, agent et service dans les architectures logicielles19
Abdelkrim Amirat, Anthony Hock-Koon et Mourad Chabane Oussalah
1.1. Introduction19
1.2. Historique20
1.2.1. Paradigme objet21
1.2.2. Paradigme composant22
1.2.3. Paradigme agent22
1.2.4. Paradigme service23
1.3. Architecture logicielle25
1.3.1. Architecture logicielle à base d'objets25
1.3.2. Architecture logicielle à base de composants27
1.3.3. Architecture logicielle à base d'agents28
1.3.4. Architecture logicielle orientée services (AOS)30
1.4. Les deux dimensions du cadre conceptuel de comparaison : quantitative et qualitative32
1.4.1. Différences conceptuelles33
1.4.2. Dimension quantitative42
1.4.3. Dimension qualitative48
1.5. Approches d'intégration de paradigmes de développement58
1.6. Synthèse et discussion60
1.7. Conclusion62
1.8. Bibliographie63
Chapitre 2. Architectures logicielles : contraintes d'architecture69
Chouki Tibermacine
2.1. Introduction70
2.2. Etat de l'art72
2.2.1. Expression de contraintes d'architecture en phase de conception72
2.2.2. Expression de contraintes d'architecture en phase d'implémentation80
2.3. Contraintes d'architecture sur des applications à objets87
2.3.1. Contraintes d'architecture en phase de conception87
2.3.2. Contraintes d'architecture en phase d'implémentation91
2.4. Contraintes d'architecture sur des applications à composants97
2.4.1. Contraintes d'architecture en phase de conception97
2.4.2. Contraintes d'architecture en phase d'implémentation103
2.5. Contraintes d'architecture sur des applications à services107
2.6. Conclusion112
2.7. Bibliographie113
Chapitre 3. Architectures logicielles et variabilité multiple119
Mathieu Acher, Philippe Collet et Philippe Lahire
3.1. Introduction119
3.2. Variabilité : fondements et principes123
3.2.1. Variabilité et lignes de produits123
3.2.2. Feature models125
3.3. Cadre d'études et travaux connexes127
3.3.1. De la multiplicité de la variabilité127
3.3.2. Extraction et évolution de la variabilité architecturale128
3.4. Architecture de composants pour la vidéosurveillance130
3.4.1. Etude de cas130
3.4.2. Prise en compte de la variabilité multiple130
3.4.3. Résultats134
3.5. Architecture orientée services pour les workflows scientifiques136
3.5.1. Etude de cas136
3.5.2. Prise en compte de la variabilité multiple137
3.5.3. Résultats140
3.6. Rétro-ingénierie d'architecture à plugins141
3.6.1. Etude de cas141
3.6.2. Prise en compte de la variabilité multiple143
3.6.3. Résultats146
3.7. Bilan147
3.7.1. De la nécessité d'un outillage147
3.7.2. Synthèse des études de cas149
3.8. Conclusion150
3.9. Bibliographie151
Chapitre 4. Les architectures de référence159
Elisa Yumi Nakagawa, Flavio Oquendo et José Carlos Maldonado
4.1. Introduction159
4.2. Définition de l'architecture de référence160
4.2.1. Architecture de référence et modèle de référence161
4.2.2. Architecture de référence et architecture de ligne de produits162
4.3. Un modèle d'architecture de référence163
4.4. Ingénierie d'architecture de référence167
4.4.1. Investigation des sources d'informations168
4.4.2. Etablissement d'exigences architecturales170
4.4.3. Conception d'architectures de référence171
4.4.4. Evaluation des architectures de référence173
4.5. Usages des architectures de référence175
4.6. Exemples d'architectures de référence179
4.7. Perspectives d'avenir pour les architectures de référence180
4.8. Conclusion183
4.9. Bibliographie183
Chapitre 5. Architectures logicielles pour les lignes de produits189
Hugo Arboleda, Rubby Casallas, Jaime Chavarriaga et Jean-Claude Royer
5.1. Introduction aux lignes de produits logiciels189
5.1.1. Trois styles de développements192
5.1.2. La gestion de la variabilité192
5.1.3. La notion d'architecture dans les lignes de produits194
5.2. L'exemple du dépôt de musique196
5.2.1. Le domaine196
5.2.2. La ligne de produits SongStock197
5.2.3. Les besoins fonctionnels197
5.2.4. Les principaux autres besoins198
5.3. Ingénierie du domaine199
5.3.1. L'analyse du domaine199
5.3.2. Cas d'utilisation avec variabilité intégrée200
5.3.3. Le modèle des caractéristiques201
5.3.4. La conception du domaine202
5.3.5. La conception de l'architecture de la ligne203
5.4. Ingénierie des produits207
5.4.1. La configuration d'un produit208
5.4.2. La dérivation du produit208
5.5. Processus de conception de l'architecture de référence210
5.6. Lectures complémentaires213
5.6.1. PLA et architecture de référence214
5.6.2. Les livres des précurseurs215
5.7. Conclusion218
5.8. Bibliographie219
Chapitre 6. Architectures logicielles multihiérarchies/multivues227
Ahmad Kheir, Hala Naja et Mourad Chabane Oussalah
6.1. Introduction227
6.2. Approches de points de vue existantes228
6.2.1. Introduction228
6.2.2. Les vues en spécification des besoins229
6.2.3. Les vues en modélisation de systèmes229
6.2.4. Les vues en programmation230
6.3. Les vues en architecture logicielle231
6.3.1. Apports des vues en architecture logicielle231
6.3.2. Le modèle « 4+1 » View Model232
6.3.3. Le standard ISO/IEC/IEEE 42010233
6.3.4. L'approche Views and beyond235
6.3.5. Synthèse237
6.3.6. Limitations des approches actuelles en architecture logicielle239
6.4. Définitions et concepts de base des architectures logicielles multihiérarchies/multivues240
6.4.1. Définitions240
6.4.2. Concepts et techniques de base242
6.5. MoVAL : une architecture à base de modèles, vues et niveaux d'abstraction251
6.5.1. Introduction251
6.5.2. MoVAL251
6.5.3. Le métamodèle MoVAL257
6.5.4. Etude de cas258
6.6. Conclusion262
6.7. Bibliographie263
Chapitre 7. Architecture et qualité de systèmes logiciels265
Nicole Levy, Francisca Losavio et Yann Pollet
7.1. Introduction265
7.2. La démarche qualité267
7.2.1. Le standard de qualité ISO 25010267
7.2.2. Le référentiel de qualité270
7.2.3. Modèle de qualité d'un système271
7.2.4. Modèle de qualité fonctionnelle271
7.2.5. Modèle de qualité d'une architecture272
7.3. Démarche de développement d'une architecture de domaine274
7.3.1. Principes généraux274
7.3.2. Le modèle de qualité fonctionnelle277
7.3.3. Le modèle de qualité architecturale277
7.3.4. Architecture de référence277
7.3.5. Passage du niveau domaine fonctionnel au niveau système279
7.4. Développement d'une architecture de référence d'un domaine fonctionnel280
7.4.1. Un exemple de domaine fonctionnel280
7.4.2. Le raffinement fonctionnel280
7.4.3. Elaboration du modèle de qualité fonctionnelle282
7.4.4. Définition de l'architecture préliminaire283
7.4.5. Elaboration du modèle de qualité architecturale284
7.4.6. Intégration de l'architecture de référence du domaine285
7.5. Architectures de niveau système288
7.5.1. Le raffinement fonctionnel289
7.5.2. Le modèle de qualité fonctionnelle290
7.5.3. Architecture de base290
7.5.4. Le modèle de qualité architecturale291
7.5.5. Architecture des systèmes Dopamine et Samarkand292
7.6. Travaux connexes294
7.7. Conclusion299
7.8. Bibliographie300
Chapitre 8. Architectures logicielles et outils : gestion distribuée et coordonnée de la reconfiguration dynamique303
Mohamed Zouari, Maria-Teresa Segarra et Khalid Drira
8.1. Introduction304
8.2. Contexte305
8.3. Mécanismes de gestion de la reconfiguration dynamique d'applications distribuées307
8.3.1. Gestion centralisée de la reconfiguration dynamique307
8.3.2. Limites de la solution centralisée pour les systèmes distribués310
8.3.3. Enjeux de la gestion distribuée de la reconfiguration311
8.3.4. Mécanismes de coordination existants312
8.4. Spécialisation des infrastructures de reconfiguration315
8.4.1. Spécialisation de comportement315
8.4.2. Spécialisation de la répartition des mécanismes d'adaptation316
8.5. Synthèse des limites et des défis de la reconfiguration dynamique des systèmes distribués317
8.6. Approche pour la mise en place de mécanismes de gestion de reconfiguration318
8.7. Modèle architectural pour la gestion distribuée de la reconfiguration dynamique320
8.7.1. Types de composants pour la gestion de l'adaptation320
8.7.2. Distribution de la gestion de la reconfiguration dynamique322
8.7.3. Modèle architectural du gestionnaire d'adaptation324
8.7.4. Spécialisation des mécanismes de reconfiguration326
8.7.5. Coordination des processus de reconfiguration328
8.8. Conclusion342
8.9. Bibliographie343
Chapitre 9. La métamodélisation d'architectures logicielles347
Adel Smeda et Mourad Chabane Oussalah
9.1. Introduction347
9.2. La métamodélisation : pourquoi ?349
9.3. Métamodélisation d'architectures logicielles350
9.4. MADL : un langage de description de méta-architecture351
9.4.1. Les quatre niveaux de modélisation dans les architectures logicielles351
9.4.2. MADL : un noyau réflexif dédié à la méta-méta-architecture353
9.4.3. La structure de MADL354
9.4.4. L'instanciation de MADL : l'exemple de l'ADL Acme356
9.4.5. Comparaison de MADL et MDA/MOF359
9.5. La projection (mapping) des ADL vers UML363
9.5.1. Pourquoi la projection des ADL vers UML363
9.5.2. La projection d'un ADL vers UML365
9.6. Un exemple de projection : cas du langage Acme376
9.7. Quelques remarques sur la projection des concepts d'ADL vers UML377
9.7.1. UML 2.0 comme ADL377
9.7.2. Les stratégies de la projection378
9.8. Conclusion379
9.9. Bibliographie379
Chapitre 10. Architectures logicielles et systèmes multi-agents383
Jean-Paul Arcangeli, Victor Noël et Frédéric Migeon
10.1. Introduction383
10.2. Systèmes mutli-agents et ingénierie logicielle à base d'agents384
10.2.1. Agent385
10.2.2. Système et interactions386
10.2.3. Système multi-agents387
10.2.4. Exemples de systèmes multi-agents388
10.2.5. Ingénierie logicielle à base d'agents390
10.3. Les systèmes multi-agents et tant que style d'architecture394
10.3.1. Positionnement du style « système multi-agents »394
10.3.2. Caractéristiques en matière d'abstraction395
10.3.3. Caractéristiques en matière de (dé)composition398
10.3.4. Lien avec les exigences400
10.3.5. Une famille de styles architecturaux403
10.4. Le fossé architectural404
10.4.1. Etat de la pratique405
10.4.2. Analyse d'un point de vue architectural406
10.4.3. Bilan408
10.5. Comment combler le fossé architectural409
10.5.1. Limites des solutions existantes409
10.5.2. Réalisation de l'architecture micro409
10.6. Conclusion412
10.7. Bibliographie413
Chapitre 11. Architectures logicielles et procédés logiciels417
Fadila Aoussat, Mourad Chabane Oussalah et Mohamed Ahmed-Nacer
11.1. Introduction417
11.2. Les architectures de procédés logiciels419
11.2.1. Définition des modèles de procédés logiciels419
11.2.2. Modélisation de procédés logiciels à base d'architectures logicielles420
11.3. Cadre de comparaison pour les solutions de réutilisation de modèles de PL à base d'AL423
11.3.1. Les critères d'évaluation selon l'axe procédé logiciel424
11.3.2. Les critères d'évaluation selon l'axe architecture logicielle427
11.3.3. Les critères d'évaluation selon l'axe qualité430
11.4. Evaluation des approches de modélisation et d'exécution de PL à base d'AL433
11.4.1. Evaluation des approches de réutilisation de PL à base d'AL selon l'axe PL433
11.4.2. Evaluation des approches de réutilisation de PL à base d'AL selon l'axe AL435
11.4.3. Evaluation des approches de réutilisation de PL à base d'AL selon l'axe qualité438
11.4.4. Bilan et discussions440
11.5. Conclusion442
11.6. Bibliographie443
Chapitre 12. Architecture logicielle : adaptation de services dans le contexte de composition de services web447
Kamel Barkaoui et Maryam Eslamichalandar
12.1. Introduction447
12.2. Composition de services web et de vérification450
12.3. Incompatibilité des services web et adaptation454
12.4. Approches d'adaptation457
12.5. Conclusion469
12.6. Bibliographie470
Index477