60
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

UML Part1-Introduction Mansouri

Embed Size (px)

Citation preview

Université Hassan II de CasablancaENSET de Mohammedia

Département Mathématiques et Informatique

COURS INGENIERIE SYSTEMES

1ère Partie :

Introduction

Professeur :

M. Khalifa MANSOURI

09/10/20172

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

09/10/20173

Ingénierie Systèmes : Introduction

Rappels

RAPPELSQualité 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.

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

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.

09/10/20177

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 besoinsFiabilitéEfficacitéIntégritéUtilisabilité

MaintenabilitéSouplesse testabilité

PortabilitéRéutilisabilitéinteropérabilité

Les facteurs de qualité:

Génie Logiciel09/10/2017 8

Les phases (plus courantes) de développement logiciel

Spécification des besoins

Conception

Implémentation

Tests

09/10/20179

Ingénierie Systèmes : Introduction

Notion de modèle

09/10/201710

• Les systèmes deviennent de plus en plus complexes et dépassent lamaîtrise et la compréhension par un seul individu. Le recours au génie logiciels’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 demodélisation.

• À la fin de chaque étape de modélisation, des modèles sont fournis.

Notion du modèle

Notion du modèle

09/10/201711

• 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 parconséquent facilite la communication entre les intervenants.

Notion du modèle

09/10/201712

• Le modèle est présenté sous forme de schéma ou diagrammedans lequel on trouve des éléments graphiques et du texte

• Les éléments graphiques sont des symboles dont lasignification est définie par le formalisme utilisé

• Le texte précise la portée des symboles et complètel’information.

Notion du modèle

09/10/201713

• Dans plusieurs domaines, on utilise le modèle comme langagevisuel pour représenter de manière abstraite une entité.

• Le modèle peut remplacer une longue description textuellepar un schéma ou diagramme plus facile et plus rapide àinterpréter.

Notion du modèle

• Exemples en général

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

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

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

Cas d’utilisation Diagramme d’activité

Notion du modèle

• Exemples relatif à l’informatique

Notion du modèle

09/10/201720

Diagramme de classe Diagramme de composant

Notion du modèle

09/10/201721

• La modélisation n’est pas une spécialité en soi mais plutôt une aptitude oucompé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 etcommunique son modèle.

Qui doit modéliser?

Notion du modèle

09/10/201722

• La modélisation est souvent faite par la maitrise d’œuvreinformatique (MOE)

• La maitrise d’ouvrage (MOA) dispose de toutes lesinformations et procédures du métier

• Une forte nécessité de coordination entre le MOE et le MOApour bien réussir le projet.

• La relation entre le MOE et le MOA est un contrat qui fixe leursengagements mutuels

Qui doit modéliser?

Notion du modèle

09/10/201723

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 meilleuremaintenabilité

• 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

09/10/201724

• La création du modèle se fait selon une méthode.

• Depuis les années 80, plusieurs recherches sur la méthodologiede développement des logiciels

• Emergence de plusieurs méthodes (plus de 50 en début desannées 90)

Comment modéliser?

Notion du modèle

09/10/201725

Ingénierie Systèmes : Introduction

Méthodes et techniques

Méthodes et techniques

09/10/201726

• 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 lemodèle. Les principaux concepts sont des états, transitions entre états, etdes événements pour déclencher des transitions.

• Diagramme fonctionnel: Le modèle fonctionnel gère la perspective deprocessus du modèle, ce qui correspond à peu près à des diagrammes deflux de données.

OMT (1991) de James RUMBAUGH

09/10/201727

• Ingénierie logicielle orientée objet (Object-oriented softwareengineering), c’est un langage et une méthodologie demodélisation objet

OOSE (1992) de Ivar JACOBSON

Méthodes et techniques

09/10/201728

• Méthodologie et langage de modélisation orienté objetlargement utilisé dans l’analyse et la conception orientée objet

• Les aspects méthodologiques de la méthode Booch ont été incorporés dansplusieurs méthodologies et processus

OOD (1993) de Grady BOOCH

Méthodes et techniques

09/10/201729

• La création du modèle se fait selon un formalisme.

• Le formalisme, dans le contexte de modélisation, sert à définirles symboles, les règles, les conventions, la structure, etc.

