IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. ·...

20
1 © Petko Valtchev Université de Montréal Octobre 2005 1 IFT 3901 Analyse et Conception des Logiciels Automne 2005 Petko Valtchev © Petko Valtchev Université de Montréal Octobre 2005 2 Analyse et Conception 4. Modélisation du domaine

Transcript of IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. ·...

Page 1: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

1

© Petko Valtchev Université de Montréal Octobre 2005 1

IFT 3901Analyse et Conception

des Logiciels

Automne 2005Petko Valtchev

© Petko Valtchev Université de Montréal Octobre 2005 2

Analyse et Conception

4. Modélisationdu

domaine

Page 2: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

2

© Petko Valtchev Université de Montréal Octobre 2005 3

Modèle Domaine Sommaire

Diagramme de classes et modèle de domaine

Classes conceptuelles

Attributs

Associations

Diagramme d’objets

© Petko Valtchev Université de Montréal Octobre 2005 4

Modèle Domaine Diagramme de classes

Diagramme primordial dans la modélisation OO:

saisit la structure statique d’un système,

constitue le cadre dans lequel les diagrammes décrivant les aspectdynamiques du système s’insèrent:

les participants aux collaborations

Nom

Attributs

Opérations

Fait apparaître un ensemble d’éléments dont:

classes,

interfaces,

collaborations,

ainsi que leurs relations.

Page 3: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

3

© Petko Valtchev Université de Montréal Octobre 2005 5

Modèle Domaine Diagr. de classes (Ex.)

Windoworiginsize

open()close()

ConsoleWindow DialogBox Control

Event

dépendance

généralisation association

opérations

attributs

nom

© Petko Valtchev Université de Montréal Octobre 2005 6

Modèle Domaine Classes

« Une classe OO est la description d'une collection d'objets qui partagent les mêmes attributs, les mêmes opérations,

les mêmes relations et donc la même sémantique. »

Charactéristique clé de l’OO par opposition au structuré:

les classes doivent avoir une interprétation la plus aisée possible dansle domaine d’intérêt (d’affaires) afin de faciliter le retour de la part desclients et usagers, ainsi que la maintenance du système.

Ainsi, les classes “idéales” sont les plus proches possible des abstractions dudomaine d’affaires.

Ceci s’applique à tous les niveaux, avec une force croissante lorsque l’onremonte le temps:• en Analyse plus qu’en Conception, et encore plus qu’en Implémentation.

Page 4: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

4

© Petko Valtchev Université de Montréal Octobre 2005 7

Modèle Domaine La COO

Modèledomaine

Modèle« Use-Case »

spec := getSpecification( itemID )

: Register

enterItem(itemID, quantity)

. . .

makeNewSale()

Relations entre artefactspour les diagrammes declasses de conception

: ProductCatalog

1*

ProductCatalog...

getSpecification(...)...

. . .

. . .

. . .

Register. . .

Saledate. . .

1 . . .

. . .

1

Register...makeNewSale()enterItem(...)...

Sale

date...

...

réalisationsdes CdU (RCUs)

nécessite des RCUssuggère certainsconcepts du domaineInspire les

noms et lesattributs decertainesclasseslogiciels de laconception

classes conceptiondécouvertes viales RCUs

Modèle declasses deconception

© Petko Valtchev Université de Montréal Octobre 2005 8

Modèle Domaine Le Modèle du Domaine

Avant de commencer avec la conception du système, lesconcepts pertinents doivent être identifiés.

Modèle du domaine (MD) = artefact central du projet,comportant:

Classes conceptuelles ou du domaine (des abstractions), Associations entre celles-ci, Attributs des classes, Sans Opérations.

Page 5: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

5

© Petko Valtchev Université de Montréal Octobre 2005 9

Modèle Domaine Le MD, exemple

© Petko Valtchev Université de Montréal Octobre 2005 10

Modèle DomaineCe que MD est/n’est pas

Le MD fournit:

le vocabulaire du domaine utilisé tout au long du projet sous une forme visuelle et structurée, donc aisée à comprendre et modifier

la base de l’architecture du système final le découpage en classes d’analyse ne sera remis en cause que trèsrarement

Il n’est pas:

La couche « domaine » : les classes de conception inspiréesdes concept du domaine qui réalisent des opérations ayant unéquivalent dans les règles d’affaires

Le modèle des données: le stockage n’est pas un critère

Page 6: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

6

© Petko Valtchev Université de Montréal Octobre 2005 11

Modèle Domaine Classes: COO vs AOO

Payment

amount

Saledatetime

Pays-for

Paymentamount: MoneygetBalance(): Money

Saledate: DatestartTime: TimegetTotal(): Money. . .

Pays-for

