La Conception: Cours Génie Logiciel

Software Engineering · notes

Voir tous les documents en génie logiciel

15/11/2017

Chapitre 4

La Conception

Cours G nie

Logiciel 1

Niveau II2

AU: 2017/2018

PLAN

Introduction

Pr sentation de la conception

Principes de la conception

Qualit s dune bonne conception

Conception architecturale

D finitions

Choix dune architecture

Styles architecturaux

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

2

1

INTRODUCTION

3

D E L A N A LY S E L A

C O N C E P T I O N

Analyse

Quoi-Faire ?

1 .I NT RODUCT I ON

Conception

Comment-Faire ?

Difficult de la conception:

La conception ne se contente pas didentifier le

probl me mais doit lui apporter une solution valide.

Processus cr atif

Activit it rative/incr mentale qui transforme

progressivement les besoins vers un produit final.

tape cruciale du d veloppement logiciel: pont

entre lanalyse des besoins et limpl mentation.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

4

15/11/2017

2

15/11/2017

D E L A C O N C E P T I O N

L I M P L M E N TAT I O N

1 .I NT RODUCT I ON

Limpl mentation est la mise en Suvre des choix issus de la

conception.

Limpl mentation doit pouvoir r pondre aux contraintes de

r alisation sans mettre en cause les choix de conception.

5

C O N C E P T I O N V S

I M P L M E N TAT I O N - E X E M P L E

T Y P I Q U E

1 . I NT RODU CT I O N

On introduit, lors de limpl mentation, une optimisation

qui brise une abstraction issue de la conception.

Ceci t moigne dune mauvaise conception : une sp cification non

fonctionnelle concernant lefficacit na pas t prise en compte.

Ceci t moigne dune mauvaise impl mentation : les choix de

conception doivent toujours tre respect s par limpl mentation.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

6

3

15/11/2017

PR SENTATION DE

LA CONCEPTION

7

D FINITIONS

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

La conception est un processus de r solution de probl mes

dont lobjectif est didentifier la meilleure fa on:

dimpl menter les besoins fonctionnels dun syst me...

tout en respectant les contraintes impos es par les besoins non

fonctionnels...

et en adh rant des principes de base menant un logiciel de qualit .

La conception propose une solution au probl me sp cifi

lors de lanalyse :

architecture de lapplication (architecture logicielle et architecture

physique),

description d taill e des modules, des interfaces utilisateurs, des

donn es.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

8

4

D FINITIONS

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

Activit Intellectuelle

Cr ativit

Exp rience.

Pas de recettes toutes faites.

mais il existe des m thodes (principes & bonnes pratiques)

pouvant tre de bons conseils

R sultat de la phase de conception = conception ou

design .

Une bonne conception contribue la qualit du logiciel:

fiabilit , correction, volutivit , etc.

9

LA CONCEPTION = S RIE

DE D CISIONS

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

Lors de la r solution dun probl me, tout concepteur fera

face une s rie de probl mes:

1. Ce sont des sous-probl mes devant tre r solus.

2. Chacun de ces probl mes peut tre solutionn de diff rentes

fa ons

=> Ce sont des options de conception.

3. Le concepteur doit donc prendre des d cisions de conception

afin de r soudre chacun de ces sous-probl mes en tenant

compte:

des exigences

du design courant

de la technologie disponible

des principes de bon design

de lexp rience pass e

4.

Il faudra tre en mesure de toujours choisir la meilleure

alternative.

10

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15/11/2017

5

15/11/2017

LA CONCEPTION = S RIE

DE D CISIONS

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

Lespace engendr par lensemble des solutions possibles

pour un design sappelle lespace de design

Par exemple:

fat-client

thin-client

separate

user interface

layer for

client

no

separate

user interface

layer for client

client-server

monolithic

programmmed in Java

programmed in Visual Basic

programmed in C++

11

TAPES DE LA

CONCEPTION

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

La conception passe par deux tapes:

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

12

6

TAPES DE LA

CONCEPTION

Conception architecturale

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

=conception de haut niveau= conception globale

Premi re tape qui consiste d finir les fonctions des l ments d'un

syst me et leurs relations fonctionnelles.

Objectif: Structuration et organisation g n rale du syst me concevoir

Contient la description des l ments principaux du syst me, les