• Un formalisme peut se qualifier comme langage de notationvisuel et structuré.

Concept de formalisme

Méthodes et techniques

Il s’agit d’un langage de modélisation

09/10/201730

• 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 outerminologie 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

09/10/201731

• En octobre 1994, Grady BOOCH et James (OOD) et RUMBAUGH (OMT) se sontréunis au sein de la société Rational: méthode commune qui intègre lesprincipaux avantages des différentes méthodes connues.

• Lors de OOPSLA’95 (Object Oriented Programming Systems, Languages andApplications, 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

09/10/201732

Historique :

Méthodes et techniques

09/10/201733

OMT-1 OOSEBouch’91Autres méthodes

Partenaires UML (IBM, Microsoft, Oracle, HP,

Rational, …

Bouch’93 OMT-2

OOPSLA’95

OOPSLA’96

Soumission à l’OMG Janvier 97

Soumission à l’OMG Novembre 97

Unified Method 0.8

UML 0.9 & 0.91

UML 1.0

UML 1.1Adopté par l’OMG comme langage de modélisation

UML 2.1.12008

Méthodes et techniques

09/10/201734

Ingénierie Systèmes : Introduction

UML et le processus de

développement

UML et le processus de développement

09/10/201735

• UML est un langage de modélisation et non une méthode.

• UML c’est langage graphique qui permet de représenter et decommuniquer les différents aspects d’un système d’information.

• UML couvre toutes les étapes du développement d’un systèmed’information.

Objectifs d’UML

09/10/201736

• UML est l'Unified Modeling Language standardisé par l'OMG (Object Management Group : http://www.omg.org), est un formalisme graphiqueissu 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

Qu’est ce que UML

09/10/201737

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èmesémantique : sens précis pour chaque notation

Qu’est ce que UML

09/10/201738

UML est caractérisé par :un travail d'expertutilise l’approche orientée objetnormalisé, richeFormel : sa notation limite les ambiguïté et les incompréhensionslangage ouvert

Indépendant du langage de programmationDomaine d'application : permet de modéliser n'importe quel système

Supporté par plusieurs outils (AGL) : Objecteering, Open tools, Rational Rose, PowerAMC, WinDesign, …

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

ComportementalStructurel

Diagramme de package

Diagramme

de déploiement

Diagramme deCas d’utilisation

Diagramme d’interaction

vue d’ensemble

Diagramme d’interaction

Diagramme de temps

Diagrammes d’UML

Les diagrammes

09/10/201740

Classes, ObjetsCollaboration, Séquences

Vision LogiqueUtilisateurs finauxFonctionnalités

Composants

Vision ImplémentationDéveloppeursGestion du logiciel

Déploiement

Vision DéploiementIngénieurs systèmeArchitecture du systèmeInstallationCommunication

Etats-Transition-Activité

Vision PrcessusIngénieurs systèmePerformanceChangements d’échelles???

Cas d’utilisationVision Cas

d’utilisation

Les vues

Diagrammes d’UML

09/10/201741

Diagrammes d’UML

09/10/201742

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

09/10/201743

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

09/10/201744

Hardware / Software

CPU RAM ROM HDD

BIOS

CMOS

Système d’exploitation

Application

Hardware

Software

09/10/201745

Différents types de langage de programmation

OrdinateurCPU

Homme

Langage Machine

Langage humains

Langage Assembleur

Langages structurés:- Pascal, C …

Langages Orientés Objet- C++, Java ….

09/10/201746

Structure d’un programme chargé en mémoire

Instructions

Données

Pile

Programme

RAM

CPU

09/10/201747

Ingénierie Systèmes : Introduction

Conception Orientée Objets

09/10/201748

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

09/10/201749

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()

09/10/201750

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 handlede 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.

09/10/201751

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.

09/10/201752

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.

09/10/201753

Représentation d’une classe en UML

Nom de la classeAttributs

Méthodes

Les compartiments d’une classe peuvent être omis si leur contenu n’est pas pertinent dans le contexte d’un diagramme

09/10/201754

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

09/10/201755

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

09/10/201756

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

09/10/201757

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

09/10/201758

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

09/10/201759

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

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