Introduction Génie Logiciel
Mr Alaya Raddaoui
AU. 2012/20131 Alaya Raddaoui
Faculté des sciences de Gafsa
Méthodes d’analyse
et de conception
2
Alaya Raddaoui
La modélisation en général
 Modèles :
 Définition :
 Un modèle est une représentation abstraite de la réalité
qui exclut certains détails du monde réel.
 Utilité :
 Reflète ce que le concepteur croit important pour la
compréhension et la prédiction du phénomène modélisé,
les limites du phénomène modélisé dépendent des
objectifs du modèle.
3 Alaya Raddaoui
 Modèles :
 Utilité (suite) :
 Permet de réduire la complexité d’un phénomène en
éliminant les détails qui n’influencent pas son
comportement de manière significative.
 Modélisation :
 Définition :
 Processus par lequel on arrive à élaborer un modèle
décrivant un système réel (ou un phénomène du monde
réel).
La modélisation en général
4
Alaya Raddaoui
 Types de Modélisation :
 Modélisation à priori :
 Modéliser un système avant sa réalisation (le système
n’existe pas encore).
 Objectifs :
 Comprendre le fonctionnement du future système.
 Mesurer et Maîtriser sa complexité.
 Assurer sa cohérence.
 Pouvoir communiquer au sein de l’équipe de réalisation.
La modélisation en général
5 Alaya Raddaoui
 Types de Modélisation :
 Modélisation à posteriori :
 Modéliser un système après sa réalisation (le
système existe déjà).
 Objectifs :
 Corriger les erreurs dans l’ancien système.
 Faire évoluer l’ancien système.
La modélisation en général
6 Alaya Raddaoui
Approches de modélisation pour le logiciel
 Approche fonctionnelle :
 Approche traditionnelle basée sur l’utilisation des
procédures et des fonctions.
 Les grands programmes sont décomposés en sous-
programmes.
 Approche orientée objets :
 On identifie les éléments du système et on en fait des
objets.
 On cherche à faire collaborer ces objets pour qu’ils
accomplissent la tâche voulue.
7 Alaya Raddaoui
Approches de modélisation pour le logiciel
 Modélisation fonctionnelle :
 Approche descendante :
 La modélisation du système se base sur les fonctions, et
non pas sur les objets.
 On commence par déterminer la fonction globale du
système.
 Puis, on décompose la fonction globale du système en
plusieurs sous-fonctions jusqu’à obtenir des fonctions
élémentaires simples à programmer.
 Il s’agit d’une démarche descendante.
8 Alaya Raddaoui
Approches de modélisation pour le logiciel
 Démarche :
• Recenser les fonctionnalités à implanter
 Résultat :
•Cahier des charges fonctionnel
 On distingue:
•Fonctions de service : besoins des utilisateurs
•Fonctions techniques : requises pour implanter les
fonctions de service
 Pour chaque fonction, préciser :
• Son importance
• Des critères de qualité
 Application : (language de modélisation) SADT
Analyse fonctionnelle
9 Alaya Raddaoui
Approches de modélisation pour le logiciel
Présentation de S.A.D.T. (Structured Analysis and Design Technique)
 Représentation sous la forme d’actigrammes :
Contrôle
 Décomposition de la « boîte » Activité :
10 Alaya Raddaoui
 Modélisation fonctionnelle :
 Avantages :
 Adéquate pour les petits logiciels et les système peu
complexes.
 Démarche ordonnée et organisée.
 Inconvénients :
 Pose des problèmes de structuration de données, car elle est
orientée fonctions.
 Produit des logiciels non réutilisables.
 Produit des logiciels très difficile à les faire évoluer ou corriger.
Approches de modélisation pour le logiciel
11 Alaya Raddaoui
Approches de modélisation pour le logiciel
 Modélisation orientée objets :
 Approche fondée sur les objets :
 Le modèle à produire est décrit en terme d’objets et
non pas en terme de fonctions.
 On peut partir des objets du domaine (briques de
base) et remonter vers le système global.
 On défini également les interactions et les
