LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
UML Part1-Introduction Mansouri
1. Université Hassan II de Casablanca
ENSET de Mohammedia
Département Mathématiques et Informatique
COURS
INGENIERIE SYSTEMES
1ère Partie :
Introduction
Professeur :
M. Khalifa MANSOURI
2. 09/10/2017
2
Ingénierie Systèmes : Introduction
Plan du cours
1. Rappels
2. Notion de modèle
3. Méthodes et techniques
4. UML et le processus de développement
5. Conception Orientée objets
4. RAPPELS
Qualité d’un Logiciel
• La qualité d’un logiciel se mesure par rapport à
plusieurs critères :
– Répondre aux spécifications fonctionnelles :
• Une application est créée pour répondre, tout d’abord, aux besoins
fonctionnels des entreprises.
– Les performances:
• La rapidité d’exécution et Le temps de réponse
• Doit être bâtie sur une architecture robuste.
• Eviter le problème de montée en charge
– La maintenance:
• Une application doit évoluer dans le temps.
• Doit être fermée à la modification et ouverte à l’extension
• Une application qui n’évolue pas meurt.
• Une application mal conçue est difficile à maintenir, par suite elle
finit un jour à la poubelle.
5. Qualité d’un Logiciel
• La qualité d’un logiciel se mesure par rapport à
plusieurs critères : (Suite)
– Sécurité
• Garantir l’intégrité et la sécurité des données
– Portabilité
• Doit être capable de s’exécuter dans différentes plateformes.
– Capacité de communiquer avec d’autres applications distantes.
– Disponibilité et tolérance aux pannes
– Capacité de fournir le service à différents type de clients :
• Client lourd : Interfaces graphiques
• Interface Web : protocole Http
• Téléphone : SMS
• ….
– Design de ses interfaces graphiques
• Charte graphique et charte de navigation
• Accès via différentes interfaces (Web, Téléphone, … etc.)
– Coût du logiciel
6. Génie Logiciel
• Pour apporter une réponse à tous ces problèmes, le
génie logiciel s’intéresse particulièrement à la
manière dont le code source d’un logiciel est
spécifié puis produit. Ainsi, le génie logiciel touche
au cycle de vie des logiciels :
– l’analyse du besoin,
– l’élaboration des spécifications,
– la conception,
– le développement,
– la phase de test,
– la maintenance.
7. 09/10/2017
7
Génie logiciel: Méthode de qualité (Méthode de Mc Call)
Génie Logiciel
Les caractéristiques opérationnelles
(product operation)
Point de vue utilisateur
La capacité d’évolution
(product revision)
Point de vue développeur
L’adaptabilité
(product transition)
Point de vue communication
conformité aux besoins
Fiabilité
Efficacité
Intégrité
Utilisabilité
Maintenabilité
Souplesse
testabilité
Portabilité
Réutilisabilité
interopérabilité
Les facteurs de qualité:
8. Génie Logiciel
09/10/2017 8
Les phases (plus courantes) de développement logiciel
Spécification
des besoins
Conception
Implémentation
Tests
10. 09/10/2017
10
• Les systèmes deviennent de plus en plus complexes et dépassent la
maîtrise et la compréhension par un seul individu. Le recours au génie logiciel
s’avère très important.
• Le génie logiciel est une méthodologie qui s’efforce à couvrir toutes les
étapes du processus de développement d’un logiciel, y compris les étapes de
modélisation.
• À la fin de chaque étape de modélisation, des modèles sont fournis.
Notion du modèle
11. Notion du modèle
09/10/2017
11
• Modèle: représentation abstraite et simplifiée d’une entité
(phénomène, processus, système, etc.) du monde réel.
• Un modèle facilite la compréhension du domaine. Et par
conséquent facilite la communication entre les intervenants.
12. Notion du modèle
09/10/2017
12
• Le modèle est présenté sous forme de schéma ou diagramme
dans lequel on trouve des éléments graphiques et du texte
• Les éléments graphiques sont des symboles dont la
signification est définie par le formalisme utilisé
• Le texte précise la portée des symboles et complète
l’information.
13. Notion du modèle
09/10/2017
13
• Dans plusieurs domaines, on utilise le modèle comme langage
visuel pour représenter de manière abstraite une entité.
• Le modèle peut remplacer une longue description textuelle
par un schéma ou diagramme plus facile et plus rapide à
interpréter.
15. Plan d’implantation de la construction
dans son environnement
Plan détaillés des différents locaux
Plan de câblagePlan de d’assainissement
Notion du modèle
16. Modèle Conceptuel de Données
Notion du modèle
NumMatr
Nom
Nom
Localité
Téléphone
POLICLINIQUE
.
.
MEDCINS
.
SPECIALITE
Valeur .Travaille
Possède
0-N 0-N
0-N 0-N
• Exemples en BDD
17. Modèle Logique de Données
Notion du modèle
TRAVAIL
Nom NumMatLocalité
POSSESSION
NumMatr Valeur
MEDECIN S
NumMatr Nom
POLICLINIQUE
Nom TéléphoneLocalité
SPECIALITE
Valeur
• Exemples en BDD
21. 09/10/2017
21
• La modélisation n’est pas une spécialité en soi mais plutôt une aptitude ou
compétence additionnelle que peut acquérir:
• un ingénieur
• un gestionnaire
• un analyste
• ou un technicien
• Selon son champ d’intervention, le modélisateur crée, documente et
communique son modèle.
Qui doit modéliser?
Notion du modèle
22. 09/10/2017
22
• La modélisation est souvent faite par la maitrise d’œuvre
informatique (MOE)
• La maitrise d’ouvrage (MOA) dispose de toutes les
informations et procédures du métier
• Une forte nécessité de coordination entre le MOE et le MOA
pour bien réussir le projet.
• La relation entre le MOE et le MOA est un contrat qui fixe leurs
engagements mutuels
Qui doit modéliser?
Notion du modèle
23. 09/10/2017
23
Modéliser un système avant sa réalisation permet de:
• Mieux comprendre le fonctionnement du système
• Maitriser sa complexité et assurer sa cohérence
• Faciliter la communication entre les intervenants
• Mieux répartir les tâches entre les intervenants
• Assurer une qualité élevée et offrir une meilleure
maintenabilité
• Réduire les coûts et les délais
La création d’un modèle est
indispensable
Pourquoi modéliser?
Notion du modèle
24. 09/10/2017
24
• La création du modèle se fait selon une méthode.
• Depuis les années 80, plusieurs recherches sur la méthodologie
de développement des logiciels
• Emergence de plusieurs méthodes (plus de 50 en début des
années 90)
Comment modéliser?
Notion du modèle
26. Méthodes et techniques
09/10/2017
26
• Technique de modélisation objet (Object Modeling Technique)
• Permet de développer des systèmes orientés objet
• Contient trois diagrammes principaux :
• diagramme d’objet: contient des classes, des attributs et des méthodes
• Diagramme dynamique: représente une vue de transition d'état sur le
modèle. Les principaux concepts sont des états, transitions entre états, et
des événements pour déclencher des transitions.
• Diagramme fonctionnel: Le modèle fonctionnel gère la perspective de
processus du modèle, ce qui correspond à peu près à des diagrammes de
flux de données.
OMT (1991) de James RUMBAUGH
27. 09/10/2017
27
• Ingénierie logicielle orientée objet (Object-oriented software
engineering), c’est un langage et une méthodologie de
modélisation objet
OOSE (1992) de Ivar JACOBSON
Méthodes et techniques
28. 09/10/2017
28
• Méthodologie et langage de modélisation orienté objet
largement utilisé dans l’analyse et la conception orientée objet
• Les aspects méthodologiques de la méthode Booch ont été incorporés dans
plusieurs méthodologies et processus
OOD (1993) de Grady BOOCH
Méthodes et techniques
29. 09/10/2017
29
• La création du modèle se fait selon un formalisme.
• Le formalisme, dans le contexte de modélisation, sert à définir
les symboles, les règles, les conventions, la structure, etc.
• Un formalisme peut se qualifier comme langage de notation
visuel et structuré.
Concept de formalisme
Méthodes et techniques
Il s’agit d’un langage de modélisation
30. 09/10/2017
30
• Chaque méthode est spécialisée et adaptée à une démarche particulière,
voire un secteur d’activité particulier
• Développement indépendant: incompatibilité, redondance, notation ou
terminologie différente
• Chaque méthode dispose de ses propres moyens de représentation
(graphique, diagramme, plan, organigramme)
Recherche d’un langage unique
• Utilisable dans toute méthode Objet
• Utilisable dans toutes les étapes du cycle de vie d’un logiciel
• Compatible avec les principaux méthodes orientées objet
Méthodes et techniques
Langage de modélisation
31. 09/10/2017
31
• En octobre 1994, Grady BOOCH et James (OOD) et RUMBAUGH (OMT) se sont
réunis au sein de la société Rational: méthode commune qui intègre les
principaux avantages des différentes méthodes connues.
• Lors de OOPSLA’95 (Object Oriented Programming Systems, Languages and
Applications, la grande conférence de la programmation orientée objets),
UNIFIED METHOD V0.8 a été présentée.
• En 1996, Ivar Jacobson (OOSE) a rejoigné l’équipe
• Conférence OOPSLA’96: Naissance UML (Unified Modeling Langage)
Unification des techniques
UML : langage de modélisation
Méthodes et techniques
35. UML et le processus de développement
09/10/2017
35
• UML est un langage de modélisation et non une méthode.
• UML c’est langage graphique qui permet de représenter et de
communiquer les différents aspects d’un système d’information.
• UML couvre toutes les étapes du développement d’un système
d’information.
36. Objectifs d’UML
09/10/2017
36
• UML est l'Unified Modeling Language standardisé par
l'OMG (Object Management Group :
http://www.omg.org), est un formalisme graphique
issu de notations employées dans différentes
méthodes objets.
• UML permet de décrire et concevoir des systèmes
logiciels.
• UML sert à :
– Décomposer le processus de développement,
– Mettre en relation les experts métiers et les analystes,
– Coordonner les équipes d'analyse et de conception,
– Migrer facilement vers une architecture
– Indépendant des langages de programmation
37. Qu’est ce que UML
09/10/2017
37
UML(Unified Modeling Language) un langage
de modélisation unifié
Langage = syntaxe + sémantique :
syntaxe : notations graphiques consistant
essentiellement en des représentations
conceptuelles d'un système
sémantique : sens précis pour chaque notation
38. Qu’est ce que UML
09/10/2017
38
UML est caractérisé par :
un travail d'expert
utilise l’approche orientée objet
normalisé, riche
Formel : sa notation limite les ambiguïté et les
incompréhensions
langage ouvert
Indépendant du langage de programmation
Domaine d'application : permet de modéliser n'importe
quel système
Supporté par plusieurs outils (AGL) : Objecteering, Open
tools, Rational Rose, PowerAMC, WinDesign, …
39. 39
Diagramme
dynamique
Diagramme
Statique
Diagramme de
séquence
Diagramme de
Communication
Diagramme
Etats Transitions
Diagramme
d’activité
Diagramme
d’objets
Diagramme
de classes
Diagramme
de structure
composite
Diagramme
de composants
Diagramme
de profil
Comportemental
Structurel
Diagramme
de package
Diagramme
de déploiement
Diagramme de
Cas d’utilisation
Diagramme
d’interaction
vue d’ensemble
Diagramme
d’interaction
Diagramme de
temps
Diagrammes d’UML
Les diagrammes
40. 09/10/2017
40
Classes, Objets
Collaboration, Séquences
Vision Logique
Utilisateurs finaux
Fonctionnalités
Composants
Vision Implémentation
Développeurs
Gestion du logiciel
Déploiement
Vision Déploiement
Ingénieurs système
Architecture du système
Installation
Communication
Etats-Transition-Activité
Vision Prcessus
Ingénieurs système
Performance
Changements d’échelles???
Cas d’utilisation
Vision Cas
d’utilisation
Les vues
Diagrammes d’UML
42. 09/10/2017
42
Diagrammes d’UML
• Découverte des besoins :
– Diagramme de cas d’utilisation : décrit les fonctions du système selon
le point de vue ses futurs utilisateurs (Jacobson)
– Diagramme de séquence : représentation des interactions temporelles
entre objets dans la réalisation d’une interface Homme Système
• Analyse :
– Diagramme de classes : structure des données du système définies
comme un ensemble de relations entre classes
– Diagramme d’objets : illustration des objets et de leurs relations
– Diagramme de collaboration : représentation des interactions entre
objets
– Diagramme d’états-transitions : représentation du comportement des
objets d’une classe en terme d’états et de transitions d’états
– Diagramme d’activités : structure d’une opération en actions
43. 09/10/2017
43
Diagrammes d’UML
Relation entre diagrammes et étapes du processus
• Conception :
– Diagramme de séquence : représentation des
interactions temporelles entre objets dans la
réalisation d’une opération
– Diagramme de déploiement : description du
déploiement des composants sur les dispositifs
matériels
– Diagrammes de composants : architecture des
composants physiques d’une application
48. 09/10/2017
48
Méthode Orientée Objet
• La méthode orientée objet permet de concevoir une application sous la forme
d'un ensemble d'objets reliés entre eux par des relations
• Lorsque que l'on programme avec cette méthode, la première question que
l’on se pose plus souvent est :
– «qu'est-ce que je manipule ? »,
– Au lieu de « qu'est-ce que je fait ? ».
• L'une des caractéristiques de cette méthode permet de concevoir de
nouveaux objets à partir d'objets existants.
• On peut donc réutiliser les objets dans plusieurs applications.
• La réutilisation du code fut un argument déterminant pour venter les
avantages des langages à objets.
• Pour faire la programmation orientée objet il faut connaître les concepts
suivant
– Objet et classe
– Héritage
– Encapsulation (Accessibilité)
– Polymorphisme
49. 09/10/2017
49
Objet
• Un objet est une structure informatique définie par un état et un
comportement
• Objet = état + comportement + Identité
– L’état regroupe les valeurs instantanées de tous les attributs de l’objet.
– Le comportement regroupe toutes les compétences et décrit les actions et les
réactions de l’objet. Autrement dit le comportement est défini par les opérations
que l’objet peut effectuer.
• L’état d’un objet peut changer dans le temps.
• Généralement, c’est le comportement qui modifie l’état de l’objet
• Exemples:
v1:Voiture
Couleur="rouge"
Carburant=20
Puissance=120
demarrer()
accelerer()
Freiner()
État de l’objet
Comportement
:Fenetre
titre="WinWord"
largeur=400
hauteur=300
Deplacer()
agrandir()
fermer()
50. 09/10/2017
50
Identité d’un Objet
• En plus de son état, un objet possède une identité qui
caractérise son existence propre.
• Cette identité s’appelle également référence ou handle
de l’objet.
• En terme informatique de bas niveau, l’identité d’un
objet représente son adresse mémoire.
• Deux objets ne peuvent pas avoir la même identité :
c’est-à-dire que deux objet ne peuvent pas avoir le même
emplacement mémoire.
51. 09/10/2017
51
Classes
• Les objets qui ont des caractéristiques communes sont
regroupés dans une entité appelé classe.
• La classe décrit le domaine de définition d’un ensemble
d’objets.
• Chaque objet appartient à une classe
• Les généralités sont contenues dans les classe et les
particularités dans les objets.
• Les objets informatique sont construits à partir de leur
classe par un processus qui s’appelle l’instanciation.
• Tout objet est une instance d’une classe.
52. 09/10/2017
52
Caractéristique d’une Classes
• Une classe est définit par:
– Les attributs,
– Les méthodes.
• Les attributs permettent de décrire l’état des objets de cette classe.
– Chaque attribut est défini par :
• Son nom,
• Son type,
• Éventuellement sa valeur initiale.
• Les méthodes permettent de décrire le comportement des objets de cette
classe.
– Une méthode représente une procédure ou une fonction qui permet
d’exécuter un certain nombre d’instructions.
• Parmi les méthode d’une classe, il existe deux méthodes particulières :
– Une méthode qui est appelée au moment de la création d’un objet de cette
classe. Cette méthode est appelée CONSTRUCTEUR,
– Une méthode qui est appelée au moment de la destruction d’un objet. Cette
méthode s’appelle le DESTRUCTEUR.
53. 09/10/2017
53
Représentation d’une classe en UML
Nom de la classe
Attributs
Méthodes
Les compartiments d’une classe peuvent être omis si
leur contenu n’est pas pertinent dans le contexte d’un
diagramme
54. 09/10/2017
54
Attributs et opérations de la classe
• Les noms d’attributs d’une classe sont uniques.
• Une opération définit une fonction appliquée à des
objets d’une classe
Nom de la classe
Nom_Attribut : type = valeur initiale
Nom_Operation ( liste_arguments) : type
55. 09/10/2017
55
Exemples de classe
• Une personne est définie par :
– son nom, son adresse et sa date de naissance.
– Les opérations que l’on peut appliquer à un objet
Personne sont :
• age() : méthode qui retourne l’âge de la personne
• changerAdresse() : méthode qui permet de modifier
l’adresse de la personne
• Un point est défini par :
– Ses coordonnées x et y
– Les opérations l’on peut exécuter sur un objet Point
sont :
• toString() : opération qui retourne une chaîne de
caractères de type Point(x,y)
• distance(Point p) : opération qui retourne la distance
entre le point et un autre point p
• Un segment est défini par :
– Deux point p1 et p2
– Les opérations de la classe Segment sont:
• getLongueur() : opération qui retourne la longueur du
segment
• appartient(Point p) : retourne si un point p appartient
au segment ou non
Point
x : int
y : int
toString():String
distance( Point p ) : double
Personne
nom : String
adresse : String
dateNaissance:Date
age() : int
changerAdresse(String a) : void
Segment
p1 : Point
p2 : Point
getLongueur():double
appartient(Point p) : boolean
56. 09/10/2017
56
Notion de paquetage
• Les paquetages offrent un mécanisme général pour la partition des
modèles et le regroupement des éléments de la modélisation
• Chaque paquetage est représenté graphiquement par un dossier
• Les paquetages divisent et organisent les modèles de la même manière
que les dossier organisent le système de fichier
Nom
du paquetage
57. 09/10/2017
57
Notion de paquetage
• Un paquetage peut contenir d’autres paquetages et d’autres éléments
du modèle
• Les paquetages peuvent être liés par des relations de dépendance si
un élément de l’un utilise un élément de l’autre.
awt sql
Client Commande
Produit
Un paquetage qui
Contient la classe Client
Un paquetage qui
Contient les classe
Commande et Produit
Un paquetage qui Contient
deux autres paquetages
java
58. 09/10/2017
58
Encapsulation
• Les membres d’une classe peuvent être protégés en utilisant quatre
niveaux de protection :
– Public (+) : Accès à partir de toute entité interne ou externe à la classe
– Protégé (#) : Accès à partir de la classe ou des classes dérivées
– Privé (-) : accès à partir des opérations de la classe
– Autorisation par défaut : chaque langage de programmation définit une
autorisation par défaut. Dans java, l’autorisation par défaut est package.
Cela signifie que seules les classes du même package qui ont le droit
d’accéder à ce membre.
• Exemple:
Personne
- nom : String
adresse : String
# dateNaissance : Date
+ age() : int
+ changerAdresse(String a) : void
59. 09/10/2017
59
Exemple d’implémentation d’une classe avec Java
package metier;
public class Compte {
// Attributs
private int code;
protected float solde;
// Constructeur
public Compte(int c,float s){
code=c;
solde=s;
}
// Méthode pour verser un montant
public void verser(float mt){
solde+=mt;
}
// Méthode pour retirer un montant
public void retirer(float mt){
solde-=mt;
}
// Une méthode qui retourne l'état du compte
public String toString(){
return(" Code="+code+" Solde="+solde);
}
}
Compte
- code : int
# solde : float
+ Compte(int code, float solde)
+ verser(float mt):void
+ retirer(float mt):void
+ toString():String
60. 60
Création des objets dans java
• Dans java, pour créer un objet d’une classe , On utilise la commande
new suivie du constructeur de la classe.
• La commande new Crée un objet dans l’espace mémoire et retourne
l’adresse mémoire de celui-ci.
• Cette adresse mémoire devrait être affectée à une variable qui
représente l’identité de l’objet.
package test;
import metier.Compte;
public class Application {
public static void main(String[] args) {
Compte c1=new Compte(1,5000);
Compte c2=new Compte(2,6000);
c1.verser(3000);
c1.retirer(2000);
System.out.println(c1.toString());
}}
c1:Compte
Code=1
Solde=5000
verser(float mt)
retirer(float mt)
toString()
c2:Compte
code=2
solde=6000
verser(float mt)
retirer(float mt)
toString()
c1:Compte
Code=1
Solde=8000
verser(float mt)
retirer(float mt)
toString()
c1:Compte
code=1
solde=6000
verser(float mt)
retirer(float mt)
toString()
Code=1 Solde= 6000