Cours d'Analyse Principes et Méthodes








télécharger 448.36 Kb.
titreCours d'Analyse Principes et Méthodes
page5/7
date de publication02.02.2018
taille448.36 Kb.
typeCours
ar.21-bal.com > droit > Cours
1   2   3   4   5   6   7

1.4Passage du modèle de domaine vers le modèle de conception.



Le modèle de conception est constitué

  • de diagrammes de classes logicielles (classes + attributs +opérations)

  • de diagrammes d’interactions nécessaire entre les objets des classes logicielles pour satisfaire les besoins identifiés par les uses case.


Démarche 8 :

(La plus importante concernant l’identification des classes et des responsabilités.)

Pour chaque opération système
a) on définit les classes logicielles à implémenter.
b) On affecte des responsabilités à ces classes

On s’aide de diagrammes d’interaction (diagramme de séquence ou diagramme de collaboration). On justifie nos choix d’affectation par les patterns généraux d’affections de responsabilité.(GRASP)

1.4.1Qu’est ce qu’une responsabilité en UML ?


Une responsabilité est un contrat ou une obligation d’un classificateur (classe, package).

Ces responsabilités sont de deux types : faire et savoir.

Exemple de responsabilité de faire : Créer un objet 

Déclencher une action d’un autre objet 

Coordonner les activités d’autres objets

Exemple de responsabilité de savoir : Connaître les données privées encapsulées.

Connaître les objets liés

Connaître les éléments qu’il peut calculer

Lorsque l’on crée les diagrammes d’interactions on prend des décisions qui se reflètent dans les messages envoyés aux différentes classes.

Ces décisions se prennent selon une série de patterns .
(Un ouvrage célèbre (« design patterns : catalogue de modèles de conception réutilisables) traite ce sujet. Il est écrit par Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides connus sous le nom de la bande des quatre.)
Quelques patterns :

1.4.2Le pattern expert en information.


Problème : A qui affecter une responsabilité. Quel est le principe général à envisager en premier lieu. (le principe des principes)
Solution : on affecte la responsabilité à l’expert en information :

L’expert en information est la classe qui possède les informations nécessaires pour assumer sa responsabilité.
Ce pattern ne fait qu’exprimer une intuition : « qui sait fait ».
Exemple :.

Le système doit connaître le total à faire payer au client.

Qui doit avoir la responsabilité de connaître ce total (qui est capable de la calculer)?
Le pattern expert dit qu’il faut rechercher la classe qui possède les informations nécessaires pour déterminer ce total.

Observons la partie du modèle du domaine qui contient la réponse.

Le total à payer est la somme des totaux de chaque ligne d’article.

Vente connaît toutes les ligneArticle, il a donc selon l’expert en information la responsabilité de calculer le total à payer.


Exprimons cette décision dans le diagramme de collaboration :

Ce qui donne comme classe logicielle :



Le raisonnement doit bien entendu continuer.
getTotal va sommer les sous-totaux de chaque ligne.
Le sous total d’une ligne est la quantité x le prix de l’article de la ligne.
L’expert en information nous dit que ligneArticle connaît la quantité et la description de l’article concerné, ce qui lui permet d’en connaître le prix. ligneArticle a donc la responsabilité de connaître son sous total

Exprimons cette décision dans le diagramme de collaboration :


Ceci donne les classes logicielles suivantes :

En Uml l’usage consiste à ne pas indiquer les accesseurs des champs (pour ne pas alourdir le schéma)..

Ceci explique qu’on n’indique pas getPrix dans DescriptionArticle..


1.4.3Le pattern créateur.


Problème. Qui doit avoir la responsabilité de créer une nouvelle instance lorsqu’on en a besoin.

Solution. La classe B est responsable de créer une instance de la classe A si une ou plusieurs des conditions suivantes existent :

  • B agrège des objets de A (agréger signifie mettre ensemble pour faire un tout)

  • B contient des objets de A

  • B enregistre des objets de A

  • B utilise étroitement des objets de A (subjectif)

  • B connaît les données d’initialisation des objets de A ( cf expert en information)


Exemple

Qui doit créer une instance de ligneArticle ?

Vente agrège (et contient) les ligneArticle, l’expert créateur justifie que Vente crée les instances de ligneArticle.



Ceci donne la classes logicielle VENTE suivante :




Le pattern contrôleur.
La couche interface ne gère pas les évènements systèmes.

Problème : qui doit avoir la responsabilité de gérer un évènement du système entrant.
(généré par un acteur externe).

Solution : le traitement d’un évènement entrant est affecté à une classe dédiée à cet effet :

Soit

  • La classe représente l’ensemble du système.
    Il n’y a alors qu’une seule classe destinée à la gestion de tous les évènements entrants.
    Cette classe peut être arbitrairement créée (hors du modèle du domaine) ou être une classe existante. On appelle cela une façade.

  • La classe représente un scénario de cas d’utilisation.
    Il existe alors plusieurs classes qui s’occupent de la gestion des évènements d’entrées.
    Ces classes s’appellent alors gestionnaires de …« nom du scénario » ou contrôleur de « nom du scénario ».


Le pattern contrôleur garantit que la couche interface ne gère pas les évènements système :

La logique de l’application est donc isolée de l’interface de l’application, ce qui permet de changer facilement d’interface ou de modifier la couche application sans modification de l’interface.

exemple de mauvaise solution :

On place la logique de l’opération au niveau de l’interface.

Pour rappel : L’opération système est saisirArticle.
La logique de cette opération consiste entre autre à « créerLigneArticle ».


onClick

Couche interface

Couche domaine


La couche interface s’occupe de la gestion de l’opération système saisirArticle.

Cette architecture est moins souple que celle faisant appel à un contrôleur.
1   2   3   4   5   6   7

similaire:

Cours d\Cours d'Analyse : principes et méthodes

Cours d\Chapitre 2 : Les Méthodes d’analyse de la Cellule – Bernard Rousset

Cours d\0 Urbanisme (2). Note du 22/3/02
«analyse des contenus des cours existants et futurs» afin de «formuler une proposition d’un ensemble de cours structuré et complémentaire...

Cours d\L´évolution des sciences a travers le temps et les civilisations
«la connaissance claire et certaine de quelque chose, fondée soit sur des principes évidents et des démonstrations, soit sur des...

Cours d\Analyse de la situation d’effondrement progressif du cours du baril du brut
«les cours du pétrole peuvent être manipulés. L’Arabie Saoudite a commencé à faire chuter les prix. Ceci est de la manipulation politique....

Cours d\Cours 1 : Principes du diagnostic anatomo-pathologique des tumeurs
«je vois une tuméfaction» car cela n’est pas forcément grave, dans ce cas on fait une biopsie pour faire le diagnostic

Cours d\Mme Bezeau est une conseillère principale qui a plus de 26 ans d'expérience...

Cours d\Cours d’analyse des organisations
«la nécessité d’un concept d’organisation qui ne se réduise pas àcelui de structure» (Le Moigne 1977 d’après F. Varella p17)

Cours d\Le cours de
«phénomène le plus évident de la vie économique» (cf. A. Benachenhou : Introduction à l’analyse économique, opu, Alger, 1976, p....

Cours d\Méthodes de construction de dériveurs légers








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com