collaborations entre les objets du système.
 Il s’agit essentiellement d’une approche ascendante.
12 Alaya Raddaoui
Démarche
•Analyser les objets intervenant dans le système
 Résultat
•Diagramme de classes (objets)
• Ensemble des classes (objets) nécessaires
• Liens entre les classes (objets)
•Méthodes et éventuellement attributs des classes
 Applications (languages de modélisation)
•OMT, BOOCH, OOSE, UML
Approches de modélisation pour le logiciel
13 Alaya Raddaoui
 Modélisation orientée objets :
 Avantages :
 Démarche naturelle et logique.
 Raisonnement par abstraction sur les objets du domaine.
 Inconvénients :
 Parfois moins intuitive que l’approche fonctionnelle.
 Rien dans les concepts de base objets ne précise
comment modéliser la structure objet d’un système de
manière pertinente.
Approches de modélisation pour le logiciel
14 Alaya Raddaoui
 Objectifs :
 Définir la sémantique des concepts.
 Définir une notation pour la représentation des concepts.
 Définir des règles d’utilisation des concepts et de
construction.
 Langages de modélisation :
 Adaptés aux système procéduraux (MERISE, …).
 Adaptés aux systèmes temps réel (ROOM, SADT, …).
Langages de modélisation
15 Alaya Raddaoui
Langages de modélisation
 Langages de modélisation (suite):
 Adaptés aux systèmes à objets (OMT, Booch, UML, …).
 Ateliers de génie logiciel :
 Présenter des outils pour la modélisation.
 Le rôle de ces outils est primordial pour l’utilisabilité en
pratique des langages ( exemple Rational Rose )
16 Alaya Raddaoui
17
Les différents types de
langages de programmation
Alaya Raddaoui
18
 Langages impératifs
•programme = suite d’instructions (éventuellement parallèles)
• exemples : C, C++, ADA, PASCAL, BASIC, etc.
 Langages fonctionnels
• programme = composition de fonctions
• exemples : LISP, SISP, CAML, SML
 Langages logiques
• programme = ensemble de faits et de règles d’inférence
• exemples : PROLOG, Mercury
Taxonomie de base
Alaya Raddaoui
19
Niveaux de langages
 Langage machine / Assembleur
Langage « intermédiaires »
• exemple : C
• structure de l’implantation doit encore être connue
Langage « évolué »
•exemple : ADA, Eiffel, Perl
•structure interne complètement masquée
Langage de quatrième génération (L4G)
Alaya Raddaoui
20
Classification selon le code exécuté
 Langage interprété (ex. Perl)
• code exécuté = le source du programme
• chaque instruction est d’abord traduite puis exécutée
• exécution lente, mais mise au point aisée
 Langage compilé (ex. C)
•code exécuté = une version en langage machine du
programme
• le source est traduit une fois pour toute
• exécution rapide, mais recompilation nécessaire
à chaque modification
Langage semi-interprété (ex. Java)
•code exécuté = traduction en un pseudo-assembleur du source
Alaya Raddaoui
21
Les langages orientés objet
 Idée de base
•Toute donnée est une structure à laquelle sont rattachées
des fonctions appelées méthodes
• Programme = ensemble de données reliées entre elles
 Langages concernés : tous
•Perl (impératif interprété)
•Objetive Caml (fonctionnel interprété)
•Eiffel (impératif compilé)
•Java (impératif semi-interprété)
Alaya Raddaoui
22
Tests et mise au point
Alaya Raddaoui
23
• Principe du test
- des données en entrée
- un résultat attendu
- une exécution du logiciel obtenu sur les données
- comparaison du résultat obtenu avec le résultat attendu
•Interprétation du test
- si échec : il y a un problème
- si réussite : ??
La notion de test
jeu de test
Alaya Raddaoui
24
 Tests unitaires :