La vision desintéressés surles conceptssignificatifsdu domaine.

1 1

1 1

inspireobjetset

noms dans

Modèledomaine

Modèle conception

Le développeur s’est inspiré du domaine lors de la conception des classes logiciel. Ainsi, ladistance entre la vision des intéressés sur le domaine et sa représentation dans lelogiciel se voit réduire.

© Petko Valtchev Université de Montréal Octobre 2005 12

Modèle Domaine Sommaire

Diagramme de classes et modèle du domaine

Classes conceptuelles

Attributs

Associations

Opérations

Diagramme d’objets

Page 7: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

7

© Petko Valtchev Université de Montréal Octobre 2005 13

Modèle Domaine Concepts

Animal

MammifèreCarnivore

Oiseau

Herbivore

Domaine zoologique

La Bibliothèque Livre

JournalPrêt

Libraire

« Au début de l’analyse les classes recherchées représentent des abstractions ou des concepts du domaine d’application

utiles pour le système. »

© Petko Valtchev Université de Montréal Octobre 2005 14

Modèle Domaine Concepts?

Une classe conceptuelle: idée, phénomène, objet, etc.

Dans la pure tradition philosophique (Port Royal), un concept a troiscomposants:

Extension = l’ensemble de tous les individus qui « tombent » sous le concept.

Intension = les caractéristiques partagées par les instances du concept.

Symbol (Dénotation) = représentation perceptible d’un concept (en mots ouimages)

Livre

AuteurTitre

Tout livre a un titreet un ou plusieurs

auteurs.

Page 8: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

8

© Petko Valtchev Université de Montréal Octobre 2005 15

Modèle Domaine Concepts (suite)

Les concepts peuvent revêtir des formes très variées:

Objets physiques

Exemplaire d’un livre, poste d’interrogation

Endroits

Bibliothèque, école, étranger

Transactions

Emprunt, dépôt, payement facture

Documents

Article, partition de musique, message, facture

Événements

Fin de prêt, confirmation de réservation

etc.

© Petko Valtchev Université de Montréal Octobre 2005 16

Modèle Domaine Construire le MD

La construction du modèle du domaine - activité cruciale la maîtrise du domaine est en jeu:

favoriser une approche « diviser-pour-régner »

Sources d’information (optionnelles):

Documents des besoins: portée, vision, Cas d’utilisation, Autres modèles du domaine disponibles, Ontologies du domaine, etc.

La découverte des classes conceptuelles: problème difficile

Découverte d’une ou deux classes - triviale Découverte de toutes les classes - nettement plus complexe Découverte de toutes les clases à la fois - impossible

Page 9: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

9

© Petko Valtchev Université de Montréal Octobre 2005 17

Modèle Domaine Construire le MD (suite)

Difficultés: incomplétude des sources, inconsistance intra-source et inter-source ambiguïté descriptions en langue naturelle,

Processus itératif:

multiples passages: choisir une source, par ex. un CdU, identifier éléments :

– classes conceptuelles,– associations,– attributs,

itérer sur le reste des sources raffinement progressif

© Petko Valtchev Université de Montréal Octobre 2005 18

Modèle Domaine Identification concepts

Les stratégie D&C dans les paradigmes du génie logiciel Structuré - par fonctions

Ex. « Réservation Billet Avion »: Réserver, Annuler, Mettre Option, etc. OO - par concepts du domaine (domain entities)

Ex. idem: Billet, Réservation, Facture, Option, Vols, etc.

Construire le MD par des itérations (Principe)

Choisir un ensemble de "use case" scénarios Extraire les concepts pertinents et les intégrer aux MD actuel On cherche le plus grand nombre de concepts du domaine (trop mieux

que pas assez)

Techniques de découverte:

Liste des catégories de concepts (-candidats) Analyse lexicale des textes (narratif, doc. portée, besoins, scénarios) Patrons d’analyse (voir le livre "Analysis Patterns" de M. Fawler)

Page 10: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

10

© Petko Valtchev Université de Montréal Octobre 2005 19

Modèle Domaine Identification Listes

Stratégie I : utilisation de listes de catégories de concepts.

On énumère toutes les entités mentionnées dans les documentstextuels et on cherche à reconnaître leur catégorie.

Pilot, Hôtesse de l’airrôles de personnes

Réservationtransactions

Aéroportplaces

Description Volspécifications, conceptions, descriptions

Avion, Billetobjets physiques

ExempleCatégorie de concept

N.B. Voir le livre de Larman pour une liste plus complète.

© Petko Valtchev Université de Montréal Octobre 2005 20

Modèle Domaine Identification AnaLex

Stratégie II: utiliser comme candidats pour les futurs concepts les noms etles phrases nominatives dans les documents textuels:

