SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Université Barack Obama
L2 Sciences Informatique
Session: 2013-2014

1- Introduction

2- Historique
3- Le génie logiciel
4- La modélisation UML
1
Auteur: DIALLO Boubacar Tel: 664 26 55 51 / 620 26 90 98 E-mail: hamanah08@yahoo.fr
1- Introduction


Contexte
 L'appréhension d'une problématique complexe telle que
le développement d’application repose de plus en plus
sur le recours à la modélisation informatique.
 L’accélération du renouvellement des technologies conjuguée
avec la pression économique et concurrentielle qui s’exerce sur
les entreprises, obligent les acteurs du monde informatique à
produire des solutions de plus en plus rapidement dans un
contexte d’amélioration continue de la qualité et de la
performance des systèmes d’information.
 Notons aussi qu’Internet a été un vecteur favorisant le
développement de très nombreuses applications dont une
grande partie utilise des solutions à base de langage de
programmation objet comme Java, C++ ou C#.

2
1- Introduction


Objectif
 Depuis longtemps, les informaticiens ont développé le langage
UML (Unified Modelling Language) pour formaliser des
besoins clients aux programmes qu'ils réalisent.
 Ce langage est proposé comme moyen de communication entre
modélisateurs ou informaticiens, et les autres métiers
indépendamment des disciplines et de la technique
informatique.
 UML a apporté tout naturellement le support méthodologique
qui manquait à tous les concepteurs et développeurs qui
voulaient formaliser l’analyse et la conception technique de leur
logiciel.
3
1- Introduction


Spécifications
 Depuis plus de 30 ans, la conception des bases de données est réalisée
à l’aide du modèle entité-association. Ce modèle a fait ses preuves et la
plupart des outils informatiques de conception l’utilisent encore
aujourd’hui.
 La notation UML s’est imposée depuis quelques années pour la
modélisation et le développement d’applications écrites dans un
langage objet (C++ et Java principalement).
 Initialement, UML n’a pas été conçue pour les bases de données.
Cependant, elle offre un même formalisme aux concepteurs d’objets
métiers et aux concepteurs de bases de données.
 UML s’est donc imposée en tant que langage graphique de
modélisation puisque non seulement ce langage répond à un véritable
besoin mais en outre il est devenu un standard de fait puisqu’il
s’appuie sur une norme très structurante.

4
2- Historique


 UML hérite principalement des méthodes objets de Booch ,
OMT (Object Modeling Technique en français Technique de
modélisation objet) et OOSE (Object Oriented Software
Engineering) inventées respectivement par Grady Booch,
Rumbaugh et Jacobson
 UML est une fusion de OOA/OOSE/OMT;
 Adopté par l' OMG en Novembre 1997 devient un standard.

5
3- Le génie logiciel


1- Présentation
2- Les phases de réalisation d’un logiciel
2.1- La phase d’analyse
2.2- La phase de conception
2.3- La phase de réalisation
2.4- La phase de mise en place
2.5- La phase d’exploitation et maintenance
2.6- La phase de démontage

6
1- Présentation du géni logiciel


 Un logiciel est un ensemble d’appels de sous-programmes
 Le génie logiciel est un domaine de l’informatique qui a pour objet l’étude
des moyens (méthodes, outils) qui permettent de créer des logiciels de qualité.
 Le but du génie logiciel est de réaliser une industrialisation de la
conception logicielle afin de créer des procédés de fabrication qui répond au
CQFD:



Coûts: les coûts ne seront pas dépassés: optimisation des ressources
Qualités: le logiciel doit avoir les qualités suivantes:












Validité: capacité à exécuter les tâches pour lesquelles il à été créer
Fiabilité: capacité de fournir les résultats attendus
Robustesse: capacité à fonctionner dans des condition anormales
Extensibilité: capacité à ajouter de nouvelles fonctionnalités
Compatibilité: capacité à coopérer avec d’autres logiciel
Efficacité: capacité de fournir de bon résultats dans les délais prévus
Portabilité: capacité à être porté sur d’autre OS
Lisibilité: capacité d’une personne à comprendre le code

Fonctionnalités: le logiciel doit répondre aux attentes des commanditaires
Délais: Les délais ne seront pas dépassés: gestion du temps

