Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
© Robert Godin. Tous droits réservés.
4 Analyse Quoi développer ? Spécification indépendante de la technologie Cas d'utilisation détaillés Modèle conceptuel concepts du domaine d ’application 19/09/2018 © Robert Godin. Tous droits réservés.
2
4.1 Cas d'utilisation détaillés
19/09/2018 © Robert Godin. Tous droits réservés.
3
Séquence d ’interaction GérerPrêts
19/09/2018 © Robert Godin. Tous droits réservés.
4
4.1.1 Paquetages (« Packages »)
19/09/2018 © Robert Godin. Tous droits réservés.
5
PackageCasServicePrêt
19/09/2018 © Robert Godin. Tous droits réservés.
6
PackageCasAdministration
19/09/2018 © Robert Godin. Tous droits réservés.
7
PackageCasAutorisation
19/09/2018 © Robert Godin. Tous droits réservés.
8
© Robert Godin. Tous droits réservés.
4.2 Modèle conceptuel Concepts fondamentaux du domaine d'application visé par le système Approche traditionnelle modèle de données modèle de traitement Approche objet regroupement données/traitements commencer par données Point de départ de la conception BD concepts => données persistantes 19/09/2018 © Robert Godin. Tous droits réservés.
9
Représentation du modèle conceptuel
Formalisme entité/association (Chen, 76) diverses extensions Modèles sémantiques graphes conceptuels (Sowa), SDM, ... UML ~ entité/association++ diagramme de structure statique (diagrammes de classes) 19/09/2018 © Robert Godin. Tous droits réservés.
10
4.3 Modèle conceptuel objet avec les diagrammes de classes UML
19/09/2018 © Robert Godin. Tous droits réservés.
11
4.3.1 Notion d'objet et de classe
Objet (instance d'une classe) significatif pour le domaine d'application caractérisé par identité état comportement Attribut (variable membre, variable d'instance) contenant pour une valeur 19/09/2018 © Robert Godin. Tous droits réservés.
12
Représentation d ’un objet en UML
19/09/2018 © Robert Godin. Tous droits réservés.
13
© Robert Godin. Tous droits réservés.
Classe Abstraction Caractéristiques communes à un ensemble d'objets attributs associations opérations 19/09/2018 © Robert Godin. Tous droits réservés.
14
Représentation d ’une classe en UML
19/09/2018 © Robert Godin. Tous droits réservés.
15
© Robert Godin. Tous droits réservés.
Intention (intent) d'une classe propriétés communes (attributs, associations et opérations) Extension (extent) d'une classe ensemble des objets correspondant à la classe extension représentée par un objet ? 19/09/2018 © Robert Godin. Tous droits réservés.
16
© Robert Godin. Tous droits réservés.
Terminologie Objet instance, occurrence, entité Classe à l ’analyse abstraction pas toujours une classe d ’implémentation concept, entité, type (stéréotype UML) stéréotype « entité » pour données persistantes du domaine d ’application 19/09/2018 © Robert Godin. Tous droits réservés.
17
Identifiant d'objet (OID, object identifier)
Mécanisme d ’identification pas deux objets avec le même OID Implicite non visible réalisation traitée à la conception Mécanisme de référence 19/09/2018 © Robert Godin. Tous droits réservés.
18
Pas besoin d ’identificateur explicite !
Par opposition au relationnel 19/09/2018 © Robert Godin. Tous droits réservés.
19
Identifiant naturel (ou clé «key») pour une classe
Ensemble d'attributs minimal qui identifie chacun des objets de manière unique ~clé candidate du relationnel Représentation par une contrainte UML 19/09/2018 © Robert Godin. Tous droits réservés.
20
Syntaxe générale pour la spécification des attributs en UML
[visibilité] nom [multiplicité] [: type] [= valeurInitiale] [{propriétés} visibilité peut être : + publique # protégé - privé nom de l'attribut multiplicité ( [1..1] par défaut) téléphone[1..2]: String adresse [0..1]: String auteurs [1..*]: String 19/09/2018 © Robert Godin. Tous droits réservés.
21
Syntaxe pour attributs (suite)
[visibilité] nom [multiplicité] [: type] [= valeurInitiale] [{propriétés}] type OCL Boolean, Integer, Real, String, enum{valeur1,…, valeurn} types de la plate-forme visée type non pré-défini classe stéréotypée «datatype» ~domaine en modélisation conceptuelle 19/09/2018 © Robert Godin. Tous droits réservés.
22
Syntaxe pour attributs (suite)
[visibilité] nom [multiplicité] [: type] [= valeurInitiale] [{propriétés}] valeurInitiale à la création de l ’objet propriétés prédéfinies : changeable (par défaut) addOnly frozen portée souligner attribut de classe (Rational Rose 98 :$) 19/09/2018 © Robert Godin. Tous droits réservés.
23
4.3.2 Notion de lien et d'association binaire
19/09/2018 © Robert Godin. Tous droits réservés.
24
Rôles et multiplicités
Nom de rôle Exemple avec nom de rôle et d ’association 19/09/2018 © Robert Godin. Tous droits réservés.
25
Association réflexive
19/09/2018 © Robert Godin. Tous droits réservés.
26
Contraintes pré-définies pour les associations
Ordonné (ordered) Modifiable (changeable) InsertionSeulement (addOnly) Fixe (frozen) Exclusives entre deux associations 19/09/2018 © Robert Godin. Tous droits réservés.
27
© Robert Godin. Tous droits réservés.
4.3.3 Agrégation Cas particulier d ’association 19/09/2018 © Robert Godin. Tous droits réservés.
28
© Robert Godin. Tous droits réservés.
Composition 19/09/2018 © Robert Godin. Tous droits réservés.
29
4.3.4 Associations qualifiées
Partition des objets associés Contrainte d ’identification locale {UNIQUE : Cours, numéro, session} 19/09/2018 © Robert Godin. Tous droits réservés.
30
© Robert Godin. Tous droits réservés.
4.3.5 Classes associatives Données spécifiques à l ’association Incorrect si plusieurs notes pour un Etudiant et un Cours 19/09/2018 © Robert Godin. Tous droits réservés.
31
Réification de l ’association
Plusieurs notes pour un Etudiant et un Cours 19/09/2018 © Robert Godin. Tous droits réservés.
32
Autre solution : classe associative + agrégation
19/09/2018 © Robert Godin. Tous droits réservés.
33
Solution avec classe Groupe
Créer un objet session ? 19/09/2018 © Robert Godin. Tous droits réservés.
34
© Robert Godin. Tous droits réservés.
4.3.6 Associations n-aires Lien ternaire Association ternaire 19/09/2018 © Robert Godin. Tous droits réservés.
35
© Robert Godin. Tous droits réservés.
Exemple de données 19/09/2018 © Robert Godin. Tous droits réservés.
36
© Robert Godin. Tous droits réservés.
Attention ! Modèle non équivalent : 19/09/2018 © Robert Godin. Tous droits réservés.
37
Explication de la non équivalence
Myriam Bédard figure au “ Patin 5000m ” à Nagano ? 19/09/2018 © Robert Godin. Tous droits réservés.
38
Utilisation incorrecte d ’une association ternaire
19/09/2018 © Robert Godin. Tous droits réservés.
39
Exemple de multiplicité maximale 1
19/09/2018 © Robert Godin. Tous droits réservés.
40
4.3.6.1 Réification d ’une association n-aire
Nécessaire si les associations n-aires ne sont pas supportées ! 19/09/2018 © Robert Godin. Tous droits réservés.
41
4.3.7 La généralisation/ spécialisation
Propriétés communes : classe plus générale Héritage 19/09/2018 © Robert Godin. Tous droits réservés.
42
Notation multi-segments
19/09/2018 © Robert Godin. Tous droits réservés.
43
Utilisation de la délégation ?
19/09/2018 © Robert Godin. Tous droits réservés.
44
© Robert Godin. Tous droits réservés.
Cas de SyLeRat Discriminant 19/09/2018 © Robert Godin. Tous droits réservés.
45
© Robert Godin. Tous droits réservés.
Redéfinition Eviter de changer la sémantique ! (contravariance des opérations, invariance des attributs ?) 19/09/2018 © Robert Godin. Tous droits réservés.
46
© Robert Godin. Tous droits réservés.
Héritage multiple 19/09/2018 © Robert Godin. Tous droits réservés.
47
4.3.7.3 Contraintes pré-définies pour la généralisation
Complète /incomplète Disjointe/chevauchante Italique pour nom de classe abstraite 19/09/2018 © Robert Godin. Tous droits réservés.
48
Notation alternative par une note UML
19/09/2018 © Robert Godin. Tous droits réservés.
49
4.3.7.4 Multi-classification et héritage multiple
19/09/2018 © Robert Godin. Tous droits réservés.
50
Sous-classes de jointure?
19/09/2018 © Robert Godin. Tous droits réservés.
51
© Robert Godin. Tous droits réservés.
Attribut de classe Souligner l ’attribut (UML 1.1) 19/09/2018 © Robert Godin. Tous droits réservés.
52
© Robert Godin. Tous droits réservés.
4.3.8 Opérations Signature d'une opération nom et type des paramètres 19/09/2018 © Robert Godin. Tous droits réservés.
53
Syntaxe générale pour la spécification des opérations en UML
[«stéréotype»][visibilité] nom [(listeParamètres)] [: typeRetour] [{propriétés}] visibilité peut être : + publique # protégé - privé nom de l ’opération listeParamètres syntaxe d ’un paramètre [direction] nomParamètre : typeParamètre [ = valeurDeDéfaut] direction (in, out ou inout) 19/09/2018 © Robert Godin. Tous droits réservés.
54
Syntaxe pour opérations (suite)
[«stéréotype»][visibilité] nom [(listeParamètres)] [: typeRetour] [{propriétés}] typeRetour optionnel portée souligner opération de classe (Rational Rose 98 : $) abstraite en italique 19/09/2018 © Robert Godin. Tous droits réservés.
55
© Robert Godin. Tous droits réservés.
Interface Opérations publiques visibles Définition d ’une interface de classe classe stéréotypée 19/09/2018 © Robert Godin. Tous droits réservés.
56
© Robert Godin. Tous droits réservés.
Définitions Méthode une implémentation d'une opération Polymorphisme même signature d'opération méthodes distinctes pour des classes distinctes Surcharge (« overloading ») même nom avec signatures différentes 19/09/2018 © Robert Godin. Tous droits réservés.
57
Catégories d ’opérations
Constructeur Modifieur Lecteur ... 19/09/2018 © Robert Godin. Tous droits réservés.
58
4.3.9 Spécification de contraintes
Entre { } A proximité de l ’élément concerné après spécification d ’un attribut avant un ensemble d ’attributs Note reliée aux éléments Près d ’un trait pointillé Près d ’une flèche pointillée Syntaxe langue naturelle OCL (version 1.1 d ’UML) 19/09/2018 © Robert Godin. Tous droits réservés.
59
4.3.9.1 OCL (Object constraint language)
Invariants de classe Pré et post-conditions sur les opérations Conditions de déclenchement (Guards) Langage de navigation Contraintes sur les opérations 19/09/2018 © Robert Godin. Tous droits réservés.
60
4.3.9.1.1 Contexte d'une contrainte
L'année de parution d'un livre est supérieure à 0 19/09/2018 © Robert Godin. Tous droits réservés.
61
4.3.9.1.2 Spécification d'une propriété d'un objet
opération 19/09/2018 © Robert Godin. Tous droits réservés.
62
Spécification d ’une propriété (suite)
retourne une collection ! nom de classe (première lettre en minuscule) pour naviguer association 19/09/2018 © Robert Godin. Tous droits réservés.
63
© Robert Godin. Tous droits réservés.
Expression de chemin 19/09/2018 © Robert Godin. Tous droits réservés.
64
4.3.9.1.4 Types et expressions OCL
Opérations pour types de base ex: +, -, *, /,… pour Integer Opérations pour Collections Collection, Set, Bag et Sequence -> pour opération de collection 19/09/2018 © Robert Godin. Tous droits réservés.
65
Exemples d ’opérations de collection
19/09/2018 © Robert Godin. Tous droits réservés.
66
© Robert Godin. Tous droits réservés.
Eléments dérivés 19/09/2018 © Robert Godin. Tous droits réservés.
67
4.4 Processus d'élaboration du modèle conceptuel
Modèle conceptuel du domaine Modèle conceptuel des données persistantes (ou modèle conceptuel des données) stéréotype « entité » valeur étiquetée {persistent} Modèle conceptuel de la base de données données persistantes dans la BD 19/09/2018 © Robert Godin. Tous droits réservés.
68
Processus d ’élaboration du modèle conceptuel
Clé : comprendre le domaine d ’application Intrants cas d ’utilisation détaillés ... Un processus simple 1. Déterminer les classes et leurs attributs 2. Déterminer les associations 3. Chercher les généralisations 4. Ajouter les types et les contraintes manquantes 19/09/2018 © Robert Godin. Tous droits réservés.
69
4.4.1 Identifier les classes et leurs attributs
Candidats groupes nominaux Exemple : GérérPrêts 19/09/2018 © Robert Godin. Tous droits réservés.
70
© Robert Godin. Tous droits réservés.
Identification des concepts significatifs du domaine d ’application du système Non pertinent au domaine cas d ’utilisation Pertinent prêt, retour, retard, membre, exemplaire, ... 19/09/2018 © Robert Godin. Tous droits réservés.
71
4.4.1.2 Persistance du concept
Modèle conceptuel des données persistantes nécessaires aux traitements persistantes Acteurs ? Documents externes ? Unités périphériques ? 19/09/2018 © Robert Godin. Tous droits réservés.
72
© Robert Godin. Tous droits réservés.
Classe ou attribut ? Attribut : décision de conception ? pas d ’attributs dans les graphes conceptuels ! Critères pour attributs caractéristique propre aux objets de la classe pas d ’identité propre valeur (immuable) pas une référence type complexe ? 19/09/2018 © Robert Godin. Tous droits réservés.
73
4.4.1.3.1 Application de la théorie de la normalisation
Classe d ’appartenance d ’un attribut ? Table = attributs de classe + OID (OIDPrêt, idUtilisateur, motPasse, nom, prénom, téléphoneRésidence) idUtilisateur motPasse, nom, prénom, téléphoneRésidence OIDPrêt idUtilisateur pas en 3FN (OIDPrêt, nom, prénom, téléphoneRésidence) est en 3FN mais... 19/09/2018 © Robert Godin. Tous droits réservés.
74
4.4.1.3.2 Conversion entre attribut et classe
~ composition 19/09/2018 © Robert Godin. Tous droits réservés.
75
Partage du même téléphone ?
19/09/2018 © Robert Godin. Tous droits réservés.
76
4.4.1.3.3 Types de données complexes
Expliciter la structure ? ~ composition 19/09/2018 © Robert Godin. Tous droits réservés.
77
© Robert Godin. Tous droits réservés.
Variante 19/09/2018 © Robert Godin. Tous droits réservés.
78
Partage de la même Adresse
19/09/2018 © Robert Godin. Tous droits réservés.
79
Modélisation fine des adresses pour éviter toute redondance ?
19/09/2018 © Robert Godin. Tous droits réservés.
80
4.4.1.3.4 Représentation des types de données énumérés
Type du statut de l ’Exemplaire enum(prêté, disponible, retiré) classe stéréotypée « datatype » classe stéréotypée « extensible datatype » 19/09/2018 © Robert Godin. Tous droits réservés.
81
© Robert Godin. Tous droits réservés.
Attribut de classe Partagé par tous les objets ~variable globale à la classe 19/09/2018 © Robert Godin. Tous droits réservés.
82
4.4.1.3.6 Classe pour un seul objet ?
19/09/2018 © Robert Godin. Tous droits réservés.
83
4.4.1.4 Première ébauche de modèle pour SyLeRat
19/09/2018 © Robert Godin. Tous droits réservés.
84
4.4.1.5 Eviter les concepts dérivables
Pour dériver durée moyenne 19/09/2018 © Robert Godin. Tous droits réservés.
85
Clarté conceptuelle et linguistique
SYNONYMIE ET POLYSÉMIE NOMS REPRÉSENTATIFS répertoire des concepts (dictionnaire de données, glossaire) 19/09/2018 © Robert Godin. Tous droits réservés.
86
4.4.2 Identification des associations
Lors d'un prêt ou d'un retour, l'identificateur d'utilisateur et l'identificateur de l'exemplaire peuvent être saisis ... 19/09/2018 © Robert Godin. Tous droits réservés.
87
Éviter les associations dérivables
19/09/2018 © Robert Godin. Tous droits réservés.
88
© Robert Godin. Tous droits réservés.
19/09/2018 © Robert Godin. Tous droits réservés.
89
4.4.2.1 Classe, association ou classe associative
19/09/2018 © Robert Godin. Tous droits réservés.
90
4.4.2.2 Spécification des qualificateurs
19/09/2018 © Robert Godin. Tous droits réservés.
91
© Robert Godin. Tous droits réservés.
Degré approprié d ’association Éviter les clés étrangères 19/09/2018 © Robert Godin. Tous droits réservés.
92
4.4.3 Identification des généralisations
Principe de génie logiciel isoler chaque chose à sa place Mettre en facteur propriétés communes attention synonymie/polysémie généralisation ou délégation ? « est un » ou « fait partie de » Méthode systématique: treillis de Galois (concepts) 19/09/2018 © Robert Godin. Tous droits réservés.
93
Ajout d ’un lien de généralisation entre classes
19/09/2018 © Robert Godin. Tous droits réservés.
94
Découverte d ’une nouvelle classe de généralisation
19/09/2018 © Robert Godin. Tous droits réservés.
95
© Robert Godin. Tous droits réservés.
Autre exemple 19/09/2018 © Robert Godin. Tous droits réservés.
96
4.4.4 Types de données des attributs et autres contraintes d'intégrité
19/09/2018 © Robert Godin. Tous droits réservés.
97
4.4.5 Conservation de l'historique des données
Pour prise de décision (OLAP) entrepôt de données traitements difficiles à prévoir Historique complet ou sommaire ? Historique des mises à jour ? Plus facile de supprimer des données que de les retrouver ... 19/09/2018 © Robert Godin. Tous droits réservés.
98
4.4.6 Modularisation du modèle conceptuel
19/09/2018 © Robert Godin. Tous droits réservés.
99
PackageHiérarchiePersonne
19/09/2018 © Robert Godin. Tous droits réservés.
100
© Robert Godin. Tous droits réservés.
PackageClassesPrêts 19/09/2018 © Robert Godin. Tous droits réservés.
101
PackageClassesDescriptionBibliographique
19/09/2018 © Robert Godin. Tous droits réservés.
102
© Robert Godin. Tous droits réservés.
4.4.7 Métamodélisation Méta-donnée (metadata) décrit un aspect de la structure d'autres données Méta-modèle (metamodel) modèle de données des méta-données 19/09/2018 © Robert Godin. Tous droits réservés.
103
Exemple : méta-modèle de UML
19/09/2018 © Robert Godin. Tous droits réservés.
104
4.4.7.1 Classe générique (template class)
Paramètres formels Classe générique instantiée 19/09/2018 © Robert Godin. Tous droits réservés.
105
© Robert Godin. Tous droits réservés.
Notion de patron « Généricité » plus large Micro-architecture réutilisable Collaboration paramétrisée en UML 19/09/2018 © Robert Godin. Tous droits réservés.
106
© Robert Godin. Tous droits réservés.
Patron de description Méta-données « au sens large » 19/09/2018 © Robert Godin. Tous droits réservés.
107
© Robert Godin. Tous droits réservés.
Patron d'assemblage 19/09/2018 © Robert Godin. Tous droits réservés.
108
4.4.7.3 Cadre d ’application (canevas, framework)
~ Gros patron classes génériques + classes abstraites à spécialiser Macro-architecture Plus spécifique à un domaine qu ’un patron 19/09/2018 © Robert Godin. Tous droits réservés.
109
4.5 Estimation des volumes de données
19/09/2018 © Robert Godin. Tous droits réservés.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.