Rudiments d'uml. Diagrammes UML POO UML. Au commencement

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

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

IFT2255 : Génie logiciel

Chapitre I : le langage UML et le processus unifié

Université de Bangui. Modélisons en UML

Diagramme de classes

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

CC30 Certificat de compétence Conception, développement et animation de sites Web

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

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

UML (Diagramme de classes) Unified Modeling Language

Objets et Programmation. origine des langages orientés-objet

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

RTDS G3. Emmanuel Gaudin

3. UML - Unified Modeling Language Diagrammes statiques

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

Formation : Modélisation avec UML 2.0 et Mise en pratique

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

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

GOL502 Industries de services

TP1 : Initiation à Java et Eclipse

OCL - Object Constraint Language

Génie Logiciel Orienté Objet UML

Héritage presque multiple en Java (1/2)

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

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

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

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

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

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

Initiation à JAVA et à la programmation objet.

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

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Description de la formation

Programmation en Java IUT GEII (MC-II1) 1

Web Tier : déploiement de servlets

UML : Unified Modeling Language

UML (Paquetage) Unified Modeling Language

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

UML. Diagrammes de classes (suite) Delphine Longuet.

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

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

Les diagrammes de modélisation

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

Auto-évaluation Programmation en Java

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Corrigé des exercices sur les références

Cours STIM P8 TD 1 Génie Logiciel

Chapitre VI- La validation de la composition.

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Chapitre 2. Classes et objets

Génie Logiciel Avancé Cours 3 Le modèle à objets

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Les structures. Chapitre 3

Analyse,, Conception des Systèmes Informatiques

Bases de données. Chapitre 1. Introduction

TD/TP PAC - Programmation n 3

Environnements de développement (intégrés)

Programmer en JAVA. par Tama

Programmation Objet Java Correction

Traduction des Langages : Le Compilateur Micro Java

Cours 1: Java et les objets

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

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

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

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

CONCEPTION DE PROJET SIG AVEC UML

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

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Composants Logiciels. Le modèle de composant de CORBA. Plan

Cours en ligne Développement Java pour le web

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

Modélisation de Lignes de Produits en UML *

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

Projet de programmation (IK3) : TP n 1 Correction

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Cours 14 Les fichiers

Table des matières Sources

Objectif du cours. Outline. Complexité des systèmes modernes. La modélisation et UML dans les activités du Génie Logiciel...

La carte à puce. Jean-Philippe Babau

INITIATION AU LANGAGE JAVA

TD/TP PAC - Programmation n 3

Java Licence professionnelle CISII,

Programmation par les Objets en Java

Information utiles. webpage : Google+ : digiusto/

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

Une introduction à Java

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

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

Transcription:

POO Rudiments d'uml Diagrammes UML Diagrammes comportementaux Diagramme des cas d'utilisation... Diagrammes structurels ou statiques Diagramme de classes Diagramme des paquetages... Diagrammes d'interaction ou dynamiques Diagramme de séquence... Compréhension de l'expression de besoin Brainstorming "négociation fonctionnelle" Conception technique "liberté" sur le niveau de détail Conception technique "liberté" sur le niveau de détail 2013-2014 POO 1 2013-2014 POO 3 UML Au commencement Unified Modeling Language Langage uniformisé pour la spécification de modèles objets Graphiques standardisés Modèle systémique abstrait : modèle UML le but d'un projet est de satisfaire le besoin! Expression des besoins client Cahier des charges fonctionnel (Agile) User story Who, What, Why "In order to <receive benefit> as a <role>, I want <goal/desire>" En tant que TE, je dois saisir mon RV en ligne pour que la cellule d'alternance soit avertie de ma visite et des éventuels problèmes. capturer les besoins principaux des utilisateurs. ne pas chercher l'exhaustivité, mais clarifier, filtrer et organiser les besoins! 2013-2014 POO 2 2013-2014 POO 4

Use Case Diagram Use Case Diagram Vision globale des interactions interactions des utilisateurs (acteurs) avec le système acteur = acteur physique ou système externe Contient : Les acteurs Les "Use Case" objectifs du système, services rendus, fonctionnalités Peut indiquer la nature des interactions Diagramme de haut niveau, vue d'ensemble Ne peut donner une séquence précise d'actions Passe une commande 2013-2014 POO 5 2013-2014 POO 8 Use Case Diagram Use Case Diagram Identifier les Use Case (les ovales)? <<include>> (ou <<uses>>) et <<extend>> 2013-2014 POO 7 2013-2014 POO 9

Use Case Diagram Use Case Diagram Un restaurant 2013-2014 POO 11 2013-2014 POO 13

