30
L’ARCHITECTURE LOGICIELLE EN PRATIQUE Weisman Art Museum de l’architecte Frank Gehry Photo de Chris Zubke publiée sur Flickr François Trudel, ing., M.Sc.A. Président Fondateur [email protected] © 2009 Repenser les TI 24 mars 2009

L Architecture Logicielle En Pratique

  • Upload
    ftrudel

  • View
    17.193

  • Download
    18

Embed Size (px)

DESCRIPTION

Cette introduction vise à:* définir le rôle de l'architecture logicielle;* retracer l'évolution du développement logiciel afin de mieux comprendre l'état (d'immaturité) de cette discipline; * brosser un portrait des qualités essentielles d'un architecte;* introduire quelques fondements de cette discipline.

Citation preview

Page 1: L Architecture Logicielle En Pratique

L’ARCHITECTURELOGICIELLE EN

PRATIQUE

Weisman Art Museum de l’architecte Frank GehryPhoto de Chris Zubke publiée sur Flickr

François Trudel, ing., M.Sc.A.Président [email protected]

© 2009 Repenser les TI

24 mars 2009

Page 2: L Architecture Logicielle En Pratique

Évolution d’une Discipline

2L’architecture Logicielle en pratique

© 2009 Repenser les TI

Matériel mainframe mini PC PDA

Paradigme structuré orienté-donnée

orienté-objets

orienté-services

orienté-agents

1940 2010

Diagramme Flux decontrôle

Flux dedonnées ER OO ADL

Architecture Monolitique parLots

Client-Serveur N-tiers Cloud

computingPublisher-Subscriber

enCouches

Language assembleur FORTRANCOBOL SQL C++ JavaPerl Ruby

on Rail

Le niveau d’abstraction augmente dans le temps

Page 3: L Architecture Logicielle En Pratique

Architecture Informatique

L'architecture informatique définit lastructuration d'un système informatique(i.e. matériel et logiciel) en termes decomposants et d'organisation de ses

fonctions.

3L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Wikipedia

Page 4: L Architecture Logicielle En Pratique

Architecture Logicielle

L’architecture logicielle décrit dʼunemanière symbolique et schématiqueles différents composants dʼun ou deplusieurs programmes informatiques,

leurs interrelations et leurs interactions.

4L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Wikipedia

Page 5: L Architecture Logicielle En Pratique

Place de l’Architecture(Traditionnelle)

5L’architecture Logicielle en pratique

© 2009 Repenser les TI

Ingénierie

Problème Solution

ArchitectureConceptuel

Physique ConstructionGestion de Projet

Page 6: L Architecture Logicielle En Pratique

Place de l’ArchitectureLogicielle

6L’architecture Logicielle en pratique

© 2009 Repenser les TI

Analyse Design Programmation

Problème Solution

ArchitectureConceptuel

Page 7: L Architecture Logicielle En Pratique

Niveaux d’ArchitectureLogicielle

1. Un programme

2. Une famille de programmes

3. Un système corporatif

4. Un système inter-entreprises

7L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 8: L Architecture Logicielle En Pratique

10 Mythes surl’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

8L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Philippe Kruchten, Ten Common Misconceptions about Software Architecture

Page 9: L Architecture Logicielle En Pratique

Rôle d’un Architecte Logiciel

Le rôle de lʼarchitecte logiciel est de définirune architecture logicielle.

9L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 10: L Architecture Logicielle En Pratique

Rôle d’un Architecte Logiciel

Le rôle de lʼarchitecte logiciel est de définirune architecture logicielle qui satisfasse les

exigences du client.

10L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 11: L Architecture Logicielle En Pratique

symbolique

Modèle desContraintes de Design

11L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Bryan Lawson, How Designers Think

radicale

formellepratiquelégislateur

utilisateur

client

designer

interne externe

Générateurs

Domaines

Fonctions

Page 12: L Architecture Logicielle En Pratique

Critères de Qualité Logicielle

Interopérabilité Portabilité Compatibilité Validité Vérifiabilité Intégrité Fiabilité Maintenabilité

12L’architecture Logicielle en pratique

© 2009 Repenser les TI

Réutilisabilité Extensibilité Efficacité Autonomie Transparence Composabilité Simplicité

Page 13: L Architecture Logicielle En Pratique

Rôle d’un Architecte Logiciel

Le rôle de lʼarchitecte logiciel est de définirune architecture logicielle qui satisfasse les

contraintes imposées sur le système.

13L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 14: L Architecture Logicielle En Pratique

Modélisation d’uneArchitecture Logicielle

14L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Philippe Kruchten, 4+1 Views

Vue logique

