l architecture logicielle en pratique

Post on 27-May-2015

17.193 Views

Category:

Technology

18 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

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 Fondateurfrancois.trudel@aginex.com

© 2009 Repenser les TI

24 mars 2009

É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

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

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

Place de l’Architecture(Traditionnelle)

5L’architecture Logicielle en pratique

© 2009 Repenser les TI

Ingénierie

Problème Solution

ArchitectureConceptuel

Physique ConstructionGestion de Projet

Place de l’ArchitectureLogicielle

6L’architecture Logicielle en pratique

© 2009 Repenser les TI

Analyse Design Programmation

Problème Solution

ArchitectureConceptuel

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

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

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

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

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

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é

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

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

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

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

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

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

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

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

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

Rôle d’un Architecte Logiciel

22L’architecture Logicielle en pratique

© 2009 Repenser les TI

Photo: www.sparkle4all.nl

Contraintes

Changement

Complexité

Vision

Politique

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

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

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

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

Le Style le plus Répandu

27L’architecture Logicielle en pratique

© 2009 Repenser les TI

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

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

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

Questions?

Merci beaucoup!

30L’architecture Logicielle en pratique

© 2009 Repenser les TI

top related