29.10.2014 Views

Présentation UML - Université Nice Sophia Antipolis

Présentation UML - Université Nice Sophia Antipolis

Présentation UML - Université Nice Sophia Antipolis

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!