0% ont trouvé ce document utile (0 vote)
52 vues29 pages

Analyse UML pour le développement logiciel

Ce document présente l'analyse par objets avec le langage UML. Il décrit les principes de la modélisation avec UML ainsi que l'analyse initiale et la finalisation du modèle. Le document contient également des informations sur les problèmes des processus de développement classiques et les avantages des cycles de vie en spirale et du Rational Unified Process.

Transféré par

Döūãe Ođ
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
52 vues29 pages

Analyse UML pour le développement logiciel

Ce document présente l'analyse par objets avec le langage UML. Il décrit les principes de la modélisation avec UML ainsi que l'analyse initiale et la finalisation du modèle. Le document contient également des informations sur les problèmes des processus de développement classiques et les avantages des cycles de vie en spirale et du Rational Unified Process.

Transféré par

Döūãe Ođ
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Analyse par Objets

avec UML
(Unified Modeling Language)

Pr. Jean-Marc Jézéquel


IRISA - Univ. Rennes I

Campus de Beaulieu
F-35042 Rennes Cedex
Tel : +33 299 847 192 Fax : +33 299 842 532
e-mail : jezequel@[Link]
[Link]
1

PLAN
 Démarche de modélisation avec UML
 Analyse initiale
– à l’aide de techniques de brainstorming
– Elaboration par « recuit simulé »
 Finalisation par critères qualités

1
Problématique du logiciel
« moderne »

 Importance des aspects non fonctionnels


– systèmes répartis, parallèles et asynchrones
– qualité de service : fiabilité, latence, performances...
 Flexibilité accrue des aspects fonctionnels
– notion de lignes de produits (espace, temps)

1.2
Versions 1.4 1.4 1.4 1.4 1.4
Time
(Temps) 1.3 1.3 1.3 1.3 1.3
to
1.2 1.2 1.2 1.2 1.2
1.1 Market!
1.1 1.1 1.1 1.1 1.1

1.0 1.0 1.0 1.0 1.0 1.0

3
Variantes (Fonctionalités)

Activités du développement de logiciels


Valider le
logiciel

Assembler les
composants

Développer un
des composants

Définir comment
il sera développé

Définir ce qui
sera développé

 L’organisation de ces activités et leur


enchaînement définit le cycle de développement
du logiciel
4

2
Cycle de vie en V normalisé AFNOR
Analyse Validation
• Expression du besoin • Validation
• Analyse détaillée • Mise en œuvre

Conception
Intégration
• Etude technique préalable
• Conception préliminaire • Intégration
• Conception détaillée • Tests d'Intégration

Réalisation
• Codage
• Mise au point
• Tests unitaires
Variante US :
Cycle en « cascade »

Problèmes avec le processus classique...

Ce que demande Ce que l’analyste a Ce que prévoit le


l’utilisateur spécifié concepteur

Ce que le programmeur a Ce que la mise au point a Ce que l’utilisateur n’a 6pas su


écrit fait exprimer

3
Why do projects fail so often

 Unrealistic or unarticulated project goals


 Inaccurate estimates of needed resources
 Badly defined system requirements
 Poor reporting of the project's status
 Unmanaged risks
 Poor communication among customers, developers, and
users
 Use of immature technology
 Inability to handle the project's complexity
 Sloppy development practices
 Poor project management
 Stakeholder politics
 Commercial pressures

Problèmes du processus classique


 Organisation « industrielle » héritée du XIXème siècle
– rassurant pour les managers
– hiérarchie malsaine dans les rôles
– antinomie : Coplien ’s organizational pattern
» Architects Also Implement
 cycle management <> cycle développement
 linéarité implicite
– temps d ’approbation des documents => effet tampon
– coût de la (non-) modification d ’un document « final »
– irréaliste pour un projet innovant, donc à risques

4
Cycle de vie en « spirale »
Analyse détaillée

Analyse
préliminaire « (de risque) »
Conception

V1 V2
Réalisation
Validation

Intégration

Synergie avec approche par objets


9

Intérêts du cycle de vie en « spirale »


 Bien adapté au développements innovants
– les progrès sont tangibles : c ’est du logiciel qui « tourne »
et pas seulement des kilos de documents
– possibilité de s ’arrêter « à temps », i.e. avant que
l ’irréalisabilité du projet ait créée un gouffre financier
 Moins simple à manager
