Modélisation. De la niche à l immeuble. Modèle. Système logiciel = Immeuble. Construction d un modèle indispensable



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

UML (Diagramme de classes) Unified Modeling Language

GOL502 Industries de services

Chapitre I : le langage UML et le processus unifié

IFT2255 : Génie logiciel

Université de Bangui. Modélisons en UML

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Ingénierie des Modèles. Méta-modélisation

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

OCL - Object Constraint Language

RTDS G3. Emmanuel Gaudin

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

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

Diagramme de classes

Analyse,, Conception des Systèmes Informatiques

Table des matières Sources

CONCEPTION ET IMPLANTATION DES SI PROJET : GESTION DU FOYER DE L ENIT

Chapitre VI- La validation de la composition.

UML et les Bases de Données

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

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

3. UML - Unified Modeling Language Diagrammes statiques

UML (Paquetage) Unified Modeling Language

Les BRMS Business Rules Management System. Groupe GENITECH

Rational Unified Process

Introduction au Génie Logiciel

Guichet automatique de banque

Retour d expériences avec UML

Bases de données. Chapitre 1. Introduction

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Cours 1: Java et les objets

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Diagrammes de Package, de déploiement et de composants UML

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

Développement d un interpréteur OCL pour une machine virtuelle UML.

Cours en ligne Développement Java pour le web

Information utiles. webpage : Google+ : digiusto/

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Cours STIM P8 TD 1 Génie Logiciel

Structurer ses données : les tableaux. Introduction à la programmation

Projet Active Object

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

Programmation en Java IUT GEII (MC-II1) 1

SECTION 5 BANQUE DE PROJETS

BUSINESS INTELLIGENCE

Conception, architecture et urbanisation des systèmes d information

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Générer du code à partir d une description de haut niveau

Patrons de Conception (Design Patterns)

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Programmer en JAVA. par Tama

Traduction des Langages : Le Compilateur Micro Java

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Programmation par les Objets en Java

Génie Logiciel avec Ada. 4 février 2013

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

Classes et Objets en Ocaml.

TP1 : Initiation à Java et Eclipse

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Application web de gestion de comptes en banques

Urbanisation de système d'information. PLM 4 (Product Lifecycle Management) Préoccupation d'assurance qualité Processus et Procédures

Applet pour visualiser les variables «automate» notifiées

BI2 : Un profil UML pour les Indicateurs Décisionnels

R. A. A. Bébian. Mimographie, ou essai d écriture mimique. París, 1825

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

Chapitre 2. Classes et objets

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Introduction aux concepts d ez Publish

Entraînement au concours ACM-ICPC

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

Description de la formation

Généralités sur le Langage Java et éléments syntaxiques.

Bases de données et interfaces Génie logiciel

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Chapitre 10 Arithmétique réelle

Programmation Orientée Objet

Plan du cours. Historique du langage Nouveautés de Java 7

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

La technologie Java Card TM

Votre Réseau est-il prêt?

OPEN DATA : CHALLENGES ET PERSPECTIVES D ENTREPOSAGE

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Modèle Entité/Association

4. SERVICES WEB REST 46

Big Data et Graphes : Quelques pistes de recherche

Hervé Couturier EVP, SAP Technology Development

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

CONCEPTION DE PROJET SIG AVEC UML

Transcription:

Modélisation Petite Introduction à UML Construire un bon logiciel : Répondre aux objectifs fixés (satisfaire le client) Avoir une base architecturale solide qui permette l évolution Mettre en place un processus de développement maîtriser coûts et délais Diagrammes de classes et relations, cas d'utilisation Définir des modèles pour Spécifier la structure et les comportements attendus du système Visualiser et contrôler l architecture pour mieux la comprendre simplifier, réutiliser, gérer les risques Licence Informatique Programmation Orientée Objet 1 Licence Informatique Programmation Orientée Objet 2 De la niche à l immeuble Construire une niche Planches, un marteau, des clous, une personne, quelques heures. Le client (le chien) sera probablement Construire une maison Matériaux et outils plus «complexes» Dessiner des plans, Qualité tenir compte des contraintes (utilisation, besoins en éclairage, chauffage, eau, normes, ) Une seule personne? Délais? Coûts? Construire un immeuble : Prendre l avis des investisseurs (style, forme, taille, etc.) (y compris les modifications) Plannings temps et budget primordiaux De breuses personnes réparties en équipes Concevoir de breux plans et modèles Eventuellement faire une maquette Coordonner les différentes équipes, faciliter la communication entre elles etc. Licence Informatique Programmation Orientée Objet 3 Licence Informatique Programmation Orientée Objet 4 Système logiciel = Immeuble Ecrire beaucoup de lignes de code, même très propres, ne suffit pas Nécessité de penser au préalable l architecture logicielle du système Construction d un modèle indispensable Modèle Qu est-ce que c est? «Une simplification de la réalité» Pourquoi? «Mieux comprendre le système à développer» Servir d interface entre les acteurs du projet Doit être proche de la réalité 4 objectifs : Aider à visualiser un système tel qu il est ou doit être. Préciser la structure ou le comportement d un système. Fournir un canevas pour la construction du système. Permettre de documenter les décisions prises. D autant plus nécessaire que le système est complexe Licence Informatique Programmation Orientée Objet 5 Licence Informatique Programmation Orientée Objet 6

Modélisation orientée objet UML : Unified Modeling Language langage conçu pour l écriture de plans d élaboration de logiciels (pas une méthode) né de la fusion de plusieurs méthodes objet, standard de fait utilisable pour visualiser, spécifier, construire et documenter un méta-modèle : Langage sans ambiguïtés Peut servir de support pour tout langage objet Notation graphique simple compréhensible par des non informaticiens et facilitant la communication Statique et dynamique Vues statiques diagrammes d objets, diagrammes de classes, diagrammes des cas d utilisation diagrammes de déploiement Vues dynamiques diagrammes de séquences, diagrammes de collaboration, diagrammes d états-transitions diagrammes d activités Licence Informatique Programmation Orientée Objet 7 Licence Informatique Programmation Orientée Objet 8 Classes (1) Classes (2) attributs méthodes «complet», intégrant le paquetage largeur hauteur draw() moveto() resize() Classe documentée Classe non documentée appli::geom::triangle Licence Informatique Programmation Orientée Objet 9 - largeur : float - hauteur : float - estvisible : boolean = true Classe détaillée note + draw() + moveto( newp : Position) + resize( scale : Float) + tostring() : Boolean System.out.println( rectangle +largeur+, +hauteur); Licence Informatique Programmation Orientée Objet 10 Classes (3) Objets (instances) UneClasse Objet1 + attpublic - attprivate - attstatic stylo:crayon : : + methpublic() - methprivate() largeur = 10 hauteur = 20 estvisible = true stylo relation de visibilité Licence Informatique Programmation Orientée Objet 11 Licence Informatique Programmation Orientée Objet 12

