Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.



Documents pareils
Analyse,, Conception des Systèmes Informatiques

Processus d Informatisation

Remy.Courdier@univ-reunion.fr. Chapitre 1 : Sensibilisation au Green IT. Chapitre 2 : Qualité informatique

IFT2255 : Génie logiciel

Introduction au génie logiciel

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

IFT3913 Qualité du logiciel et métriques. Chapitre 2 Modèles de processus du développement du logiciel. Plan du cours

Le génie logiciel. maintenance de logiciels.

Gestion Projet. Cours 3. Le cycle de vie

Cours Gestion de projet

Chapitre I : le langage UML et le processus unifié

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

CHAPITRE 3 : LES METHODES AGILES?

Génie logiciel (Un aperçu)

But de cette introduction à la gestion de projets :

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Développement itératif, évolutif et agile

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Génie Logiciel Orienté Objet UML

Séance 1 Méthodologies du génie logiciel

UML (Paquetage) Unified Modeling Language

UML 2.0. (IUT, département informatique, 1 re année) Laurent AUDIBERT

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

GL Processus de développement Cycles de vie

ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Les méthodes itératives. Hugues MEUNIER

Université de Bangui. Modélisons en UML

GL Le Génie Logiciel

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

CC30 Certificat de compétence Conception, développement et animation de sites Web

Identification du module

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Formation : Modélisation avec UML 2.0 et Mise en pratique

2. Activités et Modèles de développement en Génie Logiciel

Méthodologie d amélioration du développement logiciel chez ABB

Eclipse Process Framework et Telelogic Harmony/ITSW

Introduction à la modélisation

Méthodes Agiles et gestion de projets

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Patrons de Conception (Design Patterns)

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Rational Unified Process

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Génie Logiciel. Notes de l an passé-k. Planning Projets. Evolution des approches (1/4) Evolution des approches (2/4) Evolution des approches (3/4)

Méthodologies de développement de logiciels de gestion

Gestion de projets logiciels. Xavier Dubuc

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Objectif Analyse des besoins & Gestion de projets. Evaluation. Programme

3. UML - Unified Modeling Language Diagrammes statiques

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

SQLI GROUP Permission de réutiliser tel quel, avec le Copyright

2.DIFFERENTS MODELES DE CYCLE DE VIE

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cours STIM P8 TD 1 Génie Logiciel

25/12/2012

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Management des processus opérationnels

Agile Maroc 24 Novembre Méthodes agiles. Thierry Cros. Agile Maroc 24 novembre 2010

A-t-on le temps de faire les choses?

Tuesday, October 20, Nantes

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Conception, architecture et urbanisation des systèmes d information

LOG2420 Analyse et conception d interfaces utilisateur

Cours Composant 2. Qualité logicielle et spécications algébriques

CONDUITE D UN PROJET INFORMATIQUE. - Partie Suivi de Projet - C.Crochepeyre Conduite de Projet 1

En face du commanditaire, on met un chef de projet qui connait le domaine (banque, administration, etc.)

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Framework Agile Global

1. Étude réalisée par l AFOPE en Hellriegel D., Slocum J. W., Woodman R. W., Management des organisations, Bruxelles, De Boeck, 1992.

PEPI GPI (Gestion de Projet Informatique) - Note de Cadrage décembre

Méthode Agile de 3 ème génération J-P Vickoff

«CAPABILITY MATURITY MODEL INTEGRATION MS» EXPLIQUÉ SIMPLEMENT

Estimer et mesurer la performance des projets agiles avec les points de fonction

Réussir la modélisation UML des phases amont Techniques de «pré-modélisation» : un pont vers le modèle

Développement ebusiness

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

ExiOuest Résultats de l enquête ExiOuest 2009 sur l'ingénierie des exigences. Enquête en ligne de Juillet à Octobre 2009 sur

Gé nié Logiciél Livré Blanc

Process 4D Catalogue de formations 2011

Les méthodes Agile. Implication du client Développement itératif et incrémental

Le RAD (Rapid Application Development)

Introduction IV. Comparaison MERISE/UML/SCRUM Approche fonctionnelle Schéma Entité/Association Méthodologie...

UML (Diagramme de classes) Unified Modeling Language

Méthodes de développement

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Proposition pour la création d un site de gestion de projet

Génie Logiciel Avancé Cours 1 Introduction

L Intégration Continue & Agilité

Bertrand Cornanguer Sogeti

Génie Logiciel Avancé Cours 3 Le modèle à objets

Agile 360 Product Owner Scrum Master

Processus de Développement Logiciel

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

UML est-il soluble dans les méthodes agiles?

La Qualite Logiciel(le) Un peu de planning 21/01/2010. Rappel : Le Projet. Eric Bourreau bourreau@lirmm.fr

Transcription:

