Processus unifi G. Picard SMA/G2I/ENS Mines Saint-Etienne gauthier.picard@emse.fr Octobre 2009 1 Sommaire !!Objectifs dun processus dingnierie logicielle ! Modles UML (rappels) ! Processus de dveloppement Unifi Une partie du matriau de ce cours est issue du cours de Corinne CAUVET - Universit d'Aix-Marseille 2 Objectifs dun processus de dveloppement ! Un processus dfinit QUI fait QUOI, QUAND et COMMENT pour atteindre un certain objectif ! Construction des modles dun ou de plusieurs systmes ! Organisation du projet ! Grer le cycle de vie du projet de A Z ! Grer les risques ! Obtenir de manire rptitive des produits de qualit constante 3 Activits de dveloppement (rappel) ! Planification (tude de la faisabilit) ! Spcification des besoins ! Analyse (Spcification formelle) ! Conception (Spcification technique) ! Implmentation (Codage) ! Tests unitaires ! Intgration et tests ! Livraison ! Maintenance 4 Dveloppement (rappel) Modle en cascade 5 Analyse Conception Implmentation Tests Maintenance Dveloppement (rappel) Modle en V 6 Implmentation Expression des besoins Validation des besoins Validation fonctionnelle Analyse Conception Du Systme Tests du systme Tests des composants Conception des composants vrifie vrifie vrifie vrifie Dveloppement (rappel) Modle en spirale 7 Conception Analyse Spcifications Validation Tests Implmentation Sommaire !!Objectifs dun processus dingnierie logicielle !!Modles UML (rappels) ! Processus de dveloppement Unifi 8 Vocabulaire UML (rappel) 9 Constituants de base Relations Diagrammes Struct. Comp. Group. Annot. Cas d'utilisation Classe Classe Active Interface Composant Collaboration Noeud Interaction Machine d'tat Package Modle Sous-systme Framework note Dpendances Associations Gnralisation D. Cas d'utilisation D. de classe D. d'objet D. de squence D. de collaboration D. d'tat/transition D. d'activit D. de composant D. de dploiement + des mcanismes dextensions Diagrammes disponibles (rappel) 10 Diagrammes de Composants Modles dynamique statique Possibilit de reprsenter le mme diagramme des niveaux de dtail diffrents. Diagramme de cas dutilisation objectifs ! Description ! de ce que l'application doit (ou ne doit pas) tre capable de prendre en compte ! de la manire dont une organisation ou un systme externe doivent interagir avec le systme ! Point de vue de lutilisateur ! pour mettre en vidence les services rendus par le systme ! pour fixer le primtre entre le systme et son environnement 11 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme de cas dutilisation notation 12 ! Le diagramme est accompagn d'un texte organis dcrivant le cas dutilisation et permettant de mettre en vidence les scnarios (flots dvnements) ! Un scnario est un CAS DUTILISATION, ce quun objet est sa classe "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Cas Diagramme de squences objectifs ! Validation des cas d'utilisation, pour comprendre la logique de l'application ! Complte le diagramme des cas dutilisation en mettant en vidence les objets et leurs interactions dun point de vue temporel ! Outils de documentation, peu rigoureux, pas tout le temps ncessaires ! Pas de flots de contrle dans un diagramme de squence, en faire plutt un autre 13 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme de squences notation 14 Acteur Objet ou classe Autre objet ou classe Augmenter(3,5) "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement crer X dtruire temps getValue(a) 5,5 Modifier(b) Diagramme de collaboration objectifs ! Faire apparatre les classes, spcifier lusage des instances ! Montrer les interactions entre objets par leurs liens et les messages changs ! Mmes conseils d'utilisation que les diagrammes de squences 15 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme de collaboration notation 16 Un Objet Un Autre Objet Un acteur 1:augmenter(3,5) "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Un Objet 2 : <<crer>> 3 :modifier Diagramme de classes objectifs ! Point central de la modlisation du systme pour dcrire ce que le systme doit faire (analyse) et comment il va le faire (conception) ! Reprsentation de la structure statique du systme dinformation ! Modlisation des classes et de leurs relations ! un Diagramme de package permet de reprsenter les dpendances entre les diffrents package du systme 17 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme de classes notation 18 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme dobjets objectifs ! Appel aussi diagramme dinstances, il reprsente aussi la structure statique ! reprsentation des instances ! Sutilise de manire ponctuelle pour ! montrer leffet dune interaction ! reprsenter des structures complexes (rcursives) 19 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme dobjets notation 20 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme dtats-transitions objectifs ! Reprsentation du cycle de vie des instances dune classe ! Spcification des tats, des transitions entre ces tats et des actions associes aux transitions ! Sutilise pour la modlisation de la dynamique de certaines classes 21 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme dtats-transitions notation 22 Le premier tat Entre/Action Sortie/Action Un autre tat [garde]venement/action "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement do/Action Evnement/Action Diagramme dactivits objectifs ! Reprsentation ! un processus dune organisation ! du comportement doprations d'une classe ! Plusieurs points de vue ! pour analyser un processus ! pour concevoir un objet !! Plusieurs acceptions de la notion dactivit ! une opration ! une tape dans une opration ! une action dun scnario dun cas d'utilisation 23 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme dactivits notation 24 Une activit Une autre activit Une activit rsultant d'une synchronisation Une activit nouvelle Une transition "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme de composants objectifs ! Description des composants logiciels et de leurs dpendances ! Composant : un fichier de programme source, une bibliothque, un programme excutable, rutilisable ! Utilis en conception de logiciel pour allouer les classes et objets aux composants "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement 25 Diagramme de composants notation 26 Un composant Un autre composant Une dpendance fait rfrence aux services offerts par un composant. La flche va de l'utilisateur vers le fournisseur. "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme de dploiement objectifs ! Description ! de la configuration matrielle des units de traitements (hard et soft). ! de larchitecture technique, des nuds et de leur interconnexion ! Nuds de larchitecture : serveurs, postes de travail et priphriques ! Les composants sont allous aux diffrents nuds 27 "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Diagramme de dploiement notation 28 Un noeud Un autre noeud Un composant Un autre composant "!Cas dutilisation "!Squences "!Collaboration "!Classes "!Objets "!tats/transitions "!Activits "!Composants "!Dploiement Liens entre les diagrammes Diagramme Composants Diagramme Cas Utilisation Cas dUtilisation Diagramme Squences Diagramme Collaboration Diagramme Classes Diagramme Etats Diagramme Dploiement est utilis par 29 Sommaire !!Objectifs dun processus dingnierie logicielle !!Modles UML (rappels) !!Processus de dveloppement Unifi !!Principes !!Recueil des besoins, Analyse, Conception !!Utilisation des diagrammes !!Processus pilot par les cas dutilisation !!Processus centr sur larchitecture !!Processus guid par les Patterns 30 Processus Unifi Principes (1) ! Il n'existe pas un seul processus de dveloppement, ni de processus standard ! CEPENDANT des caractristiques essentielles peuvent tre mises en avant : ! Pilotage par les cas d'utilisation ! Focalisation sur l'architecture ! Utilisation de patrons de conception (Design Patterns) ! Droulement itratif et incrmental ! Accent mis sur les phases plus que sur les activits danalyse, conception, 31 Processus Unifi Principes (2) 32 Langage UML Cas d'utilisation Architecture Itratif et incrmental Processus Unifi Processus A Processus B bas sur pilot par se droule centr sur * Facteurs organisationnels * Facteurs de domaine * Facteurs techniques Conseils Patterns guid par Processus Unifi Principes (3) Pilot par les cas dutilisation ! Le processus de dveloppement est centr sur lutilisateur. 33 A partir des cas dutilisation, les dveloppeurs crent une srie de modles UML. Processus Unifi Principes (4) Centr sur larchitecture ! Larchitecture regroupe les diffrentes vues du systme qui doit tre construit. ! Elle doit prvoir la ralisation de tous les cas dutilisation. ! Marche suivre: ! Crer une bauche grossire de larchitecture. ! Travailler sur les cas dutilisation reprsentant les fonctions essentielles. ! Adapter larchitecture pour quelle prenne en compte ces cas dutilisation. ! Slectionner dautres cas dutilisation et refaire de mme. ! Larchitecture et les cas dutilisation voluent de faon concommitante. 34 Processus Unifi Principes (5) Itratif et incrmental ! Dcoupe du projet en mini-projet : ! des ITRATIONS qui donnent lieu un INCRMENT ! Chaque itration comprend un certain nombre de cas dutilisation et doit traiter en priorit les risques majeurs. ! Une itration reprend les livrables dans ltat o les a laiss litration prcdente et les enrichit progressivement (incrmental). ! Les itrations sont regroupes dans une phase. Chaque phase est ponctue par un jalon qui marquera la dcision que les objectifs (fixs pralablement) ont t remplis. 35 Processus Unifi Principes (5) Itratif et incrmental ! Segmentation du travail ! Concentration sur les besoins et les risques, ! Les premires itrations sont des prototypes ! exprimentation et validation des technologies, ! planification, ! Les prototypes dfinissent le noyau de l'architecture. 36 Processus Unifi Principes (5) Itratif et incrmental ! Ordonnancement des itrations bas sur les priorits entre cas d'utilisation et sur l'tude du risque 37 Pr-Etude Elaboration Intgration Construction Pr-Etude Elaboration Intgration Pr-Etude Elaboration Intgration Construction Construction Dfinition de l'itration Evaluation Phases 38 temps Pr-tude : ! Dlimiter la porte du systme, ! Dfinir les frontires et identifier les interfaces ! Dvelopper les cas dutilisation ! Dcrire et esquisser larchitecture candidate ! Identifier les risques les plus srieux ! Dmontrer que le systme propos est en mesure de rsoudre les problmes ou de prendre en charge les objectifs fixs ! Vision : Glossaire, Dtermination des parties prenantes et des utilisateurs, Dtermination de leurs besoins, Besoins fonctionnels et non fonctionnels, Contraintes de conception Vision Phases 39 temps ! Elaboration : Spcification des fondements de larchitecture, crer une architecture de rfrence Identifier les risques, ceux qui sont de nature bouleverser le plan, le cot et le calendrier, Dfinir les niveaux de qualit atteindre, Formuler les cas dutilisation pour couvrir environ 80% des besoins fonctionnels et de planifier la phase de construction, Planification du projet, laborer une offre abordant les questions de calendrier, de personnel et de budget ! Architecture : Document darchitecture Logicielle, Diffrentes vues selon la partie prenante, Une architecture candidate, Comportement et conception des composants du systme Vision Architecture Phases temps Construction : ! Extension de lidentification, de la description et de la ralisation des cas dutilisation ! Finalisation de lanalyse, de la conception, de limplmentation et des tests ! Prservation de lintgrit de larchitecture ! Surveillance des risques critiques et significatifs identifis dans les dex premires phases et rduction des risques # Produit Vision Architecture Premires fonctionnalits 40 Phases temps Transition : ! Prparation des activits ! Recommandations au client sur la mise jour de lenvironnement logiciel ! Elaboration des manuels et de la documentation concernant la version du produit ! Adaptation du logiciel ! Correction des anomalies lies au bta test ! Dernires corrections # Livraison du produit aux utilisateurs Vision Architecture Premires fonctionnalits Livraison Produit 41 Activits (1) ! Modlisation mtier : ! Comprhension de la structure et la dynamique de l'organisation ! Comprendre les problmes poss dans le contexte de l'organisation ! Conception dun glossaire ! Recueil et expression des besoins : ! Auprs des clients et parties prenantes du projet ! Ce que le systme doit faire ! Expression des besoins dans les cas d'utilisation ! Spcifications des cas d'utilisation en scnarios ! Limites fonctionnelles du projet ! Spcifications non fonctionnelles ! Planification et prvision de cot ! Production de Maquettes de lIHM 42 Activits (1) Production de maquettes IHM ! La production de maquettes peut tre ralise avec nimporte quel outil graphique : ! ce sont de simples dessins d'crans et descriptions de contenu de fentres ; ! prototype d'interface gnr par un outil ! Intressant pour dcrire les interfaces avec des acteurs non humains et notamment les notions de protocoles de communication. ! Pourquoi si tt dans le processus ? ! Aide la description et validation des Cas dUtilisation ! moyen de communication avec le client ! permet l'identification de classes ! montre au client la progression du travail 43 Activits (2) ! Analyse et conception : ! Transformation des besoins utilisateurs en modles UML ! Modle d'analyse et modle de conception ! Implmentation : ! Dveloppement itratif ! Dcoupage en couches ! Composants d'architecture ! Retouche des modles et des besoins ! Units indpendantes, quipes diffrentes ! Test, Dploiement, Configuration et gestion des changements, Gestion de projet, Environnement, Dploiement 44 Itrations (1) Une itration est une squence dactivits selon un plan pr-tabli et des critres dvaluation, rsultant en un produit excutable. Arch Iteration ... Cons Iteration Cons Iteration ... Trans Iteration ... Release Release Release Release Release Release Release Release Prelim Iteration ... 45 Itrations (2) 46 Management Environment Modlisation Mtier Implmentation Test Analyse & Conception Preliminary Iteration(s) Iter. #1 Phases Enchanement des Activits dIngnierie Iterations Enchanement des activits Support Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Dploiement Configuration Mgmt Recueil des besoins Elaboration Transition Pr-tude Construction Une itration dans la phase d'laboration Sommaire !!Objectifs dun processus dingnierie logicielle !!Modles UML (rappels) !!Processus de dveloppement Unifi !!Principes !!Recueil des besoins, Analyse, Conception !!Utilisation des diagrammes !!Processus pilot par les cas dutilisation !!Processus centr sur larchitecture !!Processus guid par les Patterns 47 Modles 48 Recueil Besoins Analyse Conception Implmentation Test Modles de test Modles des Use Case Modles dAnalyse Modles de Conception Modles de Dploiement Modles Dimplmentation Recueil des besoins ! L'une des tapes les plus importantes ! dterminante pour la suite ! sert la dfinition des aspects contractuels ! L'une des tapes les plus difficiles ! intervenants multiples : client, utilisateurs, dveloppeurs ! le problme nest pas encore formalis ! Rgle dor respecter : Les informaticiens sont aux services du client, pas linverse 49 Section issue du cours de J.M. Favre (IMAG) Recueil des besoins Rle ! Identifier les diffrents intervenants : client(s), utilisateurs, matre duvre, dveloppeurs, ... ! Identifier le rle de chacun, ventuellement leur associer des priorits ! Identifie les services que le systme devrait fournir et dfinit les contraintes sur le systme. ! Runit toute l'information du domaine disponible pour les membres du projet. ! tablit une base contractuelle sur laquelle le client et l'organisation du projet s'appuient lors des ngociations. ! Permet l'estimation des cots et des chanciers ! Procure les critres de validation et vrification ! Facilite le transfert des connaissances et la gestion des configurations ! Sert de base aux amliorations futures. 50 Recueil des besoins Exigences (1) Selon IEEE 610.12, une exigence est : Une condition ou une capacit ncessaire un utilisateur pour rsoudre un problme ou atteindre un objectif Une condition ou une capacit que doit possder un systme afin de satisfaire aux termes d'un contrat, dune norme ou dune spcification formellement impose. La reprsentation documente de cette condition ou capacit. Selon IEEE 830, une spcification dexigences comprend : Les fonctionnalits : services et fonctions que le systme doit fournir. Les interfaces externes : identification des interactions avec les utilisateurs et les autres systmes avec lesquels le nouveau systme doit s'intgrer. La performance : contraintes d'opration du systme en disponibilit et en temps rponse. Les attributs du systme : caractristiques intrinsques telles que la portabilit, l'exactitude, la maintenabilit, la scurit, etc. Les contraintes de conception: contraintes sur la faon de dvelopper le systme. 51 Recueil des besoins Exigences (2) ! Exigences fonctionnelles ! quoi sert le systme ! ce que doit faire le systme, les fonctions utiles ! Exigences non fonctionnelles ! performance, sret, confidentialit, portabilit, etc. ! chercher des critres mesurables 52 Recueil des besoins Exigences non fonctionnelles ! Exigences qui ne concernent pas spcifiquement le comportement du systme. ! Elles identifient des contraintes internes et externes du systme. ! Elles doivent avoir des valeurs quantitatives. ! Types dexigences non fonctionnelles ! Utilisabilit : Capacit pour un utilisateur dexcuter une tche dans un temps donn aprs une formation dune dure dtermine. ! Performance : Temps dattente < 10s. ! Fiabilit : Systme critique ! Disponibilit : 24/7 ! Scurit : Accs personnaliss, connexions scurises ! Maintenabilit : Modularit, commentaires, complexit, interfaces ! Portabilit : Utilisable avec plusieurs systmes dexploitation 53 Recueil des besoins Etapes : vue densemble ! Capture des besoins ! collecte des informations : interviews, lecture de documentation ! chercher comprendre : (1) le domaine (2) le problme ! Dfinition des besoins ! restitution dans un langage comprhensible par le client ! identification, structuration, dfinition d'un dictionnaire ! Spcification des besoins ! spcification dtaille des besoins, plus formel ! utile pour le client, mais aussi pour les dveloppeurs 54 Recueil des besoins Etapes : Capture des besoins (1) ! Objectifs : comprendre le domaine, comprendre le problme ! # Collecter le maximum d'informations ! Lecture des documents fournis, Consulter les documents pertinents au systme ! Interviews du client, des utilisateurs, discuter avec le client ou lutilisateur afin de btir une comprhension commune des exigences du systme. ! Runions de travail ! Collecter des exemples pour valider ! tudier les systmes existants le cas chant, ! observer lexcution des tches des utilisateurs que le systme doit soutenir. 55 Recueil des besoins Etapes : Capture des besoins (2) !! Ragir et tre actif ! ! tablir la liste des documents consults, les classer ! laborer une liste de questions prcises ! les numroter, les dater, ! faire rfrence aux documents concerns ! crire un ou plusieurs documents et les diffuser ! Provoquer les runions et les mener ! tablir lordre du jour ! prendre des notes ! faire systmatiquement des comptes rendus crits 56 Recueil des besoins Etapes : Dfinition des besoins (1) ! Restituer les informations sous forme synthtique ! Scnarios et cas dutilisation : Identifier une squence d'actions effectues par le systme qui rsultent en un rsultat observable, Utiliser et simuler l'utilisation du systme afin dexpliciter et de clarifier Exigences ! Ce qui nest pas crit nexiste pas ! ! Prciser les besoins, pas la solution ! Prciser ce que doit faire le systme ! et aussi ce quil nest pas sens faire. ! mais surtout pas comment il doit le faire. ! Etablir des priorits ! Arriver un consensus avec le client 57 Recueil des besoins Etapes : Dfinition des besoins (2) ! Les besoins doivent tre compris par tous ! utiliser la langue naturelle Faire des phrases courtes, Eviter le conditionnel, le futur, les termes ambigus ou subjectifs, ... Parler en termes de rles plutt que de personnes Numroter les paragraphes si ncessaire, Utilisation de rfrences prcises Elaborer un dictionnaire ! utiliser des schmas si ncessaire ! tout schma doit tre comment et comporter une lgende ! Structurer le document de dfinition ! suivre un plan standard si disponible ! numroter les sections, rfrences, index, 58 Recueil des besoins Etapes : Dfinition des besoins (3) ! Dfinir un dictionnaire ! Indispensable d'avoir un langage commun dfinition d'un vocabulaire prcis client, quipe de dveloppement, utilisateurs ! Utilisation dans les documents et aussi le logiciel ! analyse des besoins (clients) base pour le dveloppement du logiciel (dveloppeurs) base pour l'interface du logiciel (utilisateurs) ! Technique simple mais efficace ! ! Intrt : Outil de dialogue, Informel, facile raliser, facile faire voluer ! Permet de dcrire la terminologie du domaine ! rutilisable dans un autre projet ! Permet de dtecter les ambiguts Montre l'essentiel du domaine d'application Permet d'assurer la traabilit 59 Recueil des besoins Etapes : Dfinition des besoins (4) ! Conseils pour la construction du dictionnaire : ! Partir de la description du problme ! Reprer les groupes nominaux $ notion ! Reprer les groupes verbaux $ action ou notion ! Eliminer les synonymes ! Eliminer les termes inutiles ! Donner des dfinitions simples ! Permet de se concentrer sur l'essentiel ! Doit tre complt et mis jour ! 60 Recueil des besoins Etapes : Dfinition des besoins (5) 61 opration IncrGaz Action permettant dinjecter du carburant pour augmenter la vitesse de lavion Augmenter les gaz Type entit Nom info. Dfinition Action Classe MancheABa lai Intrument permettant au pilote de diriger lavion Manche balai Classe abstraite Instrument Organe dinteraction entre le pilote et lavion Instrument paquetage Pilotage Action de piloter un avion en enchanant des manoeuvres lmentaires Pilotage Type entit Nom. Info. Dfinition Notion Recueil des besoins Etapes : Spcification des besoins ! Interface entre le client et les dveloppeurs ! doit tre compris par les deux ! dfinit dans le dtail ce qui doit tre ralis ! doit tre prcis car contractuel ! Utilisation de techniques semi-formelles ! ex. diagrammes de cas d'utilisation UML ! ex. diagrammes de classes UML 62 Recueil des besoins Intervenants et tapes 63 Recueil des besoins Modle dAnalyse 64 * Classes d'analyse %! Responsabilits %! attributs %! associations Ralisation de cas d'utilisation Diagrammes de classes Diagrammes de collaboration Packages d'analyse * Modle d'analyse Analyse Formul dans le langage du client Structure la vue externe du systme Structur avec les cas d'utilisation Contrat entre le client et les dveloppeurs : ce que le systme doit faire et ne pas faire Exprime les caractristiques du systme Formul dans le langage du dveloppeur Structure la vue interne du systme Structur avec des paquetages et des strotypes Indication aux dveloppeurs de la forme du systme (pour conception et implmentation) Esquisse une ralisation des caractristiques du systme Modle des cas dutilisation Modle d'analyse Modle dAnalyse vs Modle des cas dutilisation 65 Analyse Classes dAnalyse ! Classes candidates partir des descriptions des Use Cases ! 3 types de classes : ! Classes'entit ! classes donnes du systme (dure de vie plus longue que celle des UC) ! Classes'frontire ! interfaces entre acteur et systme ! Classes'contrle ! encapsulent le comportement d'un Use Case 66 Analyse Classes danalyse : Classes Entits ! Informations dont la dure de vie dpasse celle des UC ! Mthodes pour manipuler ces informations ! Elles ! sidentifient en structurant judicieusement les informations impliques dans chaque UC en classes et attributs ! ne sont pas trop nombreuses (utiliser les UC, les autres sources servent pour confirmation) ! apparaissent couramment dans plusieurs UC ! Les responsabilits et les attributs sont diffrents dun UC lautre ! Une fois lensemble de classes de chaque UC identifi, on peut les combiner 67 Analyse Classes danalyse : Classes Frontires ! Connexion des autres classes du systme un acteur ! conversion des entres des acteurs en vnements ou en messages internes ! transformation des messages de sortie pour quils soient compris des acteurs ! Elles proviennent directement de lanalyse de la maquette IHM ! Au moins une classe frontire par paire (acteur-cas dutilisation). En gnral, ces classes vivent aussi longtemps que le cas dutilisation concern ! Possibilit davoir des objets subalternes auxquels il dlgue une partie de ses responsabilits ! Les classes frontires peuvent possder ! des attributs qui reprsentent les champs de saisie ou des rsultats. Les rsultats sont reprsents en utilisant la notation des attributs drivs (/) ! des oprations qui reprsentent les actions que lutilisateur pour utiliser sur lIHM 68 Analyse Classes danalyse : Classes Contrle ! Contiennent un scnario de UC ! liaison entre interface et objets entit ! Les objets de contrle ont une dure de vie gale celle du UC ! Les UC simples nont pas besoins de classe contrle ! on place le comportement dans les classes entit et frontire 69 Analyse Description des classes danalyse ! Mettre jour les spcifications des classes et de leurs attributs au fur et mesure que le modle volue ! Rle de la classe par rapport au problme ! Dtails de la vie des objets ! Responsabilits des classes dcrites plus tard, une fois la ralisation des UC termine ! Chaque attribut est document 70 Analyse Ralisation des cas dutilisation (1) ! Construire la ralisation des UC ! crer les diagrammes de collaboration et des descriptions de flux dvnements ! Gnrer des diagrammes de classe pour chaque UC ! trouver les associations entre classes ncessaires chaque ralisation de UC 71 Analyse Ralisation des cas dutilisation (2) ! Une fois les classes identifies et dcrites pour chaque UC, elles sont utilises pour raliser les cas d'utilisation ! analyse du UC dans le comportement et la structure ! partir des diagrammes de collaboration et de classe Analyse 72 Ralisation des cas dutilisation (3) ! Les diagrammes dinteractions sont bass sur lanalyse des interactions ! instances des acteurs, les objets de l'analyse et les liaisons impliques dans un UC particulier ! Ils montrent la squence dvnements entre objets dans des scenarii de UC ! Le comportement est dcrit dans les descriptions des UC 73 Analyse Ralisation des cas dutilisation (4) ! Les diagrammes de classes sont bass sur l'analyse des classes ! classes, associations et attributs impliqus dans un UC donn 74 Analyse Analyse des interactions ! Les diagrammes de collaboration montrent les interactions entre objets ! acteurs, objets et liaisons ! Squences numrotes de messages qui se propagent entre les objets pour raliser le UC ! En analyse, on utilise les strotypes des classes d'analyse (entit, frontire et contrle) 75 Analyse Analyse des classes ! Lanalyse de classes est l'tape du processus qui attache les diagrammes de classes chaque ralisation de UC ! classes, attributs et associations ! identification et documentation des responsabilits de chaque classe ! Les classes et leurs instances apparaissent souvent dans plusieurs ralisations de UC ! Elles ont alors des responsabilits, attributs et associations propres chaque UC 76 Analyse Identification des responsabilits ! Pour chaque classe, trouver les ralisations de UC o elles apparat ! lister les responsabilits (permet de choisir les mthodes et signatures) ! chaque flche qui arrive un objet de la classe invoque une partie des responsabilits de cette classe ! cf diagrammes dinteractions (collaborations et squences) 77 Analyse Identification des proprits ! Ajouter les attributs et leurs types aux classes ! souvent trouvs lors de lidentification des classes ! lister et dcrire chaque attributs partir de chaque ralisation de UC 78 Analyse Identification des proprits ! Remarques : ! les attributs des classes qui sinterfacent des humains sont souvent des champs de donnes comme ceux des botes de dialogue ! les attributs de classes qui s'interfacent des quipements sont souvent des valeurs ou les tats de capteurs, ou les paramtres dun protocole de communication ! les attributs des classes contrle sont des donnes temporaires de UC 79 Analyse Identification des relations ! Observer les liaisons dans les diagrammes de collaboration : ! chaque liaison peut tre une instance d'une association sous-jacente ! elle peut mme dans certains cas impliquer une agrgation ou une gnralisation 80 Analyse Identification des relations ! Toutes les liaisons du diagramme ne sont pas des associations ! certaines peuvent tre temporaires ! Crer un diagramme de classe contenant les classes, les associations et les attributs pertinents pour chaque ralisation de use- case 81 Analyse Diagramme de classes ! Une association est une rfrence entre deux classes, utiliser : ! les descriptions de UC et les descriptions de scnarios ! les diagrammes d'interaction ! la modlisation mtier ! Les associations doivent tre documentes dans les descriptions des ralisations des UC 82 Analyse Diagramme de classes ! Types dassociation : ! association ! connexion logique de longue dure entre 2 classes ! associations les plus importantes, elles permettent de trouver toutes les relations entre les classes et donc construisent le modle de classe ! une association temporaire ! elle n'existe que pour quune classe envoie un message spcifique une autre ! type d'association rencontre trs souvent dans les descriptions de UC ! trouver les associations statiques sous-jacentes. 83 Analyse Construction modle danalyse 1.! Identifier les classes Au dpart, ne pas tre trop slectif et noter tout ce qui vient lesprit Ne pas se soucier trop de lhritage ni des classes de haut niveau 2.! Conserver les classes pertinentes Elimination des : ! Classes redondantes : classes exprimant le mme concept / Conservation du nom le plus vocateur ! Classes sans intrt : classe sans lien avec le contexte ou ne faisant pas partie du primtre du logiciel ! Classes vagues : classes ayant des frontires mal dfinies ou une porte trop large ! Attributs : re-formulation des noms dcrivant originellement des objets individuels sous la forme dattributs ! Oprations : appliques des objets et non manipules en tant quoprations 3.! Poursuivre le dictionnaire de donnes Dcrire prcisment chaque classe par un paragraphe Dcrire la porte de chaque classe dans le problme courant, en incluant toutes les hypothses et les restrictions quant son utilisation Dcrire galement les attributs, associations, oprations et valeurs numres 84 Analyse Construction modle danalyse 4.! Identifier les associations et conserver les associations pertinentes Elimination des : Associations non pertinentes ou relevant de limplmentation Actions Associations ternaires par dcomposition associations binaires, associations qualifies ou classes-associations Associations drives : associations dfinies en termes dautres associations (car redondance) Attention : Toutes les associations formant plusieurs chemins entre des classes nindiquent pas une redondance Prcision de la smantique des associations : viter les associations mal nommes : choix des noms primordial pour la comprhension Indiquer les noms dextrmits dassociations Identifier les associations qualifies Prciser les multiplicits Ajouter les associations manquantes Transformer certaines associations en agrgations Analyse 85 Construction modle danalyse 5.! Identifier les attributs des objets et les liens Ne pas pousser la recherche des attributs lextrme. Ne considrer que les attributs pertinents pour lapplication Rechercher en premier les attributs les plus importants ; Repousser les dtails plus tard Omettre les attributs drivs Rechercher les attributs des associations limination des attributs inutiles ou incorrects : ! Diffrencier les objets de leurs valeurs ! Utiliser des qualificateurs ! Ne pas prciser les attributs identificateurs excepts ceux du domaine de lapplication ! liminer les valeurs internes et les dtails fins 6.! Organiser et simplifier les classes en utilisant lhritage 7.! Vrifier que tous les chemins daccs existent pour les requtes probables 8.! Itrer et affiner le modle 9.! Rexaminer le niveau dabstraction 10.! Regrouper les classes en package Analyse 86 Fin analyse ! La phase danalyse fournit une comprhension des exigences, des concepts et du comportement de lapplication. ! Un ensemble minimal de documents relatifs au modle danalyse dune application comprend : ! Document de description des besoins ! Document de description des cas dutilisation ! Document de description des diagrammes de classe danalyse pour chaque cas dutilisation ! Les diagrammes de squence du systme ! Description de larchitecture logicielle souhaite 87 Modle de Conception 88 * Classes de conception %! mthodes %! visibilits des attributs Ralisation de cas d'utilisation Diagrammes de classes Diagrammes de squences Sous-systme de conception * Modle de conception Interface Conception Modle danalyse vs Modle de conception 89 ! Modle conceptuel ! Autorise plusieurs conceptions ! Peu de strotypes de classes ! Peu de couches ! Modle physique ! Spcifique une implantation ! Strotypes dpendant de lenvironnement cible dimplantation ! Plusieurs couches Modle danalyse Modle de conception Conception Etapes suivre 1.! Estimer les performances du systme 2.! Mettre au point un plan de rutilisation 3.! Organiser le systme en sous-systmes 4.! Identifier les questions de concurrence inhrentes au problme 5.! Allouer les sous-systmes aux quipements matriels 6.! Grer le stockage des donnes 7.! Grer les ressources globales 8.! Choisir une stratgie de contrle du logiciel 9.! Traiter les cas limites 10.! Arbitrer les priorits 11.! Slectionner un style architectural 90 Conception des classes ! Finalisation de la dfinition des classes et des associations ! Choix des algorithmes des oprations ! Ajout de dtails et prise de dcisions fines ! Choix des diffrentes faons dimplmenter les classes danalyse ! Ncessit davoir plusieurs itrations des niveaux successifs dabstraction ! Critres de facilit dimplmentation, de maintenabilit et dextensibilit 91 Sommaire !!Objectifs dun processus dingnierie logicielle !!Modles UML (rappels) !!Processus de dveloppement Unifi !!Principes !!Recueil des besoins, Analyse, Conception !!Utilisation des diagrammes !!Processus pilot par les cas dutilisation !!Processus centr sur larchitecture !!Processus guid par les Patterns 92 Modles de test Modles des Use Case Modles dAnalyse Modles de Conception Modles de Dploiement Modles Dimplmentation Diagrammes de Composants utilise utilise utilise utilise Utilisation des diagrammes (1) 93 Modles de test Modles des Use Case Modles dAnalyse Modles de Conception Modles de Dploiement Modles Dimplmentation Diagrammes de Composants utilise utilise utilise utilise utilise Utilisation des diagrammes (2) 94 Modles de test Modles des Use Case Modles dAnalyse Modles de Conception Modles de Dploiement Modles Dimplmentation Diagrammes de Composants utilise utilise utilise utilise utilise Utilisation des diagrammes (3) 95 Modles de test Modles des Use Case Modles dAnalyse Modles de Conception Modles de Dploiement Modles Dimplmentation Diagrammes de Composants utilise utilise utilise Utilisation des diagrammes (4) 96 Modles de test Modles des Use Case Modles dAnalyse Modles de Conception Modles de Dploiement Modles Dimplmentation Diagrammes de Composants utilise utilise utilise Utilisation des diagrammes (5) 97 Modles de test Modles des Use Case Modles dAnalyse Modles de Conception Modles de Dploiement Modles Dimplmentation Diagrammes de Composants utilise utilise utilise utilise Utilisation des diagrammes (6) 98 Sommaire !!Objectifs dun processus dingnierie logicielle !!Modles UML (rappels) !!Processus de dveloppement Unifi !!Principes !!Recueil des besoins, Analyse, Conception !!Utilisation des diagrammes !!Processus pilot par les cas dutilisation !!Processus centr sur larchitecture !!Processus guid par les Patterns 99 Processus pilot par les cas dutilisation (1) 100 Management Environment Modlisation Mtier Implmentation Test Analyse & Conception Preliminary Iteration(s) Iter. #1 Phases Workflows Ingnierie Iterations Workflows Support Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Dploiement Configuration Mgmt Recueil des besoins Elaboration Transition Pr-tude Construction ! les analystes identifient la plupart des UC pour dlimiter le systme, et dtaillent les plus importants Processus pilot par les cas dutilisation (2) 101 Management Environment Modlisation Mtier Implmentation Test Analyse & Conception Preliminary Iteration(s) Iter. #1 Phases Workflows Ingnierie Iterations Workflows Support Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Dploiement Configuration Mgmt Recueil des besoins Elaboration Transition Pr-tude Construction ! les analystes trouvent les UC restant (objectif : 80%) et les dcrivent pour estimer l'effort de dveloppement en fin de phase Processus pilot par les cas dutilisation (3) 102 Management Environment Modlisation Mtier Implmentation Test Analyse & Conception Preliminary Iteration(s) Iter. #1 Phases Workflows Ingnierie Iterations Workflows Support Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Dploiement Configuration Mgmt Recueil des besoins Elaboration Transition Pr-tude Construction ! le reste des UC est exprim et implment Processus pilot par les cas dutilisation (4) 103 Management Environment Modlisation Mtier Implmentation Test Analyse & Conception Preliminary Iteration(s) Iter. #1 Phases Workflows Ingnierie Iterations Workflows Support Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Dploiement Configuration Mgmt Recueil des besoins Elaboration Transition Pr-tude Construction ! sauf changement, aucun UC ne doit rester dcouvrir Processus pilot par les cas d'utilisation (5) ! Les cas d'utilisation sont le fil conducteur de toutes les activits Modle dAnalyse Modle de Conception Modle de Dploiement Modle d'implantation Modle de Test spcialis par ralis par distribu par ralis par vrifi par Modle des cas dutilisation 104 Processus pilot par les cas d'utilisation (6) 105 Processus dirig par les cas d'utilisation (7) : org. travail ! Dcoupage et organisation du travail selon les cas d'utilisation : 106 Analyse Experts du domaine Conception et Ralisation Architectes Concepteurs Programmeurs Test lntgrateurs et testeurs Les cas d'utilisations relient ces tches ensemble Processus dirig par les cas d'utilisation (8) : conclusion ! Les cas d'utilisation recentrent l'expression des besoins sur les utilisateurs ! Outil d'aide l'identification et la structuration des besoins. On structure la dmarche par rapport aux interactions d'une seule catgorie d'utilisateurs la fois ! Outil d'aide l'analyse et la conception objet. On s'intresse un ensemble de classes qui collaborent dans un certain contexte (celui du cas d'utilisation) ! Description de la structure de la collaboration ! Description du comportement de la collaboration ! Outil de communication 107 Sommaire !!Objectifs dun processus dingnierie logicielle !!Modles UML (rappels) !!Processus de dveloppement Unifi !!Principes !!Recueil des besoins, Analyse, Conception !!Utilisation des diagrammes !!Processus pilot par les cas dutilisation !!Processus centr sur larchitecture !!Processus guid par les Patterns 108 Processus centr sur larchitecture (1) ! Recherche de la forme gnrale du systme ds le dbut ! Approche systmatique pour trouver une bonne architecture qui soit : ! support des cas d'utilisation ! adaptable aux changements ! pour et avec la rutilisation ! comprhensible intuitivement 109 Processus centr sur (1) l'architecture : moyens UML ! La description de l'architecture est explicite. C'est un artefact du processus ! Les choix d'architecture sont pris trs tt dans le processus ! La notion de paquetage permet dorganiser la spcification ! Forte cohsion ! Faible couplage ! Notion de couches ! Composition de paquetages 110 Couche service Couche application Processus centr sur (2) l'architecture : moyens UML ! Des diagrammes spcifiques ! Diagramme de dploiement ! nuds physiques et connexions ! Diagramme de composants ! composants logiciels et dpendances ! fichier,table de base de donnes, excutable, librairie de fonctions, document ! Respect de rgles d'architecture et structuration des modles tous les niveaux du processus. 111 Processus centr sur (3) l'architecture : moyens UML ! R1 : les packages strotyps ou non peuvent se dcomposer en packages et/ou classes, ! R2 : un package contient une classe d'interface modlisant les services offerts, ! R3 : une classe d'interface reprsente l'ensemble des mthodes et d'attributs publics fournis par les classes du package, ! R4 : les packages actifs contiennent au moins une classe active, ! R5 : une classe active a un comportement propre, elle est dcrite par un diagramme d'tats/transitions, et elle fournit des mthodes contraintes, ! R6 : une mthode est contrainte par un protocole (synchrone, asynchrone, ) ou un tat interne (gr par une machine tats). 112 Processus centr sur l'architecture (2) ! Plusieurs manires de voir un systme : 113 Vue logique Vue des processus Vue de dploiement Vue de ralisation Vue des cas d'utilisation Processus centr sur (3) l'architecture : vue logique ! Abstraction et encapsulation, ! Modlisation des lments et mcanismes principaux du systme, ! Expression des aspects statiques et dynamiques ! Utilisation : ! diagrammes d'objets et de classes ! diagrammes de collaborations ! interactions, ! paquetages catgories 114 Processus centr sur (4) l'architecture : vue ralisation ! Identification des modules qui ralisent les classes de la vue logique, ! Organisation des modules dans l'environnement de dveloppement ! Elments manipuls : ! modules, ! sous-programmes, ! tches (en tant qu'units de programme) ! paquetage sous-systmes 115 Processus centr sur (5) l'architecture : vue processus ! Importante dans les environnements multi- tches, ! Dcomposition en flots d'excution et synchronisation entre ces flots, ! Elments manipuls : ! tches ! threads, ! processus, ! interactions. 116 Processus centr sur (6) l'architecture : vue dploiement ! Importante dans les environnements distribus, ! Ressources matrielles et l'implantation (distribution) du logiciel dans ces ressources, ! Elments manipuls : ! nuds, ! modules, ! programmes principaux. 117 Processus centr sur (7) larchitecture : vue Use Case ! Besoins des utilisateurs, justification de l'architecture, ! Colle entre les autres vues ! Elments manipuls : ! acteurs, ! cas d'utilisation, ! classes, ! diagrammes de collaboration. 118 Processus centr sur l'architecture (10) 121 Vision Logique Utilisateus finaux Fonctionalits Vision Implmentation Programmeurs Gestion du logiciel Vision Processus Performance Changement dchelles Throughput Intgrateurs systme Vision Dploiement Topologie du systme Installation Communication Ingnieur systme Conceptuel Physique Vision cas dutilisation Classes, Objets, Collaboration, Squences Etats-Transitions Activit Composants Dploiement Cas d'utilisation Sommaire !!Objectifs dun processus dingnierie logicielle !!Modles UML (rappels) !!Processus de dveloppement Unifi !!Principes !!Recueil des besoins, Analyse, Conception !!Utilisation des diagrammes !!Processus pilot par les cas dutilisation !!Processus centr sur larchitecture !!Processus guid par les Patterns 122 Processus guid par les patterns (1) 123 La notion de patron (ou pattern ) Les bonnes pratiques, les bonnes solutions La plupart des patrons visent la rutilisabilit et l'extensibilit Un moyen de transfrer des comptences Nom_du_Pattern Un problme rcurrent de conception O.O. Une solution exprime en UML Les bnfices Processus guid par les patterns (2) 124 Le composite pattern Le nom Le problme Les bnfices La solution Composite Pattern Reprsenter des objets complexes Objet- complexe Objet- simple Element ! Construction rcursive de hirarchies Considrer de manire homogne les nuds simples et complexes *