Use Case Diagram Attention : ne pas confondre avec UN cas d'utilisation Décrivant l'ensemble des interactions pour UN scénario d'utilisation Utilisé pour discuter avec la MOA Complété par la description textuelle des scénarios d'utilisation Diagramme de classes Chaque interface est représentée par un rectangle surmonté d' «interface» avec son nom ses méthodes types optionnels «interface» avec notation à NomDInterface la pascal m1(param1:type1):type m2(p1:type1,p2:type2):type m3():type 2013-2014 POO 14 2013-2014 POO 16 Diagramme de classes Diagramme de classes Chaque classe est représentée par un rectangle avec son nom ses champs ses méthodes types optionnels avec notation à la pascal + signifie "public" - signifie "private" # signifie "protected" ~ signifie "package" NomDeClasse +champ1 : type1 +champ2 : type2 -m1(param1:type1):type #m2(p1:type1,p2:type2):type m3():type On indique les relations entre classes et interfaces généralisation (héritage) réalisation (implémentation) Association simple ou bidirectionnelle agrégation composition dépendance 2013-2014 POO 15 2013-2014 POO 17

Généralisation (héritage) Réalisation (implémentation) : On ne recopie pas les membres hérités Customer name: String address: Address validate():boolean «interface» Validable validate():boolean Firm firmname: String siret: String Firm firmname: String siret: String 2013-2014 POO 18 2013-2014 POO 20 Généralisation Customer name: String address: Address validate():boolean Association Une association signifie qu'une classe utilise une ou plusieurs instances d'une autre Si l'association est dans les deux sens, on ne met pas de flèche Address Customer Firm firmname: String siret: String FaithfullCustomer cardid: Card validate():void validate():void 2013-2014 POO 19 2013-2014 POO 21

Association Association Information complémentaire : cardinalité (indiqué à l'extrémité du lien) nom du champ visibilité <<interface>> Drawable draw():void Maison 1 * Habitant Entreprise -habite 0..1 * + signifie "public" - signifie "private" # signifie "protected" ~ signifie "package" Point x:int y:int 2 -from -to Line 0..* -lines Polyline 2013-2014 POO 22 2013-2014 POO 24 Association Agrégation Un cours est suivi par des étudiants (peut-être aucun) et les connaît Un étudiant suit des cours et les connaît L'agrégation est un cas particulier d'association : Relation non symétrique, lien de subordination Couplage fort Relation «non vitale» les cycles de vie peuvent être indépendant Cours 1..* -courses 0..* -students Étudiant Raster 0..* -raster BufferedImage 2013-2014 POO 23 2013-2014 POO 25

Composition Dépendance La composition est un cas particulier d'agrégation Agrégation forte Cycles de vie liés À un instant t, une instance de composant ne peut être liée qu'à un seul composé. Signifie un «dépendance» de n'importe quel ordre On peut indiquer la nature de la dépendance Button 1..* -buttons 1 -parent MainPanel WindowListener «instantiate» MainFrame 2013-2014 POO 26 2013-2014 POO 28 Composition Diagramme de packages En Java, si la référence sur l'instance crée quitte l'objet (getter), la composition est impossible En C, en théorie la composition peut être implémentée avec une structure qui contient l'autre structure (et non un pointeur) Simple diagramme où chaque paquetage est dans une boîte entre lesquelles on met un flèche pour dire que l'un est client de l'autre p1 Un commentaire. p2 + class1 + class2 - class3 «import» + class4 + class5 2013-2014 POO 27 2013-2014 POO 29

Diagramme de packages Diagramme de séquence 2 axes Cohérence Nature regroupement sémantique finalité du service rendu Evolution Isoler ce qui varie Niveau de stabilité Indépendance Faible couplage Minimiser les interaction A x e t e m p o r e l :Main leg:graph :Edge :Vertex seek(label:string) edges() contains(label:string) getlabel() getlabel() 2013-2014 POO 30 2013-2014 POO 32 Diagramme de séquence Logiciels UML (gratuits) Indique ce qui se passe pendant une tâche particulière du programme Ce diagramme met l'accent sur les interactions entre objets Il permet aussi de prouver qu'une tâche cliente est possible En réalisant ce genre de diagrammes, on tombe souvent sur de nouvelles responsabilités. Violet (java) Très simple, prise en main en 5 minutes Limité ArgoUML Pas mal, après avoir été figé, a été repris par Collabnet BoUML Pas mal ; version gratuite figée ; version payante StarUML Pas mal ; n'évolue plus 2005 Poseidon for UML, Community edition Visual paradigm for UML, Community edition 2013-2014 POO 31 2013-2014 POO 33

Exercice : Schéma Code Exercice : Code Schéma Ecrire le code correspondant 2013-2014 POO 34 2013-2014 POO 36 Exercice : Code Schéma public class D extends B { private int j; public void execute(); public abstract class B implements I { private int i; public class A implements I { private B b; String attr; public A(B b) { this.b = b; public void execute(); public class C implements I { private List<I> list; public void setlist(list<i> l) ; public List<I> getlist(); public interface I { public void execute(); 2013-2014 POO 35