– difficile à gérer en situation contractuelle
– mal contrôlé => on retombe dans le hacking
 Production des incréments asservie sur 2 parmi 3 :
– période (e.g. release toutes les 2 semaines)
– fonctionnalités (releases découpés suivant use-cases)
– niveau de qualité (problème de la mesure)
10

5
Exemple du RUP
2000
RPW RUP 2000 UML 1.4

UML 1.3
Realtime RUP 5.5 1999
ROOM
Project management

Performance Objectory
testing
Rational Unified 1998 UI design
Business Process 5.0
Data Engineering
Engineering
UML 1.1
Configuration Rational Objectory 1997
& change Mgmt
Process 4.1
Requirements
College
Rational Objectory 1996 SQA
Process 4.0 Process
OMT
Booch UML 1.1
1995
Rational Approach Objectory 3.8 11

Principes du Rational Unified Process


Développement Itératif

Gestion précise des besoins exprimés

Utilisation d’architectures de composants


Best
Practices Modélisation Visuelle

Contrôle qualité en continu

Contrôle des changements

6
Point clés
 Développer seulement ce qui est nécessaire
 Minimiser la paperasserie
 flexibilité
– besoins, plan, utilisation des ressources, etc…
 Apprendre de ses erreurs précédentes
 Réévaluer les risques régulièrement
 Établir des critères de progrès
– objectifs et mesurables
 Automatiser

13

Architecture du processus
 2 structures orthogonales
 Structure statique
– Workers, artifacts, activities, workflows
– authoring et configuration du processus
 SPEMsi, ingénierie des méthodes et des processus
 Structure dynamique
– Structure du cycle de vie : phases, itérations
– Mise en oeuvre du processus : planification, exécution
 gestion des activités, suivi de projet

14

7
Les 2 dimentions du processus
Dynamic structure
Phases
Technical Disciplines Inception Elaboration Construction Transition

Business Modeling
Requirements
Static structure

Analysis & Design


Implementation
Test & Assessment
Deployment
Supporting Disciplines
Configur. & Change Mgmt
Project Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iterations-> Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1

15

Phases du développement itératif


Major Milestones

Inception Elaboration Construction Transition

Temps

Inception: définition de la porté du projet


Elaboration: planification du projet, spécification des
fonctionnalités, architecture de base
Construction: réalisation du produit
Transition: transfert du produit vers les utilisateurs

16

8
Itérations
Livraison d’exécutables

Inception Elaboration Construction Transition

Preliminary Architect. Architect. Devel. Devel. Devel. Transition Transition


Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration

Une itération est une séquence d’activités avec un plan bien établi
et un critère d’évaluation, résultant en la livraison d’un logiciel
exécutable.

17

Phases et itérations : 2 exemples

 Petit projet de commerce  Grand projet d’infrastructure


électronique – Gros travail d’architecture
– Intégration à un mainframe nécessaire
– 5 personnes – 20 personnes

No. of Iterations Project Iteration


Inception Elaboration Construction Transition Length Length

e-business 0.2 1 3 1 3-4 months 2-3 weeks


infrastructure 1 3 3 2 9-12 months 5-7 weeks

18

9
Vision «générique» d’un cycle UML
INCEPTION VALIDATION
• Cas d'utilisation
• Modèle des objets du • Validation technique
domaine
• Interfaces • Validation par les
• Maquettes utilisateurs
UML
Modèle utilisateur
Modèle statique
Modèle dynamique
Modèle d’implantation

ELABORATION CONSTRUCTION
• Modèle détaillé des
• Architecture
objets
• Modèles des objets et
• Scénarios détaillés
scénarios
• Algorithmes
• Règles de transformation
• Codage - Mise au point
(Design patterns)
• Intégration

19

Processus de développement avec UML

 Approche itérative, incrémentale, dirigée par les cas


d’utilisation
– Expression des besoins
– Analyse
» Elaboration d ’un modèle « idéal »
– Conception
» passage du modèle idéal au monde réel
– Réalisation et Validation

20

10
Température des diagrammes UML
«Température»

 Diagramme de cas d’utilisations


 Diagramme de classes
 Diagramme de paquetages
 Diagramme de séquences
 Diagramme de collaborations
 Diagramme d’états-transitions
 Diagramme d’activités
 Diagramme d’implantation
Besoins Conception V&V
Analyse Réalisation