relations entre eux, les contraintes respecter, les motifs et la logique

de cette d composition.

La division du syst me en sous-syst mes et composantes

Comment ceux-ci seront interconnect es.

Comment vont-ils interagir.

Leurs interfaces.

Quest ce quils contiennent (Conception des modules)

SD, op rations et associations.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

13

TAPES DE LA

CONCEPTION

Conception d taill e

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

=conception de bas niveau

tape qui consiste d tailler les r sultats de lanalyse fonctionnelle,

jusqu' un niveau suffisant pour en permettre finalement le codage dans

un langage de programmation choisi.

D finition dun design logiciel respectant le plan de la conception

architecturale.

Publicité

Objectif: d tailler les l ments produits dans la conception architecturale

et pr parer au mieux limpl mentation:

description pr cise de chaque module

algorithmes mis en Suvre

traitements effectu s en cas d'erreur

Conception des donn es

Conception des algorithmes:

tude de leur efficacit .

Conception de protocoles:

Les messages et r gles utilis s dans la conversation.

14

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15/11/2017

7

TAPES DE LA

CONCEPTION

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

But: D composition et raffinement progressif du syst me en

modules de plus en plus d taill s.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15

PROCESSUS DE

CONCEPTION

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

Plusieurs tapes :

Conception de larchitecture

Conception de linterface

Conception des composants

Structures de donn es

Algorithmes

Interface

Syst me

16

15/11/2017

8

PROCESSUS DE

CONCEPTION

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

Sp cification

des besoins

Conception de

larchitecture

Conception de

linterface

Conception du

composant

Architecture

Sp cification

Interface

Struct.

Don

Algo.

Sp cification

S. D. & Algo.

17

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

LACTIVIT DE

CONCEPTION

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

Sp cifications des besoins

Principes fondamentaux du G nie Logiciel

CONCEPTION

Mod lisation

des donn es

Architecture

du syst me

Interface

Utilisateur

Composants

(modules)

tape d cisive pour :

la fiabilit

l'efficacit

la maintenabilit

la r utilisabilit

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

18

15/11/2017

9

PRINCIPALES

ACTIVIT S

2 . P R S E N TAT I O N D E

L A C O N C E P T I O N

la conception des structures des donn es

con oit et sp cifie en d tail les structures de donn es

La conception de larchitecture du syst me : d finir les s/syst mes

  • identifie les sous-syst mes qui composeront le syst me global
  • tablit une description des services support s par chaque sous-

syst me

la conception de linterface : identifier et documenter les

interactions entre s/syst mes.

la conception des composants : services offerts

  • d coupe les sous-syst mes en plusieurs composants
  • con oit et sp cifie en d tail les algorithmes pour r aliser les

diff rents services

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

19

PRINCIPES DE

CONCEPTION

15/11/2017

10

15/11/2017

PRINCIPES DE BASE

3 .P RI NCI P ES DE

LA CONCEP T I ON

La conception ne doit pas r inventer la roue

Le temps est pr cieux exploiter des solutions existantes

La conception doit tre uniforme et int grable

- R gles de style et de format pr alablement d finies pour toute

l quipe

  • D finition minutieuse des interfaces entre les composants

La conception doit avoir une structure facilitant

l volution

- Tra abilit entre les besoins et les l ments de la conception

  • Application des principes du g nie logiciel (modularit ,

abstraction, etc.)

21

PRINCIPES DE BASE

3 .P RI NCI P ES DE

LA CONCEP T I ON

La conception nest pas le codage et vice versa

Distinguer les niveaux dabstraction conceptuel/code source

La conception doit miser sur la qualit

Divers concepts et mesures sont disponibles

La conception doit tre revue pour minimiser les erreurs

s mantiques

Faire attention aux omissions, ambigu t s et inconsistances

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

22

11

15/11/2017

QUELQUES PRINCIPES DE

CONCEPTION

3 .P RI NCI P ES DE

LA CONCEP T I ON

1. Modularit

2. Abstraction

3. Encapsulation

4. Anticipation des changements

5. R utilisabilit

6. R utilisation

7. Forte coh sion

8. Faible couplage

Qualit s

logicielles en

jeu

23

MODULARIT

3 .P RI NCI P ES DE

LA CONCEP T I ON

Objectif: d terminer la structure modulaire du syst me

