• Aucun résultat trouvé

Transparents(PowerPoint

N/A
N/A
Protected

Academic year: 2022

Partager "Transparents(PowerPoint"

Copied!
71
0
0

Texte intégral

(1)

12 Cas d'utilisation détaillés et processus d'élaboration du modèle conceptuel de données

Analyse : Quoi développer ?

– Spécification indépendante de la technologie

 Cas d'utilisation détaillés

Modèle conceptuel de données

– concepts du domaine

d ’application

(2)

12.1 Cas d'utilisation détaillés

AutoriserUtilisateur

Commis au prêt

GérerMembres

ProduireRapportRetards EnregistrerRetours EnregistrerPrêts AutoriserCommis

GérerPrêts

<<inclut>>

<<inclut>>

<<inclut>>

<<inclut>>

<<inclut>>

Membre

AutoriserMembre

ConsulterCollections

ConsulterPrêts

<<inclut>>

Consulter

<<inclut>>

<<inclut>>

ProduireStatistiquesPrêts

ProduireStatistiquesCollections ProduireRapportActivités

<<inclut>>

<<inclut>>

SystèmeAcquisition Bibliothécaire

AutoriserBibliothécaire

<<inclut>>

AjouterCatégorieDocumentaire InclureAcquisitions

<<inclut>>

<<étend>>

GererSystème Administrateur

(3)

Séquence d ’interaction GérerPrêts

Commis au prêt Système

1. Le commis invoque l'application de gestion des prêts.

2. Le système déclenche le cas AutoriserCommis

3. Si le commis est autorisé à poursuivre, un menu incluant les choix suivants est affiché : EnregistrerPrêt, EnregistrerRetour, ConsulterPrêt, GérerMembres, ProduireRapportRetards ou Quitter

4. Le commis effectue une sélection dans le menu.

5. Le cas choisi est déclenché. Ensuite, retour en 3.

Si le commis choisit de quitter, l'application est interrompue.

Exceptions :

Ligne 3 : si le commis n'est pas autorisé à poursuivre, l'application est interrompue.

(4)

Spécification détaillée du cas

d'utilisation GérerPrêts

(5)

Séquence normale d'interaction de

GérerPrêts

Commis au prêt Système

1. Le commis invoque l'application de gestion des prêts.

2. Le système déclenche le cas AutoriserCommis

3. Si le commis est autorisé à poursuivre, un menu incluant les choix suivants est

affiché : EnregistrerPrêt,

EnregistrerRetour, ConsulterPrêt, GérerMembres,

ProduireRapportRetards ou Quitter 4. Le commis effectue une sélection dans le

menu.

5. Le cas choisi est déclenché. Ensuite, retour en 3. Si le commis choisit de quitter, l'application est interrompue.

(6)

Spécification détaillée du cas

d'utilisation EnregistrerPrêts

(7)

27/02/22 © Robert Godin. Tous droits réservés 7

Séquence d'interaction (scénario) normale

Commis au prêt Système

1. Le commis invoque l'écran d'enregistrement du prêt

2. Le système demande la saisie de l'identificateur de l'utilisateur 3. Le commis saisit l'identificateur

de l'utilisateur à l'aide de la

carte de membre ou

manuellement

4. Le système affiche le nombre de prêts en cours et demande de saisir l'identificateur de l'exemplaire.

5. Le commis entre l'identificateur de l'exemplaire à l'aide du

lecteur optique ou

manuellement

6. Le système enregistre le prêt,

(8)

Diagramme de séquence système de EnregistrerPrêts

: Commis au prêt :Système

1: créerNouveauPrêt() 2: demanderIdUtilisateur

3: entrer(idUtilisateur)

4: affiche nbPrêts, demanderIdExemplaire

5: entrer(idExemplaire) 6: messageAcquiescement

(9)

12.1.1 Paquetages (« Packages »)

PackageCasServicePrêt

PackageCasAdministration

PackageCasAutorisation

(10)

PackageCasServicePrêt

Membre

Commis au prêt

Consulter

ConsulterCollections

<<inclut>>

AutoriserMembre (from PackageCasAutorisation)

<<inclut>>

ConsulterPrêts

<<inclut>>

AutoriserCommis (from PackageCasAutorisation)

EnregistrerPrêts

EnregistrerRetours GérerPrêts

<<inclut>>

<<inclut>>

<<inclut>>

<<inclut>>

<<inclut>>

<<inclut>>

(11)

PackageCasAdministration

ProduireStatistiquesCollections

ProduireStatistiquesPrêts ProduireRapportActivités

<<inclut>>

<<inclut>>

Système Acquisition

AutoriserBibliothécaire (from PackageCasAutorisation)

<<inclut>>

Bibliothécaire

InclureNouvellesAcquisitions

<<inclut>>

Administrateur Système

GérerSystème

(12)

PackageCasAutorisation

AutoriserBibliothécaire AutoriserCommis AutoriserMembre

AutoriserUtilisateur

(13)
(14)

12.2Concepts avancés des

diagrammes de classes UML

(15)

12.2.1 Associations n-aires

Athlète nom : String

Epreuve nom : String

JeuxOlympiques

année : Integer ville : String

*

* *

unAthlète:Athlète nom : String = Myriam Bédard

uneEpreuve:Epreuve nom : String = Biathlon 7,5 km

unJO:JeuxOlpympiques année : Integer = 1994 ville : String = Lillehamer

Lien ternaire

Association

ternaire

(16)

Exemple de données

a1:Athlète nom : String = Myriam Bédard

e2:Epreuve nom : String = Biathlon 7,5 km

j1:JeuxOlpympiques année : Integer = 1998 ville : String = Nagano

e1:Epreuve nom : String = Patin 5000m

j2:JeuxOlpympiques année : Integer = 2002 ville : String = Salt Lake City

a2:Athlète nom : String = Annie Perreault

(17)

Attention !

 Modèle non équivalent :

Athlète nom : String

Epreuve nom : String

JeuxOlpympiques année : Integer ville : String

*

*

Compétitionne *

* Participe

*

* Est admise

(18)

Explication de la non équivalence

Myriam Bédard figure au “ Patin 5000m

” à Nagano ?

a 1 : A t h l è t e

n o m : S t r in g = M y r ia m B é d a r d

e 2 : E p r e u v e

n o m : S t r in g = B ia t h l o n 7 , 5 k m

j 1 : J e u x O l p y m p i q u e s a n n é e : I n t e g e r = 1 9 9 8 v ill e : S t r in g = N a g a n o

e 1 : E p r e u v e

n o m : S t r in g = P a t in 5 0 0 0 m

j 2 : J e u x O l p y m p i q u e s a n n é e : I n t e g e r = 2 0 0 2 v ill e : S t r in g = S a lt L a k e C i t y

a 2 : A t h l è t e

n o m : S t r in g = A n n i e P e r r e a u lt

F ig u r e

F i g u r e

F i g u r e

P a r t ic ip e P a r t ic ip e

E s t a d m is e P a r t ic ip e

E s t a d m is e

E s t a d m is e

(19)

Utilisation incorrecte d ’une association ternaire

Livre

ISBN : String titre : String

annéeParution : Integer

Editeur

nomEditeur : String ville : String

Auteur

nom : String prénom : String

*

1 *

(20)

Exemple de multiplicité maximale 1

Politicien nom : String

Parti nom : String

Election année : Integer

*

* 0..1

Politicien nom : String

Parti nom : String

Election année : Integer

1..*

* CandidatDéputé CandidatDéputé

1

Représente 1..*

(21)

12.2.1.1 Réification d ’une association n-aire

Athlète nom : String

Epreuve nom : String

JeuxOlpympiques année : Integer ville : String Figuration

* 1

1

* *

1

Nécessaire si les

associations n-aires ne

sont pas supportées !

(22)

12.2.2OCL (Object Constraint Langage)

 Invariants de classe

 Pré et post-conditions sur les opérations

 Conditions de déclenchement (Guards)

 Langage de navigation

 Contraintes sur les opérations

(23)

12.2.2.1 Contexte d'une contrainte

 L'année de parution d'un livre est supérieure à 0

Livre

self. annéeParution > 0 l : Livre

l. annéeParution > 0

(24)

12.2.2.2 Spécification d'une propriété d'un objet

Livre

self. annéeParution > 0

Cadre

self.salaire() > 50000

opération

(25)

Spécification d ’une propriété (suite)

Utilisateur

self.prêt -> size <= 1000 Catégorie

self.enfant->size < 1000

retourne une collection !

nom de classe (première lettre en

minuscule) pour naviguer association

(26)

12.2.2.3 Expression de chemin

Prêt datePrêt : Date

1

**

1

Exemplaire {UNIQUE: idExemplaire}

idExemplaire : String dateAchat : Date

statut : enum(prêté, disponible, retiré) 1 1..*

Livre {UNIQUE: ISBN}

ISBN : String titre : String

annéeParution : TypeDonnéesAge 1 1..*

1 * Catégorie {UNIQUE: code}

code : String descripteur : String

1 *

Prêt

self.exemplaire.livre.catégorie.descripteur <> 'Référence'

(27)

12.2.2.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

(28)

Exemples d ’opérations de collection

Utilisateur

self.prêt->select(p|p.datePrêt>'1/1/2000')

Membre

self.prêt->forAll(p1, p2 |p1 <> p2 implies p1.exemplaire <> p2.exemplaire)

Employé.allInstances->exists(e|e.catégorieEmployé = bibliothécaire) Livre

(self.ISBN = '0-13-123829-9') implies (self.Auteur->at(2).nom = 'Premerlani')

(29)

12.3 Processus d'élaboration du modèle conceptuel de données

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

(30)

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

(31)

12.3.1 Identifier les classes et leurs attributs

 Candidats

– groupes nominaux

 Exemple : GérérPrêts

Description: Ce cas d'utilisation est déclenché par le commis au prêt suite

à une requête d'un membre ou d'un employé . Il lui permet d'enregistrer un

prêt ou un retour , de consulter les prêts , de gérer les données d'identification

des membres, i.e. l' identificateur d'utilisateur de sa carte de membre , le mot de

passe du membre , son nom , prénom et le numéro de téléphone de sa résidence . Il

permet aussi de produire un rapport des retards . Lors d'un prêt ou d'un

retour , l' identificateur d'utilisateur et l' identificateur de l'exemplaire peuvent être

saisis en utilisant un lecteur optique ou manuellement.

(32)

12.3.1.1 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, ...

Description: Ce cas d'utilisation est déclenché par le commis au prêt suite

à une requête d'un membre ou d'un employé . Il lui permet d'enregistrer un

prêt ou un retour , de consulter les prêts , de gérer les données d'identification

des membres, i.e. l' identificateur d'utilisateur de sa carte de membre , le mot de

passe du membre , son nom , prénom et le numéro de téléphone de sa résidence . Il

permet aussi de produire un rapport des retards . Lors d'un prêt ou d'un

retour , l' identificateur d'utilisateur et l' identificateur de l'exemplaire peuvent être

saisis en utilisant un lecteur optique ou manuellement.

(33)

12.3.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 ?

(34)

12.3.1.3 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 ?

Membre idUtilisateur

motPasse nom

prénom

téléphoneRésidence

(35)

12.3.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...

(36)

12.3.1.3.2 Conversion entre attribut et classe

Membre TéléphoneRésidence

numéro 1

1 1

1

Membre idUtilisateur motPasse nom

prénom

téléphoneRésidence

m 1 : M e m b r e

t é lé p h o n e R é s id e n c e : S t r i n g = ( 5 5 5 ) 5 5 5 - 5 5 5 5

m 2 : M e m b r e

t é lé p h o n e R é s id e n c e : S t r i n g = ( 5 5 5 ) 5 5 5 - 5 5 5 5

m 1 : M e m b r e

m 2 : M e m b r e t 2 : T é l é p h o n e R é s i d e n c e

n u m é r o : S t r in g = ( 5 5 5 ) 5 5 5 - 5 5 5 5 t 1 : T é l é p h o n e R é s i d e n c e n u m é r o : S t r in g = ( 5 5 5 ) 5 5 5 - 5 5 5 5

~ composition

(37)

Partage du même téléphone ?

Membre TéléphoneRésidence

numéro

1..* 1 1

1..*

m 1 : M e m b r e

m 2 : M e m b r e

t 1 : T é l é p h o n e R é s i d e n c e n u m é r o : S t r in g = ( 5 5 5 ) 5 5 5 - 5 5 5 5

(38)

12.3.1.3.3 Types de données complexes

Membre adresse : String

Membre

adresse : typeDonnéesAdresse

typeDonnéesAdresse numéroCivique

numéroAppartement nomRue

nomVille nomProvince nomPays codePostal

<<datatype>>

Expliciter la structure ?

~ composition

(39)

Variante

Membre numéroCivique

numéroAppartement nomRue

nomVille nomProvince nomPays codePostal Membre

adresse : typeDonnéesAdresse

typeDonnéesAdresse numéroCivique

numéroAppartement nomRue

nomVille nomProvince nomPays codePostal

<<datatype>>

(40)

Partage de la même Adresse

Membre

Adresse numéroCivique

numéroAppartement nomRue

nomVille

nomProvince nomPays codePostal 1

1..*

1..* 1

(41)

Modélisation fine des adresses pour éviter toute redondance ?

Membre

Adresse numéroCivique numéroAppartement

1 1..*

1 1..*

Rue nomRue codePostal 1

1..* 1 1..*

Ville nomVille 1

1..*

Pays nomPays Province

nomProvince

1..* 1 1..* 1

1..* 1 1..* 1 1..* 1

(42)

12.3.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 »

(43)

12.3.1.4 Attribut de classe

 Partagé par tous les objets

– ~variable globale à la classe

Membre

téléphoneRésidence

$ nbMaxPrêts = 5

$ duréeMaxPrêts = 7

(44)

12.3.1.4.1 Classe pour un seul objet ?

Bibliothèque nom : String = LeRat

téléphone : String = (999)999-9999

...

(45)

12.3.1.5 Première ébauche de modèle pour SyLeRat

Membre téléphoneRésidence nbMaxPrêts = 5 duréeMaxPrêts = 7

Retour Employé

nom prénom codeMatricule catégorieEmployé

Catégorie code descripteur Auteur

nom prénom

Editeur nomEditeur ville

Livre ISBN titre

annéeParution

Exemplaire idExemplaire dateAchat statut Retard

Utilisateur idUtilisateur motPasse nom prénom

Prêt datePrêt

(46)

Membre téléphoneRésidence nbMaxPrêts = 5 duréeMaxPrêts = 7

Retour dateRetour Employé

nom prénom codeMatricule catégorieEmployé

Catégorie code descripteur Auteur

nom prénom

Editeur nomEditeur ville

Livre ISBN titre

annéeParution

Exemplaire idExemplaire dateAchat statut Retard

Utilisateur idUtilisateur motPasse nom prénom

Prêt datePrêt

12.3.1.6 Eviter les concepts dérivables

Pour dériver

durée moyenne

(47)

Clarté conceptuelle et linguistique

 12.3.1.7 SYNONYMIE ET POLYSÉMIE

 12.3.1.8 NOMS

REPRÉSENTATIFS

répertoire des concepts (dictionnaire

de données, glossaire)

(48)

12.3.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 ...

Utilisateur idUtilisateur motPasse nom

prénom 1

emprunteur Prêt

datePrêt

*

1 *

(49)

Éviter les associations dérivables

Exemplaire idExemplaire dateAchat statut Utilisateur

idUtilisateur motPasse nom

prénom

Prêt datePrêt

1 *

emprunteur

1 * ** 11

Retour dateRetour

1

*

1

* * 1

* 1

0..1 11

0..1

Associations dérivables à éviter

(50)

Ebauche des associations pour SyLeRat

Employé nom

prénom codeMatricule catégorieEmployé

Membre téléphoneRésidence nbMaxPrêts = 5 duréeMaxPrêts = 7

Catégorie code descripteur

0..1 n parent0..1

enfant n Auteur

nom prénom

Livre ISBN titre

annéeParution

1 n 1

n

1..n 1..n

1..n 1..n

Editeur nomEditeur ville

1..n

1

1..n

1

Utilisateur idUtilisateur motPasse nom prénom

Exemplaire idExemplaire dateAchat statut Retour

dateRetour Prêt datePrêt

1 n

emprunteur

1 n

n

1 n

1 0..1

1 0..1

1

(51)

12.3.2.1 Classe, association ou classe associative

Prêt datePrêt Utilisateur

idUtilisateur motPasse nom prénom

Exemplaire idExemplaire dateAchat statut

*

0..1 *

0..1

PrêtEnCours datePrêt

PrêtArchivé datePrêt dateRetour Utilisateur

idUtilisateur motPasse nom

prénom

* 1

* 1

Exemplaire idExemplaire dateAchat statut

* 11

*

* 0..1

0..1

*

Utilisateur idUtilisateur motPasse nom prénom

Retour dateRetour

Prêt datePrêt

1 *

emprunteur

1 *

* 0..1

1 0..1

1 *

11

Exemplaire idExemplaire dateAchat statut

(52)

12.3.2.2 Spécification des qualificateurs

Membre

Adresse numéroCivique numéroAppartement

1 1..*

1 1..*

Rue nomRue codePostal 1

1..* 1 1..*

Ville nomVille 1

1..*

Pays nomPays Province

nomProvince

1..* 1 1..* 1

1..* 1 1..* 1 1..* 1

Membre

Adresse 1 1..*

1 1..*

Rue codePostal numéroCivique

numéroAppartement 1 0..1

1 numéroCivique numéroAppartement 0..1

Ville nomRue

0..1 11

nomRue 0..1

Province 0..1

nomVille

0..1 11

nomVille Pays

nomPays 0..1

nomProvince

0..1 11

nomProvince

(53)

 12.3.2.3 Degré approprié d ’association

 12.3.2.4 Éviter les clés étrangères

Utilisateur idUtilisateur motPasse nom

prénom

Prêt

idUtilisateur

datePrêt

(54)

12.3.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

(analyse formelle de concepts)

(55)

Ajout d ’un lien de généralisation entre classes

Utilisateur idUtilisateur motPasse nom

prénom

Employé nom

prénom

codeMatricule catégorieEmployé

Membre

téléphoneRésidence

$ nbMaxPrêts = 5

$ duréeMaxPrêts = 7

Utilisateur idUtilisateur motPasse nom

prénom catégorieUtilisateur

{disjointe, complète}

Employé codeMatricule catégorieEmployé

Membre

téléphoneRésidence nbMaxPrêts = 5

duréeMaxPrêts = 7

(56)

Découverte d ’une nouvelle classe de généralisation

Auteur nom prénom

Utilisateur idUtilisateur motPasse nom

prénom

Auteur

Personne nom

prénom

Utilisateur idUtilisateur motPasse

{non disjointe, complète}

(57)

Autre exemple

PrêtEnCours datePrêt

PrêtArchivé datePrêt dateRetour Utilisateur

idUtilisateur motPasse nom prénom

* 1

* 1

Exemplaire idExemplaire dateAchat statut

* 11

*

* 0..1

0..1

*

Utilisateur {UNIQUE :idUtilisateur}

idUtilisateur

motPasse 11 **

Prêt datePrêt

{disjointe, complète}

PrêtArchivé dateRetour

PrêtEnCours

*

11

*

Exemplaire {UNIQUE: idExemplaire}

idExemplaire dateAchat statut

{Il ne peut y avoir plus d'un PrêtEnCours pour un même Exemplaire}

(58)

12.3.4 Types de données des attributs et autres contraintes d'intégrité

Personne nom : String prénom : String

Membre téléphoneRésidence : String nbMaxPrêts : Integer = 5 duréeMaxPrêts : Integer = 7

PrêtEnCours PrêtArchivé

dateRetour : Date

{dateRetour >= datePrêt}

{statut = "prêté" ssi PrêtEnCours de

l'Exemplaire est non vide}

{Le nombre de PrêtEnCours d'un Membre <= nbMaxPrêts}

Employé {UNIQUE : codeMatricule}

codeMatricule : String

catégorieEmployé : enum(bibliothécaire, commis) catégorieUtilisateur

Catégorie {UNIQUE: code}

code : String descripteur : String

0..1

* parent 0..1

enfant

* Auteur

Editeur {UNIQUE: nomEditeur}

nomEditeur : String ville : String

Livre {UNIQUE: ISBN}

ISBN : String titre : String

annéeParution : TypeDonnéesAnnée 10..*0..*

1 1..*

1..* 1..*

1..*

1 1..*

1 1..*

Exemplaire {UNIQUE: idExemplaire}

idExemplaire : String dateAchat : Date

statut : enum(prêté, disponible, retiré)

1 1..*1..*

1

Prêt datePrêt : Date

1

*

1

* Utilisateur

{UNIQUE :idUtilisateur}

idUtilisateur : String

motPasse : String 11 **

{ordonné}

{Il ne peut y avoir plus d'un PrêtEnCours pour un même Exemplaire}

{disjointe, complète}

{disjointe, complète}

{chevauchante, complète}

TypeDonnéesAnnée {Integer > 0 }

<<datatype>>

(59)

12.3.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 ...

(60)

12.3.6 Modularisation du modèle conceptuel

PackageCLassesPrêts

PackageClassesDescriptionBibliographique PackageHiérarchiePersonne

(61)

PackageHiérarchiePersonne

Personne nom : String prénom : String

Membre

téléphoneRésidence : String nbMaxPrêts : Integer = 5 duréeMaxPrêts : Integer = 7 Employé

{UNIQUE : codeMatricule}

codeMatricule : String

catégorieEmployé : enum(bibliothécaire, commis) catégorieUtilisateur

Auteur Utilisateur

{UNIQUE :idUtilisateur}

idUtilisateur : String motPasse : String

{disjointe, complète}

{chevauchante, complète}

(62)

PackageClassesPrêts

PrêtEnCours PrêtArchivé

dateRetour : Date

{dateRetour >= datePrêt}

{statut = "prêté" ssi PrêtEn Cours de l'Exemplaire est non vide}

{Le nombre de PrêtEnCours d'un Membre <= nbMaxPrêts}

{Il ne peut y avoir plus d'un PrêtEnCours pour un même Exemplaire}

{disjointe, complète}

Exemplaire {UNIQUE: idExemplaire}

idExemplaire : String dateAchat : Date

statut : enum(prêté, disponible, retiré) Utilisateur

(from PackageHiérarchiePersonne)

Prêt datePrêt : Date

1

*

1

1 * *

1 *

Membre

(from PackageHiérarchiePersonne)

(63)

PackageClassesDescriptionBibliographique

{ordonné}

TypeDonnéesAnnée {Integer > 0 }

<<datatype>>

Catégorie {UNIQUE: code}

code : String

descripteur : String 0..1

* parent

0..1

enfant

* Auteur

(from PackageHiérarchiePersonne)

Editeur

{UNIQUE: nomEditeur}

nomEditeur : String ville : String

Livre {UNIQUE: ISBN}

ISBN : String titre : String

annéeParution : TypeDonnéesAnnée 1 **

1 1..*

1..* 1..*

1..*

1

1..*

1

1..*

Exemplaire

(from PackageCLassesPrêts)

1 1..*

1 1..*

(64)

12.3.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

(65)

Exemple : méta-modèle de UML

Element

GeneralizableElement isRoot : Boolean isLeaf : Boolean isAbstract : Boolean

Attribute

initialValue : Expression Method

body : ProcedureExpression Operation

concurrency : CallConcurrencyKind isRoot : Boolean

isLeaf : Boolean isAbstract : Boolean

1 **

+specification 1

ElementOwnership visibility : VisibilityKind

Namespace

ModelElement name : Name

0..1

*

+namespac 0..1

+ownedElement

*

BehavioralFeature isQuery : Boolean Feature

ownerScope : ScopeKind visibility : VisibilityKind

StructuralFeature multiplicity : Multiplicity

changeability : ChangeableKind targetScope : ScopeKind Classifier

*

1

+feature {ordered} *

+owner 1

1 +typ **

1

Class isActive : Boolean

DataType Interface

(66)

12.3.7.1 Classe générique (template class)

IndexSecondaire<Livre,{ISBN}>

Livre

<<table>>

nomTable, listeColonnes IndexSecondaire

Classe générique instantiée

Paramètres

formels

(67)

12.3.7.2 Notion de patron

 « Généricité » plus large

 Micro-architecture réutilisable

 Collaboration paramétrisée en

UML

(68)

12.3.7.2.1 Patron de description

Livre ISBN

titre

annéeParution 1 1 1..* 1..*

Exemplaire idExemplaire dateAchat statut

Méta-données « au sens large »

ModèleOrdinateur noModèle

typeProcesseur capacitéRam

Ordinateur noSérie

*

11 *

TypeItem Item

* 1

1 *

(69)

12.3.7.2.2 Patron d'assemblage

TypeItem

* *

*

composant *

Item

*

1 *

1 0..1

*

composé 0..1

composantPhysique *

{si un Item A est un composantPhysique d'un Item B, il faut que le TypeItem de A soit un composant du TypeItem de B}

{un TypeItem ne peut être un composant

de lui-même (association acyclique)}

(70)

12.3.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

(71)

12.4 Estimation des volumes de données

Classe Volume maximal Evolution

Livre 1,000,000 Croissance de 5% par an

Catégorie 4,000 Très stable

Editeur 50 Très stable

Exemplaire 2,000,000 Croissance graduelle de 5%

par an

Auteur 200,000 Croissance graduelle de 2%

par an

Membre 10,000 Croissance graduelle de 5%

par an

Bibliothécaire 1 Stable

Employé 10 Stable

PrêtEnCours 25,000 Beaucoup d'insertions et de

suppressions mais volume global stable

PrêtArchivé 500,000 Croissance graduelle de 10%

par an

Références

Documents relatifs

Si l'on en croit Jesse Fox, auteur principal d'une étude et professeur assistante en communication à l'Université de l'Ohio, les hommes qui publient beaucoup de selfies sur

Les élèves ne disposant pour l’instant que d’informations qualitatives sur l’énergie potentielle et l’énergie cinétique d’un système, le but de

Pour cela (figure 1), on émet dans le local I avec une source de bruit normalisée, et on mesure dans le local II, séparé de I par la paroi étudiée, le niveau acoustique par

 A chaque type et chaque degré est affecté un nombre de points La méthode permet de calculer le poids du projet en points de

Réaliser une analyse de l’arbre généalogique suivant pour déterminer quel risque pour III4 d’avoir un enfant malade. Les femmes sont symbolisées par des ronds, et les hommes par

L'objet posé sur le sol ne pourra en aucun cas libérer de l'énergie par le travail de son poids. Son énergie potentielle de pesanteur est nulle. Pour définir une énergie potentielle

L'induit d’un moteur est alimenté par une tension continue V = 275V, par l'intermédiaire d'un hacheur série, selon le schéma de principe connu. A l'aide d'un oscilloscope bi-courbe,

Consultez le compte résultat de votre entreprise (onglet « Comptabilité »), complétez le tableau suivant pour la période T3.. Quelles