21

Objectif d’une analyse avec UML

 Construction d ’un modèle d’analyse

 Modèle unique mais quadri-dimentionnel


– Aspects utilisation du système
– Aspects statiques du système
– Aspects dynamiques du système (comportemental)
– Aspects déploiement et implantation

22

11
Construction d’un modèle d’analyse
 Hypothèse d’un monde idéal
– processeur suffisamment rapide
– mémoire suffisamment grande et rapide
– communications rapides et fiables
– pas de défaillances
 Sélection des aspects cruciaux d’un problème
 Pas de solution unique :
– modélisation = interprétation
– « Quoiqu’on en dise, dans la vie scientifique, les
problèmes ne se posent pas d’eux-mêmes. Rien ne va de
soi. Rien n’est donné. Tout est construit. » G. Bachelard

23

Modélisation UML
 Modélisation selon 4 points de vue principaux :
– Vision utilisateur du système
» Cas d’utilisation
– Aspects statiques du système
» Description des données et de leurs relations
» Structuration en paquetages
– Aspects dynamiques du système (comportemental)
» Diagramme de séquences (scénarios)
» Diagramme de collaborations (entre objets)
» Diagramme d’états-transitions (Harel)
» Diagramme d’activités
– Vision implantation
» Diagramme de composants et de déploiement

24

12
Etude de cas
 Un serveur de réunions virtuelles
– Adaptation du concept d'IRC à un contexte de réunions
de travail au sein d'une entreprise géographiquement
dispersée
 Cette étude de cas va nous servir de fil conducteur
pour décrire un processus d'analyse et de
conception avec UML

25

Cahier des charges (1/2)


 Il s'agit de réaliser la partie serveur d'une application
client-serveur permettant de faire des réunions virtuelles
multimédia sur Internet. L'objectif de cette application est
de permettre d'imiter le plus possible le déroulement de
réunions de travail classiques. Cependant, dans la
première version de ce projet, les interventions des
participants se feront en mode mono-média seulement
(i.e. échanges en forme textuelle).
 Le serveur devra permettre de planifier et de gérer le
déroulement de plusieurs réunions simultanées. Des
programmes clients existeront dans l'avenir pour
plusieurs plate-formes (Mac, Windows, Unix) afin de
permettre à des personnes désirant organiser des
réunions virtuelles ou y participer de dialoguer avec le
serveur en utilisant un protocole ad hoc développé au
dessus de IP.
26

13
Cahier des charges (2/2)
 Après s'être connecté au serveur (à l'aide d'un nom de login et d'un mot de