Fonctionalité

Vue de réalisation

Gestion de configuration

Vue des processus

PerformanceExtensibilitéDébit

Vue de déploiement

Topologie du SystèmeCommunication

Approvisionnement

Conceptuelle Physique

Vue des cas d’utilisation

Page 15: L Architecture Logicielle En Pratique

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ème2) de la communiquer.

15L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 16: L Architecture Logicielle En Pratique

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ème2) de la communiquer et la promouvoir.

16L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 17: L Architecture Logicielle En Pratique

Essence et Accidents deL’Ingénierie Logicielle

17L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Frederick P. Brooks Jr, No Silver Bullet

Complexité EssentielleInhérente au problème (complexité, conformité,

changeable, invisibilité)

Complexité AccidentelleAssociée au développement de la solution

Page 18: L Architecture Logicielle En Pratique

Dimensions de laComplexité Logicielle

18L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Grady Booch, Handbook of Software Architecture

embarqué, temps-réel,distribué, critique

sur-mesure, innovateur,haute performance

application PC,site HTML,interactif, standard

grande échelle,contractuel,plusieurs intervenants“projets”

petite échelle,informel,

un intervenant“produits”

Technique

Gestion

centralenucléaire

chiffrier

compilateur

systèmecorporatif

Page 19: L Architecture Logicielle En Pratique

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ème2) de la communiquer et la promouvoir3) de défendre son intégrité conceptuelle

19L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 20: L Architecture Logicielle En Pratique

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ème2) de la communiquer et la promouvoir3) de défendre son intégrité conceptuelle4) de la critiquer

20L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 21: L Architecture Logicielle En Pratique

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ème2) de la communiquer et la promouvoir3) de défendre son intégrité conceptuelle4) de la critiquer5) de la raffiner

21L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 22: L Architecture Logicielle En Pratique

Rôle d’un Architecte Logiciel

22L’architecture Logicielle en pratique

© 2009 Repenser les TI

Photo: www.sparkle4all.nl

Contraintes

Changement

Complexité

Vision

Politique

Page 23: L Architecture Logicielle En Pratique

Profile d’un Architecte Logiciel

1. Crédibilité2. Pensée intégrative3. Créativité4. Empatie5. Autodidacte6. Leader/Mentor7. Communicateur(Négociateur)8. Excellent analyste9. Designer hors pair10. Bon programmeur

23L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 24: L Architecture Logicielle En Pratique

La Pensée Intégrative

24L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Roger Martin, The Opposable Mind

Vision

Outils Expérience

Saillance

Identifie les contraintes importantes

Causalité

Chercher des motifs etinterrelations

Architecture

Visualiser le tout entravaillant sur des parties

Résolution

Chercher des solutionscréatrices qui résolventles tensions

Page 25: L Architecture Logicielle En Pratique

Principes Fondamentaux

Simplicité (KISS)

Abstractions nettes

Division claire des rôles

Distribution équilibrée des responsabilités

Élégance/Esthétisme

25L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 26: L Architecture Logicielle En Pratique

Stylesd’Architecture Logicielle

Flux de Données• Par lots• Tuyaux et Filtres

Appels et Retour• Fonction principale• Orientée-Objets

Interactif• Orientée Événements• Model-View-Controller

26L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Shaw & Garlan, Software Architecture : Perspectives on an Emerging Discipline

Centré sur les Données• Base de données• Blackboard• Publisher-Subscriber

Partage de Données Hiérarchique

• En couches• En tiers• Interpréteur

Orientée Agents

Page 27: L Architecture Logicielle En Pratique

Le Style le plus Répandu

27L’architecture Logicielle en pratique

© 2009 Repenser les TI

Source: Brian Foote & Joseph Yoder, Big Ball of Mud

Page 28: L Architecture Logicielle En Pratique

7 Périls d’unArchitecte Logiciel

1. Un projet où la direction de lʼorganisation ne croie pasà lʼarchitecture logicielle

2. Un projet dont les usagers ne veulent pas3. Embarquer sur un projet sans avoir de crédibilité

auprès d’une équipe rebelle4. Un projet avec un niveau d’incertitude élevé soumis à

un développement en cascade5. Un projet dont des choix technologiques clés imposés

sont inappropriés6. Un projet où les analystes d’affaires produisent le

schéma de BD7. Prendre la relève d’un projet en détresse

28L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 29: L Architecture Logicielle En Pratique

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]

29L’architecture Logicielle en pratique

© 2009 Repenser les TI

Page 30: L Architecture Logicielle En Pratique

Questions?

Merci beaucoup!

30L’architecture Logicielle en pratique

© 2009 Repenser les TI