Les documents décrivant les besoins (vision, portée, etc.)

Les descriptions textuelles des cas d’utilisation,

Toute autre description du domaine.

Un bon nombre de concepts peut être identifié de cette manière, mais

ambiguïté de la langue naturelle,

On retient tous les noms et groupes nominaux qui vont potentiellement:

devenir des concepts (classes UML),

devenir des attributs,

devenir des objets,

ou être éliminés.

Page 11: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

11

© Petko Valtchev Université de Montréal Octobre 2005 21

Modèle Domaine AnaLex illustré

Scénario “Commande produits”

1. Le client s’identifie.2. Le système affiche les options.

3. Le client choisi “commande”.4. Le système affiche les produitsdsiponibles.

5. Le client choisi un ensemble deproduits.

6. Après chaque choix, le systèmeaffiche l’état de la commande.

7. Le client demande le prix total.8. …

© Petko Valtchev Université de Montréal Octobre 2005 22

Modèle Domaine Classes dans RUP

Rational Unified Process (RUP) – le processus de développementpréconisé par Rational Co.

Classes-candidates: la liste est appelée à évoluer tout au long desétapes d’analyse/conception

Processus de découverte guidé par les cas d’utilisation

Inventaire inspiré de l’architecture Modèle-Vue-Contrôleur (MVC):

Classes-entités (entity), Classes-interfaces (boundary), Classes-contrôle (control).

Page 12: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

12

© Petko Valtchev Université de Montréal Octobre 2005 23

Modèle Domaine Classes dans RUP (suite)

Classes-entités (entity): entités du domaine d’application oufournisseurs de services internes au système,

Ex. Libraire

Classes-interfaces (boundary): assurent la communication dusystème avec son environnement (usagers ou autres systèmes),

Ex. OptionsLibraire

Classes-contrôle (control): incorporent les séquencescomportementales, coordonnent les événements

Ex. GestionnaireModificationCatalogue

© Petko Valtchev Université de Montréal Octobre 2005 24

Modèle Domaine Patrons d’Analyse

L’analogie: des « constellations » typiques de concepts et des relationsentre concepts qui se retrouvent dans plusieurs domaines sous une formesimilaire.

Patron « description item » (voir discussion [Larman])

Vol

(décrit par)

Description Vol

(inclus dans)

Planning Vols

Produit

(décrit par)

Description Produit

(inclus dans)

Catalogue

Page 13: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

13

© Petko Valtchev Université de Montréal Octobre 2005 25

Modèle Domaine Patrons d’Analyse

On peut appuyer l’identification des concepts sur un mécanisme de« complétion » de patrons voulant que toutes les classes d’un patron doiventêtre présentes dans le domaine si un sous-ensemble de classes« essentielles » le sont déjà.

Ex. Si Vol et Aéroport sont présentes, alors un objet « description » doitcentraliser la description des instances de la première classe.

© Petko Valtchev Université de Montréal Octobre 2005 26

Modèle Domaine Sommaire

Diagramme de classes et modèle du domaine

Classes conceptuelles

Attributs

Associations

Diagramme d’objets

Page 14: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

14

© Petko Valtchev Université de Montréal Octobre 2005 27

Modèle Domaine

Exemples:

Nom, prénom, date de naissance.

Numéro de compte, solde, découvert autorisé.

Note maximale, note moyenne,

Heure de départ, durée du vol.

Attributs OO

« Attribut : une propriété/facette d’une classe partagée par tousles objets de la classe. Au sein d’une classe/un objet

contient une ou plusieurs valeurs prises dans un ensemble de valeurs possibles. »

En UML (rappel) :

© Petko Valtchev Université de Montréal Octobre 2005 28

Modèle Domaine Attributs dans le MD

Attributs MD : peuvent être typés (contraintes valeurs et opérations là-dessus)

Types primitifs (sans structure interne) : Entiers, réels, chaînes de caractères, etc.

Types non-primitifs : Date, Heure, Adresse (si non-atomique), No. téléphone, etc.

« Attribut : la représentation d’une information pertinente sur lesobjets qui nécessite la mémorisation ne serait-ce que pour un

court moment. »

Page 15: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

15

© Petko Valtchev Université de Montréal Octobre 2005 29

Modèle Domaine Attributs dans le MD

Question fondamentale: comment distinguer

les classes des types de données (non-primitifs) ou

les objets des valeurs (complexes)?

Indice:

les valeurs - pas d’identité!!!

si les informations qu’elle contiennent sont identiques, alors elles le

sont aussi.

Ex.

Deux instances du type Adresse identiques comme chaînes de caractères

sont identiques comme adresses aussi.

Deux instances de la classe Exemplaire Livre peuvent avoir toutes leurs