d velopper

unit de

conception

" unit de codage et tests

" unit d'int gration et d'archivage

" unit de r utilisation

" unit de maintenance

R pondre aux questions:

Quels sont les modules ?

Quelles relations lient les modules entre eux ?

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

24

12

15/11/2017

MODULARIT

3 .P RI NCI P ES DE

LA CONCEP T I ON

n principe : s parer le syst me en composants logiques

modules

n avantages :

r duction de complexit

les modules peuvent tre

con us et construits s par ment

r utilis s

syst me modifi en changeant un nombre limit de modules

25

MODULE: D FINITION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Un module est un composant dune application, contenant

des d finitions de donn es et/ou de types de donn es et/ou

de fonctions et constituant un tout coh rent.

Par exemple des m thodes, des classes, des paquetages sont des modules

Publicité

en Java.

On peut d finir un module comme un fournisseur de

ressources ou/et de services.

Quand on d compose un syst me en modules il faut d crire

pr cis ment les relations entre ces modules.

Quels sont les modules ? (fonction, proc dure, Classe, paquet,

composant : JavaBean, EJB, ActiveX, COM, DCOM, &)

Quelles relations lient les modules entre eux ?

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

26

13

15/11/2017

MODULARIT

3 .P RI NCI P ES DE

LA CONCEP T I ON

Relations entre modules : Deux types de relations sont

utiles pour d crire la structure dun syst me

Relation UTILISE : On dit que Mi UTILISE Mj si Mi requiert la

pr sence de Mj car Mj lui fournit des ressources ou des services.

Exemple : Appel de proc dure

UML: association, liens de d pendance&

Relation CONTIENT : On dit que Mi CONTIENT Mk si Mi est

r alis en assemblant un ou plusieurs modules dont le module Mk

Exemple : regroupement en paquetages UML

D claration dune classe lint rieur dune autre classe

UML: regroupement en paquetages

(aussi agr gation/composition)

27

MODULARISATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Relation UTILISE

On dit que Mi UTILISE Mj si Mi requiert la

pr sence de Mj car Mj lui fournit des

ressources ou des services.

La relation UTILISE doit id alement tre une hi rarchie. Pourquoi est-ce

pr f rable ?

Facilite la compr hension de la structure (par niveau dabstraction)

Facilite le test unitaire&

Autrement: on peut se retrouver avec un syst me qui ne marche pas

jusqu ce que tout marche (Parnas)

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

28

14

15/11/2017

MODULARISATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Relation UTILISE

Relation d finie statiquement i.e. ind pendamment de

toute ex cution du logiciel.

29

MODULARISATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Relation UTILISE

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

30

15

15/11/2017

MODULARISATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Relation UTILISE

On doit trouver une solution de compromis raisonnable qui

offre un couplage faible.

31

MODULARISATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Relation UTILISE

On recommande une relation UTILISE qui pr sente une

silhouette profonde&

A viter: r teau !

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

32

16

15/11/2017

MODULARISATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Relation Contient

On dit que Mi CONTIENT M k si Mi est r alis en

assemblant un ou plusieurs modules dont le module M k

Exemple: inclusion de packages et de classes en Java

33

MODULARIT

3 .P RI NCI P ES DE

LA CONCEP T I ON

Identifier les modules en assurant:

forte coh sion l'int rieur du module

faible couplage entre les modules

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

34

17

15/11/2017

ABSTRACTION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Maintenir le niveau dabstraction aussi lev que

possible

La complexit dun design est r duite lorsquun maximum

de d tails se trouve masqu

Une abstraction de qualit utilise toujours le principe de

masquage de linformation

Une abstraction permet de saisir lessence dun syst me sans avoir

en conna tre les d tails de son impl mentation

35

ABSTRACTION - EXEMPLE

3 .P RI NCI P ES DE

LA CONCEP T I ON

En orient e objet, les classes sont des abstractions de

donn es contenant des abstractions de proc dures

Attribuer une visibilit priv e aux variables permet daccro tre la

qualit de labstraction.

R duire le nombre de m thodes publiques accro t la qualit de

labstraction

Une meilleure abstraction est obtenue en d finissant des

m thodes ayant peu de param tres

La cr ation de super-classes et dinterfaces accro t

