Vous êtes sur la page 1sur 54

Gnie Logiciel

II2

me 2

partie

Chapitre 1 : Expression des besoins Chapitre 2 : Modlisation & Techniques de Spcification Chapitre 3 : Conception: principes & qualits Chapitre 4 : Conception : Architecture/Patron Chapitre 5 : Les tests
GL-II2ENSI -2011/2012

Gnie Logiciel

ENSI -2011/2012

Houda Benali

11

CONCEPTION ARCHITECTURALE

Prsentation
Architecture = structuration de systme

Relie la dcomposition dun systme en sous composants qui interagissent entre elles
La conception architecturale est normalement Ce diagramme prsente un survol de la structure du systme
Gnie Logiciel ENSI -2011/2012 Houda Benali
GL-II2ENSI -2011/2012

exprime sous forme de bloc diagramme

33

Prsentation
La dfinition de larchitecture logicielle consiste : Dcrire lorganisation gnrale dun systme et sa dcomposition en sous-systmes ou composants Dterminer les interfaces entre les sous-systmes Dcrire les interactions et le flot de contrle entre les sous-systmes Dcrire galement les composants utiliss pour implanter les
Les proprits de ces composants Leur contenu (e.g., classes, autres composants) Les machines ou dispositifs matriels sur lesquels ces modules seront dploys
GL-II2ENSI -2011/2012

fonctionnalits des sous-systmes

Gnie Logiciel

ENSI -2011/2012

Houda Benali

44

Prsentation
Pourquoi dvelopper une architecture logicielle ? Pour permettre tous de mieux comprendre le systme Pour permettre aux dveloppeurs de travailler sur
GL-II2ENSI -2011/2012

des parties individuelles du systme en isolation Pour prparer les extensions du systme Pour faciliter la rutilisation
Gnie Logiciel ENSI -2011/2012 Houda Benali

55

Styles architecturaux
Un style architectural est un patron gnrique (commun) dorganisation / architecture de systme; Ces patrons ont des proprits biens dfinies qui permettent la rutilisation Une comprhension de ces styles peut simplifier le choix et la conception dune architecture logicielle Toutefois la plupart des systmes de grande chelle sont htrognes et ne correspondent pas un style architectural unique
Gnie Logiciel ENSI -2011/2012 Houda Benali
GL-II2ENSI -2011/2012

66

Styles architecturaux
Un style architectural est dtermin par:
Un ensemble de composants et de connecteurs (et leur type) Les rgles de configuration des composants et connecteurs (topologie) Une spcification du comportement du patron Des exemples de systmes construits selon ce patron
GL-II2ENSI -2011/2012

Un style architectural constitue un modle prouv et enrichi par lexprience de plusieurs dveloppeurs
Gnie Logiciel ENSI -2011/2012 Houda Benali

77

Catgorisation
Reflte la stratgie utilise pour structurer le systme

Trois axes frquemment utilises :


Partage de donnes - dpt (repository) Partage de service - utilisation de serveurs
GL-II2ENSI -2011/2012

Niveau de traitement abstraction par couches

Gnie Logiciel

ENSI -2011/2012

Houda Benali

88

Catgorisation des styles


Systmes de flots de donnes
Pipeline (pipes and filters) Batch squentielle

Systmes de type Call-and-return


Programme principal et sous routines Par couche (layered) Systmes orients objets

Systmes centrs sur les donnes


Dpot (repositories) Tableau noirs (blackboards)

Composantes indpendantes
Processus communicants Dirigs par des vnements (eventbased)

Machines virtuelles
Interprteurs Systmes base de rgles

Autres

Gnie Logiciel

ENSI -2011/2012

Houda Benali

99

GL-II2ENSI -2011/2012

SYSTMES DE FLOTS DE DONNES


Pipeline (pipes and filters) Batch squentielle

10

Survol : Pipeline (pipes & filters)