Analyse et conception objet du logiciel : Méthode de conception objet et notation UML Rémy Courdier Email : Remy.Courdier@univ-reunion.fr Rémy Courdier V2.1 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse à la conception Relation entre les notations OMT et UML Les design patterns Rémy Courdier V2.1 4

Chapitre 1 : Introduction au Génie Logiciel Le Génie Logiciel : Genèse et Objectifs Les Cycles de vie de développement industriel de logiciels Les bases de la qualité du logiciel Des méthodes fonctionnelles aux méthodes Objet Rémy Courdier V2.1 5 1.1. Le Génie logiciel Genèse et Objectifs (2) 1.1 Le Génie logiciel : Genèse et Objectifs Difficulté de maîtrise des coûts Difficulté de réalisation de plannings Difficulté de maîtrise des délais de réalisation Difficulté d amélioration de la productivité et de la qualité des logiciels Difficulté de gestion de projets logiciels de grande ampleur (Programming in the Large) Nombreux échecs : résultats fournis par les logiciels insatisfaisants pour les clients finaux. Tout ceci dans un contexte de compétition internationale sévère Rémy Courdier V2.1 6

Nombreux échecs Logiciels insatisfaisants & Difficulté de maintenabilité Rémy Courdier V2.1 7 1.1. Le Génie logiciel Genèse et Objectifs (2) Quelques idées sur les coûts... Répartition : (Ref. Boehm)! Analyse/Conception " 33-34 % : Système d exploitation, Aérospatiale " 44-46 % : Contrôle et Régul. indus., Calcul scientifique, Gestion! Codage " 17-20 % : Système d expl., Contrôle et Régul. indus., Aérospatiale " 26-28 % : Calcul scientifique, Gestion! Test/Intégration " 28-34 % : Contrôle et Régul. indus., Calcul scientifique, Gestion " 46-50 % : Système d exploitation, Aérospatiale! Maintenance " coûts très importants... Peu de capitaux d investissement nécessaires Frais de personnel élevés Rémy Courdier V2.1 8

1.1. Le Génie logiciel Genèse et Objectifs (3) Quelques thèmes tirés par le Génie Logiciel Qualification du personnel par la formation Procédures de gestion de la qualité logiciel Outils dédiés au GL (CASE, Logiscopes) Langages et environnements de programmation Prototypage Méthodes formelles et semi-formelles Réutilisabilité Il n y a pas de remède miracle, mais quelques voies à creuser... L approche objet Rémy Courdier V2.1 9 1.2. Les Cycles de vie de développement industriel de logiciels 1.2. Cycles de vie de dév. industriel de logiciel qu est-ce qu un cycle de vie logiciel?! Enchaînement des activités de développement logiciel! Définition des Pré et Post conditions pour chaque phase! Procédures de gestion et d encadrement! Procédures de mesures! Cycle de vie logiciel : synonyme de méthodologie logiciel Etapes d un cycle de vie! Analyse : opportunité fonctionnelle et faisabilité technique! Conception : choix tactiques de réalisation et d architecture! Codage : réalisation informatique du détail des opérations! Test : tests unitaires et d intégration + Exploitation / Maintenance Les deux grandes catégorie de cycles de vie :! Les cycles linéaires : succession d étapes ordonnées! Les cycles itératifs : réalisation incrémentale par évolutions Rémy Courdier V2.1 10

1.2. Cycles de vie de dév. industriel de logiciel(2) Les cycles de vie linéaires Cycle en cascade : ouvre des points de visibilités Anticipation Investigation Analyse Concep. Codage Test Lancement ou Livraison Cycle en V : variante courante du cycle en cascade Analyse Concep. Codage Test Test Test Problème de l effet tunnel où l on ne voit tourner quelque chose qu à la fin. => Détection d erreurs tardive Rémy Courdier V2.1 11 Importance de la phase de test. Rémy Courdier V2.1 12

1.2. Cycles de vie de dév. industriel de logiciel(3) limites du modèle linéaire Les projets présentent bien souvent une part d inconnu et donc de risques. Méconnaissance des besoins par le client Incompréhension des besoins par le fournisseur Instabilité des besoins Choix technologiques Mouvements de personnels... Le processus de développement d un logiciel n est pas naturellement linéaire... Rémy Courdier V2.1 13 1.2. Cycles de vie de dév. industriel de logiciel(4) Les cycles de vie itératifs Evaluation d éléments concrets au cours du développement : élimination de l effet tunnel! basé sur l évolution de prototypes exécutables, mesurables! diminution de l importance des documents de spéc. détaillée! livraisons intermédiaires => résultats concrets réguliers de l équipe de développement! meilleurs anticipation et prise en compte des problèmes! meilleurs gestion de la prise en compte de modifications de spécification qui peuvent être intégrées dans une itération future! intégration progressive de composants!... En général, dans les cycles de développement itératifs, chaque itération reproduit le cycle en cascade à une plus petite échelle. Rémy Courdier V2.1 14