7
2- Les phases de réalisation d’un
logiciel



 La réalisation d’un logiciel se résume en 6 phases:
3.1- La phase d’analyse
3.2- La phase de conception
3.3- La phase de réalisation
3.4- La phase de mise en place
3.5- La phase d’exploitation et maintenance
3.6- La phase de démontage

8
2.1- La phase d’analyse

Etude de faisabilité
 Consiste à déterminer:
 les avantages,
 les inconvénients

que procureraient la réalisation et l’utilisation d’un nouveau
logiciel.
 Elle est destinée aux décideurs qui:
 Valident les orientations
 Chiffrent l’effort, coût de réalisation, gestion des délais,
temps de formation des utilisateurs, coûts d’achat de
nouveaux matériels, récupération des anciennes données.
9
2.1- La phase d’analyse

Cahier des charges
 Faire une étude de l’existence des logiciels.
 Est un guide qui permet de définir les logiciels dans
ses grandes lignes (pas trop techniques)
 Indique ce qui doit être fait mais sans dire vraiment
comment.
 Permettra au concepteur de valider chaque étape de
la réalisation du logiciel.
 Indique les spécification du projet.
10
2.2- La phase de conception



 C’est la phase la plus importante, elle définit l’architecture
du logiciel (son squelette, son comportement, etc.).
 On distingue 2 architectures:

 L’architecture global du logiciel: qui consiste à faire un
représentation global du logiciel (c’est-à-dire, décrire le
logiciel de façon global);
 L’architecture détaille: décrit les composants du logiciel et le
lien entre les différents composant du logiciel.

 L’architecture d’un logiciel concerne 2 aspects:

 Statique: décrit les parties non variable du logiciel une fois
validé;
 Dynamique : décrit le comportement du logiciel de façon
global et de chaque composant du logiciel
11
3.3- La phase de réalisation



 Une fois la conception terminée et validée, la
réalisation du logiciel doit être effective.
 Il s’agit de transformer le schéma du logiciel en un
produit (exécutable).
 Cette phase consiste à conduire le logiciel
Spécification

Conception

Réalisation

Validation

12
2.3- La phase de réalisation



 La spécification consiste à décrire toutes les spécification:
 Fonctionnelles: ce que doit réaliser le logiciel (sousprogrammes / traitements à réaliser)
 Non fonctionnelles: contraintes d’environnements,
performance, sécurité.

 La conception consiste à apporter une réponse à l’étape
précédente:
 Architecture (modules, objets, classes, fonctions)
 Matériel (environnement de développement, application
externes utilisées).

 L’implantation ( implémentation ou codage) consiste à
coder les données.

13
2.3- La phase de réalisation



 La validation sert à vérifier chaque module.
Texte.dft
(Résultat correct)
Module

Comparaison

Test de module

Texte.res

 Garder la trace de ce qui a été fait.
14
2.4- La phase de mise en place



 Maintenant que le logiciel est réalisé (l’exécutable obtenu),
il faut passer à sa mise en œuvre;
 Mettre en œuvre un logiciel c’est le déployer :
 Installer le logiciel dans l’environnement de production.
 Dès le début de la phase de réalisation, il faudrait pouvoir
disposer d’une machine dans l’environnement de
production

 Le déploiement d’un logiciel exige la préparation de son
environnement de production.
 Interconnecter tous les systèmes et processus devant
communiquer avant le logiciel;
 Transfert des données et conversion dans un nouveau
format (Récupération).

15
2.5- Exploitation et maintenance


Exploitation
 Le logiciel étant en place, son n’exploitation devient
fondamentale.
 Cette phase résume deux tâches qui doivent se
réaliser depuis la mise en place du logiciel jusqu’à sa
fin.
 Pour commencer l’exploitation du logiciel, on fait le
paramétrage du logiciel (l’insertion des données);
 Ensuite faire le traitement de donné (tester le
logiciel) pour détecter les erreurs s’ils y existent.
16
2.5- Exploitation et maintenance


Maintenance
 Une fois les erreurs détectées, il faut maintenant passer à la
correction (la maintenance du logiciel).
 La maintenance doit se tenir régulièrement
 Il existe 3 types de maintenance:

 Corrective: consiste à corriger les erreurs détectées lors de
l’exploitation. Bugs qui apparaissent
 Adaptative: consiste à adapter le logiciel à un besoin ou à un
