Mais conteúdo relacionado Semelhante a L Architecture Logicielle En Pratique (20) L Architecture Logicielle En Pratique1. L’ARCHITECTURE
LOGICIELLE EN
PRATIQUE
François Trudel, ing., M.Sc.A.
Président Fondateur
francois.trudel@aginex.com
24 mars 2009
Weisman Art Museum de l’architecte Frank Gehry
Photo de Chris Zubke publiée sur Flickr
© 2009 Repenser les TI
2. L’architecture Logicielle en pratique 2
Évolution d’une Discipline
en Client- Publisher- Cloud
par
Architecture Monolitique Lots Couches Serveur N-tiers Subscriber computing
m ps
te
s le
Flux de Flux de
Diagramme ER OO ADL
an
contrôle données
te d
en
m
augobjets
orienté- orienté- orienté- orienté-
Paradigme structuré
on
donnée services agents
a c ti
s tr
b
d’a FORTRAN Ruby
Language C++ Perl Java
au
assembleur SQL
n iv e
COBOL on Rail
Le
Matériel PDA
mainframe PC
mini
2010
1940
© 2009 Repenser les TI
3. L’architecture Logicielle en pratique 3
Architecture Informatique
L'architecture informatique définit la
structuration d'un système informatique
(i.e. matériel et logiciel) en termes de
composants et d'organisation de ses
fonctions.
Source: Wikipedia
© 2009 Repenser les TI
4. L’architecture Logicielle en pratique 4
Architecture Logicielle
L’architecture logicielle décrit dʼune
manière symbolique et schématique
les différents composants dʼun ou de
plusieurs programmes informatiques,
leurs interrelations et leurs interactions.
Source: Wikipedia
© 2009 Repenser les TI
5. L’architecture Logicielle en pratique 5
Place de l’Architecture
(Traditionnelle)
Solution
Problème
Conceptuel Architecture Ingénierie
Physique Construction
Gestion de Projet
© 2009 Repenser les TI
6. L’architecture Logicielle en pratique 6
Place de l’Architecture
Logicielle
Solution
Problème
Conceptuel Analyse Architecture Design Programmation
© 2009 Repenser les TI
7. L’architecture Logicielle en pratique 7
Niveaux d’Architecture
Logicielle
1. Un programme
2. Une famille de programmes
3. Un système corporatif
4. Un système inter-entreprises
© 2009 Repenser les TI
8. L’architecture Logicielle en pratique 8
10 Mythes sur
l’Architecture Logicielle
Lʼarchitecture et le design, cʼest la même chose
Lʼarchitecture et lʼinfrastructure, cʼest la même chose
<ma technologie fétiche> est lʼarchitecture
Une bonne architecture est lʼoeuvre dʼun seul architecte
Lʼarchitecture est plate, une schéma est suffisant
Lʼarchitecture de système précède lʼarchitecture logicielle
Lʼarchitecture ne peut-être mesurée ou validée
Lʼarchitecture est une science
Lʼarchitecture est un art
Source: Philippe Kruchten, Ten Common Misconceptions about Software Architecture
© 2009 Repenser les TI
9. L’architecture Logicielle en pratique 9
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est de définir
une architecture logicielle.
© 2009 Repenser les TI
10. L’architecture Logicielle en pratique 10
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est de définir
une architecture logicielle qui satisfasse les
exigences du client.
© 2009 Repenser les TI
11. L’architecture Logicielle en pratique 11
Modèle des
Contraintes de Design
Générateurs
designer
client
Fonctions
utilisateur
symbolique
formelle
législateur pratique
radicale
interne externe
Domaines
Source: Bryan Lawson, How Designers Think
© 2009 Repenser les TI
12. L’architecture Logicielle en pratique 12
Critères de Qualité Logicielle
Interopérabilité Réutilisabilité
Portabilité Extensibilité
Compatibilité Efficacité
Validité Autonomie
Vérifiabilité Transparence
Intégrité Composabilité
Fiabilité Simplicité
Maintenabilité
© 2009 Repenser les TI
13. L’architecture Logicielle en pratique 13
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est de définir
une architecture logicielle qui satisfasse les
contraintes imposées sur le système.
© 2009 Repenser les TI
14. L’architecture Logicielle en pratique 14
Modélisation d’une
Architecture Logicielle
Vue logique Vue de réalisation
Vue des Gestion de configuration
Fonctionalité
cas d’utilisation
Vue des processus Vue de déploiement
Performance Topologie du Système
Extensibilité Communication
Débit Approvisionnement
Conceptuelle Physique
Source: Philippe Kruchten, 4+1 Views
© 2009 Repenser les TI
15. L’architecture Logicielle en pratique 15
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est:
1) de définir une architecture logicielle qui
satisfasse les contraintes du système
2) de la communiquer.
© 2009 Repenser les TI
16. L’architecture Logicielle en pratique 16
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est:
1) de définir une architecture logicielle qui
satisfasse les contraintes du système
2) de la communiquer et la promouvoir.
© 2009 Repenser les TI
17. L’architecture Logicielle en pratique 17
Essence et Accidents de
L’Ingénierie Logicielle
Complexité Essentielle
Inhérente au problème (complexité, conformité,
changeable, invisibilité)
Complexité Accidentelle
Associée au développement de la solution
Source: Frederick P. Brooks Jr, No Silver Bullet
© 2009 Repenser les TI
18. L’architecture Logicielle en pratique 18
Dimensions de la
Complexité Logicielle
Technique
embarqué, temps-réel,
distribué, critique
centrale
sur-mesure, innovateur,
nucléaire
haute performance
grande échelle,
contractuel,
plusieurs intervenants
compilateur
“projets”
Gestion
petite échelle,
système
informel,
corporatif
un intervenant
“produits”
chiffrier
application PC,
site HTML,
interactif, standard
Source: Grady Booch, Handbook of Software Architecture
© 2009 Repenser les TI
19. L’architecture Logicielle en pratique 19
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est:
1) de définir une architecture logicielle qui
satisfasse les contraintes du système
2) de la communiquer et la promouvoir
3) de défendre son intégrité conceptuelle
© 2009 Repenser les TI
20. L’architecture Logicielle en pratique 20
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est:
1) de définir une architecture logicielle qui
satisfasse les contraintes du système
2) de la communiquer et la promouvoir
3) de défendre son intégrité conceptuelle
4) de la critiquer
© 2009 Repenser les TI
21. L’architecture Logicielle en pratique 21
Rôle d’un Architecte Logiciel
Le rôle de lʼarchitecte logiciel est:
1) de définir une architecture logicielle qui
satisfasse les contraintes du système
2) de la communiquer et la promouvoir
3) de défendre son intégrité conceptuelle
4) de la critiquer
5) de la raffiner
© 2009 Repenser les TI
22. L’architecture Logicielle en pratique 22
Rôle d’un Architecte Logiciel
Complexité
Changement
Vision
Politique
Contraintes
Photo: www.sparkle4all.nl
© 2009 Repenser les TI
23. L’architecture Logicielle en pratique 23
Profile d’un Architecte Logiciel
1. Crédibilité
2. Pensée intégrative
3. Créativité
4. Empatie
5. Autodidacte
6. Leader/Mentor
7. Communicateur(Négociateur)
8. Excellent analyste
9. Designer hors pair
10. Bon programmeur
© 2009 Repenser les TI
24. L’architecture Logicielle en pratique 24
La Pensée Intégrative
Résolution
Vision
Chercher des solutions
Outils Expérience Architecture créatrices qui résolvent
les tensions
Visualiser le tout en
Causalité travaillant sur des parties
Chercher des motifs et
interrelations
Saillance
Identifie les contraintes importantes
Source: Roger Martin, The Opposable Mind
© 2009 Repenser les TI
25. L’architecture Logicielle en pratique 25
Principes Fondamentaux
Simplicité (KISS)
Abstractions nettes
Division claire des rôles
Distribution équilibrée des responsabilités
Élégance/Esthétisme
© 2009 Repenser les TI
26. L’architecture Logicielle en pratique 26
Styles
d’Architecture Logicielle
Centré sur les Données
Flux de Données
• Base de données
• Par lots
• Blackboard
• Tuyaux et Filtres
• Publisher-Subscriber
Appels et Retour
Partage de Données
• Fonction principale
Hiérarchique
• Orientée-Objets
• En couches
Interactif • En tiers
• Orientée Événements • Interpréteur
• Model-View-Controller Orientée Agents
Source: Shaw & Garlan, Software Architecture : Perspectives on an Emerging Discipline
© 2009 Repenser les TI
27. L’architecture Logicielle en pratique 27
Le Style le plus Répandu
Source: Brian Foote & Joseph Yoder, Big Ball of Mud
© 2009 Repenser les TI
28. L’architecture Logicielle en pratique 28
7 Périls d’un
Architecte Logiciel
1. Un projet où la direction de lʼorganisation ne croie pas
à lʼarchitecture logicielle
2. Un projet dont les usagers ne veulent pas
3. Embarquer sur un projet sans avoir de crédibilité
auprès d’une équipe rebelle
4. Un projet avec un niveau d’incertitude élevé soumis à
un développement en cascade
5. Un projet dont des choix technologiques clés imposés
sont inappropriés
6. Un projet où les analystes d’affaires produisent le
schéma de BD
7. Prendre la relève d’un projet en détresse
© 2009 Repenser les TI
29. L’architecture Logicielle en pratique 29
L’Avenir d’une Discipline
LʼArchitecture fera partie du curriculum
Standardisation dʼun ADL
Architecture Orientée-Agents
Langages de programmation de plus haut
niveau supportant les concepts architecturaux
Certification professionnelle basée sur les
niveaux de criticalité logicielle [DO-178B: A-E]
© 2009 Repenser les TI