Modélisation UML
Prof. Asmaa El Hannani
2017/2018
Informations pratiques
1
Informations pratiques
Cours: Salle (B8), site ENSAJ
Prof. A. El Hannani
[email protected]
TP: Salle (B8), site ENSAJ
Mme FZ Salmam
Matériel du cours et exercices sous:
http://moodle.ensaj.ucd.ac.ma
Prof. Asmaa El Hannani 2ITE-S2 3
Organisation
~1H50 de cours
Transparents
Publication des supports sur le site (username et password
communiqués en classe)
~1H50 TP par groupe
Réponse aux questions, explication du TP courant, travail sur PC
Prof. Asmaa El Hannani 2ITE-S2 4
2
Objectifs du cours
E1: Modélisation UML
Apprendre les formalismes et méthodes utilisés en modélisation
d'entreprise
Maitriser la modélisation UML
E2: Génie logiciel
Connaitre les principales techniques et méthodes permettant de
mettre en oeuvre des logiciels dont le principe de base est qu’ils
fonctionnent correctement conformément aux besoins de ses
utilisateurs.
Analyser les différentes méthodes et les outils qui améliorent la
qualité et diminuent le coût de développement et de gestion de
systèmes logiciels.
Prof. Asmaa El Hannani 2ITE-S2 5
Evaluation
Un contrôle pratique: devoir à rendre (mini-projet) (40% de
la note finale de l’élément de module)
Un examen écrit (60% de la note finale de l’élément de
module)
Prof. Asmaa El Hannani 2ITE-S2 6
3
Références
Références bibliographiques:
UML 2 Pratique de la modélisation, Benoît Charroux, Aomar
Osmani, Yann Thierry-Mieg – Pearson
UML 2 par la pratique (étude de cas et exercices corrigés),
Pascal Roques – Eyrolles.
UML 2 – de l'apprentissage à la pratique (cours et exercices),
Laurent Audibert – Ellipses.
Références webographiques:
http://www.uml.org
http://uml.free.fr
http://laurent-audibert.developpez.com/Cours-UML/html/
Prof. Asmaa El Hannani 2ITE-S2 7
Introduction
4
Pourquoi modéliser ?
Un modèle est une simplification de la réalité qui permet de
mieux comprendre le système à développer.
Il permet de:
Simplifier la problématique posée par le client.
Visualiser le système comme il est ou comme il devrait l'être.
Valider le modèle vis à vis des clients.
Spécifier les structures de données et le comportement du
système.
Fournir un guide pour la construction du système.
Documenter le système et les décisions prises.
Prof. Asmaa El Hannani 2ITE-S2 9
Démarche du développement de logiciels
Une bonne démarche permet de :
Bien comprendre les demandes et exigences des utilisateurs
finaux
Bien communiquer avec le client
Tenir compte des changements du cahier des charges
Empêcher la découverte tardive de défauts sérieux dans le projet
Traiter au plus tôt tous les points critiques du projet
Bien maîtriser la complexité
Favoriser la réutilisation
Définir une architecture robuste
Faciliter le travail en équipe
Prof. Asmaa El Hannani 2ITE-S2 10
5
Activités du développement de logiciels
Valider le
logiciel
Assembler les
composants
Développer un
des composants
Définir comment
il sera développé
Définir ce qui
sera développé
L’organisation de ces activités et leur enchaînement définit le
cycle de développement du logiciel
Prof. Asmaa El Hannani 2ITE-S2 11
Problèmes avec le processus classique
Ce que le client a Ce que le chef de projet Ce que l’analyste
souhaité a compris a spécifié
Ce que le programmeur a Ce qui a été facturé au Ce que le client n’a pas
écrit client su exprimer
Prof. Asmaa El Hannani 2ITE-S2 12
6
Le cycle de vie d’un logiciel
Le cycle de vie d’un logiciel (en anglais software lifecycle),
désigne toutes les étapes du développement d’un logiciel, de sa
conception à sa disparition.
L’objectif d’un tel découpage est de permettre d’assurer la
conformité du logiciel avec les besoins exprimés, et
l’adéquation des méthodes mises en œuvre.
Il existe plusieurs types de cycle de vie, cependant dans tous
les cycles de vie les phases sont liées entre elles pour former
une séquence d'activités.
Prof. Asmaa El Hannani 2ITE-S2 13
Le cycle de vie d’un logiciel
Les étapes du cycle de vie d'une application :
Expression des besoins : Il traduit l'apport du futur système,
Spécifications: Précision avec des descriptifs, schémas, modèles
et enchainements d'écrans,
Analyse : Détermination des éléments du système,
Conception : Comprend tous les choix techniques,
Implémentation : Génération des squelettes d'une application,
Tests de vérification : Tests unitaires et finals,
Validation : Utilisation d'un cahier de recettes,
Maintenance et évolution : Suivi du logiciel en production.
Prof. Asmaa El Hannani 2ITE-S2 14
7
Modèle de cycle de vie en cascade
Expression des
Spécification Analyse
besoins
Tests de
Implémentation Conception
vérification
Inconvénients :
Pas de travail en parallèle
Validation
Anomalies détectées tardivement
Prof. Asmaa El Hannani 2ITE-S2 15
Modèle de cycle de vie en V
Expression des Validation des
besoins besoins
Spécification Validation
fonctionnelles fonctionnelle
Conception du
Tests du système
système
Inconvénients :
Implémentation
Mise en œuvre tardive
Manque de souplesse
Prof. Asmaa El Hannani 2ITE-S2 16
8
Modèle de cycle de vie en spirale
Analyse détaillée
Spécification
Conception P1 P2 P3
V1 V2
Réalisation
Validation
Tests
Construction d'une série de prototypes !
Prof. Asmaa El Hannani 2ITE-S2 17
Modèle de cycle de vie itératif
Une version simplifier et plus souple que le
modèle en spirale !
Prof. Asmaa El Hannani 2ITE-S2 18
9
Méthodes agiles
La majorité des méthodes agiles se basent sur un modèle itératif (RAD,
RUP (IBM), Scrum, … )
Les méthodes agiles partent du principe que Spécifier et planifier dans les
détails l'intégralité d'un produit avant de le développer (approche prédictive)
est contre productif !!
Valeurs fondamentales:
Mettre le client et son besoin au centre du projet ( rencontres fréquentes)
Livrer le plus souvent possible des versions opérationnelles de
l’application
Accueillir les demandes de changement « à bras ouverts »
Favoriser la programmation en binôme (Pair programming),
l'appropriation collective du code
Faire simple
Ajuster à intervalles réguliers son comportement et ses processus pour
être plus efficace
Prof. Asmaa El Hannani 2ITE-S2 19
Modèle…c’est quoi ?
Un modèle est une simplification de la réalité qui permet de
mieux comprendre le système à développer.
Il permet de:
Simplifier la problématique posée par le client.
Visualiser le système comme il est ou comme il devrait l'être.
Valider le modèle vis à vis des clients.
Spécifier les structures de données et le comportement du
système.
Fournir un guide pour la construction du système.
Documenter le système et les décisions prises.
Prof. Asmaa El Hannani 2ITE-S2 20
10
Modélisation UML
Modélisation UML
À la fin des années 80, l’industrie commence à utiliser
massivement les langages de programmation orientés objet.
Les systèmes deviennent de plus en plus complexes et
dépassent la compréhension et la maîtrise par un seul
individu.
Le recours à un modèle conceptuel s’avère indispensable.
UML (Unified Modeling Language) est devenu alors le
standard industriel de modélisation orientée objet.
Prof. Asmaa El Hannani 2ITE-S2 22
11
UML dans le cycle de vie d’un logiciel
Expression des besoins
U
Spécifications du système
M Analyse
L Conception
Implémentation
Tests
Validation
Maintenance
Prof. Asmaa El Hannani 2ITE-S2 23
Méthodes de conception
Années 70 Les approches cartésiennes
Orientée traitements.
Années 80 Les approches systémiques
Orientée données.
Années 90 Les approches objet
Orientée données et traitements.
UML
Prof. Asmaa El Hannani 2ITE-S2 24
12
Historique
Début des années 1990
Plusieurs équipes proposent alors des méthodes qui, pour la
plupart, modélisent les mêmes concepts fondamentaux dans
différents langages, avec une terminologie, des notations et des
définitions différentes:
méthode OOD de Grady Booch (1991)
méthode OMT de James Rumbaugh (1991)
méthode OOSE de Ivar Jacobson (1991)
méthode OOA/OOD de Coad and Yourdon (1992)
méthode de Schlaer and Mellor (1992)
Etc.
Les différents protagonistes conviennent rapidement du besoin
d’unifier ces langages en un standard unique;
D’où la naissance de UML (Unified Modeling Language).
Prof. Asmaa El Hannani 2ITE-S2 25
Historique
Prof. Asmaa El Hannani 2ITE-S2 26
13
Historique
Les versions se succèdent :
Début 1998
UML 1.2
En 1998
UML 1.3
En 2001
UML1.4
En 2003
UML 1.5
En 2005
UML 2.0
En 2008
UML 2.2
En 2011
UML 2.4
La dernière version diffusée par l'OMG est UML 2.5 depuis juin 2015
Prof. Asmaa El Hannani 2ITE-S2 27
UML
UML (Unified Modeling Language ou langage de modélisation
unifié ) est un langage de modélisation graphique et textuel,
standardisé par l'O.M.G Object Management Group et destiné à:
Comprendre et décrire les besoins;
de manière précise et complète, sans ambiguïté
Exprimer visuellement les systèmes;
chaque symbole graphique a une sémantique
Spécifier et documenter les systèmes;
les différents diagrammes, notes, contraintes, exigences seront
présentés dans un document.
Concevoir des Solutions
les classes, les relations SQL peuvent être générées automatiquement
Prof. Asmaa El Hannani 2ITE-S2 28
14
Eléments représentables en UML
Les différents éléments représentables dans UML sont :
Activité d'un objet/logiciel
Acteurs
Processus
Schéma de base de données
Composants logiciels
Réutilisation de composants
Prof. Asmaa El Hannani 2ITE-S2 29
Domaines d’utilisation d’UML
Systèmes à forte composante logicielle
Les systèmes d’information pour les entreprises
Les services bancaires et financiers
Les télécommunications
Les transports
La défense / l’aérospatiale
L’électronique médicale
Les services distribués et les applications WEB
Pas limité à un domaine précis !
Prof. Asmaa El Hannani 2ITE-S2 30
15
Le formalisme d'UML
UML se décompose en plusieurs sous-ensembles
Les vues : Les vues sont les observables du système. Elles
décrivent le système d'un point de vue donné, qui peut être
organisationnel, dynamique, temporel, architectural,
géographique, logique, etc. En combinant toutes ces vues, il est
possible de définir (ou retrouver) le système complet.
Les diagrammes : Les diagrammes sont des éléments
graphiques. Ceux-ci décrivent le contenu des vues, qui sont des
notions abstraites. Les diagrammes peuvent faire partie de
plusieurs vues.
Les modèles d'élément : Les modèles d'élément sont les briques
des diagrammes UML, ces modèles sont utilisés dans plusieurs
types de diagramme.
Prof. Asmaa El Hannani 2ITE-S2 31
Diagrammes UML
UML permet de construire plusieurs modèles d’un système
selon les vues:
certains montrent le système du point de vue des utilisateurs,
d’autres montrent sa structure interne,
d’autres encore en donnent une vision globale ou détaillée des
fonctionnalités du système.
Les modèles se complètent et peuvent être assemblés.
Ils sont élaborés tout au long du cycle de vie du
développement d’un système (depuis le recueil des besoins
jusqu’à la phase de conception)
Prof. Asmaa El Hannani 2ITE-S2 33
16
Diagrammes UML
UML 2.5 propose 14 types de diagrammes (9 en UML 1.3).
UML n'étant pas une méthode, leur utilisation est laissée à
l'appréciation de chacun, même si le diagramme de classes
est généralement considéré comme l'élément central d'UML.
Les 14 diagrammes UML sont dépendants hiérarchiquement et
se complètent, de façon à permettre la modélisation d'un projet
tout au long de son cycle de vie.
Prof. Asmaa El Hannani 2ITE-S2 34
Axes de modélisation des diagrammes
UML modélise le système selon trois modes de
représentations:
Fonctionnel: décrit les services fonctionnels rendus par le
système;
Statique: décrit la structure statique du système;
Dynamique: concerne le dynamique fonctionnel du système.
Les trois représentations sont nécessaires et complémentaires
pour schématiser la façons dont le système est composé et le
fonctionnement de ses composants.
Prof. Asmaa El Hannani 2ITE-S2 35
17
Axes de modélisation des diagrammes
Statique ou structurels
Diagramme de Classes
Diagramme d’Objets
Diagramme de Composants
Diagramme de Déploiement
Diagramme des paquetages
Diagramme de structure composite
Diagramme de profile
Fonctionnel ou comportementaux Dynamique ou d’interaction
Diagramme des cas d’utilisation Diagramme de Séquence
Diagramme d‘états-transitions Diagramme de communication
Diagramme d‘activité Diagramme global d'interaction
Diagramme de temps
Prof. Asmaa El Hannani 2ITE-S2 36
Hiérarchie des diagrammes
Prof. Asmaa El Hannani 2ITE-S2 37
18
Rappel: Quatre distinctions capitales
Développement = Conception + Réalisation
La conception: consiste à comprendre et prévoir ce qu’il a à faire.
La réalisation (implémentation): consiste à faire concrètement ce
qu’il y a à faire.
Conception = Analyse fonctionnelle + Analyse organique
L’analyse fonctionnelle s’occupe des fonctions (ou des services)
que le système offre à ses utilisateurs. Ce sont les « cas
d’utilisation » (vocabulaire UML). On parle ici du QUOI.
L’analyse organique s’occupe de la façon dont sera construit le
système pour répondre aux attentes de l’analyse fonctionnelle.
On parle ici du COMMENT.
Prof. Asmaa El Hannani 2ITE-S2 38
Rappel: Quatre distinctions capitales
Analyse organique = Architecture système + Analyse détaillée
L’architecture système (s’occupe de l’organisation des sous-systèmes
logiciels et matériels du système complet. C’est aussi à ce niveau qu’on
situera l’architecture des données.
L’analyse détaillée s’occupe du découpage en procédure et en fonctions
informatiques de chacun des sous-systèmes logiciels. A ce niveau vont
apparaître les en-têtes des fonctions, voir leurs pseudo-code.
Données et Traitements
Les données sont analysées pour elle-même, indépendamment des
traitements qu’on leur appliquera (structures, stockage, …).
Les traitements sont les processus qui permettent la saisie, la validation
ou la mise-à-jour des données ou la production du savoir à partir des
données. (les méthodes des objets)
Prof. Asmaa El Hannani 2ITE-S2 39
19
Les diagrammes UML dans ce cours
Dans ce cours nous allons couvrir les diagrammes UML qui
correspondent chacun à une étape de la conception:
1. Analyse fonctionnelle: avec des diagramme des cas
d’utilisation, de séquence et d’activités.
2. Analyse des données : avec un diagramme des classes.
3. Analyse organique détaillée: avec des diagramme de
séquence, d’objets, et d’états transition.
4. Architecture : avec des diagramme de composants et de
déploiement (optionnel).
Prof. Asmaa El Hannani 2ITE-S2 40
Les éléments de modélisation
20
Les éléments de modélisation
Briques pour capturer la sémantique des applications
Utilisés dans plusieurs types de diagramme.
Représentation interne (outils)
Représentation externe (échange entre outils)
Prof. Asmaa El Hannani 2ITE-S2 42
Les éléments de modélisation
Les objets etudiant : Personne
la description d’une entité du monde réel ou virtuel
Les classes Personne
la description d’un ensemble d’objets
Les états
Attente
une étape de la vie d’un objet
Les acteurs
utilisateurs finaux du système administrateur
Prof. Asmaa El Hannani 2ITE-S2 43
21
Les éléments de modélisation
Les cas d’utilisation
Une manière dont un acteur utilise le système
Les collaborations
La réalisation d’un cas d’utilisation par une société d’objets
collaborants
Les micro-architectures (patterns)
Un générateur pour la structure et l’interaction d’une société
d’objets
Prof. Asmaa El Hannani 2ITE-S2 44
Les éléments de modélisation
Les composants
Un module contenant des entités d’implémentation
Les noeuds
Un dispositif matériel capable d’exécuter du logiciel
Les paquetages
Une partition du modèle
Les notes
Un commentaire, une explication ou une annotation
Prof. Asmaa El Hannani 2ITE-S2 45
22
Relations
L’association
Une connexion sémantique entre instances
La généralisation
Une relation de classification
La dépendance
L’utilisation d’un élément par un autre
La trace
Dépendance inter-modèles
Prof. Asmaa El Hannani 2ITE-S2 46
Mécanismes communs
Les stéréotypes <<stéréotype>>
Annotation s’appliquant sur un élément de modèle
Les étiquettes
Paire (nom, valeur)
Les notes
Commentaire textuel
Les contraintes {contrainte}
Relation sémantique entre éléments
Prof. Asmaa El Hannani 2ITE-S2 47
23
Outils UML
Il y a plusieurs outils pour la modélisation UML. Ils peuvent
être regroupés en trois catégories:
Les outils de dessin des diagrammes (comme Visio et OmniGraffle) ne
sont pas vraiment le meilleur choix car mettent plus le focus sur
l’apparence visuel.
Les éditeurs des diagramme UML (comme Violet UML and UMLet)
supportent explicitement l’édition des différents éléments des
diagramme UML et respectent la sémantique des diagrammes.
Les outils CASE (Computer Aided Software Engineering) (comme
Papyrus, Rational Rose, ArgoUML, …) permet l’utilisation d’UML
pour la construction de modèles détaillés et puissants. Ils incluent
typiquement : la génération de code (génération de squelettes dans
différents langages cibles à partir des models UML) et le reverse
engineering (lire le code existant et générer ou mettre à jour les
diagrammes existant).
Prof. Asmaa El Hannani 2ITE-S2 48
Axes de modélisation des diagrammes
Statique ou structurels
Diagramme de Classes
Diagramme d’Objets
Diagramme de Composants
Diagramme de Déploiement
Diagramme des paquetages
Diagramme de structure composite
Fonctionnel ou comportementaux Dynamique ou d’interaction
Diagramme des cas d’utilisation Diagramme de Séquence
Diagramme d‘états-transitions Diagramme de communication
Diagramme d‘activité Diagramme global d'interaction
Diagramme de temps
Prof. Asmaa El Hannani 2ITE-S2 49
24