Convient bien aux systmes de traitement et de transformation de donnes Composants:
Filtres : composantes qui traitent un stream de donnes. Ils sont des transformations qui convertissent leur inputs en outputs
Traite indpendamment et asynchrone Reoit ses donnes dun ou plusieurs canaux dentre, effectue la transformation/traitement des donnes et envoie les donnes de sortie produites sur un ou plusieurs canaux de sorties Fonctionnent en concurrence. Chacun traite les donnes au fur et mesure quil les reoit

Pipelines : connecteurs qui relient les composantes source et rcepteur et propagent les donnes tel un stream
Unidirectionnel au travers duquel circulent un flot de donnes (stream). Synchronisation et utilisation dun tampon parfois ncessaire pour assurer le bon fonctionnement entre filtre producteur et filtre consommateur

Gnie Logiciel

ENSI -2011/2012

Houda Benali

11 11

GL-II2ENSI -2011/2012

Survol : Pipeline (pipes & filters)


Modle strictement dirig par les donnes
change de donnes entre les filtres Les filtres ne partagent pas dtats entre eux Les filtres sont spcifis uniquement en fonction des inputs quils acceptent et des outputs quils produisent (aucune interaction)
GL-II2ENSI -2011/2012

Exemples : application de traitement de texte, de traitement de signaux. Compilateur (analyse lexicale, syntaxique, smantique)

Gnie Logiciel

ENSI -2011/2012

Houda Benali

12 12

Survol : Pipeline (pipes & filters)


Exemple Architecture dun compilateur

Gnie Logiciel

ENSI -2011/2012

Houda Benali

1 133

GL-II2ENSI -2011/2012

Survol : Pipeline (pipes & filters)


Exemple Architecture de traitement de son

Gnie Logiciel

ENSI -2011/2012

Houda Benali

1 144

GL-II2ENSI -2011/2012

Survol : Pipeline (pipes & filters)

Dun point de vue conception


Diviser pour rgner : les filtres peuvent tre conus sparment Cohsion : les filtres sont un type de cohsion fonctionnelle Couplage : les filtres nont quune entre et une sortie en gnral Abstraction : les filtres cachent gnralement bien leurs dtails internes Rutilisabilit : les filtres peuvent trs souvent tre rutiliss dans dautres contextes Rutilisation : il est souvent possible dutiliser des filtres dj existants pour les insrer dans le pipeline
Gnie Logiciel ENSI -2011/2012 Houda Benali

15 15

GL-II2ENSI -2011/2012

Survol : Pipeline (pipes & filters) Proprits intressantes


Facile dexpliquer le comportement du systme comme la composition du comportement individuel des filtres Simple implanter Facilite la rutilisation des filtres (faible couplage) Facilement modifiable (maintenabilit) Permettent une certaine forme de concurrence

Quelques dsavantages
GL-II2ENSI -2011/2012

Ncessite un format de donne commun pour le transfert de donnes le long du pipeline Difficile de rendre ces systmes interactifs (avec vnements)

Cas particulier - batch squentielle (traitement en lot)


Traitement des donnes en entre comme une seule entit
Gnie Logiciel ENSI -2011/2012 Houda Benali

16 16

SYSTMES CENTRS SUR LES DONNES


Dpt/Rfrentiel (repositories) Tableau noirs (blackboards)

17

Survol : Dpt/Rfrentiel de donnes (repository)


Parfois, les composantes dun systme doivent partager des donnes Options :
Conserver les donnes dans un dpt centrale (BD ou fichiers) auquel peuvent accder tous les sous-systmes. Maintenir dans chaque sous-systme un dpt (par ex. une BD) et passer explicitement les donnes dun sous-systme un autre.
GL-II2ENSI -2011/2012

Lorsquon a un grand volume de donnes partager, un dpt commun est habituellement utilis

Gnie Logiciel

ENSI -2011/2012

Houda Benali

1 188

Survol : Dpt/Rfrentiel de donnes (repository)


Deux types de composants : Dpt de donnes et accesseur de donnes
Les dpts constituent le medium de communication entre les accesseurs

Connecteur : relie un accesseur un dpt


Rle de communication, mais aussi possiblement de coordination, de conversion et de facilitation
GL-II2ENSI -2011/2012

Gnie Logiciel

ENSI -2011/2012

Houda Benali

1 199

