M'ethode de conception Orient'ee Objet UML Course Notes PDF
Document Details
Uploaded by Deleted User
Faculté des Sciences Dhar El Mahraz Fès
2022
Bennani Mohamed Taj
Tags
Summary
This document covers the introduction to UML (Unified Modeling Language) with its context, objectives and specifications. It's a study guide containing the UML methodology for designing software. It's intended for undergraduate-level students.
Full Transcript
# M'ethode de conception Orient'ee Objet UML ## M'ethode de Conception Orient'ee Objet UML Bennani Mohamed Taj Facult'e des sciences Dhar El Mahraz Fes 2022/2023 ## Section I: Introduction ### Contexte * L'apprehension d'une problematique complexe telle que le d'eveloppement d'applications repose...
# M'ethode de conception Orient'ee Objet UML ## M'ethode de Conception Orient'ee Objet UML Bennani Mohamed Taj Facult'e des sciences Dhar El Mahraz Fes 2022/2023 ## Section I: Introduction ### Contexte * L'apprehension d'une problematique complexe telle que le d'eveloppement d'applications repose de plus en plus sur le recours `a la modelisation informatique. * L'acc'el'eration du renouvellement des technologies conjugu ee avec la pression 'economique et concurrentielle qui s'exerce sur les entreprises, obligent les acteurs du monde informa- tique `a produire des solutions de plus en plus rapidement, dans un contexte d'am´elioration continue de la qualit'e et de la performance des syst`emes d'information. * Internet a 'et'e un vecteur favorasant le d 'eveloppement de tr`es nombreuses applications dont une grande partie utilise des solutions `a base de langage de programmation objet comme Java, C++ ou C#. ### Objectif * Depuis longtemps, le langage UML (Unified Modelling Lan- guage) est d'eveloppée pour formaliser des besoins clients aux programmes qu'ils r´ealisent. * Cette m'ethode est proposée comme moyen de communication entre mod'elisateurs ou informaticiens et les autres m'etiers ind ´ependamment des disciplines et de la technique informa- tique. * UML a apport'e tout naturellement le support m 'ethodologique qui manquait `a tous les concepteurs et d'eveloppeurs, qui voulaient formaliser l'analyse et la conception technique de leur logiciel. ### Sp´ecifications * Depuis plus de 30 ans, la conception des bases de donn'ees est realis´ee `a l'aide du mod`ele entit 'e-association. Ce mod`ele a fait ses preuves et la plupart des outils informatiques de conception l'utilisent encore aujourd'hui. * La notation UML s'est impos´ee depuis quelques ann'ees pour la mod elisation et le d ´eveloppement d'applications 'ecrites dans un langage objet (C++ et Java principalement). * Initialement, UML n'a pas 'et'e con cue pour les bases de donn'ees. Cependant, elle offre un m^eme formalalisme aux concep- teurs d'objets m'etiers et aux concepteurs de bases de donn´ees. * UML s'est impos´ee en tant que langage graphique de mod´elisation puisqu'il r´epond `a un veritable besoin et devenu un standard car il s'appuie sur une norme tr`es structurante. ## Historique de l'UML * II h´erite principalement des m´ethodes objets de Booch OMT (Object Modeling Technique en francais Technique de mod´elisation objet) et OOSE (Object Oriented Software En- gineering) invent´ees respectivement par Grady Booch, Rum- baugh et Jacobson. * UML est une fusion de OOA/OOSE/OMT. * Adopt´e par l' OMG en Novembre 1997 devient un standard. ## Evolution des versions d'UML * **OMT-2**: James Rumbaugh * **UML 0.8**: OOSPLA'95 * **Booch 93**: Grady Booch * **UML 0.9**: WWW Juin 96 * **UML 1.0**: Proposé à un standard OMG fin 1997 * **UML 1.1**: Standard OMG ADTF fin 1997 * **Partenaires divers**: Task force * **OOSE**: Ivar Jacobson * **UML 1.2**: 1998 * **UML 1.3**: 1999 * **UML 1.4**: 2001 * **UML 1.5**: 2003 * **UML 2.0**: 2005 * **UML 2.3**: 2010 * **UML 2.4.1**: 2013 ## Section II: Le g´enie logiciel ### Pr´esentation du g´enie #### D'efinition d'un logiciel * un logiciel est un ensemble de s'equences d'instructions interpretables par une machine et d'un jeu de donn'ees n'ecessaires `a ces operations. #### G'enie logiciel * Un Ensemble de m'ethodes, de techniques et d'outils d 'edi´es `a la conception, au d'eveloppement et `a la maintenance des syst`emes informatiques. ### Les objectifs du g´enie logiciel #### Objectifs du g´enie * Avoir des proc´edures syst´ematiques pour cr´eer des logiciels de grande taille qui respectent les r`egles impos´ees par CQFD : * **Cou^ts**: les cou^ts allou´es `a la r´ealisation doivent ^etre res- pect´es. * **Qualit´e**: il doit respecter les qualit´es suivantes : * **Validit´e**: capacit´e `a ex´ecuter les t^aches pour lesquelles il a 'et'e cr'e'e. * **Fiabilit´e**: capacit´e de fournir les r´esultats attendus. * **Extensibilit´e**: capacit´e d'ajouter de nouvelles fonctionnalit´es. **Compatibilit´e**: capacit´e de coop 'erer avec d'autres logiciels. * **Efficacit´e**: capacit´e de fournir de bon r´esultats dans les d 'elais pr´evus. * **Portabilit'e**: capacit´e d'^etre port´e sur d'autre OS. * **Fonctionnalit´es**: La sp´ecification doit correspondre aux be- soins r´eels du client. * **D´elais**: le d´elais ne doit pas ^etre d'epass'e. ### Les 'etapes de r´ealisation d'un logiciel #### Les phases de r´ealisation d'un * La realisation d'un logiciel se resume en 6 phases : 1. La phase d'analyse. 2. La phase de conception. 3. La phase de r´ealisation. 4. La phase de mise en place. 5. La phase d'exploitation et maintenance. 6. La phase de d'emontage. #### La phase d'Analyse * Pour cr´eer un nouveau logiciel, On effectue l''etude de faisabilit´e qui consiste `a d'eterminer : * Les avantages. * Les inconvenients. * Elle est destin´ee aux d ´ecideurs qui: * Valident les orientations. * Chiffrent l'effort, cou^t de r'ealisation, gestion des d 'elais, temps de formation des utilisateurs, cou^ts d'achat de nouveaux materiels, recuperation des anciennes donn´ees. #### Le cahier des charges * Le Cahier des charges est une phase importante qui permet de: Faire une 'etude de l'existence des logiciels. * Est un guide qui permet de d'efinir les logiciels dans ses grandes lignes (pas trop techniques). * Indique ce qui doit ^etre fait mais sans dire vraiment com- ment. Permettra au concepteur de valider chaque 'etape de la r´ealisation du logiciel. Indique les specifications du projet. #### La phase de conception * C'est la phase la plus importante, elle d'efinit l'architecture du logiciel (son squelette, son comportement, etc.). Il y'a 2 architectures : * **L'architecture global du logiciel**: qui consiste a faire une representation globale du logiciel (d 'ecrire le logiciel de fa con global). * **L'architecture d'etaillee**: d'ecrit les composants du logiciel et le lien entre les differents composants du logiciel. * L'architecture d'un logiciel concerne 2 aspects : * **L'aspect statique**: d'ecrit les parties non variables du logiciel une fois valid´e. * **L'aspect dynamique**: d'ecrit le comportement du logiciel de fa con globale et de chaque composant du logiciel. #### La phase de realisation * Une fois la conception termin´ee et valid´ee, la r ´ealisation du logiciel doit ^etre effective. * Il s'agit de transformer le schema du logiciel en un produit (executable). * Cette phase consiste `a conduire le logiciel. * **La specification consiste `a d'ecrire toutes les sp ´ecifications :** * **Fonctionnelles**: ce que doit realiser le logiciel (sous- pro- grammes / traitements `a r´ealiser). * **Non fonctionnelles**: contraintes d'environnements, perfor- mance, s'ecurit´e. * **La conception consiste `a apporter une r´eponse `a l''etape Pr´ec´edente :** * **Architecture**: (modules, objets, classes, fonctions). * **Materiel**: (environnement de d'eveloppement, application ex- ternes utilis´ees). * **L'implantation (implementation ou codage) consiste `a coder les donnees.** * La validation sert `a v'erifier chaque module. * Il faut garder la trace de ce qui a 'et´e fait. #### La phase de mise en place * Maintenant que le logiciel est realis'e (l'ex ´ecutable obtenu), il faut passer `a sa mise en œuvre. * Mettre en œuvre un logiciel veut dire le d'eployer : * Installer le logiciel dans l'environnement de production. * D`es le d'ebut de la phase de r´ealisation, il faudrait pouvoir disposer d'une machine dans l'environnement de production. * Le d'eploiement d'un logiciel exige la preparation de son en- vironnement de production. * Interconnecter tous les syst`emes et processus devant com- muniquer avec le logiciel. * Transfert de donn'ees et conversion dans un nouveau format (Recup´eration). #### La phase d'exploitation * Une fois le logiciel est en place, son exploitation devient fon- damentale. * Cette phase resume deux t'aches qui doivent ser ealiser depuis la mise en place du logiciel jusqu'`a sa fin. * Pour commencer l'exploitation du logiciel, on fait le param´etrage du logiciel (l'insertion des donn´ees). * Ensuite faire le traitement de donn´ees (tester le logiciel) pour d'etecter les erreurs s'ils y existent. #### La phase de maintenance * Une fois les erreurs d'etect´ees, il faut passer`a la correction (la maintenance du logiciel). * La maintenance doit se tenir r ´eguli`erement. Il existe 3 types de maintenance : * **Corrective**: consiste `a corriger les erreurs d'etect ees lors de l'exploitation. Bugs qui apparaissent. * **Adaptative**: consiste `a adapter le logiciel `a un besoin ou `a un environnement : Besoins exprim´es par les utilisateurs pour faciliter leurs travail. * **Perfective**: le logiciel satisfaisant toutes les exigences du ca- hier des charges, il est necessaire de penser `a son 'evolution. Il s'agit de le rendre plus performant. Mise en place d'un systeme de tra cage des bugs (date/conditions de reproduc- tion/solution et correction). #### La phase d'emontage * Malgr'e toutes les maintenances realis´ees, le logiciel ne peut plus satisfaire les besoins du client donc r´evolue : c'est la fin de vie du logiciel, on parle alors de d'emontage. * Un logiciel est qualifi´e de r´evolue lorsque : * Il ne satisfait plus les besoins des utilisateurs et aucune main- tenance ne peut palier au probl`eme. * Il est d'epass'e par la technologie. * Le client n'a plus besoin du logiciel. * Le d'emontage du logiciel est assimil'e comme la fin de vie du logiciel. * Il faut donc supprimer les executables, les drivers et les donnees. ### Autres mod`eles de d´eveloppements logiciels #### Le mod`ele en Waterfall * Expression des besoins * Spécifications * Conception * Développement * Tests * Maintenance #### Le mod`ele en V * Etude préalable * Spécification * Conception général'o * Conception détaillée * Codage * Tests unitaires * Tests d'intégration * Validation recette * Exploitation #### Cycle de vie it´eratif et incremental * Expression des besoins * Spécifications * Développement * Evaluation * Validation * Développement ## Section III: M´ethode de conception orient'ee objet UML ### Introduction `a l’UML #### Presentation de UML * UML (Unified Modeling Language) est normalis´e par l'OMG (Object Management Group). * http://www.omg.org/spec/UML/ * Derni`ere version : 2.5.1 (D'ecembre 2017) * UML est une notation standard pour la mod 'elisation d'ap- plications `a base d'objets (et de composants depuis la version 2). * UML est utilisable dans de nombreux autres contextes de conception ou specification. * Exemple : `sch'ema de BDD`. * UML est un langage utilisant une notation graphique. #### Le mod`ele(diagramme) * Un mod`ele est une repr´esentation partielle de la r 'ealit'e. * Abstraction de ce qui est interessant pour un contexte donne. Vue subjective et simplifi´ee d'un syst`eme. * Avec UML, on va s'int'eresser principalement aux mod`eles d'applications informatiques : * Un mod`ele UML = des diagrammes UML #### L'utilit´e des * Faciliter la comprehension d'un syst`eme : * Permettre 'egalement la communication avec le client. Vision de communication, de documentation. * D´efinir voire simuler le fonctionnement d'un syst`eme : * Dans ce cas, on se doit d'etre le plus precis possible dans le contenu des mod`eles pour s'approcher du code. * Vision de d'eveloppement, de production. ### Les diagrammes de UML #### Introductio * Afin d'assurer un bon niveau de coherence et d'homogen´eit´e sur l'ensemble des mod`eles, UML propose : * D'une part un certain nombre de r`egles d''ecriture ou de representations graphiques normalis´ees. * Et d'autre part des m'ecanismes ou des concepts communs applicables `a l'ensemble des diagrammes. * Çertains 'el'ements, comme les st´er'´eotypes, sont sp ecifiquement pr´evus pour assurer une réelle capacit e: * D'adaptation. * Et d''evolution. * La notation pour prendre en compte les particularit´es des differentes situations `a mod´eliser. #### Les diff´erents types de diagrammes * UML, dans sa version 2, propose 13 diagrammes qui peuvent ^etre utilises dans la description d'un systeme. * Les diagrammes sont regroup'es dans deux grands ensembles. * Les diagrammes Structurels. * Les diagrammes comportementaux. * Les diagrammes d'interactions. #### Diagrammes selon les axes de mod´elisation * **Diagrammes de cas d'utilisation**: FONCTIONNEL * **Diagrammes de séquence**: STATIQUE * **Diagrammes d'états-transitions**: DYNAMIQUE * **Diagrammes de classes**: STATIQUE * **Diagrammes d'objets**: STATIQUE * **Diagrammes de déploiement**: STATIQUE * **Diagrammes de composants**: STATIQUE * **Diagrammes de collaborations**: DYNAMIQUE * **Diagrammes d'activités**: DYNAMIQUE #### Hi´erarchie des diagrammes UML * **Diagramme**: * **Diagramme structurel**: * **Diagramme de classes**: * **Diagramme de structure composite**: * **Diagramme de composants**: * **Diagramme d'objets**: * **Diagramme de paquetages**: * **Diagramme de déploiement**: * **Diagramme de comportement**: * **Diagramme d'activité**: * **Diagramme des cas d'utilisation**: * **Diagramme états-transitions**: * **Diagramme d'interaction**: * **Diagramme de sequence**: * **Diagramme global d'interaction**: * **Diagramme de communication**: * **Diagramme de temps**: #### Les 5 vues de Kruchten * **Aspect statique**: classes et objets paquetages * **Aspect dynamique**: d'interaction (séquences, collaboration), d'états-transitions et d'activité * **Aspect statique**: les paquetages les méthodes les threads * **Vue logique**: * **Vue des cas d'utilisation**: * **Vue implantation**: * **Vue de déploiement**: * **Vue des processus**: * **Aspect parallélisme**: threads processus tâches interactions * **Aspect fonctionnel**: Cas d'utilisations acteurs classes collaboration * **Aspect répartition**: diagramme de déploiement nœuds, modules #### Les diagrammes * Ces diagrammes, au nombre de six, ont vocation `a representer l'aspect statique d'un systeme (classes, objets, composants. . . ). * **Diagramme de classes**: represente la description statique du systeme en integrant dans chaque classe la partie d'edi'ee aux donn'ees et celle consacree aux traitements. C'est le dia- gramme pivot de l'ensemble de la mod´elisation d'un systeme. * **Diagramme d'objets**: permet la repr´esentation d'instances des classes et des liens entre instances. * **Diagramme de composant (modifi´e dans UML 2)**: repr ´esente les differents constituants du logiciel au niveau de l'impl ´ementation d'un syst`eme. * **Diagramme de d'eploiement (modifi'e dans UML 2)**: d'ecrit l'architecture technique d'un syst`eme avec une vue centr´ee sur la repartition des composants dans la configuration d'ex- ploitation. * **Diagramme de paquetage (nouveau dans UML 2)** ; donne une vue d'ensemble du systeme structur´e en paquetage. Chaque paquetage represente un ensemble homog`ene d''el'ements du syst`eme (classes, composants...). * **Diagramme de structure composite**: permet de d 'ecrire la structure interne d'un ensemble complexe composée par exemple de classes ou d'objets et de composants techniques. Ce dia- gramme met aussi l'accent sur les liens entre les sous en- sembles qui collaborent. * Ces diagrammes representent la partie dynamique d'un syst`eme r´eagissant aux 'ev'enements et permettant de produire les resultats attendus par les utilisateurs. Sept diagrammes sont propos´es par UML: * **Diagramme des cas d'utilisation**: est destin'e `a representer les besoins des utilisateurs par rapport au syst`eme. II constitute un des diagrammes les plus structurants dans l'analyse d'un syst`eme. * **Diagramme d''etat-transition (machine d''etat)**: montre les differents 'etats des objets en r 'eaction aux 'ev'enements. * **Diagramme d'activit'es (modifi'e dans UML 2)**: donne une vi- sion des encha^inements des activit´es propres a une operation ou un cas d'utilisation. Il permet aussi de representer les flots de contr^ole et les flots de donn'ees. * **Diagramme global d'interaction (nouveau dans UML 2)**: fournit une vue generale des interactions d'ecrites dans le diagramme des 'equence et des flots de contr^ole d'ecrits dans le diagramme d'activit´es. * **Diagramme de temps (nouveau dans UML 2)** : permet de repr´esenter les 'etats et les interactions d'objets dans un contexte ou`le temps a une forte influence sur le comportement du syst`eme `a g'erer. #### Organisation d'un * Quand on veut realiser un projet en utilisant la m ethode UML, on divise le projet sous plusieurs mod 'eles. Chaque mod´ele peut contenir un nombre de diagrammes. Ces mod´eles sont list'es comme suit : * **Mod'ele des besoins**: Mod'ele d'analyse * **Mod'ele de metier**: * **Mod'ele de conc ´eption**: Mod´ele de r'ealisation * Le modele des besoins : Ce modele regroupe les principales fonctionnalit´es du projet en se basant sur le cahier des charges. Il peut contenir le diagramme de cas d'utilisations. On peut faire un diagramme de cas d'utilisation g'eneral et un dia- gramme de cas d'utilisation d'etaill´e. * Le modele d'analyse : Dans ce mod´ele on trouve la structure du systeme, les acteurs qui interagissent dans le systeme et le traitement du systeme. Ce modele peut contenir le dia- gramme de classe, le diagramme ramme de s'equence. * Le mod´ele metier : Ce mod´ele contient le diagramme d'acti- vit´e qui decrit les processus du systeme. On utilise un dia- gramme d'activit´e par processus. * Le modele de conc´eption : II d'ecrit le cot´e logiciel du pro- jet. Ce modele contient le diagramme de classe du cot´e lo- giciel(ex : les classes java ). Ce dernier peut generer la base de donnee et les classes. * Le modele physique : Ce modele contient les diagrammes de d'eploiment et de composants pour d'ecrire la realisation du projet dans la r ealit´e. ### Notion d'objet #### Introductio * On construit des mod`eles de systemes complexes parce que nous ne pouvons pas comprendre un systeme dans sa totalit´e. Des techniques de mod elisation performantes sont n'ecessaires face `a l'augmentation de la complexit'e des syst`emes. Il ya de nombreux facteurs `a la r'eussite d'un projet et avoir une m'ethodologie rigou- reuse est un facteur essentiel. Un langage de mod'elisation doit comprendre : * Les 'el'ements du mod`ele : des concepts de mod ´elisation fon- damentaux et une s'emantique. * Une notation : une interpr´etation visuelle des 'el 'ements du mod`ele .