environnement: Besoins exprimés par les utilisateurs pour faciliter
leur travail.
 Perfective: le logiciel satisfaisant à toutes les exigences du cahier des
charges, il est nécessaire de penser à son évolution. Il s’agit de le
rendre plus performent. Mise en place d’un système de traçage des
bugs (date/conditions de reproduction/solution et correction)

17
2.6- Démontage



 Malgré toutes les maintenances réalisées, le logiciel ne
peut plus satisfaire les besoins du client; donc révolue:
c’est la fin de vie du logiciel on parle alors de démontage.
 Un logiciel est qualifié de révolue lorsque:
 Le logiciel ne satisfait plus les besoins des utilisateurs et
aucune maintenance ne peut palier à problème;
 Le logiciel est dépassé par la technologie;
 Le client n’à plus besoin du logiciel.

 Le démontage du logiciel est assimilé comme la fin de vie
du logiciel;
 Il faut donc supprimer les exécutables, les drivers et les
données.
18
La modélisation UML


1- Présentation de UML
2- Le modèle
3- L’utilisation des modèles

19
4- Présentation de UML


 UML (Unified Modeling Language) est normalisé par l'OMG
(Object Management Group)
http://www.omg.org/spec/UML/
Dernière version : 2.4.1 (Août 2011)
 UML est une notation standard pour la modélisation
d'applications à base d'objets (et de composants depuis la
version 2)
 UML est utilisable dans de nombreux autres contextes de
conception ou spécification
Exemple : schéma de BDD
 UML est un langage utilisant une notation graphique
20
1- Présentation de UML (suite)



 UML, différent d’un processus de développement
 UML fournit une notation/syntaxe pour les diagrammes
et modèles définis pendant tout le cycle de
développement
 UML permet de définir des modèles de niveaux différents
Analyse
Conception
Spécification d'implémentation
....
 Il faut préciser à quel niveau correspond un modèle
 On peut raffiner un modèle pour le spécifier à chaque
niveau
21
2- Le modèle (Diagramme)


Un modèle est une représentation partielle de
la réalité
 Abstraction de ce qui est intéressant pour
un contexte donné
 Vue subjective et simplifiée d'un système
 Avec UML, on va s'intéresser
principalement aux modèles d'applications
informatiques
 Un modèle UML = des diagrammes UML
22
3- L’utilité des modèles


 Faciliter la compréhension d'un système
 Permettre également la communication avec le
client
 Vision de communication, de documentation
 Définir voire simuler le fonctionnement d'un
système
 Dans ce cas, on se doit d'être le plus précis
possible dans le contenu des modèles pour
s'approcher du code
 Vision de développement, de production

23
1- Introduction
2- Les différents types de diagrammes
2.1- Les diagrammes structurelles
2.2- Les diagrammes comportementaux
2.2.1- Les diagrammes d’interactions
24
1- Introduction


 Afin d’assurer un bon niveau de cohérence et d’homogénéité
sur l’ensemble des modèles, UML propose:
 d’une part un certain nombre de règles d’écriture ou de
représentations graphiques normalisées
 et d’autre part des mécanismes ou des concepts communs
applicables à l’ensemble des diagrammes.

 Certains éléments, comme les stéréotypes, sont spécifiquement
prévus pour assurer une réelle capacité:
 d’adaptation
 et d’évolution

 de la notation notamment pour prendre en compte les
particularités des différentes situations à modéliser.
25
2- Les différents types de
diagrammes



 UML dans sa version 2 propose treize diagrammes
qui peuvent être utilisés dans la description d’un
système.
 Ces diagrammes sont regroupés dans deux grands
ensembles.
 Les diagrammes Structurels
 Les diagramme comportementaux
 Dans cette catégorie, on identifie un autre sous
type;
 Les diagramme d’interaction

26
2.1- Les diagrammes structurels


 Ces diagrammes, au nombre de six, ont vocation à
représenter l’aspect statique d’un système (classes,
objets, composants…).
 Diagramme de classe – Ce diagramme représente la
description statique du système en intégrant dans
chaque classe la partie dédiée aux données et celle
consacrée aux traitements. C’est le diagramme pivot
de l’ensemble de la modélisation d’un système.
 Diagramme d’objet – Le diagramme d’objet permet la
