Présentation UML - Université Nice Sophia Antipolis
Présentation UML - Université Nice Sophia Antipolis
Présentation UML - Université Nice Sophia Antipolis
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Génie Logiciel<br />
& <strong>UML</strong> : Unified Modeling Language<br />
À destination des étudiants du<br />
5 ième année Ingénieur EPU <strong>Nice</strong>-<strong>Sophia</strong> <strong>Antipolis</strong><br />
- option Bioinformatique et Modélisation pour la Biologie (BIMB) –<br />
Objectif :<br />
Savoir gérer la production d’un logiciel depuis les besoins des utilisateurs<br />
jusqu’à sa mise à disposition.<br />
Mireille Blay-Fornarino<br />
EPU<br />
<strong>Sophia</strong> <strong>Antipolis</strong><br />
blay@polytech.unice.fr<br />
http://www.polytech.unice.fr/~blay<br />
Site web du module : http://anubis.polytech.unice.fr/cours/2009_2010:gb5:uml:start<br />
03/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
➡<br />
Contexte<br />
(extraits choisis du site de présentation de l’option)<br />
L'option BIMB (Bio-Informatique et Modélisation pour la<br />
Biologie) propose une formation en bio-informatique à<br />
destination des biologistes…BIMB apporte par ailleurs 5<br />
domaines de compétence : algorithmique et programmation,<br />
systèmes informatiques, systèmes d'information, biologie à<br />
grande échelle et extraction de connaissances, et systèmes<br />
biologiques complexes.<br />
Cette option forme des biologistes qui dominent les deux<br />
langages, celui de la biologie et celui de l'informatique. Cette<br />
double compétence est non seulement un atout pour les<br />
interactions avec les métiers de l'informatique mais permettra<br />
aussi aux futurs ingénieurs d'animer une équipe sur un projet<br />
pluridisciplinaire. En outre, de nombreuses entreprises<br />
d'informatique embauchent des diplômés en bio-informatique.<br />
L'informatique trouve ses applications dans tous les domaines<br />
d'activités de la société et la biologie de fait pas exception : …<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 2
Planning<br />
Bibliographie & références : voir sur le site web.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 3
Plan<br />
I. Problématique du Génie Logiciel<br />
II. Processus de Développement<br />
III. Qualité du logiciel<br />
IV. Méthodologies de développement<br />
V. D’<strong>UML</strong> au RUP<br />
VI. Modélisation : du fonctionnel à l’objet<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 4
I. Quels sont les problèmes du<br />
développement logiciel?<br />
30/09/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
Le premier « bug »<br />
➡ En 1947, un « calculateur programmable » Mark II de<br />
l’université de Harvard s’arrête brutalement.<br />
– Un papillon mort avait provoqué un court-circuit<br />
➡ Ce « bug » n’était pas de nature logicielle<br />
– Il relève en partie de la légende…<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 6
Problématique du génie logiciel<br />
➡<br />
➡<br />
➡<br />
Programming-in-the-Small<br />
– Problème de la qualité interne d'un composant<br />
Programming-in-the-Large<br />
– Faire face à la construction de systèmes de plus en plus gros :<br />
non spécifique au logiciel, mais aggravé par sa “mollesse”.<br />
– Problème de gestion de la complexité, de communication, etc.<br />
– Maîtrise du processus de développement: délais, coûts, qualité.<br />
Programming-in-the-Duration<br />
– Problème de la maintenance corrective et évolutive.<br />
– Notion de ligne de produits.<br />
3/10/2009<br />
Mireille Pr. Jean-Marc Blay-Fornarino,<br />
Jézéquel<br />
blay@polytech.unice.fr 7
Problématique du génie logiciel<br />
Programming-in-the-Small<br />
Problème de la validité du logiciel<br />
Acquérir une valeur positive n<br />
Tant que n > 1 faire<br />
si n est pair<br />
alors n := n / 2<br />
sinon n := 3n+1<br />
Sonner alarme;<br />
Prouver que le prog. termine pour tout n?<br />
-> Indécidabilité de certaines propriétés<br />
Recours au test<br />
– ici, si machine 32 bits, 2^31 = 10^10 cas de tests<br />
– 5 lignes de code => 10 milliards de tests !<br />
3/10/2009<br />
Mireille Pr. Jean-Marc Blay-Fornarino, Jézéquel<br />
blay@polytech.unice.fr 8
Problématique du génie logiciel<br />
Programming-in-the-Small<br />
Préconditions :<br />
Syntaxe JML<br />
Ce qui doit être satisfait<br />
/**<br />
pour appeler la méthode<br />
* @param double x réel positif<br />
* @result double racine carrée de x<br />
*/<br />
/*@<br />
@ requires x >= 0.0 ;<br />
@ ensures x == \result * \result ;<br />
@*/<br />
public static double sqrt(double x) {<br />
Postconditions :<br />
Ce qui est satisfait en cas de retour<br />
normal<br />
Invariant =<br />
propriété toujours vraie quelque soit l’état du système<br />
Assertions<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 9
Programming-in-the-Small<br />
Produire des programmes prouvés<br />
➡ C’est possible…<br />
– On peut construire des programmes de tel manière qu’ils soient<br />
prouvables<br />
– En partie automatisable (Atelier B, etc.)<br />
• Outils spécifiques<br />
➡ …mais coûteux<br />
– Preuve au moins aussi complexe que le code<br />
– Autant de chances de se tromper dans la preuve…<br />
➡ En pratique :<br />
– Réservé à des (petits) sous-systèmes (très) critiques<br />
– Recours aux tests pour le reste<br />
• On reviendra dessus…<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 10
Programming-in-the-Large :<br />
Gérer la complexité due à la taille<br />
a)<br />
c)<br />
b)<br />
d)<br />
Si l'automobile avait suivi le même développement que l'ordinateur, une Rolls-Royce coûterait aujourd'hui 100$, pourrait<br />
rouler un million de kilomètres avec un litre d'essence, et exploserait une fois par an en tuant tout le monde à bord.<br />
Robert Cringely.<br />
3/10/2009<br />
Mireille Pr. Jean-Marc Blay-Fornarino, Jézéquel<br />
blay@polytech.unice.fr 11
Programming-in-the-Large :<br />
Augmentation exponentielle de la taille du logiciel<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 12
Programming-in-the-Large :<br />
Echecs logiciels<br />
➡ ATT (1990):<br />
interruption du service téléphonie pendant<br />
5 heures à l'Est des Etats-Unis.<br />
➡ Aéroport de Denver, 1993-1995:<br />
logiciel de suivi des bagages,<br />
coût 3 millard de $, retard de 18 mois.<br />
➡<br />
National Cancer Institute, Panama City,<br />
2000 : Logiciel non adapté aux médecins<br />
=> 8 morts, 20 personnes “surexposées”.<br />
Premier vol d’Ariane 5 (1996)<br />
➡ etc, etc. Out of range<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 13
Gestion de la complexité due à la taille :<br />
diviser pour résoudre<br />
➡<br />
➡<br />
3/10/2009<br />
Aspects techniques<br />
– en s'appuyant techniquement sur la modularité<br />
• « Encapsulation et masquage d'information, faible couplage »<br />
• Importance de la notion d’Objets<br />
Aspects organisationnels<br />
– S’organiser au delà de la réalisation : méthodes<br />
• « Analyse, conception »<br />
• « Validation et vérification »<br />
– Ingénierie de la conduite de projet = compromis entre<br />
• respect des délais<br />
• respect des coûts<br />
• réponse aux besoins/assurance qualité<br />
– Problèmes de gestion de ressources (humaines, etc.) et<br />
de synchronisation entre tâches<br />
Pr. Mireille Jean-Marc Blay-Fornarino,<br />
Jézéquel<br />
blay@polytech.unice.fr 14
Programming-in-the-Large :<br />
Sort des projets informatiques<br />
Standish Group in 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Programming-in-the-Large :<br />
Amélioration de la production de logiciels<br />
http://www.richmondgov.com/departments/dit/docs/PolCo200203.pdf<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Coûts du développement<br />
3/10/2009<br />
Mireille Pr. Jean-Marc Blay-Fornarino, Jézéquel<br />
blay@polytech.unice.fr
Programming-in-the-Duration<br />
Gestion de l’évolution d'un système<br />
➡ D’après Swanson & Beath (Maintaining Information<br />
Systems in Organizations, 1989)<br />
– Durée de vie moyenne d’un système : 6.6 ans<br />
– 26% des systèmes sont âgés de plus de 10 ans<br />
➡ Problème de la maintenance corrective et évolutive<br />
– Adaptation aux changements des besoins<br />
– Adaptation aux changements de l’environnement<br />
• Support nouvelles plateformes, bug « an 2000 »<br />
➡ Notion de ligne de produits<br />
– Anticiper des familles de besoins<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 15
Programming-in-the-Duration<br />
Problème de la maintenabilité<br />
➡<br />
➡<br />
Exemple critique dû à M. Jackson<br />
Barques à louer sur un lac<br />
– Enregistrement des départs (S) et retours (E) sur un terminal, avec<br />
horodatage automatique<br />
➡ On veut chaque jour un rapport avec :<br />
– le nombre de sessions<br />
– la durée moyenne d'une session<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 16
Programming-in-the-Duration<br />
Approche « droit au but »<br />
➡ Décomposition fonctionnelle en 1980<br />
➡<br />
➡<br />
Structured Analysis and Design technique : SADT<br />
– Le système a une fonction…<br />
– Décomposée récursivement en sous-fonctions…<br />
• Jusqu’à tomber sur des fonctions élémentaires<br />
• Reliées par flots de données<br />
Approche modulaire et hiérarchique<br />
– Permet de gérer toute taille de problème<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Programming-in-the-Duration<br />
Réalisation<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 17
Programming-in-the-Duration<br />
Maintenance<br />
➡ Demandes de modifications :<br />
– Nombre de sessions depuis le début de la journée<br />
– durée de la session la plus longue<br />
– un état pour le matin, un autre pour le soir<br />
– corriger la perte de S ou de E<br />
➡ Dans la réalité, c’est pire!<br />
– Nokia rapporte à propos de son infrastructure GSM<br />
• 50% des requirements (besoins numérotés) ont changé après le gel du cahier<br />
des charges<br />
• 60% de ceux-ci ont changé au moins 2 fois!<br />
– C’est le cas général plutôt que l’exception<br />
➡ Cahier des charges figé = rêve des années 70<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 18
Programming-in-the-Duration<br />
Coût de la maintenance<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 19
Programming-in-the-Duration<br />
Solution : approche par modélisation<br />
➡ Aspects techniques<br />
– D’abord modéliser ce qui est stable dans un système<br />
• Entités et événements selon Jackson (JSD)<br />
– Ensuite ajouter les fonctionnalités<br />
• C’est la partie visible, donc ce qui bouge le plus<br />
• Maintenance traitée idem développement initial<br />
– Assurer une meilleure continuité entre<br />
• Domaine du problème<br />
• Domaine des solutions<br />
➡ Aspects organisationnels<br />
– Traçabilité<br />
– Gestion contrôlée des changements<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 20
Problématique du génie logiciel<br />
WHAT IS SOFTWARE ENGINEERING?<br />
The IEEE Computer Society defines software<br />
engineering as<br />
“(1) The application of a systematic, disciplined,<br />
quantifiable<br />
approach to the development, operation, and<br />
maintenance of software; that is, the application of<br />
engineering to software.<br />
(2) The study of approaches as in (1).”<br />
http://www.swebok.org/<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 21
II. Processus de Développement …<br />
Ingénierie du logiciel : D’abord des<br />
échanges<br />
30/09/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
Processus de Développement<br />
Symptômes Courants d'Echec des Projets<br />
Mauvaise compréhension des besoins des utilisateurs<br />
finaux.<br />
Incapacité de gérer les modifications des exigences.<br />
Les modules qui ne fonctionnent pas ensemble.<br />
Du logiciel difficile à maintenir ou à faire évoluer.<br />
Du logiciel de mauvaise qualité (beaucoup d'anomalies).<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 23
Processus de Développement<br />
7 bonnes pratiques<br />
Unified Process<br />
Développement de manière itérative<br />
Développement à base de composants centré<br />
sur l’architecture<br />
Pilotage par les risques<br />
Gestion des exigences<br />
Maîtrise des modifications<br />
Evaluation continue de la qualité<br />
Modélisation visuelle<br />
Ce sont<br />
celles du<br />
UP…<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 24
Processus de Développement<br />
7 bonnes pratiques<br />
Unified Process<br />
Développement de manière itérative<br />
Développement à base de composants centré<br />
sur l’architecture<br />
Pilotage par les risques<br />
Gestion des exigences<br />
Maîtrise des modifications<br />
Evaluation continue de la qualité<br />
Modélisation visuelle<br />
Ce sont<br />
celles du<br />
UP…<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 24
(1) Qu'est-ce que le Développement Itératif ?<br />
• Basé sur de petites étapes, le feedback et l’adaptation.<br />
• Aussi appelé évolutif, en spirale, . . .<br />
2 ou 4 semaines 2 ou 4 semaines<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 25
(1) Qu'est-ce que le Développement Itératif ?<br />
• Basé sur de petites étapes, le feedback et l’adaptation.<br />
• Aussi appelé évolutif, en spirale, . . .<br />
2 ou 4 semaines 2 ou 4 semaines<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 25
(2) Développement à base de composants<br />
centré sur l’architecture<br />
➡<br />
Au cours des premières itérations, on construit et on<br />
valide une architecture logicielle<br />
– A partir de composants existants, standards du marché<br />
– Éviter les développements spécifiques<br />
➡<br />
Construire l’architecture et la tester tôt même si la<br />
solution n’est pas parfaite et incomplète<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 26
(3) Pilotage par les risques<br />
➡ Un risque est un<br />
événement redouté dont<br />
l’occurrence est plus ou<br />
moins prévisible et<br />
provoquant, lorsqu’il se<br />
produit, des dommages<br />
sur le projet.<br />
➡ Il ne faut pas confondre risque et problème.<br />
l Un problème est un risque qui s’est révélé.<br />
Vous avez la grippe, je vais vous<br />
prescrire des antibiotiques<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 27
(3) Pilotage par les risques<br />
➡ Un risque est un<br />
événement redouté dont<br />
l’occurrence est plus ou<br />
moins prévisible et<br />
provoquant, lorsqu’il se<br />
produit, des dommages<br />
sur le projet.<br />
➡ Il ne faut pas confondre risque et problème.<br />
l Un problème est un risque qui s’est révélé.<br />
L’hiver,<br />
il faut se faire vacciner<br />
contre la grippe<br />
Vous avez la grippe, je vais vous<br />
prescrire des antibiotiques<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 27
Le pilotage par les risques, c’est :<br />
➡ Analyser les risques potentiels le plus tôt possible –<br />
dès les premières itérations<br />
– Les hiérarchiser<br />
– Commencer par travailler sur les éléments les plus exposés<br />
➡ Penser aux risques techniques, mais aussi :<br />
– aux risques liés au client<br />
– aux risques liés au domaine applicatif<br />
– aux risques liés à l’organisation du projet<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 28
(4) Identification des exigences<br />
➡ Qu’est ce qu’une exigence ?<br />
– Condition à laquelle le système doit satisfaire ou une capacité<br />
dont il doit faire preuve. [RUP]<br />
➡ On distingue :<br />
– Les exigences fonctionnelles<br />
• Qui formulent ce que le système est chargé de faire<br />
– Les exigences non fonctionnelles<br />
• Décrivent la qualité des services attendus du système (performance,<br />
sécurité de fonctionnement, IHM)…<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 29
(4) La gestion des exigences<br />
Facteurs de<br />
dépassement<br />
et d’abandon<br />
1) Manque de participation des utilisateurs<br />
2) Identification incomplète des Besoins<br />
3) Besoins qui changent au cours du projet<br />
3/10/2009<br />
Standish Group, ‘97<br />
➡Gérer les exigences<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 30
La Gestion des Exigences<br />
➡<br />
Cela ne signifie pas:<br />
– Avoir des exigences correctes dés le démarrage du projet.<br />
➡<br />
C'est irréaliste…<br />
➡<br />
Cela signifie:<br />
– Ne pas être négligent.<br />
– Les recueillir efficacement.<br />
– Enregistrer, tracer, organiser<br />
– Et cela se rapporte au fait de considérer les changements de<br />
manière formelle (maîtriser les changements).<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 31
(5) Qu’est-ce qu’une demande de<br />
changement ?<br />
➡<br />
➡<br />
Demande de changement (Change Request ou CR)<br />
– Requête pour modifier un artefact ou un processus. Dans la<br />
documentation d’une demande de changement figurent des<br />
informations sur l’origine et l’impact du problème considéré, sur la<br />
solution proposée et sur son coût.<br />
Deux types<br />
– Demande d’Evolution<br />
• Spécifie une nouvelle caractéristique du système ou un changement<br />
par rapport au comportement établi.<br />
– Rapport d’Anomalie<br />
• Erreur ou défaut<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 32
(6) Faire les Tests à la fin ?<br />
Il est démontré que :<br />
- Corriger une anomalie plus tard coûte 10-100 fois plus que de la corriger à<br />
son origine.<br />
Software Engineering Economics, Boehm, 1981.<br />
- Les produits avec le moins d'anomalies ont les délais les plus courts.<br />
Applied Software Measurement, 1 st edition, Jones 1991.<br />
- La mauvaise qualité est la raison la plus courante de dépassement des<br />
délais.<br />
Assessment and Control of Software Risks, Jones 1994, 4000 project study.<br />
- La correction des anomalies consomme 40-50% du coût total.<br />
IEEE Computer, Boehm, Sept 1987.<br />
- 60% des anomalies existent au moment de la conception.<br />
Principles of Software Engineering Management, Gilb, 1988.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 33
Evaluation continue de la Qualité<br />
➡ Solution construite – contrôle produit<br />
– Vérification de l’adéquation de la solution aux besoins<br />
– Tests systématiques et périodiques<br />
– Actions qualité<br />
➡ Avantages :<br />
– Identification précoce des dysfonctionnements<br />
– Réactivité aux déviations constatées<br />
– Maîtrise des risques de dérapage<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 34
III. Qualité du logiciel ?<br />
30/09/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
Evaluation de la Qualité du logiciel<br />
➡<br />
Il est difficile d’évaluer directement la qualité du logiciel lui-même<br />
– Utilisation de métriques ?<br />
‣ Au niveau analyse, conception, architecture, code ?<br />
‣ Nombreuses métriques différentes, nombreux débats…<br />
➡<br />
➡<br />
Il semble plus atteignable d’évaluer la qualité du processus de<br />
développement de logiciel<br />
– Normes ISO 9000<br />
– Capability Maturity Model Integration (CMMI)<br />
La qualité (administrative, bureaucratique…) du processus n'est<br />
pas une garantie absolue de la qualité du produit<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 36
Évaluation de la qualité du logiciel<br />
Normes ISO 9000<br />
➡<br />
Normes générales et internationales de qualité<br />
– Familles de normes (9000 à 9004) selon l’activité de l’entreprise<br />
(ou d’un de ses départements)<br />
– Procédure de certification et d’accréditation<br />
– Applicable aussi bien à la fabrication des boulons, des<br />
automobiles, grossiste de poissons ou même à la formation des<br />
ingénieurs !<br />
– De nature très bureaucratique !<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Évaluation de la qualité du logiciel<br />
Capability Maturity Model Integration<br />
CMMI<br />
SM<br />
➡<br />
➡<br />
Analyse de la maturité des entreprises (ou d’un de<br />
leurs départements) par rapport à l’organisation de<br />
leur processus de développement de logiciel<br />
Modèle établi par le Software Engineering Institute,<br />
université de Carnegie Mellon, Pittsburg (SEI-CMI)<br />
– Première publication en 1986<br />
– Spécifique au logiciel (CMM)<br />
– Révisé en 2002<br />
– Étendu à l’ingénierie des systèmes (CMMI)<br />
The CMMI model is not a process.<br />
This model shows what to do,<br />
Not how to do it or who does it.<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 37
Évaluation de la qualité du logiciel<br />
Capability Maturity Model Integration<br />
CMMI<br />
SM<br />
On ne peut pas sauter une marche, ni prendre l’escalier au milieu !<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 38
Évaluation de la qualité du logiciel<br />
Capability Maturity Model Integration<br />
CMMI<br />
SM<br />
Level<br />
5 Optimizing<br />
4 Quantitatively<br />
Managed<br />
Focus<br />
Continuous<br />
Process<br />
Improvement<br />
Quantitative<br />
Management<br />
Process Areas<br />
Organizational Innovation and Deployment<br />
Causal Analysis and Resolution<br />
Organizational Process Performance<br />
Quantitative Project Management<br />
Quality<br />
Productivity<br />
3 Defined<br />
Process<br />
Standardization<br />
Requirements Development<br />
Technical Solution<br />
Product Integration<br />
Verification<br />
Validation<br />
Organizational Process Focus<br />
Organizational Process Definition<br />
Organizational Training<br />
Integrated Project Management for IPPD<br />
Risk Management<br />
Integrated Teaming<br />
Integrated Supplier Management<br />
Decision Analysis and Resolution<br />
Organizational Environment for Integration<br />
2 Managed<br />
1 Initial<br />
Basic<br />
Project<br />
Management<br />
Requirements Management<br />
Project Planning<br />
Project Monitoring and Control<br />
Supplier Agreement Management<br />
Measurement and Analysis<br />
Process and Product Quality Assurance<br />
Configuration Management<br />
Risk,<br />
Rework<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Évaluation de la qualité du logiciel<br />
Capability Maturity Model Integration<br />
CMMI<br />
SM<br />
➡<br />
Évaluation du CMMI<br />
– Enquête d’avril 2002 à août 2004, publiée en septembre 2004<br />
• 424 évaluations<br />
• 385 organisations<br />
• 206 entreprises<br />
• 1704 projets<br />
• 50,6 % des entreprises non US<br />
– Résultats<br />
• 2/3 des entreprises au niveau 2 ou 3<br />
• mais quand même 1/4 au niveau 5<br />
Ce peut être un facteur de sélection d’une entreprise par un client ou un<br />
collaborateur.<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 39
Évaluation de la qualité du logiciel<br />
➡<br />
➡<br />
Le CMMI et l'ISO 9001 sont compatibles et<br />
complémentaires. Ils se basent tous les deux sur une<br />
approche processus et sur une notion d'amélioration<br />
continue.<br />
Beaucoup d'entreprises utilisent l'ISO 9001 au niveau<br />
global et le CMMI au niveau des départements de<br />
développement.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
IV. Méthodologies de développement<br />
30/09/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
Méthode, méthodologie et cycle de vie<br />
➡<br />
➡<br />
➡<br />
Cycle de vie<br />
– Période entre l’idée du logiciel et sa mise en service<br />
Méthodologie<br />
– Identification et enchaînement des activités et phases du<br />
processus de développement<br />
– Identification des pré- et post-conditions de chaque phase<br />
– Définition des procédures de gestion et de mesure<br />
– Gestion des équipes, des moyens, du budget…<br />
Méthode<br />
– Approche technique pour aborder une ou plusieurs phases ou<br />
activités<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 41
Méthode, méthodologie et cycle de vie<br />
➡<br />
➡<br />
Exemples de méthodes<br />
– <strong>UML</strong> : un langage de modélisation<br />
• Activités de spécification et conception<br />
– Z : une méthode<br />
• Activité de spécification<br />
Exemples de méthodologies<br />
– Cascade (waterfall)<br />
– Développement en spirale, …<br />
– Unified Process (UP),<br />
– eXtreme Programming (XP)<br />
Jean-Paul 3/10/2009Rigault 2005<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 42
Méthode, méthodologie et cycle de vie<br />
Activités lors du processus (1)<br />
➡<br />
➡<br />
1) Définition des besoins (Requirements)<br />
– Expression des besoins dans le langage du client<br />
2) Spécifications<br />
– Traduction des besoins dans un langage plus informatique<br />
– Description du système d’un point de vue extérieur<br />
• Ce qu’il doit faire<br />
• Pas comment il le fait<br />
– Spécifications fonctionnelles et non-fonctionnelles<br />
– Doit rester accessible au client (contrat)<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 43
Méthode, méthodologie et cycle de vie<br />
Activités lors du processus (2)<br />
➡<br />
Spécifications (suite)<br />
– Spécifications fonctionnelles<br />
• Les fonctions/services rendus par le système<br />
– Spécifications non-fonctionnelles<br />
• Utilisabilité<br />
• Fiabilité (reliability)<br />
• Performance<br />
• Supportabilité (maintenabilité)<br />
• Conditions d’implémentation, de déploiement…<br />
• Interface<br />
• Conditions d’exploitation<br />
• Conditionnement<br />
• Aspects juridiques<br />
• Aspects financiers…<br />
Jean-Paul 3/10/2009Rigault 2005<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 44
Méthode, méthodologie et cycle de vie<br />
Activités lors du processus (3)<br />
➡<br />
➡<br />
➡<br />
➡<br />
3) Conception<br />
– Traduction des spécifications en termes d’artefacts logiciels<br />
– Peut être plus ou moins détaillée<br />
4) Codage<br />
– Traduction de la conception en code<br />
5) Test unitaires<br />
– Test de chaque module individuellement<br />
– Généralement de la responsabilité du développeur du module<br />
6) Tests d’intégration<br />
– Test de la composition de plusieurs modules (sous-systèmes)<br />
Jean-Paul 3/10/2009Rigault 2005<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 45
Méthode, méthodologie et cycle de vie<br />
Activités lors du processus (4)<br />
➡<br />
➡<br />
➡<br />
7) Validation<br />
– Test du système final par rapport aux spécifications<br />
8) Recette<br />
– Acceptation du système final<br />
– Peut être l’objet d’une procédure formelle et parfois officielle<br />
9) Gestion des changements, gestion de configuration<br />
➡<br />
Gestion de projet<br />
– Orthogonale à toutes ces activités<br />
– Gestion du temps, des coûts, des équipes<br />
– Gestion des relations avec les clients…<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 46
Exemples de méthodologie<br />
Cycle exploratoire<br />
➡<br />
➡<br />
Essais-erreurs<br />
Admissible tel quel pour<br />
– du prototypage<br />
– de très petits projets développés<br />
– par de très petites équipes<br />
– avec de très petits enjeux<br />
➡ Cependant, retour en force dans les processus « agiles »<br />
– mais sous une forme beaucoup plus élaborée<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 47
Processus «classique»<br />
➡<br />
Cycle de vie normalisé AFNOR<br />
Analyse<br />
• Expression du besoin<br />
• Analyse détaillée<br />
Conception<br />
• Etude technique préalable<br />
• Conception préliminaire<br />
• Conception détaillée<br />
Validation<br />
• Validation<br />
• Mise en œuvre<br />
Intégration<br />
• Intégration<br />
• Tests d'Intégration<br />
Variante US :<br />
Cycle en « cascade »<br />
3/10/2009<br />
Réalisation<br />
• Codage<br />
• Mise au point<br />
• Tests unitaires<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 48
Cycle en V<br />
Expression des besoins<br />
Maintenance<br />
Spécifications<br />
Validation (recette)<br />
Conception générale<br />
Tests d’intégration<br />
Conception<br />
Tests unitaires<br />
Réalisation (codage)<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Problèmes avec le processus classique...<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 49
Exemples de méthodologies<br />
Cycle en V, caricature ;-)<br />
Cahier des charges<br />
Maintenance<br />
Euphorie<br />
Promotion des autres<br />
Inquiétude<br />
Panique<br />
Études<br />
Développement<br />
Mise en œuvre<br />
Punition des innocents<br />
Production<br />
Recherche des coupables<br />
Tests<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
➡<br />
➡<br />
➡<br />
Exemples de méthodologies<br />
Développement en V<br />
3/10/2009<br />
Tentative « tayloriste » du développement de logiciel<br />
– Une idée « linéaire » du développement, non conforme à la pratique réelle<br />
Processus fondé sur des documents<br />
– Risque de documents artificiels<br />
– Délai d’approbation des documents<br />
Erreurs détectées tardivement<br />
– On ne voit quelque chose « tourner » qu’à la fin<br />
– Les spécifications doivent être stables et correctes<br />
➡ Ne facilite pas<br />
– l’intégration du client<br />
– le prototypage<br />
– la réutilisation<br />
– la traçabilité…<br />
➡ Cependant, le processus en cascade est souvent apprécié des<br />
managers<br />
– Générateur de pouvoir<br />
– Facile à planifier, Mais il est moins facile de respecter le plan !<br />
L’utilisation du processus en cascade est (maintenant) reconnu<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 50<br />
comme une des sources majeures des échecs de projets logiciels
Exemples de méthodologies<br />
Cycle de vie en « spirale »<br />
Analyse détaillée<br />
Conception<br />
Analyse<br />
préliminaire « (de risque) »<br />
V1 V2<br />
Réalisation<br />
Validation<br />
Intégration<br />
Synergie avec approche par objets<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 51
Exemples de méthodologies<br />
Cycle de vie en « spirale »<br />
➡<br />
Bien adapté aux développements innovants<br />
– les progrès sont tangibles : c ’est du logiciel qui « tourne » et pas<br />
seulement des kilos de documents<br />
– possibilité de s ’arrêter « à temps », i.e. avant que l ’irréalisabilité du<br />
projet ait créé un gouffre financier<br />
➡<br />
Moins simple à manager<br />
– difficile à gérer en situation contractuelle<br />
– mal contrôlé => on retombe dans le hacking<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 52
Exemples de méthodologies<br />
Cycle de vie en « spirale »<br />
➡<br />
Bien adapté aux développements innovants<br />
– les progrès sont tangibles : c ’est du logiciel qui « tourne » et pas<br />
seulement des kilos de documents<br />
– possibilité de s ’arrêter « à temps », i.e. avant que l ’irréalisabilité du<br />
projet ait créé un gouffre financier<br />
➡<br />
Moins simple à manager<br />
– difficile à gérer en situation contractuelle<br />
– mal contrôlé => on retombe dans le hacking<br />
À la base de tous les processus « agiles »<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 52
Exemples de méthodologies<br />
Processus modernes « orientés objets » (1)<br />
➡<br />
Le paradigme objet favorise<br />
– la réutilisation<br />
– le développement incrémental (et donc itératif)<br />
– et donc l’intégration du client<br />
– et aussi la gestion des changements de spécification<br />
➡<br />
la modélisation (avec <strong>UML</strong>)<br />
– par réduction de la distance entre le domaine de l’application et sa<br />
représentation informatique<br />
3/10/2009<br />
Jean-Paul Rigault 2005<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 53
Exemples de méthodologies<br />
Processus modernes « orientés objets » (1)<br />
➡<br />
Méthodologies lourdes<br />
– Reposent sur une modélisation importante (utilisation d’<strong>UML</strong>)<br />
– Exemples : Rational Unified Process (RUP), Model-Driven<br />
Architecture (MDA) de l’OMG<br />
➡ Méthodologies agiles<br />
– Modélisation et documentation limitées et légères<br />
– Itérations courtes et « productives »<br />
– Importance des tests<br />
– Importance du rôle des individus<br />
– Exemples : Unified Process (UP), eXtreme Programming, …<br />
3/10/2009<br />
Jean-Paul Rigault 2005<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 54
V. D’<strong>UML</strong> au RUP<br />
30/09/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
D’<strong>UML</strong> au RUP<br />
Qu’est-ce qu’<strong>UML</strong> ?<br />
➡<br />
<strong>UML</strong> is a language for<br />
– Visualizing<br />
– Specifying<br />
– Constructing<br />
– Documenting<br />
Syntaxe et sémantique<br />
Graphique<br />
Architecture et comportement<br />
Génération de code<br />
Descriptions graphiques et textuelles<br />
The artifacts of<br />
a software-intensive system<br />
On ne décrit pas l’univers tout entier…<br />
Le logiciel joue un rôle majeur<br />
Jean-Paul 3/10/2009Rigault 2005<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 56
Qu’est-ce qu’<strong>UML</strong> ?<br />
Pourquoi utiliser la Modélisation Visuelle?<br />
➡<br />
On doit enregistrer nos pensées et communiquer en<br />
utilisant des langages visuels et schématiques (par<br />
ex., <strong>UML</strong>).<br />
➡ Parce que :<br />
– On estime qu'au moins 50% de notre cerveau est impliqué dans le<br />
processus visuel.<br />
– Les langages visuels sont naturels et faciles pour notre cerveau.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 57
Qu’est-ce qu’<strong>UML</strong> ?<br />
Modélisation<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 58
Qu’est-ce qu’<strong>UML</strong> ?<br />
Modélisation<br />
➡<br />
modèle : simplification de la réalité dont les buts sont<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 58
Qu’est-ce qu’<strong>UML</strong> ?<br />
Modélisation<br />
➡<br />
modèle : simplification de la réalité dont les buts sont<br />
Visualiser<br />
le système<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 58
Qu’est-ce qu’<strong>UML</strong> ?<br />
Modélisation<br />
➡<br />
modèle : simplification de la réalité dont les buts sont<br />
Visualiser<br />
le système<br />
Spécifier la<br />
structure et le<br />
comportement<br />
du système<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 58
Qu’est-ce qu’<strong>UML</strong> ?<br />
Modélisation<br />
➡<br />
modèle : simplification de la réalité dont les buts sont<br />
Visualiser<br />
le système<br />
Spécifier la<br />
structure et le<br />
comportement<br />
du système<br />
Aider à la construction<br />
du système<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 58
Qu’est-ce qu’<strong>UML</strong> ?<br />
Modélisation<br />
➡<br />
modèle : simplification de la réalité dont les buts sont<br />
Visualiser<br />
le système<br />
Spécifier la<br />
structure et le<br />
comportement<br />
du système<br />
Aider à la construction<br />
du système<br />
3/10/2009<br />
Documenter<br />
les décisions<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 58
D’<strong>UML</strong> au RUP<br />
Qu’est-ce qu’<strong>UML</strong> ?<br />
Use Case<br />
Diagrams Use Case<br />
Diagrams Sequence<br />
Diagrams<br />
Use Case<br />
Diagrams Use Case<br />
Diagrams Use Case<br />
Diagrams<br />
State<br />
Diagrams State<br />
Diagrams Class<br />
Diagrams<br />
State<br />
Diagrams State<br />
Diagrams Object<br />
Diagrams<br />
Scenario<br />
Diagrams Scenario<br />
Collaboration<br />
Diagrams<br />
Diagrams<br />
Models<br />
State<br />
Diagrams State<br />
Diagrams Component<br />
Diagrams<br />
Scenario<br />
Diagrams Scenario<br />
Diagrams Statechart<br />
Diagrams<br />
dynamiques<br />
Activity<br />
Diagrams<br />
Component<br />
Diagrams Component<br />
Diagrams Deployment<br />
Diagrams<br />
statiques<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 59
Qu’est-ce qu’<strong>UML</strong> ?<br />
Diagrammes des cas d’utilisation<br />
Entrer<br />
DébloquerLesPortes<br />
PorteurDeCarte<br />
Capteur<br />
AIncendie<br />
Sortir<br />
Gardien<br />
ListerLes<br />
TentativesDeFraudes<br />
GérerLesCartes<br />
Administrateur<br />
SystèmeDeContrôleDAcces<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 60
Qu’est-ce qu’<strong>UML</strong> ?<br />
Diagrammes de classes<br />
1<br />
Client<br />
signataire<br />
1..4 0..*<br />
titulaires<br />
Compte<br />
numéro<br />
solde<br />
...<br />
1..*<br />
Banque<br />
numéro<br />
nom<br />
1..*<br />
0..*<br />
0..*<br />
CarteBleue<br />
Code<br />
retraitMax<br />
0..1<br />
1<br />
AcceptéPar><br />
1..*<br />
Distributeur<br />
Consortium<br />
1<br />
0..*<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 61
Qu’est-ce qu’<strong>UML</strong> ?<br />
Diagrammes d’objets<br />
: CarteBleue<br />
EstAcceptéPar><br />
: Distributeur<br />
signataire<br />
fred : Client<br />
titulaires<br />
c4 : Compte<br />
: Banque<br />
: Consortium<br />
: CarteBleue<br />
signataire<br />
paul : Client<br />
titulaires<br />
c1 : Compte<br />
: Banque<br />
pierre : Client<br />
titulaires<br />
titulaires<br />
c2 : Compte<br />
: Consortium<br />
marie : Client<br />
titulaires<br />
c3 : Compte<br />
: Banque<br />
signataire<br />
: CarteBleue<br />
sophie : Client<br />
EstAcceptéPar><br />
: Distributeur<br />
EstAcceptéPar><br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 62
Qu’est-ce qu’<strong>UML</strong> ?<br />
Diagrammes de séquence<br />
paul<br />
le distrib. la carte de P. la reserve la banque<br />
le compte de P.<br />
retirer(500)<br />
lireN°Compte()<br />
retirerDeLArgent(500,88219)<br />
débiter(500)<br />
sortirDesBillets(5)<br />
sortirBillets ()<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 63
Qu’est-ce qu’<strong>UML</strong> ?<br />
Diagrammes de collaboration<br />
6 : prendreBillet()<br />
la reserve de billets<br />
5 : sortirDesBillets(5)<br />
paul<br />
1 : retirer(500)<br />
le distributeur la banque<br />
88219 2 : lireN°Compte()<br />
3 : retirerDeLArgent<br />
(500,88219)<br />
4 : débiter(500)<br />
la carte de P.<br />
le compte de paul<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 64
Qu’est-ce qu’<strong>UML</strong> ?<br />
Diagrammes d’états<br />
En attente<br />
carte insérée<br />
En attente du code<br />
carte retirée<br />
mauvais code<br />
code frappé<br />
En attente retrait carte<br />
En vérification<br />
code bon<br />
montant incorrect<br />
En attente du montant<br />
montant correct<br />
billets retirés<br />
En distribution<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 65
Modélisation <strong>UML</strong><br />
➡ Modélisation selon 4 points de vue principaux :<br />
– Vision utilisateur du système<br />
• Cas d’utilisation<br />
– Aspects statiques du système<br />
• Description des données et de leurs relations<br />
• Structuration en paquetages<br />
– Aspects dynamiques du système (comportemental)<br />
• Diagramme de séquences (scénarios)<br />
• Diagramme de collaborations (entre objets)<br />
• Diagramme d’états-transitions (Harel)<br />
• Diagramme d’activités<br />
– Vision implantation<br />
• Diagramme de composants et de déploiement<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 66
D’<strong>UML</strong> au RUP<br />
Divers modes d’utilisation d’<strong>UML</strong><br />
➡<br />
➡<br />
➡<br />
Mode esquisse (sketch)<br />
– Informelle, incomplète<br />
– Souvent manuelle (tableau)<br />
Mode plan (blue print)<br />
– Diagrammes détaillés<br />
– Production de documents<br />
– Pro- et rétro-ingénierie<br />
Mode langage de programmation<br />
– Spécification complète et exécutable<br />
– Pas vraiment disponible actuellement !<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 67
D’<strong>UML</strong> au RUP<br />
Diverses cibles d’utilisation d’<strong>UML</strong><br />
➡<br />
➡<br />
➡<br />
Point de vue conceptuel<br />
– Modélisation d’entités du monde applicatif<br />
– Analyse de domaine<br />
Point de vue de spécification logicielle<br />
– Abstraction d’entités du monde réel<br />
– Composants logiciels<br />
– Analyse OO<br />
Point de vue d’implémentation logicielle<br />
– Artefacts et composants pour une technologie particulière (Java,<br />
C++, BD…)<br />
– Conception OO<br />
Jean-Paul Rigault 2005<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Rational Unified Process (RUP)<br />
➡<br />
➡<br />
➡<br />
<strong>UML</strong> se veut indépendant de toute méthodologie<br />
Cependant, il est mieux adapté à un processus (tel le<br />
RUP)<br />
– dirigé par les cas d’utilisation (use-case driven)<br />
– centré sur l’architecture (architecture centric)<br />
– itératif et incrémental<br />
Le RUP propose en outre<br />
– des techniques de modélisation pour les différentes phases et<br />
activités<br />
– une organisation des rôles et des flots lors du processus de<br />
développement<br />
Jean-Paul 3/10/2009Rigault 2005<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 68
Rational Unified Process (RUP)<br />
Itératif et incrémental<br />
Pré-étude/INCEPTION<br />
• Cas d'utilisation<br />
• Modèle des objets du<br />
domaine<br />
• Interfaces<br />
• Maquettes<br />
Quoi ?<br />
Pour qui ?<br />
Combien ?<br />
Étude de marché<br />
Opportunité<br />
économique<br />
<strong>UML</strong><br />
Modèle utilisateur<br />
Modèle statique<br />
Modèle dynamique<br />
Modèle d’implantation<br />
VALIDATION/Transition<br />
• Validation technique<br />
• Validation par les<br />
utilisateurs<br />
Transfert vers<br />
les utilisateurs<br />
3/10/2009<br />
ELABORATION<br />
• Architecture<br />
• Modèles des objets et<br />
scénarios<br />
• Règles de transformation<br />
(Design patterns)<br />
Analyse des<br />
besoins<br />
Modélisation<br />
du domaine<br />
CONSTRUCTION<br />
• Modèle détaillé des<br />
objets<br />
• Scénarios détaillés<br />
• Algorithmes<br />
• Codage - Mise au point<br />
• Intégration<br />
Développement<br />
du produit<br />
Gestion des<br />
changements<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 69
Rational Unified Process (RUP)<br />
Itératif et incrémental<br />
Chaque phase est composée d’itérations, chaque itération<br />
se concluant par un produit ou un prototype<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
Rational Unified Process (RUP)<br />
Un processus à deux dimensions<br />
Une itération<br />
dans la phase<br />
d'élaboration<br />
Chaque phase est composée d’itérations, chaque itération<br />
se concluant par un produit ou un prototype<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 70
Rational Unified Process (RUP)<br />
Dirigé par les cas d’utilisation<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 71
VI. Modélisation : du fonctionnel à l’objet<br />
30/09/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
La découpe fonctionnelle<br />
d'un problème informatique : une approche intuitive<br />
Factorisation<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 73
Le revers de la médaille :<br />
maintenance complexe en cas d'évolution<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 74
Le revers de la médaille :<br />
maintenance complexe en cas d'évolution<br />
La séparation des données et des<br />
traitements : le piège !<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 74
Réunir données et traitements :<br />
Programmation par objets<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 75
Vision objet du système informatique (1)<br />
➡<br />
Le système d ’informatique est modélisé comme un<br />
ensemble d ’objets, avec leurs propriétés et leurs<br />
comportements, qui collaborent entre eux<br />
• Un objet est une entité aux frontières précises qui possède<br />
une identité (un nom).<br />
• Un ensemble d'attributs caractérise l'état de l'objet.<br />
• Un ensemble d'opérations (méthodes ou comportements) en<br />
définissent le comportement.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 76
Vision objet du système informatique (2)<br />
➡ Un objet est une instance de classe (une occurrence<br />
d'un type abstrait).<br />
➡ Une classe est un type de données abstrait (modèle) ,<br />
caractérisé par des propriétés (attributs et méthodes)<br />
communes à des objets et permettant de créer des objets<br />
possédant ces propriétés.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 77
Vision objet du système informatique (3)<br />
➡ Héritage (et polymorphisme)<br />
L'héritage est un mécanisme de transmission des<br />
propriétés d'une classe (ses attributs et méthodes)<br />
vers une sous-classe.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 78
Vision objet du système informatique (4)<br />
➡<br />
Héritage (et polymorphisme)<br />
Le polymorphisme représente la faculté d'une<br />
méthode à pouvoir s'appliquer à des objets de classes<br />
différentes.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 79
Vision objet du système informatique (5)<br />
Héritage (et polymorphisme)<br />
➡<br />
➡<br />
➡<br />
➡<br />
➡<br />
➡<br />
➡<br />
L'héritage est un mécanisme de transmission des propriétés d'une<br />
classe (ses attributs et méthodes) vers une sous-classe.<br />
Une classe peut être spécialisée en d'autres classes, afin d'y ajouter<br />
des caractéristiques spécifiques ou d'en adapter certaines.<br />
Plusieurs classes peuvent être généralisées en une classe qui les<br />
factorise, afin de regrouper les caractéristiques communes d'un<br />
ensemble de classes.<br />
La spécialisation et la généralisation permettent de construire des<br />
hiérarchies de classes. L'héritage peut être simple ou multiple.<br />
L'héritage évite la duplication et encourage la réutilisation.<br />
Le polymorphisme représente la faculté d'une méthode à pouvoir<br />
s'appliquer à des objets de classes différentes.<br />
Le polymorphisme augmente la généricité du code.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr
L'approche objet : une solution parfaite ?<br />
L'approche objet est moins intuitive que l'approche<br />
fonctionnelle !<br />
➡ Quels moyens utiliser pour faciliter l'analyse objet ?<br />
➡ Quels critères identifient une conception objet<br />
pertinente ?<br />
L'application des concepts objets nécessite une grande<br />
rigueur !<br />
➡ Le vocabulaire est précis (risques d'ambiguïtés,<br />
d'incompréhensions).<br />
➡ Comment décrire la structure objet d'un système de<br />
manière pertinente ?<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 80
Quels sont les remèdes<br />
aux inconvénients de l'approche objet ?<br />
Un langage pour exprimer les concepts objet qu'on utilise, afin de<br />
pouvoir :<br />
➡<br />
➡<br />
➡<br />
Représenter des concepts abstraits (graphiquement par<br />
exemple…).<br />
Limiter les ambiguïtés (parler un langage commun).<br />
Faciliter l'analyse (simplifier la comparaison et l'évaluation de<br />
solutions).<br />
Une démarche d'analyse et de conception objet, pour :<br />
➡<br />
➡<br />
Ne pas effectuer une analyse fonctionnelle et se contenter<br />
d'une implémentation objet, mais penser objet dès le départ.<br />
Définir les vues qui permettent de couvrir tous les aspects d'un<br />
système, avec des concepts objets.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 81
Introduction<br />
c. <strong>UML</strong>, histoire, généralité<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 82
<strong>UML</strong>: histoire, généralité<br />
Pourquoi <strong>UML</strong> ?<br />
➡<br />
Objectifs : spécifier, construire, visualiser et documenter les<br />
systèmes à base de logiciel<br />
– Pour communiquer, travailler à plusieurs<br />
– Pour Comprendre la « big picture »<br />
– Par approche orientée objets<br />
– Avec différents modèles pour différentes vues<br />
➡<br />
➡<br />
➡<br />
<strong>UML</strong> : Langage et non simple notation graphique (ni méthode)<br />
<strong>UML</strong> est Indépendant des méthodologies<br />
<strong>UML</strong> : Support des systèmes concurrents et répartis, à base de<br />
composants<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 83
<strong>UML</strong>: histoire, généralité<br />
Un peu d’histoire :<br />
La guerre des Méthodes<br />
Booch, OMT, Coad/Yourdon, Fusion,SADT, OOSE,<br />
Schlaer/Mellor, HOOD…<br />
<strong>UML</strong>: un méta-langage de modélisation pour unifier les<br />
modèles utilisés dans les méthodes<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 84
<strong>UML</strong>: histoire, généralité<br />
Et un langage unique, un !<br />
Un cocktail de notations éprouvées.<br />
(...mais pas toutes, p. ex. RdP,<br />
SADT/IDEF0, DFD, etc.)<br />
Auteurs : Grady Booch, Ivar<br />
Jacobson, James Rumbaugh.<br />
Standardisation OMG<br />
Promoteurs :<br />
Rational Software, Oracle<br />
Hp, Microsoft, IBM<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 85
<strong>UML</strong>: histoire, généralité<br />
Unified Modeling Language<br />
➡<br />
<strong>UML</strong> est un langage graphique qui permet de modéliser<br />
tous les types de systèmes d ’informatiques.<br />
➡<br />
Ce n ’est pas une méthode mais une notation qui laisse<br />
la liberté de conception.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 86
<strong>UML</strong>: histoire, généralité<br />
Les points forts d'<strong>UML</strong><br />
– <strong>UML</strong> est un langage formel et normalisé<br />
• gain de précision<br />
• gage de stabilité<br />
• encourage l'utilisation d'outils<br />
– <strong>UML</strong> est un support de communication performant<br />
• Il cadre l'analyse.<br />
• Il facilite la compréhension de représentations abstraites complexes.<br />
• Son caractère polyvalent et sa souplesse en font un langage<br />
universel.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 87
Les points faibles d'<strong>UML</strong><br />
– La mise en pratique d'<strong>UML</strong> nécessite un apprentissage et passe<br />
par une période d'adaptation.<br />
– Le processus (non couvert par <strong>UML</strong>) est une autre clé de la<br />
réussite d'un projet.<br />
Or, l'intégration d'<strong>UML</strong> dans un processus n'est pas triviale et<br />
améliorer un processus est une tâche complexe et longue.<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 88
Organisation générale<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr<br />
X
➡<br />
<strong>UML</strong> au travail….<br />
➡<br />
Présentation du projet<br />
– http://anubis.polytech.unice.fr/cours/2009_2010:gb5:projet-bduml:start<br />
➡<br />
Chargement du logiciel<br />
– http://anubis.polytech.unice.fr/cours/<br />
2009_2010:si5:idm:download:download_directives#magic_draw<br />
3/10/2009<br />
Mireille Blay-Fornarino,<br />
blay@polytech.unice.fr 89