Architecture logicielle
Concevoir des applications simples, sûres et adaptables
Préface
III
Partie 1 - Qu'est-ce que l'architecture du logiciel ?
Chapitre 1 - L'architecture dans les sciences de l'ingénieur
9
1.1 L'architecture au sens littéral9
1.2 Limites des métaphores architecturales12
1.3 Architecture de l'information15
Chapitre 2 - Les matériaux de l'architecture logicielle
31
2.1 De quoi sont faits les programmes informatiques ?31
2.2 Nature sémantique des constructions informatiques39
2.3 Indépendances des données et des programmes54
2.4 Tentative de définition de l'architecture59
2.5 Terminologie introduite dans ce chapitre65
Chapitre 3 - Propriétés indésirables des entités architecturales
71
3.1 Défauts et anomalies de fonctionnement des entités architecturales71
3.2 Comportements dégénératifs des entités architecturales
en cours d'exécution78
3.3 Contrôles associés aux défaillances - Système de surveillance -
Administration83
Chapitre 4 - Représentations de l'architecture -
Symboles architecturaux - Diagrammes d'architecture
85
4.1 Introduction - Différentes vues de l'architecture85
4.2 Les premières notations - Le monde de la programmation structurée90
4.3 Les notations récentes - Le monde objet93
4.4 La liberté de l'architecte - La pragmatique des représentations107
4.5 Organisation du référentiel d'architecture -
Le référentiel comme méta-langage110
Chapitre 5 - Place de l'architecture dans les projets informatiques
117
5.1 Cycle de vie d'un système - Cycle de développement117
5.2 Rôle et place de l'architecte dans la relation MOA/MOE120
5.3 Influence de l'architecte sur le retour sur investissement ROI121
Partie 2 - Analyse de deux chefs-d'oeuvre d'architecture
Chapitre 6 - Principes d'architecture des compilateurs
129
6.1 Le problème de la traduction des langages informatiques129
6.2 Cas des méta-informations144
Chapitre 7 - Architecture des processus et de leurs interactions
dans une machine
149
7.1 Le concept de processus150
7.2 Les sémaphores et la communication inter-processus161
7.3 Les leçons : les contraintes systèmes
et la recherche d'un équilibre économique168
Partie 3 - Architecture fonctionnelle logique
Chapitre 8 - Principes et règles de construction des architectures
fonctionnelles logiques
175
8.1 Les processus du monde réel175
8.2 Comment informatiser les processus métier177
8.3 Les contraintes de l'automatisation et de la machinerie informatique183
8.4 Organisation hiérarchique des intégrats -
Vision statique de la machine informationnelle191
8.5 Enchaînement des intégrats -
Vision dynamique de la machine informationnelle196
Chapitre 9 - Propriétés sémantiques des intégrats - Transactions - Services
201
9.1 Transactions201
9.2 Fonctions de services - Fonctions primitives214
9.3 Sémantique de couplages et des interactions entre les intégrats219
Chapitre 10 - Quelques modèles d'architectures
225
10.1 Notion de machines informationnelles - Intégration de l'information226
10.2 Architecture en couche231
10.3 modèle générique traducteur-transducteur TT246
10.4 Modèle générique d'un moniteur système254
10.5 Architecture Rest263
10.6 Virtualisation et cloud computing266
Chapitre 11 - Clients et serveurs
281
11.1 Machine informationnelle basée sur le pattern MVC281
11.2 Machine informationnelle MVC en architecture distribuée284
11.3 Structure des organes de la machine informationnelle285
11.4 Architecture SOA (Service-Oriented Architecture)290
11.5 Microprocesseurs multicoeurs et actions atomiques294
Partie 4 - Propriétés d'une bonne architecture
Chapitre 12 - Simplicité - Complexité
307
12.1 Fondements des mesures de complexité textuelle307
12.2 Avantages et inconvénients des mesures textuelles319
12.3 La complexité dans le quotidien des projets329
Chapitre 13 - Disponibilité - Sûreté de fonctionnement
343
13.1 Introduction343
13.2 Notion d'intégrat testable - Testabilité354
13.3 Reconstruire l'histoire d'une défaillance359
Chapitre 14 - Adaptabilité - Évolutivité
363
14.1 Introduction363
14.2 Adaptabilité du point de vue des métiers et de la maîtrise d'ouvrage364
14.3 Adaptabilité du point de vue de l'architecte367
Chapitre 15 - Interfaces
377
15.1 Introduction377
15.2 Rappel sur la notion d'interface378
15.3 Cycle de vie et mise en oeuvre386
15.4 Évolution et compatibilité ascendante des interfaces392
15.5 Interfaces externes et internes d'un intégrat agrégé396
Chapitre 16 - Le métier de l'architecte : complexité, logique, intuition
399
16.1 Comment poser et résoudre les problèmes d'architecture399
16.2 L'architecte face à la complexité du réel404
16.3 La logique de l'architecte426
16.4 Synthèse : la complexité dans les projets -
Guide de survie de l'architecte débutant448
Chapitre 17 - Le cas des systèmes de la famille C4ISTAR
451
17.1 Une évolution des systèmes de contrôle commande451
17.2 Caractéristiques générales des systèmes C4ISTAR452
17.3 Architecture générale des systèmes C4ISTAR - Primauté des données463
Conclusion
469
Sigles et acronymes utilisés
474
Glossaire commenté
479
Bibliographie
487
Index
493