Survol : Dpt/Rfrentiel de donnes


Architecture dun outil CASE

Gnie Logiciel

ENSI -2011/2012

Houda Benali

2 200

GL-II2ENSI -2011/2012

Survol : Dpt/Rfrentiel de donnes


Architecture dun environnement de programmation

Gnie Logiciel

ENSI -2011/2012

Houda Benali

2 211

GL-II2ENSI -2011/2012

Survol : Tableau noir


Remarque:
Style tableau noir : les dpts sont des agents actifs. Lorsquils reoivent une donnes, ils informent tous les accesseurs concerns

Gnie Logiciel

ENSI -2011/2012

Houda Benali

2 222

GL-II2ENSI -2011/2012

Survol : Dpt/Rfrentiel de donnes (repository)


Avantages
Manire efficace de partager de grand volume de donnes Les sous-systmes nont pas se proccuper comment les donnes sont stockes et grer (contrle daccs, scurit)

Dsavantages
GL-II2ENSI -2011/2012

Lvolution des donnes est difficile et coteuse contrler Le dpt peut facilement constituer un goulot dtranglement Pas de politique de gestion spcifique

Gnie Logiciel

ENSI -2011/2012

Houda Benali

2 233

SYSTMES CALL-AND-RETURN
Programme principal et sous routines Par couche (layered) Systmes orients objets

24

Survol : Modle de type Programme principal & sous-routines


Approche de contrle centralis
Un sous systme de contrle prend la responsabilit de grer lexcution des autres sous-systmes. Il est responsable de dmarrer, arrter et contrler les autres sous-systmes

Contrle descendant (top-down)


GL-II2ENSI -2011/2012

dmarre au sommet de la hirarchie des sous-routines descend dans la hirarchie

Composantes : les sous-routines Connecteurs : les appels fonctionnels


Gnie Logiciel ENSI -2011/2012 Houda Benali

2 255

Survol : Modle de type Call-return

Gnie Logiciel

ENSI -2011/2012

Houda Benali

2 266

GL-II2ENSI -2011/2012

Survol : Modle par couche (layered model)


Utile pour la dcomposition de systme de grande taille Un systme complexe peut tre construit en superposant les couches de niveau dabstraction croissant Abstraction du systme en diffrents niveaux, chacun fournissant un groupe de services Chaque couche est un composant avec une interface bien dfinie utilise par la couche juste au dessus (i.e., externe) La couche suprieure (externe) voit la couche infrieur (interne) comme un ensemble de services offerts Il est important davoir une couche spare pour lInterface Utilisateur (IU) Les couches juste au dessous de lIU offrent les fonctions applicatives dfinies par les cas dutilisation
Gnie Logiciel ENSI -2011/2012 Houda Benali 2 277
GL-II2ENSI -2011/2012

Survol : Modle par couche (layered model)


Composants : chaque composant ralise un service
Une couche offre un service (serveur) aux couches externes (client) Service cr indpendamment du logiciel ou spcifiquement Met profit la notion dabstraction, les couches externes sont plus abstraites (haut niveau) que les couches internes

Connecteurs : dpendent du protocole dinteraction souhait entre couches


Systme ferm : une couche na accs quaux couches adjacentes. Les connecteurs ne relient que les couches adjacentes Systme ouvert : toutes les couches ont accs toutes les autres. Les connecteurs peuvent relier deux couches quelconques
GL-II2ENSI -2011/2012

Gnie Logiciel

ENSI -2011/2012

Houda Benali

2 288

Survol : Modle par couche (layered model)


Dun point de vue conception
Diviser pour rgner : les couches peuvent tre conues sparment Cohsion : si elles sont bien conues, les couches prsentent une cohsion par couche Couplage : des couches infrieures bien conues ne devraient rien savoir propos des couches suprieures et les seules connexions autorises entre couches se font via
GL-II2ENSI -2011/2012

les API Rutilisation : on peut souvent rutiliser des couches dveloppes par dautres et qui proposent le service requis Flexibilit : il est facile dajouter de nouveaux services construits sur les services de plus bas niveau
Gnie Logiciel ENSI -2011/2012 Houda Benali