représentation d’instances des classes et des liens entre
instances.
27
2.1- Les diagrammes structurels


 Diagramme de composant (modifié dans UML 2) – Ce
diagramme représente les différents constituants du
logiciel au niveau de l’implémentation d’un système.
 Diagramme de déploiement (modifié dans UML 2) – Ce
diagramme décrit l’architecture technique d’un
système avec une vue centrée sur la répartition des
composants dans la configuration d’exploitation.
 Diagramme de paquetage (nouveau dans UML 2) – Ce
diagramme donne une vue d’ensemble du système
structuré en paquetage. Chaque paquetage représente
un ensemble homogène d’éléments du système
(classes, composants…).

28
2.1- Les diagrammes structurels


 Diagramme de structure composite: ce diagramme
permet de décrire la structure interne d’un ensemble
complexe composé par exemple de classes ou
d’objets et de composants techniques.
 Ce diagramme met aussi l’accent sur les liens entre
les sous-ensembles qui collaborent.

29
2.2- Les diagrammes comportementaux


 Ces diagrammes représentent la partie dynamique
d’un système réagissant aux événements et
permettant de produire les résultats attendus par les
utilisateurs. Sept diagrammes sont proposés par
UML :
 Diagramme des cas d’utilisation – Ce diagramme est
destiné à représenter les besoins des utilisateurs par
rapport au système. Il constitue un des diagrammes
les plus structurants dans l’analyse d’un système.
30
2.2- Les diagrammes comportementaux


 – Diagramme d’état-transition (machine d’état) – Ce
diagramme montre les différents états des objets en
réaction aux événements.
 – Diagramme d’activités (modifié dans UML 2) – Ce
diagramme donne une vision des enchaînements des
activités propres à une opération ou à un cas
d’utilisation. Il permet aussi de représenter les flots
de contrôle et les flots de données.

31
2.2- Les diagrammes comportementaux


 – Diagramme de séquence (modifié dans UML 2) – Ce
diagramme permet de décrire les scénarios de
chaque cas d’utilisation en mettant l’accent sur la
chronologie des opérations en interaction avec les
objets.
 – Diagramme de communication (anciennement appelé
collaboration) – Ce diagramme est une autre
représentation des scénarios des cas d’utilisation qui
met plus l’accent sur les objets et les messages
échangés.
32
2.2- Les diagrammes comportementaux


 – Diagramme global d’interaction (nouveau dans UML 2)
– Ce diagramme fournit une vue générale des
interactions décrites dans le diagramme de séquence
et des flots de contrôle décrits dans le diagramme
d’activités.
 – Diagramme de temps (nouveau dans UML 2) – Ce
diagramme permet de représenter les états et les
interactions d’objets dans un contexte où le temps a
une forte influence sur le comportement du système
à gérer.
33
FIN


Merci pour votre attention!!!!
Vos questions SVP…
Prof: M. DIALLO Boubacar Tel: 664 26 55 51 / 620 26 90 98 E-mail: hamanah08@yahoo.fr

34

Contenu connexe

Tendances

UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
Mansouri Khalifa
 
CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-Total
Ahmed Mekkaoui
 

Tendances (20)

UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Igl cours 3 - introduction à uml
Igl   cours 3 - introduction à umlIgl   cours 3 - introduction à uml
Igl cours 3 - introduction à uml
 
Cours uml
Cours umlCours uml
Cours uml
 
Modélisation avec UML
Modélisation avec UMLModélisation avec UML
Modélisation avec UML
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Epreuve concours génie informatique
Epreuve concours génie informatiqueEpreuve concours génie informatique
Epreuve concours génie informatique
 
Modelisation agile 03122011
Modelisation agile  03122011Modelisation agile  03122011
Modelisation agile 03122011
 
Uml classes Par les exemples
Uml classes Par les exemplesUml classes Par les exemples
Uml classes Par les exemples
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
Chp4 - UML
Chp4 - UMLChp4 - UML
Chp4 - UML
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 
Génie Logiciel : Conception
Génie Logiciel : ConceptionGénie Logiciel : Conception
Génie Logiciel : Conception
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-Total
 

Similaire à Initiation à UML: Partie 1

Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
informatiquehageryah
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
Sanaa Guissar
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
hbadir
 

Similaire à Initiation à UML: Partie 1 (20)

conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
 
RA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptxRA et CCDS - Séance 1.pptx
RA et CCDS - Séance 1.pptx
 
Génie Logiciel.pptx
Génie Logiciel.pptxGénie Logiciel.pptx
Génie Logiciel.pptx
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des Charges
 
sûreté de fonctionnement du logiciel
 sûreté de fonctionnement du logiciel sûreté de fonctionnement du logiciel
sûreté de fonctionnement du logiciel
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
introduction génie logiciel-1.ppt
introduction génie logiciel-1.pptintroduction génie logiciel-1.ppt
introduction génie logiciel-1.ppt
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
UML4
UML4UML4
UML4
 
Article de référence de Winston Royce
Article de référence de Winston RoyceArticle de référence de Winston Royce
Article de référence de Winston Royce
 
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptx
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptxChapitre 1 - Introcution & cycles de développement - Etudiant.pptx
Chapitre 1 - Introcution & cycles de développement - Etudiant.pptx
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
Cours Jean-Louis BOULANGER: Réalisation d'une application logicielle.
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Fichier récupéré 1
Fichier récupéré 1Fichier récupéré 1
Fichier récupéré 1
 
Introduction au test_logiciel-fr
Introduction au test_logiciel-frIntroduction au test_logiciel-fr
Introduction au test_logiciel-fr
 
Présentation projet de fin d'étude
Présentation projet de fin d'étudePrésentation projet de fin d'étude
Présentation projet de fin d'étude
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
 