Relations Identifier les classes ne suffit pas, elles coopèrent/interagissent entre elles, il faut exprimer ces relations (le plus souvent binaires). Dépendances relations d utilisation Associations relations structurelles, connexion sémantique Agrégation, composition Généralisations : interfaces + relations d héritage (relation «is a», cf. UE COO du S6) Association C est une relation structurelle qui exprime une relation sémantique entre (le plus souvent) deux classes. Elle est le plus souvent réflexive. On peut la compléter de 4 informations : Nom («forme verbale active») Rôles Multiplicité Agrégation Licence Informatique Programmation Orientée Objet 13 Licence Informatique Programmation Orientée Objet 14 Exemple Cardinalités cardinalités Définissent la multiplicité des rôles Une cardinalité à une extrémité signifie qu à l autre extrémité ce bre d éléments doit exister pour tout objet de la classe. rôles Travaille pour association Expressions possibles : n : exactement n n..m : de n à m * : quelconque (équivalent à «0..n» ou «0..») n..* : n ou plus liste de cardinalités : 1..2,3..5 signifie 1 à 5 sauf 4 Licence Informatique Programmation Orientée Objet 15 Licence Informatique Programmation Orientée Objet 16 Il peut exister plusieurs relations entre les mêmes classes Travaille pour est dirigée par 1 0..n directeur Dépendance Relation unidirectionnelle d'obsolescence Exprimer le fait qu une classe en utilise une autre. Toute modification sur la classe utilisée peut avoir un impact sur la classe utilisatrice. largeur hauteur draw() moveto() resize() dépendance Ligne Licence Informatique Programmation Orientée Objet 17 Licence Informatique Programmation Orientée Objet 18

Navigabilité restreinte Rendre unidirectionnelle la relation Pour indiquer que les instances d'une classe ne "connaissent" pas les instances d'une autre. Classe-association quand on veut exprimer les propriétés d une relation il s'agit d'une classe qui réalise la navigation entre les instances d'autres classes. Travaille pour Electeur * vote pour Candidat classeassociation Emploi -salaire -dateembauche -fonction Licence Informatique Programmation Orientée Objet 19 Licence Informatique Programmation Orientée Objet 20 Agrégation Il s'agit d'une association «tout/partie», ou «ensemble/élément» L'agrégation est une association non symétrique. Elle exprime un couplage fort et une relation de subordination. La partie peut être partagée. Composition La composition est une agrégation forte (agrégation par valeur) : si l'agrégat est détruit, ses composants le sont aussi. A un même moment, une instance d'un composant ne peut être liée qu'à un seul agrégat (composé). agrégation Zoo tout composition Zoo tout Un animal peut appartenir à un zoo (qui peut posséder plusieurs animaux). Un objet animal peut être lié à un autre objet. Animal partie Licence Informatique Programmation Orientée Objet 21 Un animal peut appartenir à un zoo (qui peut posséder plusieurs animaux). Un objet animal ne peut pas être lié à un autre objet. Si on détruit l'objet zoo, on détruit aussi les instances animaux liées. Animal partie Licence Informatique Programmation Orientée Objet 22 Exemple : Compteur Cas d utilisation (use cases) Counter #value : int #incrementf :... CounterGraphicInterface permettent de représenter le modèle conceptuel identification des acteurs et de leurs interactions avec le système +getvalue() : int +increment() +initvalue(value:int) Javax::swing::JFrame permettent de structurer les besoins des utilisateurs et les objectifs du système value = incrementf.increment(value); «interface» increment(value : int) : int permettent de définir le comportement attendu du système, sans en préciser la réalisation on ne s occupe que des objectifs, pas des solutions d implémentation clarification et organisation des besoins SimpleIncrement AnotherIncrement ModularIncrement Licence Informatique Programmation Orientée Objet 23 Licence Informatique Programmation Orientée Objet 24

Représentation Inclusion acteur : une personne ou un composant à l origine d une interaction avec le système relation d utilisation «include» consulter solde compte cas d utilisation : un objectif du système, un besoin d un acteur imprimer solde compte acteur cas d utilisation débite «include» imprimer ticket traiter login client retirer argent gestionnaire de sécurité s Licence Informatique Programmation Orientée Objet 25 Licence Informatique Programmation Orientée Objet 26 Diagramme de cas d utilisation package Counter * 1 affiche * CounterGraphicInterface DAB client visualise débite consulter solde compte retirer argent technicien éteint DAB avant de le ravitailler 1 incremente retrait possible dans la limite du stock du coffre mise en service ravitailler billets technicien donne valeur utilisateur visualise initialise afficher valeur affiche interface Licence Informatique Programmation Orientée Objet 27 Licence Informatique Programmation Orientée Objet 28