35
IEPSCF Uccle Section informatique UML D’après les notes prises au cours de Mme Namur 2003 Feyaerts prod

IEPSCF Uccle Section informatique UML - …users.belgacom.net/feyaerts/pdf/ACA.pdf · Principes de la modélisation des S.I ... Unified modeling language ... On découpe le Système

Embed Size (px)

Citation preview

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