passe mémorisé par le système), une personne a la possibilité de planifier des
réunions virtuelles (choix d'un nom, définition du sujet, date de début et durée
prévue, ordre du jour), de consulter les détails d'organisation d'une réunion, de
les modifier (seulement l'organisateur), d'ouvrir et de clôturer une réunion
(seulement l'animateur), d'entrer (virtuellement) dans une réunion
précédemment ouverte, et d'en sortir. En cours de réunion, un participant peut
demander à prendre la parole. Quand elle lui est accordée, il peut entrer le texte
d'une intervention qui sera transmise en ``temps-réel'' par le serveur à tous les
participants de la réunion.
 Plusieurs sortes de réunions doivent pouvoir être organisables :
– Réunions standards, avec un organisateur qui se charge de la planification de la
réunion et désigne un animateur chargé de choisir les intervenants successifs parmi
ceux qui demandent la parole.
– Réunions privés, qui sont des réunions standards dont l'accès est réservé à un
groupe de personnes défini par l'organisateur
– Réunions démocratiques, qui sont planifiées comme des réunions standards, mais où
les intervenants successifs sont choisis automatiquement par le serveur sur la base
d'une politique premier demandeur-premier servi.
27

Démarche de modélisation avec UML


 Construction du diagramme de cas d’utilisations
– Grande découpe fonctionnelle (10% de l’effort)
 Construction du diagramme de classes
– à partir des noms des données du problème (30%)
 Construction de diagrammes de séquences et de
collaborations
– instances des cas d ’utilisation (25%)
 Généralisation à l’aide de diagrammes d’états-
transitions
– à partir des diag. Séquences (15%)
 Affiner et préciser la solution (20%)
28

14
Cas d’utilisation

 Grande découpe fonctionnelle


– pilote les incréments dans la spirale
– chaque incrément correspond à la réalisation d ’un cas
d ’utilisation

 1 diagramme global + texte 10 lignes / cas

29

Diagramme de cas d'utilisations

30

15
Exemple de cas d'utilisation :
Planification
 La planification d'une réunion virtuelle est effectuée
par une personne jouant le rôle d'organisateur pour
cette réunion. Ceci consiste à créer une nouvelle
réunion dans le système (ou à la mettre à jour si
elle existe déjà) en faisant le choix d'un nom, la
définition du sujet, de la date de début et la durée
prévue, ainsi que l'ordre du jour.

31

Processus de construction du
diagramme de classes
 Identifier les classes d’objets
– Garder les bonnes classes
– constitution du dictionnaire de données
 Identifier les associations.
– Garder les bonnes associations
 Identifier les attributs.
– Garder les bons attributs
 Raffiner au moyen de l’héritage
– Généralisations et raffinages
 Itérer la modélisation
 Grouper les classes en modules
32

16
Identification des classes
 A l’aide des noms des données du problème
– processus de remue-méninges (brainstorming)

 Eliminer les classes :


– redondantes (noms synonymes)
– non pertinentes (vs. le modèle)
– trop vagues (non réifiable facilement)
– attributs, opérations, rôles de relations
– constructions liées à l’implantation 33

Souligner les noms dans le cahier des


charges

 Il s'agit de réaliser la partie serveur d'une application client-


serveur permettant de faire des réunions virtuelles multimédia
sur Internet. L'objectif de cette application est de permettre
d'imiter le plus possible le déroulement de réunions de travail
classiques. Cependant, dans la première version de ce projet,
les interventions des participants se feront en mode mono-
média seulement (i.e. échanges en forme textuelle).
 Le serveur devra permettre de planifier et de gérer le
déroulement de plusieurs réunions simultanées. Des
programmes clients existeront dans l'avenir pour plusieurs plate-
formes (Mac, Windows, Unix) afin de permettre à des personnes
désirant organiser des réunions virtuelles ou y participer de
dialoguer avec le serveur en utilisant un protocole ad hoc
développé au dessus de IP.
34

17
Classes potentielles
– Serveur Implantation
– Application Redondant serveur
– Réunion OK
– Internet Implantation
– Objectif Non pertinent
– Déroulement Action
– Version Implantation
– Projet Non pertinent
– Intervention OK (?)
– Participant Rôle relation Personne-Réunion
– Mode Implantation
– Programme Implantation
– Plate-formes Implantation
– Personne OK
– Protocole Implantation
– …
35

Identification des relations entre


classes
 Recherche des phrases verbales
 Eliminer les relations :
– entre classes éliminées
– non pertinentes ou liées à l’implantation
– qui sont en fait des actions
– pouvant être dérivées d’autres relations
– Raffiner la sémantique des relations
– ajouter les rôles
– qualifier les relations (sélecteur)
– spécifier la multiplicité

36

18
Identification des attributs
 Propriétés d’objets individuels
– à rechercher à l’aide des adjectifs (couleur, poids...) ou
propositions substantives du problème
 Eliminer les attributs non nécessaires ou incorrects
– s’ils sont en fait des objets
– sélecteurs de relations
– identificateurs (clef de BD)
– attributs de relations
– valeurs internes ou détails d’implantation

37

Raffiner au moyen de l’héritage

 Généralisation à l’aide de super-classes


– Recherche de classes avec des attributs, relations ou
opérations similaires
 Spécialisation à l’aide de sous-classes
– Différentes variantes d’une même classe
» Réunion privée, démocratique …
– sous-classe ou attribut pour distinguer ?

38

19
Diagramme de classes d'analyse

0,1

0,1

39

Itérer la modélisation
 Classes manquantes ou en trop
– asymétries : ajout de classes par analogies
– scinder les classes disparates en classes plus
élémentaires
– A quoi sert une classe si pas d’attributs ou d’opérations?
 Relations manquantes, en trop ou mal placées
– si aucune opération ne traverse une relation...
 Attributs
– accéder à un objet par un attribut -> relation qualifiée
 Il faut parfois attendre d’avoir fait les autres vues
pour pouvoir itérer

40

20
Diagrammes dynamiques

 Pour chaque cas d ’utilisation


– un scénario nominal (diagramme de séquence)
» tout se passe bien
– quelques scénarios exceptionnels
» montrent des variations sur le scénario optimal

 Alternativement (Catalysis)
– description par pre/post de l ’état du système avant/après
chaque occurrence d ’événement

41

Exemples de scénarios :
Cas d'utilisation Connexion
Connexion Nominale Connexion Erronée

Connexion Nouvelle

42

21
Exemples de scénarios :
Cas d'utilisation Planification

43

Exemples de scénarios :
Cas d'utilisation Animation 1/3

[Link]=Alice

44

22
Exemples de scénarios :
Cas d'utilisation Animation 2/3

[Link]=Alice

45

Exemples de scénarios :
Cas d'utilisation Animation 3/3

46

23
Exemples de scénarios :
Cas d'utilisation EntréeSortie 1/4

47

Exemples de scénarios :
Cas d'utilisation EntréeSortie 2/4

48

24
Exemples de scénarios :
Cas d'utilisation EntréeSortie 3/4

49

Exemples de scénarios :
Cas d'utilisation EntréeSortie 4/4

50

25
Construction des diagrammes d’états

 Généralisation pour une classe donnée de


l ’ensemble des scénarios qui mettent en jeu ses
instances
– en suivant les transition de l ’automate, on doit pouvoir
retrouver tous les scénarios

51

Diagramme d'états : Réunion


planifier(p)[p=organisateur] entrer(p)[autorisé(p)]

ouvrir(p)[p=animateur]
planifier(p) Planifiée Ouverte sortir(p)[participe(p)]

cloturer(p)[p=animateur]

Fermée

52

26
Diagramme d'états : Réunion
démocratique
planifier(p)[p=organisateur] entrer(p)[autorisé(p)]

when(début)
planifier(p) Planifiée Ouverte sortir(p)[participe(p)]

after(durée)

Fermée

53

Diagramme d'états : Personne


EnRéunion

entre(r)[[Link]é(self)]
connecte(passwd) Connecté Passif

demandeParole
termine
connecte(passwd) déconnecte relâche

Parlant Attente
déconnecte
Déconnecté accordeParole
détruire
contribue

54

27
Conseils pratiques
 Réfléchir au problème avant de commencer
– Soigner le nommage, insister sur le nommage des
relations et des rôles
 Faire simple!
– «Things must be as simple as possible, but no simpler».
A. Einstein
– éviter toute complication nuisible
» utiliser les qualifieurs
» éviter les relations ternaires, quaternaires (trop complexe)
» se dégager de l’implémentation : raisonner objets, classes,
messages, relations, attributs, opérations
– ne pas s’inquiéter si les possibilités de la notation ne sont
pas toutes exploitées
55

Conseils pratiques (suite)


 Approche incrémentale
– Itérer
– Confronter ses modèles aux autres
– Savoir s'arrêter avant d’atteindre la perfection...
» prise en compte qualité (niveau de précision), coûts, délais...
» asservissement au processus de développement
 Faire simple (encore)
– Il semble que la perfection soit atteinte, non quand il n’y a
plus rien à ajouter mais quand il n’y a plus rien à
retrancher - Antoine de Saint-Exupéry, Terre des hommes

56

28
Critères de qualité d’un bon modèle
d’analyse avec UML (1/2)
 Cas d ’utilisation
– environ 6 cas, nommage correct des acteurs (noms) et
des cas (actions)
– pour chaque cas, présence d ’un court texte d ’explication
– complétude vs. Cahier des charges
 Diagramme de classes
– nommage correct des classes (noms)
– définitions présentes dans un dictionnaire
– nommage de toutes les relations, présence des
cardinalités
– attributs seulement de types simples
– non duplication attributs/relations (utilisation héritage)
57

Critères de qualité d’un bon modèle


d’analyse avec UML (2/2)
 Diagrammes de séquence
– attachés à un cas d ’utilisation
– pour chaque cas d ’utilisation,
» présence d ’un scénario nominal
» quelques scénarios exceptionnels
– chaque opération (message reçu par un objet) définie
dans la classe correspondante du diagramme statique
 Diagrammes d ’états
– chaque automate est attaché à une classe
– chaque attribut/opération utilisée sur l ’automate doit être
défini dans la classe englobante
– en suivant les transition de l ’automate, on doit pouvoir
retrouver tous les scénarios
58

29

Vous aimerez peut-être aussi