Académique Documents
Professionnel Documents
Culture Documents
02 Modelisation
02 Modelisation
Gnie Logiciel
Merise Modlisation objet UML
MERISE
Les modles de la mthode Merise :
Le modle de flux Le modle conceptuel de donnes Le modle conceptuel de traitements Le modle organisationnel de traitements Le modle logique de donnes Le modle oprationnel des traitements Le modle physique des donnes
Objet
Attribut
Mthode
Hritage
Mcanisme permettant une classe dobjets de bnficier de la structure de donnes et du comportement dune classe "mre", tout en lui permettant de les affiner et ce, afin de prendre en compte les spcificits de la classe "fille", sans avoir cependant redfinir ce que les deux classes ont de commun
Agrgation
Gnralisation
Dans le cas dun hritage, on dit quune classe "mre" est une gnralisation des proprits de ses classes "fille"
Composition
Spcialisation
Dans le cas dun hritage, on dit quune classe "fille" est une spcialisation des proprits de sa classe "mre"
Polymorphisme
Surcharge de mthode
UML (1/24)
UML (Unified Modeling Language) : Auteurs
James Rumbaugh, Grady Booch et Yvar Jacobson
UML (2/24)
UML nest pas une mode :
Issu du terrain et dun large consensus (industriels, informaticiens, mthodologistes), fruit dun travail dexperts (HP, Microsoft) Norme riche (permet de spcifier du dbut la fin) et ouverte (en constante volution depuis sa cration) Indpendant de la cible Adapt la programmation orient objet Industrialis (il existe de nombreux doutils)
Objectifs
Faciliter la communication entre les diffrents acteurs dun projet Faciliter la communication avec la machine Documenter un projet de bout en bout Spcifier et donc limiter les ambiguts Construire (interprter les diagrammes pour code)
Dfinition
Langage de description des objets permettant une modlisation rigoureuse des systmes complexes Langage Unifi pour la Modlisation objet
UML (3/24)
Avantages dUML :
Formel et normalis (garantit stabilit et performance dun projet, rduit les risques) Support de communication performant et prouv (permet de cadrer lanalyse et de faciliter la comprhension de reprsentations abstraites : cest lesperanto de lanalyse)
UML (4/24)
Historique
Inconvnients dUML :
Priode dapprentissage Processus de production non couvert
UML (5/24)
Diagrammes UML :
UML (5/24)
Dcouverte des besoins Diagramme de cas dutilisation : dcrit les fonctions du systme (point de vue de ses futurs utilisateurs -Jacobson) Diagramme de squence : reprsentation des interactions temporelles entre objets dans la ralisation dune IHS Analyse Diagramme de classes : structure des donnes Diagramme dobjets : illustration Diagramme collaboratif : reprsentation des interactions entre objets Diagramme dtats : reprsentation du comportement des objets dune classe en terme dtats et de transitions dtats Diagramme dactivits : structure dune opration en actions
UML (5/24)
Conception Diagramme de squence : reprsentation des interactions temporelles entre objets dans la ralisation dune opration Diagramme de dploiement : description du dploiement des composants sur les dispositifs matriels Diagramme de composants : architecture des composants physiques dune application
UML (6/24)
Le diagramme de cas dutilisation :
Il permet didentifier et de dcrire les utilisateurs du systme (acteurs) et leur interaction avec le systme
Dmarche :
Identification des acteurs
Acteur
UML (7/24)
Les relations dans un diagramme de cas dutilisation :
Utilisation : la relation include indique quun CU utilise un autre CU. Si le CU source est vide, alors dcomposition
<< include >>
Imprimer solde Consulter compte
UML (8/24)
Exemple de diagramme de cas dutilisation :
Extension : la relation extend du CU A vers le CU B indique que le CU B peut aussi faire A. Ceci permet aussi les CU avec garde.
<< extend >>
retirer de largent retirer des Francs
UML (9/24)
Les Classes
UML (10/24)
Le diagramme de classes :
Il permet de dcrire les classes dun systme ainsi que les associations et les relations dhritage entre ces classes
Les associations (forme verbale)
active,
Personne
Socit
rles,
Personne
Employ Employeur
Socit
cardinalit,
Personne
1..* *
Socit
qualification ou restriction
Universit
N tudiant
Etudiant
UML (11/24)
Le diagramme de classes :
Il permet de dcrire les classes dun systme ainsi que les associations et les relations dhritage entre ces classes
Composition et agrgation
UML (12/24)
Le diagramme dobjets :
Le diagramme dobjets est un cas illustr dun diagramme de classes. Selon le contexte, il montre la relation entre les objets
Lhritage
UML (13/24)
Le diagramme de collaboration :
Le diagramme de collaboration est une extension des diagrammes de classes Il montre les interactions entre objets et vise reprsenter du point de vue statique et dynamique les objets impliqus dans la mise en place dune fonction applicative
UML (14/24)
Le diagramme dtats (transitions) :
Il permet de dcrire les changements d'tats d'un objet, en rponse aux interactions avec d'autres objets ou avec des acteurs
Etat initial Etat final
Etat
UML (15/24)
Exemples de diagrammes dtats :
Evnement
Perte demploi() En activit Embauche() Au chmage
UML (16/24)
Le diagramme dtats (suite) :
Actions dans un tat
+ de 60 ans
+ de 60 ans En retraite
Synchronisation
Transition garde
A
Il fait trop chaud [t] Il fait trop chaud [hiver]
climatise
are
UML (17/24)
Le diagramme dtats (suite) :
Gnralisation
UML (18/24)
Le diagramme de squences :
E1 E2 C
Il permet de reprsenter des interactions entre les objets selon un point de vue temporel
A E2
E1
B E2
UML (19/24)
Le diagramme de squences :
Les messages :
simples synchrones
Objet : classe
UML (20/24)
Le diagramme de squences :
Ajout de pseudo-code Branche conditionnel
Autre objet
UML (21/24)
Exemple de diagramme de squences : Le diagramme dactivits :
UML (22/24)
Il sagit dune variante du diagramme dtattransition reprsentant la dynamique du systme Il sert reprsenter le comportement interne dun cas dutilisation. Son intrt rside dans la reprsentation simplifie des activits.
UML (23/24)
Le diagramme de composants :
Il dcrit les lments physiques et leurs relations dans lenvironnement de ralisation Il montre les choix de ralisation
UML (24/24)
Le diagramme de dploiement :
Il montre la disposition physique des diffrents matriels (nuds) qui entrent dans la composition dun systme et la rpartition des programmes excutables sur ces matriels Il montre les choix de ralisation
OUTILS (1/3)
Outils Merise : Power AMC MS-Designer Outils UML : Rational Rose (rachet et intgr par IBM) Objecteering Together ControlCenter ArgoUML, Posidon Outils de gestion de tests : Mercury TestDirector Compuware QADirector Rational TestManager
OUTILS (2/3)
Critres de slection des outils UML :
Respect des normes UML OS supports Stabilit Exhaustivit des diagrammes Correspondance relationnel Gnration de code Format de documentation Gestion de configuration Reverse engineering Gestion de tests
OUTILS (3/3)
Caractristiques des principaux produits de modlisation :
SPECIFICATIONS (1/5)
La spcification des besoins (ou des exigences)
Point de dpart Dans les activits de spcification des exigences, il convient dabord de considrer le systme comme une bote noire part entire, afin dtudier sa place dans le systme mtier plus global quest lentreprise. On dveloppe pour cela un modle de niveau contexte, qui va prciser les frontires fonctionnelles du systme.
SPECIFICATIONS (2/5)
La spcification des besoins (suite)
Cette activit met donc en uvre un mode de reprsentation fonctionnel sappuyant sur :
Les diagrammes de cas dutilisation qui permettent didentifier et de formaliser les diffrents acteurs ainsi que les services attendus de la future application. La maquette pour sa part, permet de prsenter de manire concrte ces services via les IHM (Interface Homme Machine) de lapplication. Elle est destine plus particulirement faire ragir les utilisateurs de la future application afin dy apporter les mises au point ncessaires une complte adquation entre les services rendus par lapplication et les besoins des utilisateurs.
SPECIFICATIONS (3/5)
La spcification des besoins (suite)
Exemple de diagramme de cas dutilisation :
SPECIFICATIONS (4/5)
La spcification des besoins (suite)
Exemple de description pour le cas dutilisation sauthentifier
SPECIFICATIONS (5/5)
La spcification des besoins (suite)
Exemple de maquette :
ANALYSE (1/8)
Lanalyse
tape intermdiaire entre la spcification des besoins et la conception du systme
ANALYSE (2/8)
Lanalyse statique
Pour identifier les classes de conception intervenant dans les diagrammes dinteraction du modle conceptuel, deux soustapes sont ncessaires :
Construire le modle du domaine. Sorte de glossaire formalis des concepts fondamentaux de lespace du problme, ce modle fournit une partie des classes de conception : celles correspondant directement aux concepts mtier manipuls par les experts du domaine et les utilisateurs. Ces concepts, leurs attributs et leurs relations vont tre dcrits en UML par des diagrammes de classes simplifies. Construire les diagrammes de classes participantes. Afin de prendre en compte galement lIHM et la cinmatique de lapplication, les diagrammes de classes participantes font la jonction entre les cas dutilisation, le modle du domaine, la maquette et les diagrammes de conception logicielle. Il sagit de diagrammes de classes qui dcrivent, par cas dutilisation, les trois principales classes danalyse et leurs relations.
ANALYSE (3/8)
Lanalyse statique (suite)
Les diagrammes de classes participantes :
Les classes de type dialogue : elles permettent les
ANALYSE (4/8)
Lanalyse statique (suite)
Exemple de modle du domaine pour le CU sauthentifier :
interconnections entre lIHM et ses utilisateurs. Ce sont typiquement les crans proposs lutilisateur : les formulaires de saisie, les rsultats de recherche Elles proviennent directement de lanalyse de la maquette. Les classes de type mtier : elles reprsentent les rgles mtier et proviennent directement du modle du domaine mais sont confirmes et compltes pour chaque cas dutilisation. Les classes de type contrle : elles contiennent la cinmatique de lapplication et font la transition entre les dialogues et les classes mtier, en permettant aux crans de manipuler des informations dtenues par un ou plusieurs objets mtier.
ANALYSE (5/8)
Lanalyse statique (suite)
Exemple de diagramme de classes participantes pour le CU sauthentifier :
ANALYSE (6/8)
Lanalyse dynamique
Le modle dynamique permet de dcrire :
Pour chaque cas dutilisation, la squence des interactions entre les acteurs et le systme vue comme une bote noire, reprsente par les diagrammes de squence systme. Ce sont ces diagrammes qui feront le lien entre les cas dutilisation et les diagrammes dinteraction du niveau conceptuel. Dautre part, pour reprsenter de manire formelle lensemble des chemins possibles entre les principaux crans proposs lutilisateur, et partir des informations fournies par la maquette, il reste dtailler les diagrammes dactivits de navigation. Si ncessaire, le cycle de vie commun aux objets dune mme classe, peut tre explicit par les diagrammes dtats.
ANALYSE (7/8)
Lanalyse dynamique (suite)
Exemple de diagramme de squence systme pour le CU sauthentifier :
ANALYSE (8/8)
Lanalyse dynamique (suite)
Exemple de diagramme dactivits de navigation pour le CU sauthentifier :
CONCEPTION (1/3)
La conception du systme
Cible Dans les activits de conception, le modle correspond aux concepts informatiques utiliss par les outils, les langages ou les plates-formes de ralisation. Le modle sert ici tudier, documenter, communiquer et anticiper la solution logicielle.
CONCEPTION (2/3)
La conception du systme (suite)
Dans le cadre de systmes orients objet, la structure du code est dfinie par des classes logicielles et leurs regroupements en ensemble (appels packages). La conception reprsente deux points de vue : la structure statique et le comportement dynamique, deux perspectives qui compltent la comprhension du systme dvelopper. Le modle statique, qui permet de dcrire les diffrents composants logiciels structurant le systme, est reprsent laide de diagrammes de classes de conception. Le modle dynamique, permet quant lui de dcrire lattribution des bonnes responsabilits (services) aux bonnes classes. Tout le comportement du systme est ainsi rparti entre les classes de conception. Cest le rle des diagrammes dinteraction (diagrammes de squence ou de collaboration) de reprsenter graphiquement ces dcisions dallocation de responsabilits ainsi que les collaborations induites.
CONCEPTION (3/3)
La conception du systme (suite) 1 - 2
Exemple de diagramme de classes de conception de Struts :
Enjeux techniques :
Niveau de service o Performance o Tolrance aux pannes o Exploitabilit Scurit Prennit et volutivit
Conception
Pour chaque CU :
Diagramme de classes de conception Diagramme de squence ou de collaboration
Annexes
MCD et MPD (le cas chant)
Enjeux conomiques
Rduction des cots de recette Rduction de cots de maintenance
REUTILISABILITE (1/11)
Dfinitions :
La rutilisabilit est laptitude dun logiciel tre rutilis en tout ou en partie pour de nouvelles applications La rutilisabilit consiste se servir dun composant pour en crer un nouveau
Objectifs :
Optimiser les cots de dveloppement Optimiser les cots de maintenance Fiabiliser les dveloppements Favoriser lvolutivit, ladaptabilit, lutilisabilit
10
REUTILISABILITE (2/11)
Techniques de rutilisabilit :
La duplication (inconvnient : la maintenabilit). Le pr-processing : trs similaire la technique prcdente, il intgre un outil spcialis, le pr-processeur. Ainsi, les corrections d'erreurs comme les volutions apportes la partie rutilise profitent l'application d'origine (inconvnient : si des modifications sont faites sur le code rutilisable et si tous les utilisateurs ne sont pas informs de ces modifications, ceci peut altrer le fonctionnement peru par les autres utilisateurs). Les bibliothques de composants : cette technique consiste appeler un composant excutable et d'en exiger un certain comportement l'aide de paramtres. Les frameworks : dans les bibliothques de composants, c'est l'application qui invoque une routine de la bibliothque et c'est l'application qui fait le contrle. Dans les frameworks, la situation est inverse, c'est le framework qui dirige les tches et qui fait des appels l'application si ncessaire (Exemple : Struts).
REUTILISABILITE (3/11)
Techniques de rutilisabilit (suite) :
Les techniques cites prcdemment ne sapplique qu la phase dimplmentation La rutilisabilit peut galement tre applique tous les niveaux de dveloppement dun projet Les patterns de conception : ils dcrivent des problmes rcurrents, les solutions ces problmes et les contextes dans lesquels ces solutions sont considres. Un pattern nomme une technique, dcrit ses cots et ses avantages. Il permet, une quipe, de mettre un vocabulaire en commun pour dcrire des modles (Exemple : Model View Controler II)
REUTILISABILITE (4/11)
Les trois grandes familles de design patterns :
Les patterns de cration : ces patterns crent les objets pour vous, au lieu de les instancier directement : Le pattern Factory Method dfinit une interface pour crer un objet, mais laisse les sous classes dcider quelle classe instancier Le pattern Abstract Factory fournit une interface pour crer des familles d'objets lis sans spcifier leurs classes concrtes Le pattern Builder spare la construction d'un objet complexe de sa reprsentation, de telle sorte que plusieurs reprsentations diffrentes peuvent utiliser le mme processus de construction Le pattern Prototype spcifie le type d'objet crer en utilisant une instance "prototype", et cre un nouvel objet en effectuant une copie de cet objet Le pattern Singleton assure qu'une classe a uniquement une instance, et fournit un accs cette instance
REUTILISABILITE (5/11)
Diagramme de classe du pattern singleton :
REUTILISABILITE (6/11)
Les trois grandes familles de design patterns :
Les patterns structurel : ces patterns composent des groupes d'objets en de larges structures, telles que des interfaces graphiques complexes : Le pattern Adapter convertit l'interface d'une classe en une autre interface Le pattern Bridge dcouple une abstraction de sa reprsentation pour que les deux puissent voluer indpendamment Le pattern Composite compose les objets dans une structure arborescente qui reprsente une hirarchie "partie-de" Le pattern Decorator attache de nouvelles responsabilits un objet dynamiquement Le pattern Facade fournit une interface unifie un ensemble d'interfaces dans un sous-systme Le pattern Proxy fournit un supplant pour un objet afin de contrler son accs
REUTILISABILITE (7/11)
Les trois grandes familles de design patterns :
Les patterns comportementaux : ces patterns dfinissent la communication entre les objets du systme et comment le flot de donnes est contrl dans un programme complexe : Le pattern Chain of responsability vite de coupler l'metteur d'une requte et son receveur, en donnant la possibilit plusieurs objets d'y rpondre Le pattern Command encapsule une requte dans un objet, pour permettre de paramtrer des clients avec diffrentes requtes, de grer des queues ou des traces de requtes, ou de permettre des oprations annulables Le pattern Iterator fournit un moyen d'accder squentiellement aux lments d'une agrgation d'objets sans dvoiler sa reprsentation Le pattern Mediator dfinit un objet qui encapsule les interactions dun ensemble dobjets Le pattern Memento, sans violer l'encapsulation, capture et externalise l'tat interne d'un objet pour permettre de restaurer cet tat plus tard Le pattern Observer dfinit une relation un--plusieurs telle que lorsqu'un objet change, tous les objets lis sont notifis de ce changement et mis jour automatiquement
11
REUTILISABILITE (8/11)
Pour utiliser les patterns de conception :
Se familiariser avec lutilisation des patterns de conception Apprendre identifier les bons patterns de conception Comprendre leur applicabilit Apprendre adapter un pattern ses besoins Apprendre valuer efficacement les compromis durant la conception
REUTILISABILITE (9/11)
Exemple dutilisation des patterns de conception : MVC 1 - 2
Lide de dcoupler modle et vues permet de conserver une sparation nette entre le modle et la faon de le reprsenter. Cette ide est applicable un problme plus gnral : dcoupler des objets de faon ce quun changement dun objet puisse affecter un nombre variable dautres objets sans que lobjet qui a chang ait connatre en dtail les autres objets.
Ce problme plus gnral est dcrit par le patron de conception Observer.
Une autre caractristique du modle MVC est de permettre limbrication de vues les unes dans les autres, afin de permettre la construction de vues plus complexes. MVC supporte les vues imbriques laide de la classe CompositeView, une sousclasse de View. Un objet de la classe CompositeView se comporte exactement comme un objet de la classe View, et peut tre utilis partout o un objet de la classe View est utilis, mais en plus, un objet de la classe CompositeView permet de grer des vues imbriques.
REUTILISABILITE (10/11)
Exemple dutilisation des patterns de conception :
Encore une fois, lide dimbriquer des objets et de traiter lobjet rsultant comme un seul objet individuel correspond un problme de conception plus gnral.
Ce problme plus gnral est dcrit par le patron de conception Composite.
REUTILISABILITE (11/11)
Pour dcrire un pattern de conception :
Le nom du patron Son intention Une motivation Son applicabilit Sa structure Les classes ou objets participants Les collaborations entre les participants De mme que des commentaires sur les consquences dutilisation, sur certains compromis possibles, sur limplmentation et sur les patrons relis.
Le modle MVC permet galement de modifier la faon dont ragit une vue une entre faite par lusager sans changer son apparence visuelle. MVC encapsule le mcanisme de rponse dans un objet Controler. Les diffrents types de Controler sont organiss dans une hirarchie de classe, et une vue utilise une instance dune des sous-classes de Controler.
La relation View-Controler est dcrite par le patron de conception Strategy.
REUTILISABILITE
Principes de rutilisabilit (suite) Les patterns de conception :
MVC pour la couche prsentation DAO pour la couche accs aux donnes
12
STRUTS (1/2)
Au final, cet inconvnient est largement contrebalanc par le temps gagn lors des volutions et de la maintenance.
1-2
STRUTS (2/2)
1-2
13