consid rablement la qualit de labstraction.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

36

18

ENCAPSULATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

Associer un composant une vue externe et une vue

interne.

Vue externe : c'est l'interface, elle d finit ce que le composant doit

faire.

Vue interne: c'est l'impl mentation, elle d finit comment il le fait.

Exemple : PILE

initialiser,

empiler,

d piler.

37

ANTICIPATION DES

CHANGEMENTS

3 .P RI NCI P ES DE

LA CONCEP T I ON

Un des principaux soucis de lactivit de conception:

d velopper un design qui facilite lajustement du syst me

aux changements:

Perfectionnement du syst me impos par les nouvelles exigences

du client.

Adaptations impos s par la modification de lenvironnement

mat riel, social, etc.

Importante qualit logicielle en jeu: maintenabilit

Publicité

38

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15/11/2017

19

15/11/2017

CONCEVOIR POUR

CHANGER

3 .P RI NCI P ES DE

LA CONCEP T I ON

Types de changements

Sources de vrais changements

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

39

CONCEVOIR POUR

CHANGER

3 .P RI NCI P ES DE

LA CONCEP T I ON

Pourquoi?

Quelques cons quences ind sirables

Un design, m me merveilleux , peut se r v ler

extr mement difficile et co teux adapter.

Cons quence: n cessit de refaire un tout nouveau design pour

int grer un changement apparemment mineur&

En essayant daccommoder larchitecture aux changements,

le concepteur risque de briser l l gante structure initiale

du design.

Cons quence: application de plus en plus difficile maintenir et

inspirant peu confiance (fiabilit compromise ?)

40

20

15/11/2017

CONCEVOIR POUR

CHANGER

3 .P RI NCI P ES DE

LA CONCEP T I ON

Types de changements

Changement dalgorithme.

Changement de repr sentation des donn es.

Changement au niveau des p riph riques.

Changement de lenvironnement social.

Changements dus au processus de d veloppement.

41

ANTICIPATION DES

CHANGEMENTS

3 .P RI NCI P ES DE

LA CONCEP T I ON

R duire le couplage et accro tre la coh sion

Cr er des abstractions

Ne pas introduire de constante num rique ad hoc (pas de

hard-coding)

Permettre un maximum doptions

Ne pas restreindre inutilement les options

Utiliser du code r utilisable et rendre le code r utilisable

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

42

21

15/11/2017

R UTILISABILIT

3 .P RI NCI P ES DE

LA CONCEP T I ON

Accro tre la r utilisabilit autant que possible

Concevoir le design de fa on ce que les diff rents aspects

du syst me soient utilisables dans diff rents contextes

G n raliser le design autant que possible

Simplifier le design autant que possible

Ajouter des options aux diff rents modules

43

R UTILISATION

3 .P RI NCI P ES DE

LA CONCEP T I ON

R utiliser autant de composantes que possible

La r utilisation est le principe compl mentaire au principe

de r utilisabilit

R utiliser les designs existants permet de tirer profit de leffort

investi par les concepteurs de composantes r utilisables

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

44

22

UN CERCLE VICIEUX

SINSTALLE

Les d veloppeurs de logiciels ne con oivent pas de

composantes r utilisables, il ny a donc rien r utiliser.

Pour r soudre ce probl me, il faut reconna tre que:

Ce cercle vicieux a un co t

Investir dans la r utilisabilit est important

Sassurer de la qualit des composantes r utilisables

produites est essentiel

De cette fa on, les r utilisateurs potentiels auront

confiance en ce produit

La qualit globale du logiciel est celle de sa

composante la plus faible

Le d veloppement de logiciel r utilisable m ne souvent,

en fait, une simplification du logiciel

45

D VELOPPEMENT POUR

ET PAR LA R UTILISATION

Le d veloppement par la r utilisation logicielle impose un

cycle de production-r utilisation perp tuel et une

architecture logicielle normalis e.

Une r utilisation bien orchestr e n cessite la cr ation et le maintien

d'une biblioth que logicielle et un changement de focus;

cr er une application revient cr er les composants de biblioth que

n cessaires puis construire l'application l'aide de ces composants.

Une telle biblioth que, facilitant le d veloppement d'application est un

framework (cadriciel) d'entreprise et son architecture, ainsi que sa

