Anapro s1 Uml
Anapro s1 Uml
Anapro s1 Uml
Département Licence
UML
Parcours
Licence 2 – Analyse et Programmation
Enseignants
Equipe pédagogique
UML
Méthodes pédagogiques : Cours magistral, petite révision en classe, exercices à faire à domicile,
exposés à préparer, recherche documentaire, lecture d’ouvrages et d’articles
Evaluation :
Sommative (DST et Examens) ;
Formative en TD et du TPE (travail personnel de l’étudiant).
BIBLIOGRAPHIE
Contenu pédagogique :
Chapitre 1 Généralités
Section 1 Informatisation
Section 2 Logiciels
Section 3 Notion de qualité pour un logiciel
Section 4 Modélisation, cycles de vie et méthodes
Section 5 Méthodes d’analyse et de conception
Section 6 Méthodes fonctionnelles ou structurées
Section 7 Approche programmation orientée objet
Chapitre 2 UML
Section 1 Histoire des modélisations par objets
Section 2 UML en œuvre
Section 3 Comment présenter un modèle UML ?
Section 3 Notions générales du langage UML
Section 4 Modélisation des besoins avec UML
Section 5 UML n’est pas une méthode
Section 6 Méthode simple et générique
Chapitre I : Généralités
Section 1 : Informatisation
Section 2 : Logiciels
La qualité du logiciel est définie par son aptitude à satisfaire les besoins des
utilisateurs. Elle est définie par l'ANSI comme "l'ensemble des attributs et
caractéristiques d'un produit ou d'un service qui portent sur sa capacité à satisfaire des
besoins donnés".
Le cycle de vie du développement logiciel (Cycle de vie d'un projet informatique) fait
référence à la conception, le développement et le test des logiciels de qualité
optimale.
Utilisation
UML est destiné à faciliter la conception des documents nécessaires au développement
d'un logiciel orienté objet, comme standard de modélisation de l'architecture logicielle.
Les différents éléments représentables sont :
UML n'étant pas une méthode, l'utilisation des diagrammes est laissée à
l'appréciation de chacun. Le diagramme de classes est généralement
considéré comme l'élément central d'UML.
REMARQUE
Un stéréotype est une marque de généralisation notée par des guillemets, montrant
que l'objet est une variété d'un modèle.
Un classeur est une annotation qui permet de regrouper des unités ayant le même
comportement ou structure. Un classeur se représente par un rectangle conteneur, en
traits pleins.
Un paquet regroupe des diagrammes ou des unités.
Chaque classe ou objet se définit précisément avec le signe « :: ». Ainsi l'identification
d'une classe X en dehors de son paquet ou de son classeur sera définie par « Paquet
A::Classeur B::Classe X ».
Le diagramme d’états / transitions : représente le cycle de vie des objets générés par une
classe.
Le diagramme de séquence : détaille les messages échangés entre les acteurs et le système
selon un ordre chronologique.
UML, dans sa version 2, s’articule autour de (14) types de diagrammes, chacun d’eux étant
dédié à la représentation des concepts particuliers d’un système logiciel. Ces types de
diagrammes sont répartis en trois groupes :
1. Diagrammes statiques ou structurels
3. Diagrammes d’interaction
Comme nous l'avons déjà dit, à maintes reprises, UML n'est qu'un langage de
modélisation, ce n'est pas une méthode. En effet, UML ne propose pas une démarche de
modélisation explicitant et encadrant toutes les étapes d'un projet, de la compréhension
des besoins à la production du code de l'application.
Les limites :
• L’approche objet est moins intuitive que l’approche fonctionnelle
• L’application des concepts objets nécessite une grande rigueur
préciser la phase du cycle de vie dans laquelle on situe l'étude (généralement la phase
d'utilisation).
Les acteurs Un acteur représente un rôle joué par une personne ou une "chose" extérieure
au système étudié qui interagit avec le système étudié. Le même être humain peut avoir
alternativement plusieurs rôles (vendeur, client). D’autre part, plusieurs personnes
peuvent jouer le même rôle. Il existe deux catégories d’acteurs :
les acteurs principaux : les acteurs qui utilisent les fonctions principales du système
(client, fournisseur). Normalement les acteurs principaux sont à la gauche dans le cadre
du diagramme de contexte statique.
les acteurs secondaires : les acteurs qui effectuent les tâches de maintenance,
administration et paramétrage du système (manager de la BD) Il existe 3 groupes
d’acteurs :
Les êtres humains (du moins des fonctions réalisées par des êtres humains). Par
exemple, Client, Etudiant, Gérant, Comptable, ...
Un cas d’utilisation (« use case ») représente un ensemble de séquences d’actions qui sont
réalisées par le système et qui produisent un résultat observable intéressant pour un
acteur particulier.
L’objectif est le suivant : l’ensemble des cas d’utilisation doit décrire exhaustivement les
exigences fonctionnelles du système. Chaque cas d’utilisation correspond donc à une
fonction métier du système, selon le point de vue d’un de ses acteurs.
Pour chaque acteur, il convient de :
• rechercher les différentes intentions métier avec lesquelles il utilise le système,
• déterminer dans le cahier des charges les services fonctionnels attendus du système.
Nommez les cas d’utilisation par un verbe à l’infinitif suivi d’un complément, du point de
vue de l’acteur (et non pas du point de vue du système).
Le diagramme de cas d’utilisation est un schéma qui montre les cas d’utilisation (ovales)
reliés par des associations (lignes) à leurs acteurs (icône du « stick man », ou
Une fois les cas d’utilisation identifiés, il faut encore les décrire !
Une bonne recommandation consiste à faire prévaloir l’utilisation de la forme graphique du stick
man pour les acteurs humains et une représentation rectangulaire pour les systèmes connectés.
SCÉNARIO
La fiche de description textuelle d’un cas d’utilisation n’est pas normalisée par UML. Nous
préconisons pour notre part la structuration suivante :
Remarque :
ACTEUR
Un acteur représente un rôle joué par une entité externe (utilisateur humain, dispositif
matériel ou autre système) qui interagit directement avec le système étudié.
Un acteur peut consulter et/ou modifier directement l’état du système, en émettant et/ou
en recevant des messages susceptibles d’être porteurs de données.
Use case : ensemble d’actions réalisé par le système en réponse à une action d’un acteur.
CU2
… … …
CUn
• Intention
– Exemple : créer un nouveau compte client (ordinaire ou d’épargne)
• Actions
– Saisir les informations identitaires du client, les informations
socioprofessionnelles, générer un nouveau compte, procéder au versement
initial etc
<<extend>>
Client distant Virement
<<include>> <<include>>
Client
Comment le représenter ?
Le diagramme de classes met en œuvre des classes, contenant des attributs et des
opérations, et reliées par des associations ou des généralisations.
CLASSE ET OBJET
Une classe représente la description abstraite d’un ensemble d’objets possédant les
mêmes caractéristiques. On peut parler également de type.
Exemple : la classe Voiture, la classe Personne. Un objet est une entité aux frontières
bien définies, possédant une identité et encapsulant un état et un comportement. Un objet
est une instance (ou occurrence) d’une classe.
Exemple : Christopher BANDZOUZI est un objet instance de la classe Personne. Le livre
que vous tenez entre vos mains est une instance de la classe Livre.
• ATTRIBUT ET OPÉRATION
Une opération représente un élément de comportement (un service) contenu dans une
classe. Nous ajouterons plutôt les opérations en conception objet, car cela fait partie des
choix d’attribution des responsabilités aux objets.
ASSOCIATION
Une association représente une relation sémantique durable entre deux classes.
Exemple : une personne peut posséder des voitures. La relation possède est une
association entre les classes Personne et Voiture.
Attention : même si le verbe qui nomme une association semble privilégier un sens de
lecture, une association entre concepts dans un modèle du domaine est par défaut
bidirectionnelle. Donc implicitement, l’exemple précédent inclut également le fait qu’une
voiture est possédée par une personne.
Aux deux extrémités d’une association, on doit faire figurer une indication de multiplicité.
Elle spécifie sous la forme d’un intervalle d’entiers positifs ou nuls le nombre d’objets qui
peuvent participer à une relation avec un objet de l’autre classe dans le cadre d’une
association.
Exemple : une personne peut posséder plusieurs voitures (entre zéro et un nombre
quelconque) ; une voiture est possédée par une seule personne.
AGRÉGATION ET COMPOSITION
Une agrégation est un cas particulier d’association non symétrique exprimant une
relation de contenance. Les agrégations n’ont pas besoin d’être nommées : implicitement
elles signifient « contient », « est composé de ».
Une composition est une agrégation plus forte impliquant que :
• un élément ne peut appartenir qu’à un seul agrégat composite (agrégation non partagée)
;
• la destruction de l’agrégat composite entraîne la destruction de tous ses éléments (le
composite est responsable du cycle de vie des parties).
Une classe abstraite est simplement une classe qui ne s’instancie pas directement mais
qui représente une pure abstraction afin de factoriser des propriétés communes. Elle se
note en italique. C’est le cas de Moyen de Transport dans l’exemple précédent.
PACKAGE
Package : mécanisme général de regroupement d’éléments en UML, qui est
principalement utilisé en analyse et conception objet pour regrouper des classes et des
associations. Les packages sont des espaces de noms : deux éléments ne peuvent pas
porter le même nom au sein du même package. Par contre, deux éléments appartenant à
des packages différents peuvent porter le même nom.
La structuration d’un modèle en packages est une activité délicate. Elle doit s’appuyer sur
deux principes fondamentaux : cohérence et indépendance.
Le premier principe consiste à regrouper les classes qui sont proches d’un point de vue
sémantique. Un critère intéressant consiste à évaluer les durées de vie des instances de
concept et à rechercher l’homogénéité. Le deuxième principe s’efforce de minimiser les
relations entre packages, c’est-à-dire plus concrètement les relations entre classes de
packages différents.
Cette étude de cas concerne un système simplifié de réservation de vols pour une agence de
voyages. Les interviews des experts métier auxquelles on a procédé ont permis de résumer leur
connaissance du domaine sous la forme des phrases suivantes :
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 à une heure d’arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes. Nous allons entreprendre progressivement la
réalisation d’un modèle statique d’analyse (aussi appelé modèle du domaine) à partir de ces «
morceaux de connaissance.
Attributs
Méthodes
• Syntaxe :
- Niveaux d’accès :
o Public +
o Potected #
o Private -
Voiture
Voiture
Immatriculation
Couleur
Marque
Propriétaire
Classe / Attributs
Démarrer
Arrêter
Conduire
Vendre
Exemple :
• Exemple en Merise
• Mère Enfant
Numéro_mere 1, n 1, 1 Numéro_enfant
Élever Nom_enfant
Nom_mére
Prénom_mére Prénom_enfant
Enfant
Mère
1 1..* +Numéro_enfant
+Numéro_mére +Nom_enfant
+Nom_mére +Prénom_enfant
+Prénom_mere
N.B : une association exprime une connexion sémantique entre deux classes.
• Association classique :
•
Personne Entreprise
Travaillé
• Association porteuse :
L’association est porteuse de propriété :
Exemple :
Client Article
1, n : 0, n
N° client Commander N° article
Nom Libelle
Prénom
Client Prix d’achat
Article
Adresse Prix de vente
N° client 0.. * 1.. * N° article
Nom Libelle
Prénom Prix d’achat
Adresse Prix de vente
Commander
Quantité
• Le nom de l’objet
• La liste des attributs valorisés
Section1 : Notation
nomObjet : nomClasse
nomAttribut1= valeur1
…
nomAttributN= valeurN
Nom de l’objet :
• Le nom de l’objet peut être présenté selon trois formats plus ou moins
précis
• Il peut contenir :
-un nom optionnel identifiant l’objet de manière unique
-le nom optionnel de la classe à laquelle appartient l’objet
Notation
Les diagrammes d'objets s'utilisent pour montrer l'état des instances d'objet avant et
après une interaction, autrement dit c'est une photographie à un instant précis des
attributs et objet existant. Il est utilisé en phase exploratoire.
Pour les cas plus complexes, on peut intégrer des algorithmes dans les diagrammes de
séquences. Par le biais de cadres d'interaction, on peut préciser les opérantes d'un
ensemble de messages :
1 : opération ()
01 : classe 0 classe 2 : classe 2
2 : opération 2 () 4 : opération 3 ()
3 : opération ()
02 : classe 03 : classe
condition Activite2
Activite1
Section 2 : La synchronisation
Les flots de contrôle parallèles sont séparés ou réunis par des barres de synchronisation.
Les activités 2 et 3 seront simultanées.
Exercice :
Recette simplifiée : commencer par casser le chocolat en morceaux, puis le faire fondre.
En parallèle, casser les œufs en séparant les blancs des jaunes.
Quand le chocolat est fondu, ajouter les jaunes d’œuf.
Battre les blancs en neige jusqu’à ce qu’ils soient bien fermes.
Les incorporer délicatement à la préparation chocolat sans les briser.
Verser dans des ramequins individuels. Mettre au frais au moins 3 heures au réfrigérateur
avant de servir.
Comment le construire ?
1. Représentez tout d’abord la séquence d’états qui décrit le comportement nominal d’un
objet, avec les transitions qui y sont associées.
2. Ajoutez progressivement les transitions qui correspondent aux comportements
alternatifs ou d’erreur.
Comment le représenter ?
Un diagramme d’états est un graphe orienté d’états et de transitions.
ÉTAT Un état représente une situation durant la vie d’un objet pendant laquelle :
• il satisfait une certaine condition ;
• il exécute une certaine activité ;
• ou bien il attend un certain événement. Un objet passe par une succession d’états durant
son existence. Un état a une durée finie, variable selon la vie de l’objet, en particulier en
fonction des événements qui lui arrivent.
Exercice
ÉTUDE D’UN PUBLIPHONE À PIÈCES Cette étude de cas concerne un système simplifié
de Publiphone à pièces.
1. Le prix minimal d’une communication interurbaine est de 0,2 euros.
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 l’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. À partir de ces six phrases, nous
allons progressivement : 1. Identifier les acteurs et les cas d’utilisation.
CONSEILS MÉTHODOLOGIQUES
NOTION D’ÉTAT ET DIAGRAMME DE CLASSES
La notion d’état ne doit pas apparaître directement en tant qu’attribut sur les diagrammes
de classes : elle sera modélisée dans le point de vue dynamique au moyen du diagramme
d’états. Dans le diagramme de classes UML, les seuls concepts dynamiques disponibles
sont les opérations.
COMMENT POSITIONNER LES OPÉRATIONS ?
En orienté objet, on considère que l’objet sur lequel on pourra réaliser un traitement doit
l’avoir déclaré en tant qu’opération. Les autres objets qui posséderont une référence sur
cet objet pourront alors lui envoyer un message invoquant l’opération.
OBJET OU ATTRIBUT ?
Un objet est un élément plus « important » qu’un attribut. Un bon critère à appliquer
peut s’énoncer de la façon suivante : si l’on ne peut demander à un élément que sa
valeur, il s’agit d’un simple attribut ; si l’on peut lui poser plusieurs questions, il s’agit
plutôt d’un objet qui possède à son tour plusieurs attributs, ainsi que des liens avec
d’autres objets.
À QUOI SERT LE DIAGRAMME D’OBJETS ?
AGRÉGATION OU COMPOSITION ?
Pour qu’une agrégation soit une composition, il faut vérifier les deux critères suivants :
• La multiplicité ne doit pas être supérieure à un du côté du composite.
• Le cycle de vie des parties doit dépendre de celui du composite (en particulier pour la
destruction).
Section 1 : Introduction
En UML, un diagramme de déploiement est une vue statique qui sert à représenter
l'utilisation de l'infrastructure physique par le système et la manière dont
les composants du système sont répartis ainsi que leurs relations entre eux. Les
éléments utilisés par un diagramme de déploiement sont principalement
les nœuds, les composants, les associations et les artefacts. Les caractéristiques
des ressources matérielles physiques et des supports de communication peuvent être
précisées par stéréotype.
Les nœuds (nodes), représentés par des cubes, sont des composants mécaniques de
l'infrastructure tel un routeur, un ordinateur, un assistant personnel... Ceux-ci peuvent
comprendre d'autres nœuds ou artefacts. Les nœuds internes indiquent
l'environnement d'exécution plutôt que l'infrastructure physique.
Les composants, représentés par des boites rectangulaires avec deux rectangles sortant
du côté gauche, sont les différentes parties du système étudié.
Les connexions sont principalement de deux types : associations ou dépendances.
Les associations, représentées par de simples lignes sont des liens de communication,
s'établissent entre les différents composants du système.
Les dépendances, représentées par des flèches vides, sont régies par les règles standard
de l'UML 2.0.
Dans ce contexte, un artefact est une manière de définir un fichier, un programme, une
bibliothèque ou une base de données construite ou modifiée dans un projet.
Ces artefacts mettent en œuvre des collections de composants qui sont consommées ou
créées durant l'une des étapes du processus de déploiement.
BIBLIOGRAPHIE
TRAVAUX PRATIQUES
1. Distribution d’argent à tout Porteur de carte de crédit, 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
porteurs d’une carte de crédit de la banque adossée au GAB.
Partie I
• identifier les acteurs et le diagramme de contexte statique ;
• 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.
Partie II
En utilisant un outil UML représenté :
Le diagramme de séquence système qui décrive le scénario nominal du cas d’utilisation
essentiel RETIRER DE L’ARGENT, en ne considérant que le paiement cash.
Partie I
Identifier les acteurs
Le diagramme de contexte statique ;
Le diagramme de contexte dynamique ;
Identifier les cas d’utilisation ;
Élaborez un diagramme de cas d’utilisation détaillé de la caisse enregistreuse. N’hésitez
pas à utiliser les relations entre cas d’utilisation pour rendre votre diagramme plus précis.
Écrivez une description détaillée essentielle du cas d'utilisation principal :
TRAITER LE PASSAGE EN CAISSE.
Réalisez un diagramme de séquence système qui décrive le scénario nominal
du cas d’utilisation essentiel TRAITER LE PASSAGE EN CAISSE, en ne considérant
que le paiement cash
Réalisez le diagramme d’activité système qui décrive le scénario nominal du cas
d’utilisation essentiel TRAITER LE PASSAGE EN CAISSE, en ne considérant que le
paiement cash
Réalisez le diagramme de classe.
Partie II
Exercice complémentaire