ift 3901 analyse et conception des logicielspift3901/slides/a05-s05-moddom.pdf · 2005. 10. 13. ·...
Post on 02-Mar-2021
0 Views
Preview:
TRANSCRIPT
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
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.
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.
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.
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
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
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.
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
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)
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.
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).
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
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
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. »
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
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) :
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
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
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é)
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
top related