documentation sont les pierres angulaires de la r utilisation logicielle

en entreprise.

L'architecte doit

explorer la biblioth que pour trouver les composants logiciels

appropri s

puis cr er les composants manquants, les documenter et les int grer

la biblioth que.

Dans une grande entreprise, ce r le est rempli par UN

responsable du d veloppement harmonieux de la

biblioth que et de la conservation de l'int grit de son

architecture. (l'architecte en chef )

46

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15/11/2017

23

D VELOPPEMENT PAR LA

R UTILISATION

Aucun logiciel de grande taille nest d velopp depuis z ro

aujourdhui

Utilisation de

Bouts de code

Structures + fonctions / Classes + m thodes

Biblioth ques

Cadriciels: cadre dapplication (fraweworks)

47

BIBLIOTH QUES

Biblioth que logicielle est un ensemble de

fonctions utilitaires, regroup es et mises disposition afin

de pouvoir tre utilis es sans avoir les r crire

Plut t que de coder une proc dure courante dans chaque

programme en ayant besoin, on rassemble ces proc dures dans

des biblioth ques.

Si un programme a une fonction remplir et que celle-ci se trouve

en biblioth que, il l'utilisera directement.

Les biblioth ques logicielles se distinguent des ex cutables dans

la mesure o elles ne repr sentent pas une application

Exemples

La biblioth que de classes Java

La STL de C++

48

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15/11/2017

24

15/11/2017

Publicité

BIBLIOTH QUES

L'organisation classique des biblioth ques se fait par d coupage

th matique des fonctions, suivant les services qu'elles rendent:

Biblioth ques de bas niveau ou biblioth ques syst me : elles

fournissent des services d'interface avec le syst me d'exploitation,

avec les p riph riques, ou fournissent des outils g n riques :

biblioth ques d'entr es/sorties : fonctions de lecture et d' criture

de fichiers, de p riph riques d'entr e/sortie comme le clavier,

l' cran, etc.

gestion de structures de donn es syst me

Biblioth ques de haut niveau, aussi appel es biblioth ques m tier,

elles interagissent avec celles de bas niveau : les fonctions qu'elles

contiennent sont propres une activit sp cifique:

bo tes outils graphiques : ensemble de fonctions permettant de

g rer, d'animer et d'afficher des objets graphiques complexes

Exemple : OpenGL

biblioth ques d'op rateurs de traitement d'image : ensemble de

fonctions destin es structurer l'information dans une image des

fins d'analyse,

gestion de structures de donn es utilisateur.

49

BIBLIOTH QUES

Les biblioth ques offrent une interface de

programmation (API: Application

Programming Interface), permettant aux

programmeurs de choisir les fonctions.

Les API se pr sentent comme une liste des

noms des fonctions ou/et classes disponibles,

avec une documentation sur les param tres

leur fournir et sur les r sultats retourn s.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

50

25

CADRE DAPPLICATIONS:

CADRICIEL

Un cadriciel est un espace de travail modulaire.

C'est un ensemble de biblioth ques, d'outils et de conventions

permettant le d veloppement de programmes.

Cest un logiciel

r utilisable qui propose une

solution

g n rique un probl me g n ralisable.

Il fournit les services que requi rent diff rentes applications.

Un cadriciel fournit un contexte o les composants sont r utilis s.

Cest une application logicielle partielle

int grant les connaissances d'un domaine,

dot e d'une architecture logicielle et d'un cSur (code) g n rique

d di e a la r alisation de nouvelles applications du domaine vis , par

param trage et extension

Un framework fournit:

un ensemble de fonctions facilitant la cr ation de tout ou d'une partie

d'un syst me logiciel

un guide architectural en divisant le domaine vis en modules.

51

BIBLIOTH QUES VS

CADRICIELS

Une biblioth que est limit e l'ensemble des fonctions

du syst me, par contre un cadriciel peut tre employ

par extension pour inclure galement l'architecture

logicielle pr conis e pour cette biblioth que (eg.

organisation en couches, utilisation du mod le MVC,

etc),

Exemples

Jdom est une librairie permettant de parser des fichiers XML.

Son API contient des fonctions de lecture des noeuds,

d'insertion de noeuds dans l'arbre XML, d'ajout d'attributs aux

balises...

Struts est un Framework qui permet de coder toute la partie

graphique d'une application, par un ensemble de librairies

(gestion des taglibs, des fichiers ressources pour les messages

ou la gestion des langues, gestion du mapping entre les

adresses et les pages, gestion des formulaires et des Beans,

etc.)

52

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15/11/2017

26

15/11/2017

BIBLIOTH QUES VS

CADRICIELS

Une biblioth que s'utilise, un Framework s tend ou se

param tre

Avec une biblioth que, le code d'une nouvelle application

invoque le code de la biblioth que

Le code d'un Framework appelle le code de la nouvelle

application: I n ve r s i o n de c o n t r l e ( ga l e me n t di t p r i n c i p e de Ho l l ywo o d :

l e c o de du Fr a me wo r k (p r e x i s t a n t ) i n vo qu e (c a l l b a c k ) l e s p a r t i e s de c o de

r e p r s e n t a n t l a n o u ve l l e a p p l i c a t i o n e n u n c e r t a i n n o mb r e s d' e n dr o i t s p r d fi n i s

n o mme s (p o i n t s d' e x t e n s i o n s o u p o i n t s de p a r a m t r a ge s o u (h i s t o r i qu e me n t )

Ho t s p o t

53

CADRE DAPPLICATIONS:

CADRICIEL

On trouve diff rents types de cadriciels :

Cadriciel d'infrastructure syst me : pour d velopper des syst mes

d'exploitation, des interfaces graphiques, des outils de

communication.

Exemple : Framework .Net, Eclipse, NetBeans, Struts

Cadriciel d'int gration intergicielle (middleware) : pour f d rer

des applications h t rog nes. Pour mettre dispositions

diff rentes technologies sous la forme d'une interface unique.

Exemple : Ampoliros avec ses interfaces RPC, SOAP, XML

Cadriciel orient s Syst me de gestion de contenu

Exemple: Joomla, itsEasy, WMaker

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

54

27

CADRE DAPPLICATION

ORIENT OBJET

Conform ment au paradigme orient objet, un

cadre dapplication sera compos dun ensemble

de classes.

Le API est alors lensemble de toutes les m thodes publiques de

ces classes.

Quelques-unes de ces classes seront abstraites

55

56

TYPES DE CADRES

DAPPLICATIONS

Un cadre horizontal fournit des services g n raux quun

grand nombre dapplications peuvent utiliser

Un cadre vertical est beaucoup plus complet, seules

demeurent quelques ouvertures qui doivent tre d finies

afin de sadapter une application sp cifique

Application

Services offered

by the framework

Application

Horizontal framework

Vertical

framework

Code to be provided to adapt the framework to the

needs of the application

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

15/11/2017

28

15/11/2017

QUALIT S DUN BON

DESIGN

3 .P RI NCI P ES DE

LA CONCEP T I ON

Une bonne conception devrait favoriser

lind pendance des modules

Pour valuer lind pendance des modules, on se

base g n ralement sur les concepts suivants:

Le couplage

La coh sion

Concepts qui peuvent dailleurs sinfluencer lun et lautre

57

CARACT RISTIQUES DUN

BON DESIGN

3 .P RI NCI P ES DE

LA CONCEP T I ON

Un bon design

=

une bonne d composition en modules qui favorise:

une forte coh sion: les l ments ne sont pas r unis dans un

m me module par hasard: ils forment un tout dans le but

de r aliser une t che commune.

un faible couplage: les modules sont relativement

ind pendants, ne d pendent pas trop des l ments d finis

dans dautres modules.

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

C

o

u

r

s

G

L

-

A

C

O

O

E

N

S

I

58

29

15/11/2017

FAIBLE COUPLAGE

2 .P RI NCI P ES DE

LA CONCEP T I ON

Couplage: mesure de linterd pendance entre deux

modules.

Un ensemble de modules est faiblement coupl si les

liens de d pendance (cf. interactions induisant une

relation UTILISE ) entre les modules sont peu

nombreux.

Un faible couplage est pr curseur&

Dun bon d coupage du syst me: les l ments qui

d pendent les uns des autres ne sont pas parpill s

travers les modules du syst me.

Dune facilit de maintenance: une modification dans un

module affecte ventuellement un nombre restreint dautres

modules. Nombre de r visions r duites&

59

COUP LAG E...