•vérification du bon comportement d’une fonction, d’un
module, par rapport à sa spécification
Tests d’intégration :
• vérification du bon fonctionnement de la collaboration entre
modules
Tests fonctionnels :
•vérification globale d’une fonctionnalité du système décrite
lors de l’expression des besoins
Les niveaux de test
Alaya Raddaoui
Gestion de projet
25 Alaya Raddaoui
Les différentes tâches
 Phases préliminaires
- Estimation de charge
- Ecriture du PQL
- Constitution de l’équipe
 En cours de développement
- Mise en place des différentes phases (de la
spécification aux tests)
- Gestion des anomalies
- Contrôle de la qualité
- Suivi de projet26 Alaya Raddaoui
Types de projet
D’après Boehm, Trois types de projet :
– Organiques (environnement stable, pas de contraintes
temps réel)
exemples : compilateur, calcul scientifique
– Médians (environnement instable, contraintes temps réel)
exemples : automates programmables, systèmes de régulations
– Imbriqués (environnement très instable, performances
en temps et précision difficiles à atteindre)
27 Alaya Raddaoui
Structuration de l’équipe
Structure traditionnelle d’une équipe:
28 Alaya Raddaoui
Rôles des intervenants (1)
 Chef de projet :
- mise en œuvre de la qualité
- assurer le suivi du projet
- coordonner les équipes
- diriger les différentes phases (sauf conception détaillée
et tests unitaires)
 Chef d’équipe :
- diriger la conception détaillée et les tests unitaires
- assurer l’interface entre son équipe et le chef de projet
29 Alaya Raddaoui
 Responsable Assurance Qualité
- Mettre au point le Plan Qualité Logiciel
- Définir les mesures nécessaires et leur interprétation
- Mener le suivi de la qualité
- Indépendant du Chef de Projet
 Responsable Gestion de Configuration
- Gérer les différentes versions, les noms, les anomalies
 Responsable d’Affaires
- Chiffrer les évolutions envisagées
- Négocier avec le client
Rôles des intervenants (2)
30 Alaya Raddaoui
Alaya Raddaoui31
U.M.L. en un clin d’oeil…
Alaya Raddaoui32
Pourquoi UML ? UML: Version 1.1 en 1997, version 2.0 en 2005.
 les méthodes orientées objets sont actuellement en vogue
UML est bien adapté (classes, interfaces, héritage, …)
Pas forcément associé à la programmation objet, peut servir
dans un contexte plus large:
Description des aspects statique (représentation des données)
et dynamiques (comportements + évènements)
 Notation devenue un standard de fait Synthèse de notations