Le cycle en spirale (Boehm) A chaque spire, il y a itération complète sur les phases : " Analyse " Conception " Codage " Test A chaque itération, le logiciel doit être dans un état quasi commercialisable Grand intérêt en prototypage incrémental Très utilisé sur les projets reposant sur l objet. «Design a little, code a little» La première spire doit comprendre les éléments les plus abstraits et Le cœur fonctionnel minimum du système Rémy Courdier V2.1 15 Xtrem Programming (1) Biblio 1999, Kent Beck Processus AGILE Cohesion équipe! Responsabilité collective du code Développeur travaillant sur différentes parties du code! Travail en binome! Régles de codage! Intégration Continue Renouvellement des binômes régulier Défini par l équipe elle même Des développements quotidiennement intégrés Rémy Courdier V2.1 16

Xtrem Pragramming (2) Rémy Courdier V2.1 17 Que faire pour s améliorer Premier «brainstorming»! Embaucher des supers chef de projets?! N embaucher que des experts pour développer?! Faire des heures sup et travailler le week-end?! Faire des opérations coups de poing?! Faire des plans d actions? Ceci est déjà fait depuis bien longtemps, alors.. Trouver des pistes Rémy Courdier V2.1 18

Que faire pour s améliorer (2) Trouver des pistes Renforcer la gestion méthodologique du cycle de vie logiciel Rémy Courdier V2.1 19 Facteurs de qualité logiciel Facteurs externes (visibles par le client)! Exactitude : le logiciel fournit les bons résultats! Robustesse : le logiciel réagit correctement à des données fausses! Stabilité : possibilité d intégrer des modif. de spécification légères! Fiabilité : exactitude + robustesse! Efficacité : performances d exécution, encombrement mémoire,... Facteurs internes! Maintenabilité (support du temps..., testabilité, traçabilité)! Portabilité! Cohésion : forte cohésion dans les modules! Faible couplage entre les modules Rémy Courdier V2.1 20

Normes de l ISO ISO 9126! Ensemble de normes qui définit le modèle de qualité pour un produit logiciel! Conception Fabrication - Utilisation II ISO 14 598! Ensemble de normes publié par l AFNOR sous le titre «Ingénierie du logiciel Évaluation de produit logiciel»! Définit les démarches méthodologiques pour l évaluation de la qualité logiciel III ISO 25 000! Square : Software QUAlity Requirements and Evaluation! Poser le cadre et les références pour définir et évaluer les exigences qualité! Retenu par le SEI pour améliorer les performances du CMMI! A terme : devrait remplacer les normes ISO 9126 et ISO 14598 Rémy Courdier V2.1 21 NORME ISO 9126 ISO 9126 partie 1 (1992)! Caractéristiques de qualité! Directives d utilisation! Statut de norme ISO 9126 partie 2 (2003)! Métrologie interne! Rapport technique ISO 9126 partie 3 (2003)! Métrologie externe! Rapport technique ISO 9126 partie 4 (2003)! Métrologie d usage! Rapport technique Définit le modèle de qualité pour un produit logiciel Rémy Courdier V2.1 22

ISO 14598 n Définit des démarches méthodologiques pour l évaluation de la qualité logiciel Rémy Courdier V2.1 23 ISO 25000 n A terme : devrait remplacer les normes ISO 9126 et ISO 14598 Rémy Courdier V2.1 24

1.3. Bases de la qualité logiciel 1.3. Bases pour la Qualité logiciel CMM (Capability Maturity Model) du SEI (Carnegie Mellon)! Niveau 1 : Initial " Peu de formalisation, Abandon de toute méthode en cas de crise " Le processus de développement est «ad hoc», et parfois même chaotique. Peu de procédures sont définies et le succès repose sur des efforts individuels.! Niveau 2 : Répétable - Méthodes élémentaires de gestion " Processus stabilisés, résultats statistiquement répétables " Une procédure de gestion minimale est définie pour suivre les coûts, les délais et les fonctions. Les procédures nécessaires sont en places pour répéter les succès antérieurs à des projets similaires.! Niveau 3 : Défini - Définition du processus de développement " Les processus de gestion et technique sont documentés, standardisés à un processus standard de l organisation. Tous les projets utilisent une version approuvée et adaptée des processus standards pour développer et maintenir le logiciel. " Gestion de configuration rigoureuse, respects des normes et standards, inspections et tests formels, existence d un service de GL ou Qualité logiciel.! Niveau 4 : Maîtrisé : Gestion du processus de développement " Des mesures détaillées du développement et de qualité sont collectées. Les processus et le produit sont quantitativement compris et contrôlés.! Niveau 5 : Optimisé : Contrôle et optimisation " Les processus sont continûment améliorés par les analyses des mesures. Rémy Courdier V2.1 25 Modèle d évolution des capacités logiciel de CMM 1.3. Bases de la qualité logiciel L'état du CMMI est maintenue par : Software Engineering Measurement and Analysis (SEMA) à l'adresse http://www.sei.cmu.edu/ Zoom sur CMM ppt pdf - format IE Rémy Courdier V2.1 26