valeurs d’attributs identiques sans pour autant l’être elles-mêmes.

© Petko Valtchev Université de Montréal Octobre 2005 30

Modèle Domaine Attributs (Ex.)

Ordinateur

nom: Stringmemoire: Integer

Auteur

nom: Stringage: Integer

nom: "Dell 466"memoire: 64

PC-de-Jean:Ordinateur

Jean: Auteur

nom: Jeanage: 23

Page 16: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

16

© Petko Valtchev Université de Montréal Octobre 2005 31

Modèle Domaine Sommaire

Diagramme de classes

Classes

Attributs

Associations

Diagramme d’objets

© Petko Valtchev Université de Montréal Octobre 2005 32

Modèle Domaine

Deux types d’associations se retrouvent dans le MD en priorité [Larman] :

l’information sur la connexion entre instances doit être conservée pour unmoment, si bref soit-il ( « nécessité de connaître »):

Ex. Billet - Vol, Réservation - Billet. Contre-Ex. Billet - Agent de vente (pertinence, mais pas de durée).

associations dérivées des listes de catégories:

Ex. partie-de, enregistré par, etc.

N.B. Non-exclusifs

Associations OO

« Association : une relation entre classes conceptuelles quiencode des connexions pertinentes entre les

instances respectives (représentées par des liens inter-instance). »

En UML (rappel) :

Page 17: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

17

© Petko Valtchev Université de Montréal Octobre 2005 33

Modèle Domaine Associations (Ex.)

0..* 1..*utilise » Ordinateur

nom: Stringmemoire: Integer

Auteur

nom: Stringage: Integer

nom: "Dell 466"memoire: 64

PC-de-Jean:Ordinateur

Jean: Auteur

nom: Jeanage: 23

© Petko Valtchev Université de Montréal Octobre 2005 34

Modèle Domaine Identificat° Associat°

Tâche subordonnée à l’identification des concepts:

éviter de multiplier les associations pour ne pas « bruiter » le modèle.

Techniques de découverte:

Liste des catégories d’associations (-candidats), dont les principales sont :

A est une partie physique/logique de B

A est contenu physiquement/logiquement dans B

A est enregistré dans B

Analyse lexicale des textes (narratif, doc. portée, besoins, scénarios)

chercher les verbes

chercher les liens du cas génitif (X est un Z de Y, X de Y)

Patrons d’analyse

Page 18: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

18

© Petko Valtchev Université de Montréal Octobre 2005 35

Modèle Domaine Identificat° Listes (II)

Stratégie I : utilisation de listes de catégories d’associations.

Avion - Compagnie AérienneA est possédé par B

Pilot - Compagnie AérienneA est membre de B

Avion - AéroportA est contenu physiquement dans B

Segment Vol - Trajet VolA partie logique de B

Aile - AvionA partie physique de B

ExempleCatégorie d’association (binaire)

N.B. Voir le livre de Larman pour une liste plus complète.

© Petko Valtchev Université de Montréal Octobre 2005 36

Modèle Domaine Identifier les assoc.

Les distinctions attributs/classes et attributs/associations sont detâches délicates:

les associations peuvent représentées par

des classes et donc avoir des attributs

des attributs des classes associées

les classes ont des objets-instances et les (types des) attributs ont desvaleurs

Maison Personne« habiteest habitée par »habitation

habitant

BailDate débutDate fin

Page 19: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

19

© Petko Valtchev Université de Montréal Octobre 2005 37

Modèle Domaine Sommaire

Diagramme de classes

Classes

Attributs

Associations

Diagramme d’objets

© Petko Valtchev Université de Montréal Octobre 2005 38

Modèle Domaine Diagramme d’objets

un diagramme d’objets saisit les instances des éléments d’undiagramme de classes en montrant:

un ensemble d’objets et leurs liens à un moment précis

peut être vu comme l’illustration d’un diagramme de classes

notations comme dans les diagrammes de classes

trois façons d’indiquer un objet:

Anonyme: nom de la classe est souligné et précédé par deuxpoints

Nommé: un nom d’objet précède celui de la classe Nommé sans attachement: seulement le nom de l’objet est

spécifié (souligné)

Page 20: IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S05-ModDom.pdf · 2005. 10. 13. · clients et usagers, ainsi que la maintenance du système. Ainsi, les classes “idéales”

20

© Petko Valtchev Université de Montréal Octobre 2005 39

Modèle Domaine Diagr. d’objets (Ex.)

0..* 1..*utilise » Ordinateur

nom: Stringmemoire: Integer

Auteur

nom: Stringage: Integer

nom: "Dell 466"memoire: 64

PC-de-Jean:Ordinateur

Jean: Auteur

nom: Jeanage: 23