IEPSCF Uccle Section informatique UML - …users.belgacom.net/feyaerts/pdf/ACA.pdf · Principes de...
-
Upload
nguyennguyet -
Category
Documents
-
view
215 -
download
0
Transcript of IEPSCF Uccle Section informatique UML - …users.belgacom.net/feyaerts/pdf/ACA.pdf · Principes de...
IEPSCF Uccle Section informatique
UML
D’après les notes prises au cours de
Mme Namur
2003 Feyaerts prod
Analyse et conception d’application - page 2 - Feyaerts Prod
TABLE DES MATIERES 1. UML pour les systèmes d’information............................................................................................. 1
Rappel methode merise = méthode systémique ............................................................................ 3 Définition des rôles ......................................................................................................................... 3 Présentation de l’uml ...................................................................................................................... 3 Rappel des principaux principes de base de POO......................................................................... 4 Les classes ..................................................................................................................................... 4 Avantages de la POO ..................................................................................................................... 6
2. Concepts et principes pour modéliser un s.I. ................................................................................. 7 Concepts......................................................................................................................................... 7 Principes de la modélisation des S.I............................................................................................... 7
3. Le diagramme des cas d’utilisation (use cases)............................................................................. 8 4. Les diagrammes de séquence...................................................................................................... 10 5. Les diagrammes de classe ........................................................................................................... 14
Les attributs .................................................................................................................................. 14 Les associations ........................................................................................................................... 14 Les opérations (ou méthodes) ...................................................................................................... 17 généralisation / spécialisation....................................................................................................... 18 Contraintes des spécialisation ...................................................................................................... 19 L’héritage ...................................................................................................................................... 20 Le polymorphisme ........................................................................................................................ 20 Classe abstraite ............................................................................................................................ 21 Règles pour l’élaboration d’un diagramme de classe................................................................... 22
6. Les Diagrammes d’objet ............................................................................................................... 27 7. Les diagrammes de collaboration................................................................................................. 28 8. Les diagrammes d’activités .......................................................................................................... 29 9. Les diagrammes d’états – transitions ........................................................................................... 32 10. Les diagrammes des composants ................................................................................................ 34 11. Les diagrammes de déploiement.................................................................................................. 35
Analyse et conception d’application - page 3 - Feyaerts Prod
1. UML POUR LES SYSTÈMES D’INFORMATION RAPPEL METHODE MERISE = MÉTHODE SYSTÉMIQUE
3 systèmes interagissent.
On fait la différence entre les données (MCD) et le traitement (MCT)
nouvelle conception où l’on peut éviter de séparer donnée et traitement
Ce système permet la conception d’un système informatisé.
DÉFINITION DES RÔLES Le Maître d’ouvrage = Le client (le demandeur) il se charge de l’analyse du système d’information. Il exprime ses besoins dans un cahier de charges. Le Maître d’œuvre (fournisseur) répond par la conception du système informatique qui répond au besoin du maître d’ouvrage. L’ensemble étant analyse(client) et conception d’application (fournisseur)
PRÉSENTATION DE L’UML Unified modeling language (∆≠de merise qui est une méthode) Créé en 1995 par Booch, Rumbaught et Jacobson. Retenu comme norme de modélisation en 1997. Ce langage propose des outils d’analyse aucun n’est obligatoire il n’y a pas d’organisation. L’objet du cours est d’aborder tous les outils disponibles.
Analyse et conception d’application - page 4 - Feyaerts Prod
RAPPEL DES PRINCIPAUX PRINCIPES DE BASE DE POO • Différence entre programmation classique et programmation orientée objet
Centralisée Décentralisée
• Les objets notion de base de la POO
Ils sont caractérisés par un état = les données un comportement = les méthodes
Exemple objet compte_épargne Variables = num_compte, date_création, nom_titulaire, solde Methode = débiter()
Créditer()
LES CLASSES Modèle ou structure communes à un ensemble d’objet Exemple de classe en c++ Classe compte { int num ; char date_creation [11]; char nom_titulaire [15]; public : void crediter(float montant) { solde = solde + montant; } void debiter { solde = solde – montant ; } };
• Les messages compte_epargne.créditer(50) ; nom_objet . nom_methode
• L’instanciation Un objet est une instance d’une classe. Il existe un constructeur par défaut dont le nom correspond au nom de la classe. Exemple : en c++ # include <string.h> class compte { public : compte(int n,char d, char*no, float s) { num= s; strcpy(date_crea, d);
Analyse et conception d’application - page 5 - Feyaerts Prod
strcpy(montant, n); solde = s } } void main() { compte compte_epargne(1235, “01/01/1990”, Louis charles”, 50000); constructeur nom de l’objet
• Encapsulation Objet = donnée + méthode
• Héritage Simple : La (es) classe(s) fille(s) ne dépende(nt) que d’une classe mère Attention au sens des flèches On peut redéfinir une méthode (surcharge)
ajouter méthode ou variable. Multiple
Exemple en c++ Attention
protected uniquement s’il y a sous classes :: coût +/- = à printf << :
En C++ si héritage en mode public • Les variables private de A inaccessible en B • Les variables protected de A accessible en B en mode protected • Les variables public de A accessible en B en mode public
Si héritage en mode private • Les variables private de A inaccessible en B • Les variables protected de A accessible en B en mode private • Les variables public de A accessible en B en mode public
Rmq notion de classes « amies »
Analyse et conception d’application - page 6 - Feyaerts Prod
Les classes abstraites Une classe abstraite ne sera jamais instanciée. Elle permet d’éviter les redondances en regroupant des attributs (variables ou méthodes) communs qui devraient être réécrite pour chaque sous classe. Intérêt : éviter le copier coller et économiser l’espace mémoire. Exemple Personne Numéro Super classe abstraite Nom Adresse Étudiant Employé Numéro Numéro Nom Nom Adresse Adresse formation Salaire Étudiant travailleur Héritage multiple Avantages facilité
• Le polymorphisme On parle de polymorphisme quand 2 classes différentes ont une interface identique. Soit une classe Employé et une classe Ouvrier Void travailleur :: affiche() { cout << «ma classe est travailleur »<< »\n ; } void employé :: affiche { cout << «ma classe est employé »<< »\n ; } … void main() { employé.affiche() renvoie : ma classe est employé ouvrier.affiche() renvoie : ma classe est travailleur
AVANTAGES DE LA POO • Développer plus rapidement ; • Possibilité de récupérer des composants existants • Développement par incrémentation • Développement de meilleure qualité • Travail en équipe • Coût réduits • Meilleure variabilité dimensionnelle • Meilleure structure d’information • Adaptabilité accrue
animal familier
chien chat cheval lapin
Analyse et conception d’application - page 7 - Feyaerts Prod
2. CONCEPTS ET PRINCIPES POUR MODÉLISER UN S.I. CONCEPTS
• L’entité Reprend une information à part entière intéressant un concept indépendant. Comme on est en POO on parle de classe entité.
• Acteur C’est celui qui utilise les information du système
• Processus Ensemble d’activités organisées utilisant les informations du système Elles sont accomplie par les acteurs C’est une réponse à un événement elle correspond à une fonction Types d’évènements • Évènements externes déclenchés par un acteur externe • Événements interne déclenchés par un acteur interne • Événement temporel déclenché automatiquement selon un délai, un seuil d’alerte
Types de processus • Processus métier déclenchés par évènement externes ou temporels. • Processus de pilotage déclenchés par événement internes ou temporels. • Processus support facilitant les processus métier déclenchés par n’importe quel type
d’événement. • Domaine
C’est un ensemble de processus Exemple le Domaine Clientèle est composé de : • Processus métier pas nécessairement informatique pour la gestion des clients • Processus support outils informatique qui facilite le processus métier • Processus de pilotages pour juger de la fidélité des clients pour le suivi de la clientèle.
Remarques 1 événement déclenche 1 processus Une variation dans l’événement peut entraîner une variation du processus Si un processus peut être considéré comme une classe un scénario est une instance de cette classe.
PRINCIPES DE LA MODÉLISATION DES S.I. On découpe le Système d’Information en domaines (sous systèmes) Approche par niveau Le maître d’ouvrage étudie l’aspect conceptuel (Ce qu’il doit faire )
L’aspect organisationnel (Qui va le faire) Le maître d’œuvre étudie l’aspect logique (conception logique du système informatique)
l’aspect physique (réalisation du système informatique). La complexité des systèmes implique qu’ils soient abordé de point de vues différents grâce à l’UML chaque point de vue pourra être analysé grâce à un diagramme • Fonctionnel : qu’est ce qu’il doit faire • Statique : données de bases du système • Dynamique : comment il fonctionne
Analyse et conception d’application - page 8 - Feyaerts Prod
3. LE DIAGRAMME DES CAS D’UTILISATION (USE CASES) Il établit un lien entre chaque processus (ou cas d’utilisation et l’acteur externe Un acteur peut être humain, machine ou un autre sous domaine Il peut être principal ou secondaire quand il apporte des informations nécessaires à l’accomplissement de la tâche. Exemple de base le secrétariat de l’école
Les include Quand une action, un cas d’utilisation, implique un autre il s’agit d’un include. On les utilise pour éviter les redondances quand une activité est réalisée dans plusieurs autres cas Exemple : Quand on s’inscrit, on doit fatalement obtenir des renseignements Le lien est une flèche pointillée elle pointe vers l’action incluse
Les extend Lorsqu’une action représente un cas particulier d’un cas d’utilisation Exemple L’inscription des demandeurs d’emplois demande des documents supplémentaires Les lien est une flèche pointillée elle pointe vers le cas général.
Convention • Les intitulés des cas d’utilisation commencent toujours par un verbe ; il s’agit d’une action • Toujours veiller à simplifier et à regrouper les cas d’utilisations • Les includes et les extend servent à éviter les redondances.
• Remarque : Les acteurs sont les bénéficiaires Les DCU doit être le plus synthétique il a pour but de déterminer ce que chaque acteur attend du système.
Analyse et conception d’application - page 9 - Feyaerts Prod
• Étapes de construction 1. Identifier les acteurs
Qui utilise le SI Qui est en contact avec le SI Qui bénéficie du SI
2. Identification des cas d’utilisation Quel service offre le SI Les acteurs utilisent ils le système
3. Identifier les acteurs secondaires 4. Les cas d’utilisation ont ils besoin d’un acteur externe pour s’exécuter
qui leur donne cette aide 5. Y a t il une partie commune aux cas d’utilisation includes 6. Y a t il une relation d’extention (alternative) mutuellement exclusive 7. Y a t il un cas particulier extend
Exercice Le Guichet automatique de banque Cette étude de cas concerne un système simplifié de Guichet automatique de banque (GAB). Le GAB offre les services suivants :
1. Distribution d'argent à tout porteur de carte de crédit (carte Visa ou carte de la banque), via un lecteur de carte et un distributeur de billets.
2. Consultation de solde de compte, dépôt en numéraire et dépôt de chèques pour les clients de la banque porteurs d'une carte de crédit de la banque.
N'oubliez pas non plus que : 3. Toutes les transactions sont sécurisées. 4. Il est parfois nécessaire de recharger le distributeur, etc.
À partir de ces quatre phrases, nous allons progressivement : • Identifier les acteurs • Identifier les cas d'utilisation • Construire un diagramme de cas d'utilisation • Décrire textuellement les cas d'utilisation • Compléter les descriptions par des diagrammes dynamiques • Organiser et structurer les cas d'utilisation
Analyse et conception d’application - page 10 - Feyaerts Prod
Si le diagramme des cas d’utilisation est trop grand On peut le dissocier, le découper en paquetages Par acteur principal par exemple
4. LES DIAGRAMMES DE SÉQUENCE But : Font apparaître les échanges entre les objets extraits du C.U. Description détaillée d’un des scénarios possibles d’un des cas d’utilisations. Un scénario étant rappelons le une instance de processus. En général on choisit le scénario le plus général et non les cas d’exception. Conventions : • les acteurs externes principaux à gauche, • le système au milieu peut être détaillé, • les acteurs secondaires, s’il en existe, à droite. • Sous chaque acteur une ligne pointillée la ligne de vie. • Les flèches représentent les actes avec entre parenthèses les éventuels paramètres.
Exemple : Prenons le diagramme de cas d’utilisation du secrétariat et décrivons la le diagramme de séquence du cas inscription d’un élève
Demande d'inscription(nom de la formation)
étudiant secrétaire
: formation : elèves
Recherche de place(nom de la formation)réponse
Demande de documents(Carte d'identité)
Donne carte d'identité(nom prénom) Vérification (Nom prénom)
dans liste d'élèves déjà inscritsRéponse
Rendre carte d'identité
Montant à payer(montant)
Donner liquide (montant)
Ajouter etudiant base de donnée(Nom, pénom, formation)
Donner attestationd'inscription
Système Secrétariat
Analyse et conception d’application - page 11 - Feyaerts Prod
Exercice : Faire le diagramme de séquence du processus retire argent avec carte visa de GAB
Introduire carteclient visa
GAB<<acteur>>
Sécutitévisa
Demande Autorisation retrait
Retirer montant du solde
Autorisation (solde)
Demande code
Encoder code(valeur code)
Demander montant
Proposer ticket
Encoder montant (montant)
Accepter ticket
Carte reprise par U
Reprise des billets +ticket
Retour carte
Billets + ticket délivrés
Vérification carte
Vérification code
Vérification montant
E4 carte nonreprise
E1 carteinvalide
A2 montant> solde
E5 Billetsnon repris
A3 Ticketrefusé par U
A1 code provisoirementincorrect
E2 code définitivementincorrect
Analyse et conception d’application - page 12 - Feyaerts Prod
Exercice Soit une société commerciale qui dispose de point de vente dans la plupart des grandes villes qui permet également la vente par correspondance par l’envoi régulier de catalogues. Toute personne qui se présente directement dans un point de vente pour un achat peut présenter le catalogue reçu par la poste pour obtenir un cadeau prévu. Le client a la possibilité de rapporter ou d’échanger les articles qui ne lui conviennent pas s’il se présente avec le ticket de caisse. Le payement peut se faire en espèces ou par bancontact.
Exercice : SYSTEME SIMPLIFIE DE CAISSE ENREGISTREUSE DE SUPER MARCHE Le déroulement normal d'utilisation de la caisse est le suivant : • Un client arrive à la caisse avec des articles à payer. • Le caissier enregistre le numéro d'identification de chaque article, ainsi que la quantité si elle
est supérieure à un. • La caisse affiche le prix de chaque article et son libellé. • Lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente. • La caisse affiche le total des achats. • Le client choisit son mode de paiement :
• Liquide: le caissier encaisse l'argent reçu, la caisse indique la monnaie à rendre au client.
• Chèque: le caissier vérifie la solvabilité du client en transmettant une requête à un centre d'autorisation via la caisse.
• Carte de crédit: un terminal bancaire fait partie de la caisse. Il transmet une demande d'autorisation à un centre d'autorisation en fonction du type de la carte
• La caisse enregistre la vente et imprime un ticket. • Le caissier donne le ticket de caisse au client.
Après la saisie des articles, le client peut présenter au caissier des coupons de réduction pour certains articles. Lorsque le paiement est terminé, la caisse transmet les informations sur le nombre d'articles vendus au système de gestion de stocks. Tous les matins, le responsable du magasin initialise les caisses pour la journée.
Analyse et conception d’application - page 13 - Feyaerts Prod
Diagramme des cas d’utilisation
Initialiserla caisse
Traiterl'article
Traiterles coupons
Payer
Espèces Chèque C Crédit
Delhaize
CaissierClient
sytème sécuritécarte crédit
centre autorisationchèque
include
secondaire
secondaire
secondaire
Responsabledu magasin
Diagramme de séquence du cas d’utilisation traiter les articles avec payement en liquide.
Introduire articlenuméro + quantité
Caissier
Caisse
Afficher prix + libellés
Afficher le total à payer
Afficher le montant à rendre
Payer
Annoncer le total à payer
Rendre la monaie
Donner le ticket
Signaler Fin de vente
Encoder le montant reçu
Imprimer le ticket
Client
Gestionde stock
Nombre d'articles vendus
Analyse et conception d’application - page 14 - Feyaerts Prod
5. LES DIAGRAMMES DE CLASSE Ils permettent de donner une vue statique du système. Ils représentent les classes et les associations entre celles-ci. La construction d’un diagramme de classe répond à certaines règles. La règle de non-redondance par exemple : Chaque information élémentaire ne peut apparaître qu’une seules fois
LES ATTRIBUTS Exemple de classe
/ attribut calculé # attribut protégé - attribut privé + attribut public
Les attributs primaire ont une dépendance fonctionnelle vis à vis de l’identifiant Les attributs primaires non-clé ne peuvent avoir de dépendance entre eux. (pour une occurrence de l’identifiant, il n’y a …
LES ASSOCIATIONS • Associations simple
Si un professeur peut être titulaire de plusieurs cours, on est obligé de créer une classe cours . pour respecter la règle de non-redondance. Les cardinalité se définissent comme suit (attention c’est l’inverse de merise.)
A By1..y2 x1..x2
À une instance de A, il correspond au minimum x1 instance de B et
au maximum x2 instance de B. À une instance de B, il correspond au minimum y1 instance de A et
au maximum y2 instance de A La notation signifie > que 1 Rmq : pour 1..1 on peur écrire 1
Pour 0.. on peut écrire . Arité : c’est le nombre de classes participant à une association. On dépasse rarement 4
Arité 2
Arité 3
Arité 2
Professeur
n°_professeur {id}nom_professeuradresse textedate_naissance
Cours
n°cours {id}intitulé...
est titulaire
est assistant
0..1
0..1
0..
1..
La flêche va du plus récent au plus ancien
Professeur
n°_professeur {id}nom_professeur texte[30]adresse texte [20]="Bruxelles"date_naissance/age_professeur
enseigne()
Nom de la classe
Identifiant = clé primaire
type
valeur par défaut
attribut dérivé calculé
méthode
attributs
Analyse et conception d’application - page 15 - Feyaerts Prod
• Identifiant d’une association Il peut arriver qu’une association puisse avoir des attributs On doit alors créer une classe association qui a ceci de particulier • Elle ne porte pas de nom. • Son identifiant est formé de la concaténation des identifiant des deux classes qu’elle associe.
Professeur
n°_professeur {id}nom_professeuradresse textedate_naissance
Cours
n°cours {id}intitulé...
Local
est titulaire0..1 0..
• Association multiple
Exemple avec arité 3
cardinalité dans les cas d’arité 3 à une instance de la classe B et de la classe A correspond : au minimum x1 instances de la classe C et au maximum x2 instances de la classe C
• Association réflexives
Analyse et conception d’application - page 16 - Feyaerts Prod
Exercice 1 : On considère un ensemble de localités (code postal + localité) dans lesquelles on peut trouver un certain nombre d'agences bancaires (numéro + nom + adresse). Un client (matricule + nom + prénom + date de naissance) peut avoir plusieurs comptes (numéro + date d'ouverture + solde). Si le client est mineur, il y aura un autre client de la banque qui sera son garant. Le modèle considèrera aussi les mouvements des différents comptes ( date + type + numéro de l'ordre + montant) et les chèques (numéro du début de la série + numéro de la fin de la série + nombre de chèques de la série) pouvant être liés aux différents comptes. Réalisez le diagramme des classes correspondant.
• Contraintes sur les associations
Contrainte d’inclusion
Employé
n°_employé {id}nom_employéadresse _employédate_naissance
Formation
n°form. {id}intitulé...
s'est inscrit
assiste
0..0..
0.. 0..{sous ensemble}
Un employé ne peut assister à une formation qu’à la condition de s’y être inscrit au préalable. L’ensemble des employés assistant à la formation est un sous-ensemble des celui des employé inscrits à cette formation.
Analyse et conception d’application - page 17 - Feyaerts Prod
Contrainte d’exclusion
Il est bien évident qu’on ne peut suivre à la fois des cours de jour et des cours du soir
• Les agrégations
Un club est un ensemble de personne. Mais sa disparition n’entraîne pas la disparition des personnes.
• Les compositions
Dans une composition il y a toujours une contrainte d’existence .Si la maison disparaît les pièces aussi.
LES OPÉRATIONS (OU MÉTHODES) Remarque : On ne met que les méthodes significatives mais mas les méthodes ajouter() ou supprimer().
Compte
n°_compte {id}nom_titulaire[30]......debiter()crediter()calculer_intéret()
méthodes
Analyse et conception d’application - page 18 - Feyaerts Prod
Exercice : Soient les informations suivantes :
Chaque compte en banque peut avoir au maximum 4 titulaires. Un client de la banque peut avoir plusieurs comptes et plusieurs cartes bleues. Chaque carte bleue est identifiée par un code et est caractérisée par la valeur du retrait maximum que le client peut effectuer dans les distributeurs, appartenant au consortium dont la banque peut faire partie. La banque peut faire partie de plusieurs consortiums. Réalisez le diagramme des classes correspondant.
GÉNÉRALISATION / SPÉCIALISATION • Spécialisation avec attributs
C’est à dire en fonction de la valeur d’un des attributs
Employé
n°_employé {id}nom_employéadresse _employéfonction
Comptable
nb_facture
informaticien
n° tâche
Secrétaire
nb de document
Analyse et conception d’application - page 19 - Feyaerts Prod
• Spécialisation avec association cours
n°_cours {id}Intitulé_cours.......
Cours à option
nb_étudiant_min
Etudiant
n°_étudiant0..0..
est inscrit • Spécialisation multiple
Voiture
n°_voiture
Conducteur
n°_conducteur
Moyen de transportArticle
n°_article
0..1..
possède CONTRAINTES DES SPÉCIALISATION • Spécialisation complète / incomplète
Une spécialisation est dite complète si on ne peut plus créer de sous-classe. Employé
n°_employé {id}nom_employéadresse _employéfonction
Comptable
nb_facture
informaticien
n° tâche
Secrétaire
nb de document
{Incomplète}{Exclusive}
• Spécialisation inclusive / exclusive.
Une spécialisation est dite inclusive si on peur appartenir simultanément aux sous classes. Personne
n°_personne {id}......
Enseignant Etudiant
{Incomplète}{Inclusive}
Analyse et conception d’application - page 20 - Feyaerts Prod
Exercice : On s'intéresse à un ensemble d'opérations bancaires (débit, crédit, virement, retrait en espèces au guichet ou au distributeur dont on connaît l'emplacement). On distingue, parmi les comptes en banque, les comptes d'épargne, pour connaître leur taux d'intérêt. Chaque opération bancaire est caractérisée par une date et le montant visé. Réalisez le diagramme des classes correspondant.
Compte
n°_compte {id}date_ouverturesoldetype(ép/vue)
Epargne
tx_d'interet
Opération
n°_opération {id}datemontant
0..
1..0..
0..
1..1
estlié
Débit
Retrait Virement
Retrait Guichet
Crédit
Retrait Espèces
Retrait Distributeur Distributeur
adr_dist1..1est réalisé
L’HÉRITAGE exemple Les classes filles héritent de leur classe mère : • les attributs, • les méthodes • et les associations.
LE POLYMORPHISME Un objet peut prendre plusieurs formes. Exemple une opération qui a le même nom peut cacher des codes différents Remarque Les méthodes doivent avoir le même nom.
1.. 0..
Laboratoire
matériel
Cours
n°cours {id}nom_cours
à Option
Nb min d'élèves
Professeur
n°_profest donné
Vêtements
n°vetement {id}......
calcul_P_vente()
Vêtements Soldés
n°vetement {id}......
calcul_P_vente()
Analyse et conception d’application - page 21 - Feyaerts Prod
CLASSE ABSTRAITE L’utilisation de classe abstraites implique l’utilisation de l’héritage. Exercice : Dessinez les diagrammes de classe correspondant à chacune de ces phrases. Le dessert est une pâtisserie.
Patisserie
Dessert{abstract}
n°dessert {id}
Glace
Un manteau a des poches
Poche
n°poche {id}
Manteau
n°manteau {id} 2..1..1
Un stage peut être effectué dans une entreprise publique ou privée
Les jacinthes et les iris sont des plantes à bulbe
Iris
plante à bulbe{abstract}
n° {id}
Jacinthe{incomplète}{exclusif}
Un orchestre contient des personnes
Personne
n°pers {id}
Orchestre
n°orch {id} 1..0..
Représenter les participants du championnat du mondes de patinage artistique.
Participant
n°part {id}sexe
Participant{abstract}
n°part {id}
1..1
1..1
patineavec
{2 participants doiventetre de sexe différent}
homme femme
joueavec
1..1 1..1
{complète}{exclusive}
P avec
Personne{abstract}
n°personne {id}nom_personneadr_personne
P sans
Pas d'instance
Analyse et conception d’application - page 22 - Feyaerts Prod
RÈGLES POUR L’ÉLABORATION D’UN DIAGRAMME DE CLASSE • Les questions que l’on doit se poser
• A-t-on bien compris le concept d’information qui est à l’origine de la création de la classe ? • A-t-on des attributs pour la décrire ? • A-t-on des objets à instancier pour cette classe ? • Peut-on trouver un identifiant pour cette classe.
• Règles de normalisation 1ère forme normale Tous les attributs d’une classe doivent être élémentaires ( non répétitifs) et en dépendance fonctionnelle de l’identifiant. C’est à dire chaque occurrence doit être unique et identifiable par la clé et pour chaque occurrence il ne peut exister q’une occurrence par attribut.
Ecole
num_ecole {id}nom_ecoleadr_ecole
Professeur
num_prof {id}nom_profadresse_prof
Professeur
num_prof {id}nom_profadresse_profnom_ecole
0..1..
1 seule adresse (à la fois)par professeur
Si 1 prof peut travailer dansplusieurs écoles à la fois
2ème forme normale Les attributs non-clés doivent dépendre de l’identifiant complet.
Médecin
nom_med {id}spécialité
Patient
nom_patient {id}adresse_pat
Consultation
nom_médecin +nom_patient {id}spécialitéDate création_service
1..1..
Ne dépend que du médecin
traite
date_créationdu service
classe association (pas de nom)
Analyse et conception d’application - page 23 - Feyaerts Prod
3ème forme normale Il ne peut y avoir de dépendance transitive. Pas de dépendance fonctionnelle entre attributnon-clé.
Garage
nom_gar {id}marque
Vendeur
n°_vendeur {id}nom_vendadr_vend
Vendeur
n°_vendeur {id}nom_vendeuradr_vendeurnom_garagemarque
1..10..
Dépendance entre nom_Garageet marque
travaille dans
Exercice Faire le diagramme des classe correspondant à la phrase : « Un service a un chef » En envisageant plusieurs possibilités.
Chef
n°_chef {id}nom_chefadressetelephone
Service
n°service {id}nom_servtype_serv
1..11..
a
date_nominationdurée mandat
Employé
n°_emp {id}nom_empadressetelephone
Service
n°service {id}nom_servtype_serv
1..1
1..1 1..
date_nominationdurée mandat
chefdirige
fait partie
Ss ensemble
Analyse et conception d’application - page 24 - Feyaerts Prod
Exercice Faire le diagramme de classe décrivant l’utilisation du feutre et de stylo en tenant compte de stylo effaceur, et des utilisateurs et des propriétaires.
Ustensile(abstract)
n°_ust {id}
Personne
n°personne {id}nom_persadresseTel
Stylo
type
Feutre
Effaceur
possède
utilise
0..
0..
1..1
0..1
Analyse et conception d’application - page 25 - Feyaerts Prod
EXERCICE SYSTEME DE RESERVATIONS DE VOLS. Cette étude de cas concerne un système simplifié de réservations de vols pour une agence de voyages. Les interviews ont permis de résumer la connaissance du domaine obtenue, de la manière suivante :
1. Des compagnies aériennes proposent différents vols. 2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie. 3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. 4. Une réservation concerne un seul vol et un seul passager 5. Une réservation peut être annulée ou confirmée. 6. Un vol a un aéroport de départ et un aéroport d'arrivée 7. Un vol a un jour et une heure de départ, et un jour et une heure d'arrivée 8. Un vol peut comporter des escales dans des aéroports 9. Une escale a une heure d'arrivée et une heure de départ 10. Chaque aéroport dessert une ou plusieurs villes.
Vol
n°_vol {id}date_départheur_départdate_arrivheur_arrtype_serv
ouvrir_réserv()fermer_reserv()
1..
0..
0..
0..0..1..
0..
1..
0..1..
Compagnie
nom {id}
Passager
n°passport{id}nom_pprenom_padr_p
Aéroport
n° {id}nom
Ville
n° {id}nom_v
heur_arrheur_dep
Client
n°_id {id}nom_cprénom_cadresse_c
Réservation
date & heur {id}
annuler()confirmer()
assure 1..1
effectue
1..1
est faitepar
concerne1..1départ
arrivée
1..1
1..1
dessert
1..1
Analyse et conception d’application - page 26 - Feyaerts Prod
Exercice SYSTÈME DE GESTION DE DEMANDE DE FORMATION Lorsque le responsable formation reçoit une demande de la part d’un employé, celle-ci est instruite par le responsable qui la qualifie et transmet son accord ou son désaccord à l’intéressé. En cas d'accord, le responsable recherche dans le catalogue des formations agréées, un stage qui correspond à la demande. Il informe l'employé du contenu de la formation et lui propose une liste des prochaines sessions. Lorsque l'employé a fait son choix, le responsable formation inscrit le participant à la session auprès de l'organisme de formation concerné. En cas d'empêchement, l'employé doit informer le responsable de formation au plus tôt pour annuler l'inscription ou la demande. Les employés doivent pouvoir accéder partiellement, au catalogue des formations agréées, en lecture, et le responsable formation, globalement, en écriture. Ce catalogue contiendra le contenu technique, la durée, etc… des formations proposées par les organismes agréés, mais aussi les dates et lieux des prochaines sessIons. Le responsable formation pourra également créer des regroupements de formations appelés thèmes. QUESTION 1 : Élaborez le diagramme des cas d'utilisation du système de gestion des demandes de formation QUESTION 2 : réalisez un diagramme de séquence qui décrit le scénario nominal du cas d'utilisation "Maintenir le catalogue". Diagramme des cas d’utilisation
Diagramme de séquence du scénario nominal "Maintenir le catalogue".
Opération (formation, opération)
Responsable
Système
Réception (liste des annulations)
Confirmation
Nouvelle version impression
(création,suppression,lecture,modification)
Création d'un thème (valeur)
Analyse et conception d’application - page 27 - Feyaerts Prod
6. LES DIAGRAMMES D’OBJET Rôle Représenter les liens (ou instances d’association) entre les objets (ou instances de classes) Intérêt pouvoir expliquer plus clairement certaines parties complexes du diagramme de classe Convention : le nom d’un objet peut s’écrire sous 3 formes
nom d’objet nom d’objet : nom de classe : nom de classe
Exemples :
Marque
nom_gar {id}
Garage
id garage {id}nom_garadr_gar
1..11.. traite
Garage du parc
Marché de l'auto
Garage Leclerc
Peugeot
Toyota
traite
traite
traite
Diagramme d'objet
Diagrammme de classe
Service
id serv {id}nom_servadr_ser
1..1
0..
Gestion du personnel
Service Employés Service Payement
Diagramme d'objet
Diagrammme de classe
Dirige
dirige dirige
Analyse et conception d’application - page 28 - Feyaerts Prod
Classe
id_class {id}
Local
E 206
A 106
Examen
id_examen {id}Libellé
1..11.. Concerne
ACA : Examen
PDIG : examen
IG4 : classe
Diagramme d'objet
Diagrammme de classe
concerne
concerne
7. LES DIAGRAMMES DE COLLABORATION Rôle : Alternative au diagramme de séquence. Ils servent à montrer les interactions entre le différents objets et/ou les différents acteurs lors du déroulement d’un cas d’utilisation Les messages peuvent être décrits de manière plus complète au moyen d’un nom et d’un numéro de séquence. Exemple diagramme de séquence du cas d’utilisation « demander une formation »
Analyse et conception d’application - page 29 - Feyaerts Prod
Exemple Étude de cas : SYSTÈME SIMPLIFIÉ DE PUBLIPHONE À PIÈCES
1. Le prix minimal d'une communication interurbaine est de 2 francs. 2. Après l'introduction de la monnaie, l'utilisateur a 2 minutes pour composer son numéro (ce
.délai est décompté par le standard) 3. La ligne peut être libre ou occupée. 4. Le correspondant peut raccrocher le premier. 5. Le Publiphone consomme de i'argent dès que l'appelé décroche et à chaque unité de
temps ( UT) générée par le standard 6. On peut ajouter des pièces à tout moment. 7. Lors du raccrochage, le solde de monnaie est rendu.
QUESTION Réalisez un diagramme de collaboration, en s'arrêtant au moment où la conversation débute et en considérant que après l'introduction de la somme minimale de 2 F, le Publiphone transmet un message au standard, pour le décompte du délai de 2 minutes. Si le numéro compose n’est pas valide, le standard le détecte plus généralement, le standard transmet l'état de la ligne au Publiphone (libre, occupée, en dérangement, etc…) et pas seulement le type de tonalité.
: Standard
: Utilisateur 2 : Introduire monnaie
5 : composer numéro(numéro)
10 : Type de tonalité
11 : Début communication
1: décrocher combiné 3 : Délai numérotation
4 : Délai 2 min attente
[>2min] 4 : Délai expiré
6 : Transmission numéro(numéro)
7 : Validité numéro(valide)
9 : Type de tonalité
: Publiphone
8. LES DIAGRAMMES D’ACTIVITÉS Rôle : pouvoir représenter sous forme d’un organigramme la séquence des activités relatives d’un cas d’utilisation. Représente donc un flot de contrôles
Chaque activité est représentée par le symbole suivant : Activité Exemples
Se présenterà un examen
Passerl' examen
Attendreles résultats
On peut aussi représenter des conditions (alternatives Passerexamend'ACA
Demanderattestationde réussite
Demanderpapiers de
réinscription
résult>50%
Sinon
Demanderl'addition
Payeren
liquide
Payerpar
carte
Sinon
disponible>montant
Analyse et conception d’application - page 30 - Feyaerts Prod
Exercice Réaliser le diagramme d’activité du GAB du cas d’utilisation retirer de l’argent avec carte visa.
invalide
Vérifiercarte
valide
Refusercarte
Demandercode
Vérifiercode
Demanderautorisation
retrait
Demandermontant
Retirermontantdu solde
Proposerticket
Imprimericket
Ejecterbilllets
Ejectercarte
Codeincorrect
1èreet
2ème fois
Codedéfinitivement
incorrect
Retraitrefusé
Montant >solde
Analyse et conception d’application - page 31 - Feyaerts Prod
De plus on peut représenter des activités simultanées par des bandes de synchronisations. Organiser
lesexamen
Regarderla
télé
Répondreaux
questions
AllerTravailler
Prendrele
petit dejeuner
Surveillerles
examens
Barre de synchonisation
Et finalement on peut représenter deux cas d’utilisation dans des couloirs d’activité.
Candidat Sélectionneur
Entrercandidature
Fixerrendez-vous
Se présenterà l'interview
Soumettrequestionnaire
Répondreaux questions
Examinerles réponses
Prendredécision
Client fournisseur
Commander1 article
Recevoir lacommande
Envoyerarticle
Recevoirarticle
Payer lafacture
Encaisser lepayement
Analyse et conception d’application - page 32 - Feyaerts Prod
9. LES DIAGRAMMES D’ÉTATS – TRANSITIONS Rôle : Représenter le comportement d’une classe donnée en fonction des activités d’un cas d’utilisation. Les diagrammes d’états-transitions montrent la structure dynamique du système. Représentation : Les états constituent les nœuds du diagrammes
Documentbloqué
Documentdébloqué
signature
état
évènement Les transitions sont représentées par des flèches. Elles s’accompagnent du nom de l’événement qui permet la transition. Ex : diagramme d’état transition de la classe voiture
On peut noter des conditions de garde Exemple pour la classe employé
Au travail En congéprendre congé(nb de jours)
[nbjours<=nb jours restants]
• Description des traitements Définitions • Action = unité élémentaire du traitement opération instantanée.. • Activité = opération qui dure.
Exemples : La classe étudiant
A inscrire Nom de l’état Entry : Choisir la formation Vérifier les conditions d’inscription Actions Déterminer montant à payer Évènement Modification de l’option choisie Modification de l’état : « à inscrire » Att d’inscrip Admis à la formation Modification des contraintes administratives Do (nom activité liée à l’état) Activités Traitement de l’inscription Exit Enregistrement de l’inscription Remise de document Actions Exemple La classe commande
En préparation Entry Choix du fournisseur Déterminer les Qu à commander Déterminer le montant de la commande Évènements Nouveau tarif : adapter montant à commande Nouveau besoin : MAJ commande Do Préparer la commande Exit Enregistrer la date d’expédition Envoyer la commande au fournisseur
Analyse et conception d’application - page 33 - Feyaerts Prod
Remarque : On peut créer des super-états pour factoriser les transitions.
A vendre
Endomagée
A la casse
Réparer
Accidenter
En état de fonctionner
Plus vendable
Remarque Il existe toujours un seul état initial Il peut exister un ou plusieurs états finaux. Exercice : Système simplifié de publiphone à pièces
• Le prix minimal d'une communication interurbaine est de 2 francs. • Après l'introduction de la monnaie, l'utilisateur a 2 minutes pour composer son numéro (ce
.délai est décompté par le standard) • La ligne peut être libre ou occupée. • Le correspondant peut raccrocher le premier. • Le Publiphone consomme de i'argent dès que l'appelé décroche et à chaque unité de temps
( UT) générée par le standard • On peut ajouter des pièces à tout moment. • Lors du raccrochage, le solde de monnaie est rendu.
QUESTION Réalisez un diagramme de collaboration comparez avec un diagramme d’etat-transition, en s'arrêtant au moment où la conversation débute et en considérant que
• après l'introduction de la somme minimale de 2 F, le Publiphone transmet un message au standard, pour le décompte du délai de 2 minutes.
• Si le numéro compose n’est pas valide, le standard le détecte • plus généralement, le standard transmet l'état de la ligne au Publiphone (libre, occupée, en
dérangement, etc…) et pas seulement le type de tonalité.
: Standard
: Utilisateur 2 : Introduire monnaie
5 : composer numéro(numéro)
10 : Type de tonalité
11 : Début communication
1: décrocher combiné 3 : Délai numérotation
4 : Délai 2 min attente
[>2min] 4 : Délai expiré
6 : Transmission numéro(numéro)
7 : Validité numéro(valide)
9 : Type de tonalité
: Publiphone
Rmq on peut en plus représenter l’état décroché comme super état.
Raccroché Attentte de lamonnaie
Attentte dunuméro
Attentte dumessage de
validité
Attentte dudécrochageCommunication
Décrocher lecombiné
whenmontant >= 2€
composer le numéro(numéro)
Validitédu numéro
débuterconversation
Raccrocher
Super état décroché
Analyse et conception d’application - page 34 - Feyaerts Prod
Exercice la caisse enregistreuse : réalisez le diagramme d’état – transition du cas d’utilisation traiter les articles et payer en liquide. Diagramme des cas d’utilisation :
Initialiserla caisse
Traiterl'article
Traiterles coupons
Payer
Espèces Chèque C Crédit
Delhaize
Caissier
Client
sytème sécuritécarte crédit
centre autorisationchèque
include
secondaire
secondaire
secondaire
Responsabledu magasin
Diagramme état transition
Attente du client réception article
attente du payement
Saisir article (num , Qtité)
Saisir autres articles(num , Qtité)
saisir payement(montant) Annoncer fin de vente
10. LES DIAGRAMMES DES COMPOSANTS Rôle montrer les relations de dépendance entre les différents composants d’une application. Un composant peut être un programme source, un programme exécutable, une applet, un fichier une librairie. Les dépendances sont compilation, ou exécution.
Composant Interface Base de donnée Exemple :
A1 A2
Relation de dépendance
Analyse et conception d’application - page 35 - Feyaerts Prod
Exemple : Système de gestion des demandes de formation ; cas d’utilisation inscription ; Où IHM = interface homme machine
Responsableformation
Employé
"applet"IHM
responsable
"exe"
catalogue
"DLL"
calendrier
"exe"Demande
etSuivi
"applet"IHMemployé
"application"
Authentification
BDEmployés
BDcatalogue
Interfaceresponsable
InterfaceEmployé
11. LES DIAGRAMMES DE DÉPLOIEMENT Il exprime le déploiement des composants sur les différents supports matériels utilisés.
"applet"IHM
responsable
"exe"
catalogue
"exe"Demande
etSuivi
"applet"IHMemployé
"application"
Authentification
BDEmployés
BDcatalogue
PC poste client
PC poste client
PC NT Serveur
Serveur Métier Unix