conceptions Conception orientée objets avancé ?· 1 Conception orientée objets avancée Licence 3…

  • Published on
    10-Sep-2018

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

<ul><li><p>1</p><p>Conception orienteobjets avance</p><p>Licence 3 Informatique Semestre 6, 2009-2010</p><p>Philippe Collet </p><p>2Ph. Collet</p><p>Pourquoi ?</p><p>Connatre (lessentiel d) UML ne suffit pas pour raliser de bonnes conceptions</p><p>UML nest quun langage, une notation</p><p>En plus, il faut :Savoir penser et coder en termes dobjets (cf. POO) </p><p>Savoir organiser lanalyse et la conception</p><p> grande chelle</p><p>A laide de guides mthodologiques adapts au(x) problme(s)</p><p>Sans vision dogmatique</p><p>Mais en rutilisant des bons principes communs</p><p>3Ph. Collet</p><p>Objectif de lUE</p><p>Vous sensibiliser l'ingnierie des systmes d'information.</p><p>Vous donner une vision complte de l'activit de conception au sens large (analyse, conception, spcification) dans le cycle de dveloppement logiciel.</p><p>Vous faire mettre en pratique les diffrentes activits qui constituent l'tape de conception suivant un processus de dveloppement.</p><p>Vous faire travailler en quipe, mais aussi plusieurs quipes communicantes !</p><p>4Ph. Collet</p><p>Programme</p><p>Introduction </p><p>Rappels sur le gnie logiciel, les activits danalyse et de conception</p><p>Mthodes et processus de conception</p><p>Organisation des TD</p><p>Processus Unifis et RUP</p><p>Processus agiles</p><p>Conclusion</p></li><li><p>2</p><p>5Ph. Collet</p><p>Organisation</p><p>Crdit4 ECTS</p><p>Enseignement6h de cours</p><p>18h de TD</p><p>12h de TP</p><p>EvaluationProjet tout le long de lenseignement par quipe de 4</p><p>Rappels</p><p>(ou pas)</p><p>7Ph. Collet</p><p>Gnie logiciel</p><p>Dfinition (software engineering update, january 2009)ensemble de mthodes, techniques et outils pour la production et la maintenance de composants logiciels de qualit</p><p>Principesrigueur et formalisation, sparation des proccupations, modularit, abstraction, prvision du changement, approche gnrique, approche incrmentale</p><p>Besoins Langages pour dcrire</p><p>Outils pour manipuler</p><p>Mthodes pour dcider</p><p>Thories pour dmontrer</p><p>Professionnels pour raliser</p><p>Logistique pour supporter8Ph. Collet</p><p>Qualits pour lutilisateur (phases dexploitation)</p><p>Fiabilit = Validit + RobustesseValidit correction, exactitude : assurer exactement les fonctions attendues, dfinies dans le cahier des charges et la spcification, en supposant son environnement fiableRobustesse: faire tout ce quil est utile et possible de faire en cas de dfaillance: pannes matrielles, erreurs humaines ou logicielles, malveillances</p><p>PerformanceUtiliser de manire optimale les ressources matrielles : temps dutilisation des processeurs, place en mmoire, prcision</p><p>ConvivialitRaliser tout ce qui est utile lutilisateur, de manire simple, ergonomique</p><p>Extensibilit, Compatibilit, Intgrit (scurit)</p></li><li><p>3</p><p>9Ph. Collet</p><p>Qualits pour le dveloppeur (phases de devt)</p><p>DocumentationTout ce quil faut, rien que ce quil faut, l o il faut, quand il faut, correcte et adapte au lecteur</p><p>Modularit = Fonctionnalit + Interchangeabilit + RutilisabilitFonctionnalit : Localiser un phnomne unique, facile comprendre et spcifier</p><p>Interchangeabilit : Pouvoir substituer une variante dimplmentation sans consquence fonctionnelle (et souvent non-fonctionnelle) sur les autres parties</p><p>Rutilisabilit : Aptitude tre rutilis, en tout ou en partie, tel que ou par adaptation, dans un autre contexte : autre application, machine, systme</p><p>VrifiabilitAptitude dun logiciel tre test</p><p>PortabilitAptitude dun logiciel tre transfr dans des environnements logiciels et matriels diffrents</p><p>10Ph. Collet</p><p>Gnie logiciel : le dfi</p><p>Contradictions apparentesQualits vs cot du logicielQualits pour lutilisateur vs qualits pour le dveloppeurContrler vs produire</p><p>ConsquencesChercher sans cesse le meilleur compromisAmortir les cots</p><p>Premier exemplaire de composant coteux produire ou acheter, puis amortissement</p><p>Grer un projet informatique de manire spcifique (avec des mthodesspcifiques)</p><p>11Ph. Collet</p><p>Organisation dun projet informatique</p><p>La matrise duvreEntit responsable de la concrtisation de lide en outil informatiquePas de connaissance fonctionnelleBons choix techniques, adquation avec les besoins, performances</p><p>La matrise douvrageEntit responsable de lexpression du besoinSouvent non informaticienBesoin rel / budget</p><p>12Ph. Collet</p><p>Comment grer un projet informatique ?</p><p>Dfinir et utiliser des mthodesspcifiant des processus de dveloppement</p><p>organisant les activits du projet</p><p>dfinissant les artefacts du projet</p><p>se basant sur des modlespas des modles objets, des modles de cycle de vie</p><p>Modles de cycle de vieorganiser les diffrentes phases du cycle de vie pour l'obtention d'un logiciel fiable, adaptable et efficace, etc.</p><p>guider le dveloppeur dans ses activits techniques</p><p>fournir des moyens pour grer le dveloppement et la maintenance</p></li><li><p>4</p><p>13Ph. Collet</p><p>Les phases du cycle de vie</p><p>Objectifs</p><p>Dfinition </p><p>des besoins</p><p>Analyse </p><p>des besoins</p><p>Planification</p><p>Maintenance</p><p>Mise en </p><p>exploitation</p><p>Qualification</p><p>Validation et </p><p>IntgrationImplmentation </p><p>et tests unitaires</p><p>Conception</p><p>Retrait ou </p><p>remplacement</p><p>14Ph. Collet</p><p>Mais cest quoi un cycle de vie ?</p><p>Cycle de vie : dfinitionDescription dun processus pour la cration dun produit, sa distribution sur un march, son retrait</p><p>Cycle de vie et assurance qualitValidation : le bon produit ?</p><p>Vrification : le produit correct ?</p><p>Le cycle de vie sorganise autour de lassurance qualit</p><p>Deux types principaux de modlesModle linaires : en cascade et variantes</p><p>Modles non linaires : en spirale, incrmentaux, itratifs</p><p>15Ph. Collet</p><p>Modle en cascade (1970)</p><p>Analyse des besoinsvrificationSpecif. fonctionnelles</p><p>vrificationPlanification</p><p>vrification</p><p>Conceptionvrification</p><p>Implmentationtests unitaires</p><p>Intgrationtests</p><p>Qualificationtests</p><p>Exploitation</p><p>Retrait</p><p>Changementdans lexpression</p><p>des besoins</p><p>vrification</p><p>Les vrais projets suivent rarement un dveloppement squentiel</p><p>tablir tous les besoins au dbut dun projet est difficile</p><p>Le produit apparat tard</p><p>Echecs majeurs sur de grands systmes16Ph. Collet</p><p>Modle en V</p><p>Meilleure anticipation</p><p>Bonne structuration des tests</p><p>Cadre de dveloppement rigide</p><p>Le produit apparat toujours tard</p><p>Qualification</p><p>Conception globale</p><p>Intgration</p><p>Conceptiondtaille</p><p>Testsunitaires</p><p>Programmation</p><p>Dfinition des tests</p><p>Dfinition du plan d intgration</p><p>Spcifications fonctionnelles&amp; planification</p></li><li><p>5</p><p>17Ph. Collet</p><p>Modle en spirale (Boehm, 1988)</p><p>Incrments successifs =&gt; itrationsApproche souvent base de prototypesNcessite de bien spcifier les incrmentsFigement progressif de lapplication</p><p>Mais gestion de projet pas vidente</p><p>Pourtant, les mthodes objets drivent de ce modle !</p><p>Mthodes et processus de conception</p><p>19Ph. Collet</p><p>Dfinitions</p><p>Modle (comme UML)Notation pour reprsenter, formalisme</p><p>Pour partager linformation, uniformiser, mcaniser (transformation vers le code)</p><p>MthodeGuide plus ou moins formalis</p><p>Dmarche reproductible permettant dassurer la qualit</p><p>ProcessusA peu prs la mme dfinition quune mthode</p><p> ensemble de directives et dtapes destines produire des logiciels de manire contrle et reproductible, avec des cots prvisibles, prsentant un ensemble de bonnes pratiques autorises par ltat de lart </p><p>20Ph. Collet</p><p>Dfinitions (suite)</p><p>Une mthode dfinit des concepts de modlisation </p><p>obtenir des modles partir dlments de modlisation, sous un angle particulier, reprsenter les modles de faon graphique</p><p>une chronologie des activits (quand construit-on les modles)</p><p>un ensemble de rgles et de conseils</p><p>Une mthode peut donc reposer sur un processus= notation + artefact (ce qui est manipul) + dmarche</p><p>On distingue souvent :Les processus de dveloppement technique</p><p>Les processus de gestion du dveloppement lui-mme</p></li><li><p>6</p><p>21Ph. Collet</p><p>Evolution des mthodes</p><p>Premires mthodes (annes 60-70)Suite la crise du logiciel</p><p>Guide par dcoupage en sous-problmes, analyse fonctionnelle</p><p>Mthodes danalyse structure</p><p>Mthodes orientes bases de donnes (annes 80 et suivantes)Concevoir la base de donnes est central au systme dinformation</p><p>Mthodes globales qui sparent donnes et traitements</p><p>Mthodes pour la conception avec rutilisation (annes 95 et suivantes)</p><p>Frameworks, Design Patterns, bibliothques de classes (orientes objets)</p><p>Mthodes incrmentales unifies par une notation commune (UML)</p><p>22Ph. Collet</p><p>Quelles activits sont couvertes par les mthodes ?</p><p>Cinq grandes activits mergent de la pratique de dveloppement et de gestion de projet</p><p>Spcification des besoins </p><p>Analyse (recherche du bon systme)</p><p>Conception (lie limplmentation, la construction)</p><p>Implmentation (activit la plus coteuse)</p><p>Tests (activit la plus nglige)</p><p>Organisationdes TD</p><p>24Ph. Collet</p><p>TD, quipes, sujets</p><p>20 personnes environ par TD</p><p>5 quipes de 4 pour 5 sujets</p><p>Les quipes sont formes par consensus par les tudiants d'un mme groupe de TD</p><p>Les sujets sont tirs au sort</p><p>Chaque sujet a au moins un lien avec un autre sujet, il ncessitera donc une collaboration entre les deux quipes concernes, au moins au niveau des cas d'utilisation</p><p>Chaque sance de TD est l'occasion d'avancer dans une partie de la modlisation</p></li><li><p>7</p><p>25Ph. Collet</p><p>Droulement et valuation</p><p>6 sances de TD (3h) pour dmarrer la conception</p><p>4 sances de TD machine (3h) pour terminer la conception et utiliser un outil UML afin de finaliser le dossier rendre</p><p>S'il est d'usage de commencer par les cas d'utilisation, rien n'empche l'quipe de se concentrer sur le dtail d'une partie des cas d'utilisation (en dtaillant les autres diagrammes), pour ensuite revenir vers les cas d'utilisation</p><p>Le charg de TD guide les quipes et joue le rle de client</p><p>Dbut avrilDossier rendu</p><p>1 soutenance par quipe (10/15 minutes)26Ph. Collet</p><p>Contenu du dossier de conception</p><p>Ensemble des diagrammes de cas d'utilisation, cohrents vis--vis des autres systmes d'informations. </p><p>Diagramme dtaill de classes (signature type des attributs et des mthodes). </p><p>Un diagramme de squences par cas d'utilisation </p><p>Un diagramme de composants du systme d'information </p><p>Un diagramme de dploiement du systme d'information </p><p>Au moins un diagramme d'activits (il est bien sr pertinent de l'utiliser pour dtailler un cas d'utilisation particulirement complexe...) </p><p>Au moins un diagramme d'tats (il est bien sr pertinent de l'utiliser pour dtailler une classe dont les tats sont remarquables...) </p><p>Des spcifications OCL (prconditions, postconditions, invariants) sur les classes qui vous semblent les plus pertinentes. </p><p>Processus unifis</p><p>Principes</p><p>Description</p><p>Dclinaison</p><p>28Ph. Collet</p><p>Unified Software Development Process</p><p>USDPRsum en UP : Unified Process</p><p>Avant UMLAutant de notations que de mthodes</p><p>Focalisation sur certains aspects uniquement</p><p>Avec UMLUniformisation</p><p>USDPProcessus gnral et mthode de conception</p><p>Pour grer un projet de bout en bout</p><p> dcliner en fonction des notations (UML) et des processus plus particuliers utiliss</p></li><li><p>8</p><p>29Ph. Collet</p><p>USDP : Principes</p><p>Considrer un produit logiciel quelconque par rapport ses versions</p><p>un cycle produit une version</p><p>Grer chaque cycle de dveloppement comme un projet ayant quatre phases</p><p>chaque phase se termine par un point de contrle (ou jalon) permettant de prendre des dcisions</p><p>30Ph. Collet</p><p>Phases</p><p>Phase 1 : tude prliminaireque fait le systme ?</p><p> quoi pourrait ressembler larchitecture ?</p><p>quels sont les risques ?</p><p>quel est le cot estim du projet ? Comment le planifier ?</p><p>accepter le projet ?</p><p>jalon : vision du projet </p><p>Phase 2 : laborationspcification de la plupart des cas dutilisation</p><p>conception de larchitecture de base (squelette du systme)</p><p>mise en oeuvre de cette architecture (UC critiques, </p></li><li><p>9</p><p>33Ph. Collet</p><p>USDP : principes dorganisation</p><p>USDP : tout le contraire du modle en cascade :Point commun toutes les mthodes OO ?</p><p>le changement est constant</p><p>Feedback et adaptation : dcisions ncessaires tout au long du processus</p><p>Convergence vers un systme satisfaisant</p><p>Principes rsultants :construction du systme par incrments</p><p>gestion des risques</p><p>passage dune culture produit une culture projet</p><p> souplesse de la dmarche</p><p>34Ph. Collet</p><p>Itrations et incrments</p><p>Des itrationschaque phase comprend des itrations</p><p>une itration a pour but de matriser une partie des risques et apporte une preuve tangible de faisabilit</p><p>produit un systme partiel oprationnel (excutable, test et intgr) avec une qualit gale celle dun produit fini</p><p>qui peut tre valu (va-t-on dans la bonne direction ?)</p><p>Un incrment par itrationle logiciel et le modle voluent suivant des incrments</p><p>srie de prototypes qui vont en samliorantde plus en plus de parties fournies</p><p>retours utilisateurs</p><p>processus incrmental</p><p>les versions livres correspondent des tapes de la chane des prototypes</p><p>35Ph. Collet</p><p>Itrations dans les phases</p><p>36Ph. Collet</p><p>Gestion du risques dans les itrations</p><p>Une itrationest un mini-projet</p><p>plan pr-tabli et objectifs pour le prototype, critres dvaluation,comporte toutes les activits (mini-processus en cascade)</p><p>est termine par un point de contrleensemble de modles agrs, dcisions pour les itrations suivantes</p><p>conduit une version montrable implmentant un certain nombre de cas dutilisationdure entre quelques semaines et 9 mois (au del : danger)</p><p>bute temporelle qui oblige prendre des dcisions</p><p>On ordonne les itrations partir des priorits tablies pour les cas dutilisation et de ltude du risque</p><p>plan des itrationschaque prototype rduit une part du risque et est valu comme tel les priorits et lordonnancement de construction des prototypespeuvent changer avec le droulement du plan</p></li><li><p>10</p><p>37Ph. Collet</p><p>Avantages (et inconvnients) rsultants</p><p>Gestion de la complexit</p><p>Matrise des risques levs prcoce</p><p>Intgration continue</p><p>Prise en compte des modifications de besoins</p><p>Apprentissage rapide de la mthode</p><p>Adaptation de la mthode</p><p>Mais gestion de projet plus complexe : planification adaptative</p><p>38Ph. Collet</p><p>Pilotage du processus (par les cas dutilisation)</p><p>Objectif du processusconstruction dun systme qui rponde des besoins</p><p>par construction complexe de modles</p><p>Les cas dutilisation spcifient le besoin travers les objectifs utilisateurs</p><p>Ils sont utiliss tout au long du cycle (ce quon fait naturellement en UML)</p><p>validation des besoins / utilisateurs</p><p>point de dpart pour lanalyse (dcouverte des objets, de leurs relations, de leur comportement) et la conception</p><p>guide pour la construction des interfaces</p><p>guide pour la mise au point des plans de tests</p><p>Les UC assurent la traabilit !</p><p>39Ph. Collet</p><p>Pilotage du processus (par la gestion des risques)</p><p>Diffrentes natures de risquesAdquation aux besoins, infrastructure technique, performances, personnels impliqus</p><p>Gestion des risquesidentifier et classer les risques par importanceagir pour diminuer les risquessils sont invitables, les valuer rapidement (au plus tt)</p><p>Construire les itrations en fonction des risques provoquer des changements prcoces pour stabiliser larchitecture rapidement</p><p>40Ph. Collet</p><p>Processus centr sur larchitecture</p><p>ArchitecturePrincipe de gnie civil difficile adapter linformatique</p><p>Dfinition dans notre cadreArt dassembler des composants en respectant des contraintes, ensembledes dcisions significatives sur </p><p>lorganisation du systme</p><p>les lments qui structurent le systme</p><p>la composition des sous-systmes en systmes</p><p>le style architectural guidant lorganisation (couches)</p><p>Ensemble des lments de modlisation les plus signifiants qui constituent les fondations du systme dvelopper</p></li><li><p>11</p><p>41Ph. Collet</p><p>Influences sur larchitecture</p><p>42Ph. Collet</p><p>Diffrents aspects dune architecture</p><p>Architecture logicielleorganisation grande chelle des classes logicielles en packages, sous-systmes et couches</p><p>architectures client/serveurs en niveaux (tiers)</p><p>architectures en...</p></li></ul>

Recommended

View more >