Un mot sur les logiscopes Outil permettant de vérifier et d'évaluer le code source d'un logiciel en calculant les métriques Métrique : Nombre qui mesure la grandeur/la complexité du code d'un logiciel Exemples de métriques! Nombre de lignes de codes! Evaluation du nombre d'opérateurs et d'opérandes! Mesure le nombre cyclomatique : nombre de chemins indépendants dans le graphe! Rémy Courdier V2.1 27 Exemple de Logiscope Rémy Courdier V2.1 28

1.3. Bases de la qualité logiciel(3) La modularité où les boites noires réutilisables... Découpage du logiciel en modules indépendants présentant des caractéristiques d abstraction, d encapsulation, et de faible couplage! abstraction : chaque module doit correspondre à une abstraction pré-existante et doit pouvoir être défini de façon abstraite, indépendamment de tout traitement susceptible d utiliser le module.! encapsulation : masquage de la mise en œuvre effective du module, du comment c est fait. Seules les éléments accessibles de l extérieurs sont visibles et spécifiés précisément.! faible couplage : limitation des connexions entre modules (dépendances de génération,...). Il est indispensable que les liens entres modules soient bien définis (couches logicielles) et le moins nombreux possible pour qu il y ait effectivement modularité. Rémy Courdier V2.1 29 1.4. Des méthodes fonctionnelles aux méthodes. Objets 1.4. Des méthodes fonctionnelles aux méth. objet L approche fonctionnelle Raisonnement en terme de fonctions du système! l accent est mis sur les fonctions et non sur les données Séparation des données et du code de traitement! transposition dans les méthodes des contraintes du matériel Diffusion des responsabilités! intégrité des données non garanties! ajout possible de nouvelles opérations à tout moment Décomposition fonctionnelle descendante Héros Marcher Courir Sauter Tomber Coucher Application MonJeu struct Heros {nom char*; int taille;... int rapidite }; Coucher(heros,...); Rémy Courdier V2.1 30

1.4. Des méthodes fonctionnelles aux méthodes. Objets(2) L approche Objet Regroupement données-traitements Diminution de l écart entre le monde réel et sa représentation informatique (approche naturelle) Les informaticiens sont pervertis : le monde est avant tout objet Localisation des responsabilités : encapsulation Décomposition par identification des relations entre objets : association, composition, généralisation/spécialisation Héros Application MonJeu heros.coucher(...) Marcher Courir Sauter nom, taille rapidite,... Tomber Coucher Rémy Courdier V2.1 31 1.4. Des méthodes fonctionnelles aux méthodes. Objets(3) Evolution des méthodes Programmation Conception Analyse L évolution des méthodes s est faite de la programmation vers l analyse PF & PS : Prog. fonctionnelle et structurée SD : Conception structurée SA : Analyse structurée POO : Programmation orientée objet OOD : conception objet OOA : Analyse objet PF & PS SD SA POO SD SA POO OOD SA Les méthodes objet couvrent l ensemble du cycle logiciel POO OOD OOA Rémy Courdier V2.1 32

1.4. Des méthodes fonctionnelles aux méthodes. Objets(4) Panorama des méthodes Méthodes structurées! programmation structurée (Dijkstra)! Décomposition fonctionnelle descendante (SA/SD)! SADT/SART Modélisation de Systèmes d Information! Diagrammes entités-relations! Merise Méthodes Objet! OOD : Booch (91,93)! OOA : Coad-Yourdon (90)! HOOD : pour Ada (88)! OOM : Bouzeghoub (93) merise! OOSE : Jacobson!...Shlafer-Mellor, Meyer, Embley! OMT : Rumbaugh (91,93) UML Rémy Courdier V2.1 33 1.4. Des méthodes fonctionnelles aux méthodes. Objets(4) La spécification UML Grady Booch Jim Rumbauch Ivar Jacobson (trois amigos) Groupe de travail dirigé par Mary Loomis et Jim Odell UML V0.8 diffusée en 10/95 UML Unified Modeling Langage for Object-Oriented Development UML V1.0 remise à l OMG le 17/01/97 Jim Rumbauch, UML 2.0 Guide de référence UML Ouvrage de référence pour les notations UML UML V2.0 remise à l OMG en 2004 www.omg.org & www.uml.org Rémy Courdier V2.1 34

Fin du Chapitre 1 Introduction au génie logiciel Rémy Courdier V2.1 35