antérieures (OMT, OOA/OOD, OOSE, …)
 Définie et maintenue par l’OMG (http://www.omg.org)
 Consortium de spécification (IBM, Sun, Oracle, HP, Boeing, BEA,…)
 À la base de nombreux standards (CORBA, SOAP, MDA, …)
Alaya Raddaoui33
 Permet d’établir divers modèles du système à réaliser
Fournit des notations (semi-graphiques) : diagrammes…
 Les diagrammes peuvent être enrichis par des textes
UML ne fournit pas le mode d’emploi
 Quel usage ?
 Graphique => outil de communication possible avec les
clients
 Modèles partagés par l’équipe de développement
 Plusieurs modèles selon les étapes, dans la même
notation
 UML se veut
 Universel (limité à une notion discrète du temps)
Extensible (via des « stéréotypes » et des « profiles »
Couvre le développement de l’analyse à la conception
UML = Unified Modeling Language
Alaya Raddaoui34
Qu’est-ce que UML ?
 UML, Version 1.1 : 9 types de diagrammes
3 vues différentes :
 UML Version 2.0 ajoute 4 types de diagrammes :
Diagrammes de structure composite, de communication, de paquetages,
de contraintes temporelles (« timing »)
Alaya Raddaoui35
Les « cas d’utilisation » en UML 2
 Un « cas d'utilisation » :
 une fonctionnalité du système
déclenchée par un acteur extérieur
 Acteur : tiers qui joue un rôle
En interagissant avec le système :
Il envoie des données / signaux au système
et/ou en reçoit des informations
Il est extérieur au système
Alaya Raddaoui36
Les cas d’utilisation décrivent le comportement du système, les interactions
qu’il a avec l’extérieur.
Un système ne fait pas des choses spontanément, mais en réaction à une sollicitation
initiale par un « acteur » extérieur
On doit préciser un cas d’utilisation
en décrivant les flots d’événements à l’aide d’un texte ;
À l’aide de diagrammes de séquences pour préciser graphiquement ces flots
Il faut prendre en compte
Les cas normaux, leurs variantes éventuelles
Les cas « d’erreurs »
Il faudra aussi mettre en évidence les interactions entre fonctionnalités des cas
d’utilisation (diagrammes de séquence)
Les « cas d’utilisation » en UML 2
Alaya Raddaoui37
Diagrammes de séquence
Ils correspondent à des « diagrammes système »
le système est vu comme une « boite noire »
Échanges de messages entre les acteurs et le système
jamais entre acteurs (pas du ressort du système !)
ni entre éléments internes au système (conception)
Représentation de la chronologie des échanges
Pas de boucle, branchement !
Un chemin principal, des alternatives,
des cas d’exception, des commentaires
Alaya Raddaoui38
Syntaxe des Classes et Instances en UML 2
Alaya Raddaoui39
Les attributs
De type simple (int, boolean, …) ou primitif (Date) uniquement !
Les liens avec les autres classes d’intérêt sont représentés par les associations
Dans le modèle d’analyse, on les considère comme public (on raffinera à la
conception, ainsi que les méthodes d’accès)
On ne distingue pas les attributs « dérivés » des autres
Les opérations:
dans un premier temps, on ne considère que les opérations principales (liées
aux cas d’utilisation)
 on ne les rattache pas à une classe particulière, donc on ne se
préoccupe pas des méthodes à ce niveau (quels paramètres ?)
Syntaxe des Classes et Instances en UML 2
Alaya Raddaoui40
Syntaxe des Classes et Instances en UML 2
Cardinalités dans les associations: de la forme
1, 2, ou un nombre entier précis (pas une expression !)
* : un nombre quelconque, éventuellement nul
un intervalle comme 1..*, 0..1, 1..3, (pas 1..N)
on donnera systématiquement les cardinalités
Alaya Raddaoui41
Exemple: En guise de cahier des charges…
Une station service ATTOL a plusieurs postes de distribution
soit automatiques (par carte bancaire) ouverts 24h/24
soit manuels (utilisables seulement si la station est ouverte)
Chaque poste est identifié par un numéro.
Chaque poste peut délivrer 3 sortes de carburant. A chaque instant, il en délivre au
plus une sorte.
Chaque poste est muni de 3 compteurs
 la quantité de carburant servie
le prix au litre
le prix à payer (qui ne change pas pendant la journée)
Les compteurs affichent 0 s’il n’y a pas de distribution en cours.
Alaya Raddaoui42
La station dispose de 3 citernes (une par type de carburant) avec
le niveau courant de carburant,
un niveau d’alerte pour prévenir le gérant qu’elle va être vide
un niveau minimal qui, une fois atteint, ne permet plus de délivrer du
carburant.
Les niveaux d’alerte et minimaux sont les mêmes pour toutes les citernes.
Le système doit garder une trace de tous les achats effectués depuis la
dernière ouverture de la station.
Un opérateur ouvre la station quand il arrive et la ferme quand il part
Exemple: En guise de cahier des charges…
Alaya Raddaoui43
Pour utiliser un poste automatique :
Un client insère sa carte bancaire et tape son code
Le système authentifie la carte auprès du service bancaire
En cas de succès, le client choisit un type de carburant et se sert d’un certain
nombre de litres.
Le système enregistre l’achat, envoie un ordre de débit au service bancaire et
remet à zéro les compteurs du poste.
 Pour utiliser un poste manuel :
 le client choisit son carburant et se sert.
 Les caractéristiques de l’achat sont envoyées à l’opérateur.
 Lorsque le client a payé en indiquant son numéro de pompe, le pompiste
enregistre l’achat et remet à zéro les compteurs du poste
Exemple: En guise de cahier des charges…

Cours génie logiciel

  • 1.
    Introduction Génie Logiciel MrAlaya Raddaoui AU. 2012/20131 Alaya Raddaoui Faculté des sciences de Gafsa
  • 2.
    Méthodes d’analyse et deconception 2 Alaya Raddaoui
  • 3.
    La modélisation engénéral  Modèles :  Définition :  Un modèle est une représentation abstraite de la réalité qui exclut certains détails du monde réel.  Utilité :  Reflète ce que le concepteur croit important pour la compréhension et la prédiction du phénomène modélisé, les limites du phénomène modélisé dépendent des objectifs du modèle. 3 Alaya Raddaoui
  • 4.
     Modèles : Utilité (suite) :  Permet de réduire la complexité d’un phénomène en éliminant les détails qui n’influencent pas son comportement de manière significative.  Modélisation :  Définition :  Processus par lequel on arrive à élaborer un modèle décrivant un système réel (ou un phénomène du monde réel). La modélisation en général 4 Alaya Raddaoui
  • 5.
     Types deModélisation :  Modélisation à priori :  Modéliser un système avant sa réalisation (le système n’existe pas encore).  Objectifs :  Comprendre le fonctionnement du future système.  Mesurer et Maîtriser sa complexité.  Assurer sa cohérence.  Pouvoir communiquer au sein de l’équipe de réalisation. La modélisation en général 5 Alaya Raddaoui
  • 6.
     Types deModélisation :  Modélisation à posteriori :  Modéliser un système après sa réalisation (le système existe déjà).  Objectifs :  Corriger les erreurs dans l’ancien système.  Faire évoluer l’ancien système. La modélisation en général 6 Alaya Raddaoui
  • 7.
    Approches de modélisationpour le logiciel  Approche fonctionnelle :  Approche traditionnelle basée sur l’utilisation des procédures et des fonctions.  Les grands programmes sont décomposés en sous- programmes.  Approche orientée objets :  On identifie les éléments du système et on en fait des objets.  On cherche à faire collaborer ces objets pour qu’ils accomplissent la tâche voulue. 7 Alaya Raddaoui
  • 8.
    Approches de modélisationpour le logiciel  Modélisation fonctionnelle :  Approche descendante :  La modélisation du système se base sur les fonctions, et non pas sur les objets.  On commence par déterminer la fonction globale du système.  Puis, on décompose la fonction globale du système en plusieurs sous-fonctions jusqu’à obtenir des fonctions élémentaires simples à programmer.  Il s’agit d’une démarche descendante. 8 Alaya Raddaoui
  • 9.
    Approches de modélisationpour le logiciel  Démarche : • Recenser les fonctionnalités à implanter  Résultat : •Cahier des charges fonctionnel  On distingue: •Fonctions de service : besoins des utilisateurs •Fonctions techniques : requises pour implanter les fonctions de service  Pour chaque fonction, préciser : • Son importance • Des critères de qualité  Application : (language de modélisation) SADT Analyse fonctionnelle 9 Alaya Raddaoui
  • 10.
    Approches de modélisationpour le logiciel Présentation de S.A.D.T. (Structured Analysis and Design Technique)  Représentation sous la forme d’actigrammes : Contrôle  Décomposition de la « boîte » Activité : 10 Alaya Raddaoui
  • 11.
     Modélisation fonctionnelle:  Avantages :  Adéquate pour les petits logiciels et les système peu complexes.  Démarche ordonnée et organisée.  Inconvénients :  Pose des problèmes de structuration de données, car elle est orientée fonctions.  Produit des logiciels non réutilisables.  Produit des logiciels très difficile à les faire évoluer ou corriger. Approches de modélisation pour le logiciel 11 Alaya Raddaoui
  • 12.
    Approches de modélisationpour le logiciel  Modélisation orientée objets :  Approche fondée sur les objets :  Le modèle à produire est décrit en terme d’objets et non pas en terme de fonctions.  On peut partir des objets du domaine (briques de base) et remonter vers le système global.  On défini également les interactions et les collaborations entre les objets du système.  Il s’agit essentiellement d’une approche ascendante. 12 Alaya Raddaoui
  • 13.
    Démarche •Analyser les objetsintervenant dans le système  Résultat •Diagramme de classes (objets) • Ensemble des classes (objets) nécessaires • Liens entre les classes (objets) •Méthodes et éventuellement attributs des classes  Applications (languages de modélisation) •OMT, BOOCH, OOSE, UML Approches de modélisation pour le logiciel 13 Alaya Raddaoui
  • 14.
     Modélisation orientéeobjets :  Avantages :  Démarche naturelle et logique.  Raisonnement par abstraction sur les objets du domaine.  Inconvénients :  Parfois moins intuitive que l’approche fonctionnelle.  Rien dans les concepts de base objets ne précise comment modéliser la structure objet d’un système de manière pertinente. Approches de modélisation pour le logiciel 14 Alaya Raddaoui
  • 15.
     Objectifs : Définir la sémantique des concepts.  Définir une notation pour la représentation des concepts.  Définir des règles d’utilisation des concepts et de construction.  Langages de modélisation :  Adaptés aux système procéduraux (MERISE, …).  Adaptés aux systèmes temps réel (ROOM, SADT, …). Langages de modélisation 15 Alaya Raddaoui
  • 16.
    Langages de modélisation Langages de modélisation (suite):  Adaptés aux systèmes à objets (OMT, Booch, UML, …).  Ateliers de génie logiciel :  Présenter des outils pour la modélisation.  Le rôle de ces outils est primordial pour l’utilisabilité en pratique des langages ( exemple Rational Rose ) 16 Alaya Raddaoui
  • 17.
    17 Les différents typesde langages de programmation Alaya Raddaoui
  • 18.
    18  Langages impératifs •programme= suite d’instructions (éventuellement parallèles) • exemples : C, C++, ADA, PASCAL, BASIC, etc.  Langages fonctionnels • programme = composition de fonctions • exemples : LISP, SISP, CAML, SML  Langages logiques • programme = ensemble de faits et de règles d’inférence • exemples : PROLOG, Mercury Taxonomie de base Alaya Raddaoui
  • 19.
    19 Niveaux de langages Langage machine / Assembleur Langage « intermédiaires » • exemple : C • structure de l’implantation doit encore être connue Langage « évolué » •exemple : ADA, Eiffel, Perl •structure interne complètement masquée Langage de quatrième génération (L4G) Alaya Raddaoui
  • 20.
    20 Classification selon lecode exécuté  Langage interprété (ex. Perl) • code exécuté = le source du programme • chaque instruction est d’abord traduite puis exécutée • exécution lente, mais mise au point aisée  Langage compilé (ex. C) •code exécuté = une version en langage machine du programme • le source est traduit une fois pour toute • exécution rapide, mais recompilation nécessaire à chaque modification Langage semi-interprété (ex. Java) •code exécuté = traduction en un pseudo-assembleur du source Alaya Raddaoui
  • 21.
    21 Les langages orientésobjet  Idée de base •Toute donnée est une structure à laquelle sont rattachées des fonctions appelées méthodes • Programme = ensemble de données reliées entre elles  Langages concernés : tous •Perl (impératif interprété) •Objetive Caml (fonctionnel interprété) •Eiffel (impératif compilé) •Java (impératif semi-interprété) Alaya Raddaoui
  • 22.
    22 Tests et miseau point Alaya Raddaoui
  • 23.
    23 • Principe dutest - des données en entrée - un résultat attendu - une exécution du logiciel obtenu sur les données - comparaison du résultat obtenu avec le résultat attendu •Interprétation du test - si échec : il y a un problème - si réussite : ?? La notion de test jeu de test Alaya Raddaoui
  • 24.
    24  Tests unitaires: •vérification du bon comportement d’une fonction, d’un module, par rapport à sa spécification Tests d’intégration : • vérification du bon fonctionnement de la collaboration entre modules Tests fonctionnels : •vérification globale d’une fonctionnalité du système décrite lors de l’expression des besoins Les niveaux de test Alaya Raddaoui
  • 25.
    Gestion de projet 25Alaya Raddaoui
  • 26.
    Les différentes tâches Phases préliminaires - Estimation de charge - Ecriture du PQL - Constitution de l’équipe  En cours de développement - Mise en place des différentes phases (de la spécification aux tests) - Gestion des anomalies - Contrôle de la qualité - Suivi de projet26 Alaya Raddaoui
  • 27.
    Types de projet D’aprèsBoehm, Trois types de projet : – Organiques (environnement stable, pas de contraintes temps réel) exemples : compilateur, calcul scientifique – Médians (environnement instable, contraintes temps réel) exemples : automates programmables, systèmes de régulations – Imbriqués (environnement très instable, performances en temps et précision difficiles à atteindre) 27 Alaya Raddaoui
  • 28.
    Structuration de l’équipe Structuretraditionnelle d’une équipe: 28 Alaya Raddaoui
  • 29.
    Rôles des intervenants(1)  Chef de projet : - mise en œuvre de la qualité - assurer le suivi du projet - coordonner les équipes - diriger les différentes phases (sauf conception détaillée et tests unitaires)  Chef d’équipe : - diriger la conception détaillée et les tests unitaires - assurer l’interface entre son équipe et le chef de projet 29 Alaya Raddaoui
  • 30.
     Responsable AssuranceQualité - Mettre au point le Plan Qualité Logiciel - Définir les mesures nécessaires et leur interprétation - Mener le suivi de la qualité - Indépendant du Chef de Projet  Responsable Gestion de Configuration - Gérer les différentes versions, les noms, les anomalies  Responsable d’Affaires - Chiffrer les évolutions envisagées - Négocier avec le client Rôles des intervenants (2) 30 Alaya Raddaoui
  • 31.
    Alaya Raddaoui31 U.M.L. enun clin d’oeil…
  • 32.
    Alaya Raddaoui32 Pourquoi UML? UML: Version 1.1 en 1997, version 2.0 en 2005.  les méthodes orientées objets sont actuellement en vogue UML est bien adapté (classes, interfaces, héritage, …) Pas forcément associé à la programmation objet, peut servir dans un contexte plus large: Description des aspects statique (représentation des données) et dynamiques (comportements + évènements)  Notation devenue un standard de fait Synthèse de notations antérieures (OMT, OOA/OOD, OOSE, …)  Définie et maintenue par l’OMG (http://www.omg.org)  Consortium de spécification (IBM, Sun, Oracle, HP, Boeing, BEA,…)  À la base de nombreux standards (CORBA, SOAP, MDA, …)
  • 33.
    Alaya Raddaoui33  Permetd’établir divers modèles du système à réaliser Fournit des notations (semi-graphiques) : diagrammes…  Les diagrammes peuvent être enrichis par des textes UML ne fournit pas le mode d’emploi  Quel usage ?  Graphique => outil de communication possible avec les clients  Modèles partagés par l’équipe de développement  Plusieurs modèles selon les étapes, dans la même notation  UML se veut  Universel (limité à une notion discrète du temps) Extensible (via des « stéréotypes » et des « profiles » Couvre le développement de l’analyse à la conception UML = Unified Modeling Language
  • 34.
    Alaya Raddaoui34 Qu’est-ce queUML ?  UML, Version 1.1 : 9 types de diagrammes 3 vues différentes :  UML Version 2.0 ajoute 4 types de diagrammes : Diagrammes de structure composite, de communication, de paquetages, de contraintes temporelles (« timing »)
  • 35.
    Alaya Raddaoui35 Les «cas d’utilisation » en UML 2  Un « cas d'utilisation » :  une fonctionnalité du système déclenchée par un acteur extérieur  Acteur : tiers qui joue un rôle En interagissant avec le système : Il envoie des données / signaux au système et/ou en reçoit des informations Il est extérieur au système
  • 36.
    Alaya Raddaoui36 Les casd’utilisation décrivent le comportement du système, les interactions qu’il a avec l’extérieur. Un système ne fait pas des choses spontanément, mais en réaction à une sollicitation initiale par un « acteur » extérieur On doit préciser un cas d’utilisation en décrivant les flots d’événements à l’aide d’un texte ; À l’aide de diagrammes de séquences pour préciser graphiquement ces flots Il faut prendre en compte Les cas normaux, leurs variantes éventuelles Les cas « d’erreurs » Il faudra aussi mettre en évidence les interactions entre fonctionnalités des cas d’utilisation (diagrammes de séquence) Les « cas d’utilisation » en UML 2
  • 37.
    Alaya Raddaoui37 Diagrammes deséquence Ils correspondent à des « diagrammes système » le système est vu comme une « boite noire » Échanges de messages entre les acteurs et le système jamais entre acteurs (pas du ressort du système !) ni entre éléments internes au système (conception) Représentation de la chronologie des échanges Pas de boucle, branchement ! Un chemin principal, des alternatives, des cas d’exception, des commentaires
  • 38.
    Alaya Raddaoui38 Syntaxe desClasses et Instances en UML 2
  • 39.
    Alaya Raddaoui39 Les attributs Detype simple (int, boolean, …) ou primitif (Date) uniquement ! Les liens avec les autres classes d’intérêt sont représentés par les associations Dans le modèle d’analyse, on les considère comme public (on raffinera à la conception, ainsi que les méthodes d’accès) On ne distingue pas les attributs « dérivés » des autres Les opérations: dans un premier temps, on ne considère que les opérations principales (liées aux cas d’utilisation)  on ne les rattache pas à une classe particulière, donc on ne se préoccupe pas des méthodes à ce niveau (quels paramètres ?) Syntaxe des Classes et Instances en UML 2
  • 40.
    Alaya Raddaoui40 Syntaxe desClasses et Instances en UML 2 Cardinalités dans les associations: de la forme 1, 2, ou un nombre entier précis (pas une expression !) * : un nombre quelconque, éventuellement nul un intervalle comme 1..*, 0..1, 1..3, (pas 1..N) on donnera systématiquement les cardinalités
  • 41.
    Alaya Raddaoui41 Exemple: Enguise de cahier des charges… Une station service ATTOL a plusieurs postes de distribution soit automatiques (par carte bancaire) ouverts 24h/24 soit manuels (utilisables seulement si la station est ouverte) Chaque poste est identifié par un numéro. Chaque poste peut délivrer 3 sortes de carburant. A chaque instant, il en délivre au plus une sorte. Chaque poste est muni de 3 compteurs  la quantité de carburant servie le prix au litre le prix à payer (qui ne change pas pendant la journée) Les compteurs affichent 0 s’il n’y a pas de distribution en cours.
  • 42.
    Alaya Raddaoui42 La stationdispose de 3 citernes (une par type de carburant) avec le niveau courant de carburant, un niveau d’alerte pour prévenir le gérant qu’elle va être vide un niveau minimal qui, une fois atteint, ne permet plus de délivrer du carburant. Les niveaux d’alerte et minimaux sont les mêmes pour toutes les citernes. Le système doit garder une trace de tous les achats effectués depuis la dernière ouverture de la station. Un opérateur ouvre la station quand il arrive et la ferme quand il part Exemple: En guise de cahier des charges…
  • 43.
    Alaya Raddaoui43 Pour utiliserun poste automatique : Un client insère sa carte bancaire et tape son code Le système authentifie la carte auprès du service bancaire En cas de succès, le client choisit un type de carburant et se sert d’un certain nombre de litres. Le système enregistre l’achat, envoie un ordre de débit au service bancaire et remet à zéro les compteurs du poste.  Pour utiliser un poste manuel :  le client choisit son carburant et se sert.  Les caractéristiques de l’achat sont envoyées à l’opérateur.  Lorsque le client a payé en indiquant son numéro de pompe, le pompiste enregistre l’achat et remet à zéro les compteurs du poste Exemple: En guise de cahier des charges…