Initiation à UML: Partie 1

  • 1. Université Barack Obama L2 Sciences Informatique Session: 2013-2014 1- Introduction 2- Historique 3- Le génie logiciel 4- La modélisation UML 1 Auteur: DIALLO Boubacar Tel: 664 26 55 51 / 620 26 90 98 E-mail: hamanah08@yahoo.fr
  • 2. 1- Introduction  Contexte  L'appréhension d'une problématique complexe telle que le développement d’application repose de plus en plus sur le recours à la modélisation informatique.  L’accélération du renouvellement des technologies conjuguée avec la pression économique et concurrentielle qui s’exerce sur les entreprises, obligent les acteurs du monde informatique à produire des solutions de plus en plus rapidement dans un contexte d’amélioration continue de la qualité et de la performance des systèmes d’information.  Notons aussi qu’Internet a été un vecteur favorisant le développement de très nombreuses applications dont une grande partie utilise des solutions à base de langage de programmation objet comme Java, C++ ou C#. 2
  • 3. 1- Introduction  Objectif  Depuis longtemps, les informaticiens ont développé le langage UML (Unified Modelling Language) pour formaliser des besoins clients aux programmes qu'ils réalisent.  Ce langage est proposé comme moyen de communication entre modélisateurs ou informaticiens, et les autres métiers indépendamment des disciplines et de la technique informatique.  UML a apporté tout naturellement le support méthodologique qui manquait à tous les concepteurs et développeurs qui voulaient formaliser l’analyse et la conception technique de leur logiciel. 3
  • 4. 1- Introduction  Spécifications  Depuis plus de 30 ans, la conception des bases de données est réalisée à l’aide du modèle entité-association. Ce modèle a fait ses preuves et la plupart des outils informatiques de conception l’utilisent encore aujourd’hui.  La notation UML s’est imposée depuis quelques années pour la modélisation et le développement d’applications écrites dans un langage objet (C++ et Java principalement).  Initialement, UML n’a pas été conçue pour les bases de données. Cependant, elle offre un même formalisme aux concepteurs d’objets métiers et aux concepteurs de bases de données.  UML s’est donc imposée en tant que langage graphique de modélisation puisque non seulement ce langage répond à un véritable besoin mais en outre il est devenu un standard de fait puisqu’il s’appuie sur une norme très structurante. 4
  • 5. 2- Historique   UML hérite principalement des méthodes objets de Booch , OMT (Object Modeling Technique en français Technique de modélisation objet) et OOSE (Object Oriented Software Engineering) inventées respectivement par Grady Booch, Rumbaugh et Jacobson  UML est une fusion de OOA/OOSE/OMT;  Adopté par l' OMG en Novembre 1997 devient un standard. 5
  • 6. 3- Le génie logiciel  1- Présentation 2- Les phases de réalisation d’un logiciel 2.1- La phase d’analyse 2.2- La phase de conception 2.3- La phase de réalisation 2.4- La phase de mise en place 2.5- La phase d’exploitation et maintenance 2.6- La phase de démontage 6
  • 7. 1- Présentation du géni logiciel   Un logiciel est un ensemble d’appels de sous-programmes  Le génie logiciel est un domaine de l’informatique qui a pour objet l’étude des moyens (méthodes, outils) qui permettent de créer des logiciels de qualité.  Le but du génie logiciel est de réaliser une industrialisation de la conception logicielle afin de créer des procédés de fabrication qui répond au CQFD:   Coûts: les coûts ne seront pas dépassés: optimisation des ressources Qualités: le logiciel doit avoir les qualités suivantes:           Validité: capacité à exécuter les tâches pour lesquelles il à été créer Fiabilité: capacité de fournir les résultats attendus Robustesse: capacité à fonctionner dans des condition anormales Extensibilité: capacité à ajouter de nouvelles fonctionnalités Compatibilité: capacité à coopérer avec d’autres logiciel Efficacité: capacité de fournir de bon résultats dans les délais prévus Portabilité: capacité à être porté sur d’autre OS Lisibilité: capacité d’une personne à comprendre le code Fonctionnalités: le logiciel doit répondre aux attentes des commanditaires Délais: Les délais ne seront pas dépassés: gestion du temps 7
  • 8. 2- Les phases de réalisation d’un logiciel   La réalisation d’un logiciel se résume en 6 phases: 3.1- La phase d’analyse 3.2- La phase de conception 3.3- La phase de réalisation 3.4- La phase de mise en place 3.5- La phase d’exploitation et maintenance 3.6- La phase de démontage 8
  • 9. 2.1- La phase d’analyse  Etude de faisabilité  Consiste à déterminer:  les avantages,  les inconvénients que procureraient la réalisation et l’utilisation d’un nouveau logiciel.  Elle est destinée aux décideurs qui:  Valident les orientations  Chiffrent l’effort, coût de réalisation, gestion des délais, temps de formation des utilisateurs, coûts d’achat de nouveaux matériels, récupération des anciennes données. 9
  • 10. 2.1- La phase d’analyse  Cahier des charges  Faire une étude de l’existence des logiciels.  Est un guide qui permet de définir les logiciels dans ses grandes lignes (pas trop techniques)  Indique ce qui doit être fait mais sans dire vraiment comment.  Permettra au concepteur de valider chaque étape de la réalisation du logiciel.  Indique les spécification du projet. 10
  • 11. 2.2- La phase de conception   C’est la phase la plus importante, elle définit l’architecture du logiciel (son squelette, son comportement, etc.).  On distingue 2 architectures:  L’architecture global du logiciel: qui consiste à faire un représentation global du logiciel (c’est-à-dire, décrire le logiciel de façon global);  L’architecture détaille: décrit les composants du logiciel et le lien entre les différents composant du logiciel.  L’architecture d’un logiciel concerne 2 aspects:  Statique: décrit les parties non variable du logiciel une fois validé;  Dynamique : décrit le comportement du logiciel de façon global et de chaque composant du logiciel 11
  • 12. 3.3- La phase de réalisation   Une fois la conception terminée et validée, la réalisation du logiciel doit être effective.  Il s’agit de transformer le schéma du logiciel en un produit (exécutable).  Cette phase consiste à conduire le logiciel Spécification Conception Réalisation Validation 12
  • 13. 2.3- La phase de réalisation   La spécification consiste à décrire toutes les spécification:  Fonctionnelles: ce que doit réaliser le logiciel (sousprogrammes / traitements à réaliser)  Non fonctionnelles: contraintes d’environnements, performance, sécurité.  La conception consiste à apporter une réponse à l’étape précédente:  Architecture (modules, objets, classes, fonctions)  Matériel (environnement de développement, application externes utilisées).  L’implantation ( implémentation ou codage) consiste à coder les données. 13
  • 14. 2.3- La phase de réalisation   La validation sert à vérifier chaque module. Texte.dft (Résultat correct) Module Comparaison Test de module Texte.res  Garder la trace de ce qui a été fait. 14
  • 15. 2.4- La phase de mise en place   Maintenant que le logiciel est réalisé (l’exécutable obtenu), il faut passer à sa mise en œuvre;  Mettre en œuvre un logiciel c’est le déployer :  Installer le logiciel dans l’environnement de production.  Dès le début de la phase de réalisation, il faudrait pouvoir disposer d’une machine dans l’environnement de production  Le déploiement d’un logiciel exige la préparation de son environnement de production.  Interconnecter tous les systèmes et processus devant communiquer avant le logiciel;  Transfert des données et conversion dans un nouveau format (Récupération). 15
  • 16. 2.5- Exploitation et maintenance  Exploitation  Le logiciel étant en place, son n’exploitation devient fondamentale.  Cette phase résume deux tâches qui doivent se réaliser depuis la mise en place du logiciel jusqu’à sa fin.  Pour commencer l’exploitation du logiciel, on fait le paramétrage du logiciel (l’insertion des données);  Ensuite faire le traitement de donné (tester le logiciel) pour détecter les erreurs s’ils y existent. 16
  • 17. 2.5- Exploitation et maintenance  Maintenance  Une fois les erreurs détectées, il faut maintenant passer à la correction (la maintenance du logiciel).  La maintenance doit se tenir régulièrement  Il existe 3 types de maintenance:  Corrective: consiste à corriger les erreurs détectées lors de l’exploitation. Bugs qui apparaissent  Adaptative: consiste à adapter le logiciel à un besoin ou à un environnement: Besoins exprimés par les utilisateurs pour faciliter leur travail.  Perfective: le logiciel satisfaisant à toutes les exigences du cahier des charges, il est nécessaire de penser à son évolution. Il s’agit de le rendre plus performent. Mise en place d’un système de traçage des bugs (date/conditions de reproduction/solution et correction) 17
  • 18. 2.6- Démontage   Malgré toutes les maintenances réalisées, le logiciel ne peut plus satisfaire les besoins du client; donc révolue: c’est la fin de vie du logiciel on parle alors de démontage.  Un logiciel est qualifié de révolue lorsque:  Le logiciel ne satisfait plus les besoins des utilisateurs et aucune maintenance ne peut palier à problème;  Le logiciel est dépassé par la technologie;  Le client n’à plus besoin du logiciel.  Le démontage du logiciel est assimilé comme la fin de vie du logiciel;  Il faut donc supprimer les exécutables, les drivers et les données. 18
  • 19. La modélisation UML  1- Présentation de UML 2- Le modèle 3- L’utilisation des modèles 19
  • 20. 4- Présentation de UML   UML (Unified Modeling Language) est normalisé par l'OMG (Object Management Group) http://www.omg.org/spec/UML/ Dernière version : 2.4.1 (Août 2011)  UML est une notation standard pour la modélisation d'applications à base d'objets (et de composants depuis la version 2)  UML est utilisable dans de nombreux autres contextes de conception ou spécification Exemple : schéma de BDD  UML est un langage utilisant une notation graphique 20
  • 21. 1- Présentation de UML (suite)   UML, différent d’un processus de développement  UML fournit une notation/syntaxe pour les diagrammes et modèles définis pendant tout le cycle de développement  UML permet de définir des modèles de niveaux différents Analyse Conception Spécification d'implémentation ....  Il faut préciser à quel niveau correspond un modèle  On peut raffiner un modèle pour le spécifier à chaque niveau 21
  • 22. 2- Le modèle (Diagramme)  Un modèle est une représentation partielle de la réalité  Abstraction de ce qui est intéressant pour un contexte donné  Vue subjective et simplifiée d'un système  Avec UML, on va s'intéresser principalement aux modèles d'applications informatiques  Un modèle UML = des diagrammes UML 22
  • 23. 3- L’utilité des modèles   Faciliter la compréhension d'un système  Permettre également la communication avec le client  Vision de communication, de documentation  Définir voire simuler le fonctionnement d'un système  Dans ce cas, on se doit d'être le plus précis possible dans le contenu des modèles pour s'approcher du code  Vision de développement, de production 23
  • 24. 1- Introduction 2- Les différents types de diagrammes 2.1- Les diagrammes structurelles 2.2- Les diagrammes comportementaux 2.2.1- Les diagrammes d’interactions 24
  • 25. 1- Introduction   Afin d’assurer un bon niveau de cohérence et d’homogénéité sur l’ensemble des modèles, UML propose:  d’une part un certain nombre de règles d’écriture ou de représentations graphiques normalisées  et d’autre part des mécanismes ou des concepts communs applicables à l’ensemble des diagrammes.  Certains éléments, comme les stéréotypes, sont spécifiquement prévus pour assurer une réelle capacité:  d’adaptation  et d’évolution  de la notation notamment pour prendre en compte les particularités des différentes situations à modéliser. 25
  • 26. 2- Les différents types de diagrammes   UML dans sa version 2 propose treize diagrammes qui peuvent être utilisés dans la description d’un système.  Ces diagrammes sont regroupés dans deux grands ensembles.  Les diagrammes Structurels  Les diagramme comportementaux  Dans cette catégorie, on identifie un autre sous type;  Les diagramme d’interaction 26
  • 27. 2.1- Les diagrammes structurels   Ces diagrammes, au nombre de six, ont vocation à représenter l’aspect statique d’un système (classes, objets, composants…).  Diagramme de classe – Ce diagramme représente la description statique du système en intégrant dans chaque classe la partie dédiée aux données et celle consacrée aux traitements. C’est le diagramme pivot de l’ensemble de la modélisation d’un système.  Diagramme d’objet – Le diagramme d’objet permet la représentation d’instances des classes et des liens entre instances. 27
  • 28. 2.1- Les diagrammes structurels   Diagramme de composant (modifié dans UML 2) – Ce diagramme représente les différents constituants du logiciel au niveau de l’implémentation d’un système.  Diagramme de déploiement (modifié dans UML 2) – Ce diagramme décrit l’architecture technique d’un système avec une vue centrée sur la répartition des composants dans la configuration d’exploitation.  Diagramme de paquetage (nouveau dans UML 2) – Ce diagramme donne une vue d’ensemble du système structuré en paquetage. Chaque paquetage représente un ensemble homogène d’éléments du système (classes, composants…). 28
  • 29. 2.1- Les diagrammes structurels   Diagramme de structure composite: ce diagramme permet de décrire la structure interne d’un ensemble complexe composé par exemple de classes ou d’objets et de composants techniques.  Ce diagramme met aussi l’accent sur les liens entre les sous-ensembles qui collaborent. 29
  • 30. 2.2- Les diagrammes comportementaux   Ces diagrammes représentent la partie dynamique d’un système réagissant aux événements et permettant de produire les résultats attendus par les utilisateurs. Sept diagrammes sont proposés par UML :  Diagramme des cas d’utilisation – Ce diagramme est destiné à représenter les besoins des utilisateurs par rapport au système. Il constitue un des diagrammes les plus structurants dans l’analyse d’un système. 30
  • 31. 2.2- Les diagrammes comportementaux   – Diagramme d’état-transition (machine d’état) – Ce diagramme montre les différents états des objets en réaction aux événements.  – Diagramme d’activités (modifié dans UML 2) – Ce diagramme donne une vision des enchaînements des activités propres à une opération ou à un cas d’utilisation. Il permet aussi de représenter les flots de contrôle et les flots de données. 31
  • 32. 2.2- Les diagrammes comportementaux   – Diagramme de séquence (modifié dans UML 2) – Ce diagramme permet de décrire les scénarios de chaque cas d’utilisation en mettant l’accent sur la chronologie des opérations en interaction avec les objets.  – Diagramme de communication (anciennement appelé collaboration) – Ce diagramme est une autre représentation des scénarios des cas d’utilisation qui met plus l’accent sur les objets et les messages échangés. 32
  • 33. 2.2- Les diagrammes comportementaux   – Diagramme global d’interaction (nouveau dans UML 2) – Ce diagramme fournit une vue générale des interactions décrites dans le diagramme de séquence et des flots de contrôle décrits dans le diagramme d’activités.  – Diagramme de temps (nouveau dans UML 2) – Ce diagramme permet de représenter les états et les interactions d’objets dans un contexte où le temps a une forte influence sur le comportement du système à gérer. 33
  • 34. FIN  Merci pour votre attention!!!! Vos questions SVP… Prof: M. DIALLO Boubacar Tel: 664 26 55 51 / 620 26 90 98 E-mail: hamanah08@yahoo.fr 34