2 299

Survol : Modle par couche (layered model)


Dun point de vue conception
Abstraction : on na pas connatre les dtails dimplmentation des couches infrieures Rutilisabilit : les couches infrieures peuvent tre conues de faon offrir des solutions gnriques rutilisables Anticipation du changement : en isolant les composants dans des couches distinctes, le systme devient rsistant Testabilit : les couches peuvent tre testes indpendamment
GL-II2ENSI -2011/2012

Gnie Logiciel

ENSI -2011/2012

Houda Benali

3 300

Survol : Modle par couche (layered model)


Avantages:
Facilite le dveloppement incrmental de sous systmes en diffrentes couches. Lorsque linterface dune couche change, seulement la couche adjacente est affecte

Dsavantages
Parfois difficile de dterminer le critre dabstraction

Gnie Logiciel

ENSI -2011/2012

Houda Benali

3 311

GL-II2ENSI -2011/2012

Survol : Modle par couche (layered model)

Gnie Logiciel

ENSI -2011/2012

Houda Benali

3 322

GL-II2ENSI -2011/2012

Survol : Modle par couche (layered model)


Les systmes dinformations contiennent habituellement plusieurs couches
Prsentation : linterface pour permettre lusager dinteragir avec les applications et consulter les donnes du systmes . Logique tches Couche du domaine : les objets du domaine. Permet de dcoupler linterface usager et la reprsentation de donnes. Base de donnes : contient les donnes de lentreprise.
Gnie Logiciel ENSI -2011/2012 Houda Benali

dapplication

Plusieurs

applications

fonctionnent
GL-II2ENSI -2011/2012

concurremment au dessus de la base de donne pour effectuer diffrentes

3 333

Survol : Modle-Vue-Contrleur (MVC)


Systme par couches ouvert Sparer la couche interface utilisateur des autres parties du systme (car les interfaces utilisateurs sont beaucoup plus susceptibles de changer que la base de connaissances du systme) Compos de trois types de composants
Modle : rassemble des donnes du domaine, des connaissances du systme. Vue : utilis pour prsenter/afficher les donnes du modle dans linterface utilisateur Contrleur : contient les fonctionnalits ncessaires pour grer et contrler les interactions de lutilisateur avec la vue et le modle
Gnie Logiciel ENSI -2011/2012 Houda Benali
GL-II2ENSI -2011/2012

3 344

Survol : Modle-Vue-Contrleur (MVC)

Gnie Logiciel

ENSI -2011/2012

Houda Benali

3 355

GL-II2ENSI -2011/2012

Survol : Modle-Vue-Contrleur (MVC)


Modle : noyau de lapplication
Enregistre les vues et les contrleurs qui en dpendent Notifie les composants dpendants des modifications aux donnes

Vue : interface (graphique) de lapplication


Cre et initialise ses contrleurs Affiche les informations destines aux utilisateurs Implante les procdure de mise jour ncessaires pour demeurer cohrente Consulte les donnes du modle
GL-II2ENSI -2011/2012

Contrleur : partie de lapplication qui prend les dcisions


Accepte les vnement correspondant aux entres de lutilisateur Traduit un vnements (1) en demande de service adresse au modle ou bien (2) en demande daffichage adresse la vue Implmente les procdures indirectes de mise jour des vues si ncessaire

Gnie Logiciel

ENSI -2011/2012

Houda Benali

3 366

Survol : Modle-Vue-Contrleur (MVC)


Avantages :
appropri pour les systmes interactifs, particulirement ceux impliquant plusieurs vues du mme modle de donnes. Peut tre utilis pour faciliter la maintenance de la cohrence entre les donnes distribues
GL-II2ENSI -2011/2012

Inconvnient : goulot dtranglement possible

Gnie Logiciel

ENSI -2011/2012

Houda Benali

3 377

Survol : Modle de type Objet


La structuration dun systme en un ensemble dobjets faiblement coupls
Composantes : les objets du systmes
Facile de modifier la reprsentation interne dun objet

Connecteurs : les interfaces bien dfinis de ces objets

La dcomposition du systme
Identification des classes du domaine (attributs et oprations) Donc, en principe, principalement ax sur les donnes
GL-II2ENSI -2011/2012

Pour limplantation, on ajoute un modle de contrle


Diagramme de squence ou de collaboration Permet de coordonner les oprations des objets
Gnie Logiciel ENSI -2011/2012 Houda Benali

3 388

Survol : Exemple de gestion de factures

Gnie Logiciel

ENSI -2011/2012

Houda Benali

3 399

GL-II2ENSI -2011/2012

Survol : Modle de type Objet


Avantages
Faible couplage entre les objets, ce qui rend possible leur modification sans affecter les autres objets. Les objets reprsentent des entits du domaine dapplication.

Dsavantages
GL-II2ENSI -2011/2012

Des changements dinterface peuvent causer des problmes Les entits complexes sont parfois difficiles reprsenter comme des objets.

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 400

COMPOSANTES INDPENDANTES
Processus communicants (clientserveur, peer-to-peer) Dirigs par des vnements (eventbased)

41

Survol : Client-serveur

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 422

GL-II2ENSI -2011/2012

Survol : Client-serveur

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 433

GL-II2ENSI -2011/2012

Survol : Client-serveur

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 444

GL-II2ENSI -2011/2012

Survol : Client-serveur

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 455

GL-II2ENSI -2011/2012

Survol N-tiers

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 466

GL-II2ENSI -2011/2012

Survol : Pair--pair (Peer-to-peer)

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 477

GL-II2ENSI -2011/2012

Survol : Pair--pair (Peer-to-peer)

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 488

GL-II2ENSI -2011/2012

Survol : Pair--pair (Peer-to-peer)

Gnie Logiciel

ENSI -2011/2012

Houda Benali

4 499

GL-II2ENSI -2011/2012

Survol: Processus communicants


Dun point de vue conception
Diviser pour rgner : de faon vidente, client et serveur peuvent tre dveloppes sparment Cohsion : le serveur peut offrir des services cohsifs au client Couplage : un seul canal de communication existe souvent entre client et serveur Rutilisation : il est possible de trouver une bibliothque de composants, interfaces, etc. pour construire les systmes Toutefois, les systmes client/serveur dpendent trs souvent de nombreuses considrations lies intimement lapplication serveur Flexibilit : il est assez facile dajouter de nouveaux clients et serveurs Portabilit : on peut dvelopper de nouveaux clients pour de nouvelles plateformes sans devoir porter le Testabilit : on peut tester le client et le serveur indpendamment Conception dfensive : on peut introduire des oprations de vrification dans le code traitant les messages reus de part et dautre
Gnie Logiciel ENSI -2011/2012 Houda Benali 50 50
GL-II2ENSI -2011/2012

Survol: Architectures orientes vnements


Invocation implicite: publish and subscribe

Invocation explicite: les messages sont envoys nominativement (mais les composantes ne se contrlent pas)

Gnie Logiciel

ENSI -2011/2012

Houda Benali

51 51

GL-II2ENSI -2011/2012

Survol: Architectures orientes vnements


Avantages:
Indpendance des composantes, Scalabilit, Configuration dynamique.

Dsavantages:
GL-II2ENSI -2011/2012

Performance, Difficult conceptuelle pour grer des interactions compliques.

Gnie Logiciel

ENSI -2011/2012

Houda Benali

52 52

Les modles darchitectures - UML


Modle de composants Le modle de composants permet de spcifier larchitecture logicielle pour un environnement de dveloppement donn. Il contient la dfinition des units logiques de manipulation ou de compilation. Cette notion nest pas toujours supporte par le langage utilis en phase de codage. Modle de dploiement Ce modle reprsente larchitecture matrielle physique du systme. Les processus sont rpartis sur les diffrents processeurs et les priphriques utiliss sont dfinis. Dans le cas de lutilisation dune technique comme CORBA, le modle est complt par la spcification en IDL des interfaces entre processus distribus.
Gnie Logiciel ENSI -2011/2012 Houda Benali
GL-II2ENSI -2011/2012

53 53