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.

GOL502 Industries de services

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

TP1 : Initiation à Java et Eclipse

OCL - Object Constraint Language

Génie Logiciel Orienté Objet UML

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

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

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

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

Chapitre VI- La validation de la composition.

Cours STIM P8 TD 1 Génie Logiciel

- 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

Traduction des Langages : Le Compilateur Micro Java

Programmation Objet Java Correction

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

Cours en ligne Développement Java pour le web

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

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

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

Modélisation de Lignes de Produits en UML *

Projet de programmation (IK3) : TP n 1 Correction

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

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 2012-2013 POO 1 2012-2013 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! 2012-2013 POO 2 2012-2013 POO 4

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 2012-2013 POO 5 2012-2013 POO 8 Identifier les Use Case (les ovales)? <<include>> (ou <<uses>>) et <<extend>> 2012-2013 POO 7 2012-2013 POO 9

Un restaurant 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 2012-2013 POO 11 2012-2013 POO 13

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 2012-2013 POO 14 2012-2013 POO 16 Diagramme de classes Généralisation (héritage) 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 On ne recopie pas les membres hérités Customer name: String address: Address validate():boolean Firm firmname: String siret: String 2012-2013 POO 15 2012-2013 POO 17

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 2012-2013 POO 18 2012-2013 POO 20 Réalisation (implémentation) : Association «interface» Validable validate():boolean Firm firmname: String siret: String Information complémentaire : cardinalité (indiqué à l'extrémité du lien) nom du champ visibilité Maison Entreprise 1 -habite 0..1 * Habitant * + signifie "public" - signifie "private" # signifie "protected" ~ signifie "package" 2012-2013 POO 19 2012-2013 POO 21

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 2012-2013 POO 22 2012-2013 POO 24 Association Composition <<interface>> Drawable draw():void 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é. Point x:int y:int 2 -from -to Line 0..* -lines Polyline Button 1..* -buttons 1 -parent MainPanel 2012-2013 POO 23 2012-2013 POO 25

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 2012-2013 POO 26 2012-2013 POO 28 Dépendance Diagramme de packages Signifie un «dépendance» de n'importe quel ordre On peut indiquer la nature de la dépendance WindowListener «instantiate» MainFrame 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 2012-2013 POO 27 2012-2013 POO 29

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 2012-2013 POO 30 2012-2013 POO 32 Diagramme de séquence Exercice : Schéma Code :Main leg:graph :Edge :Vertex Ecrire le code correspondant A x e seek(label:string) edges() t e m p o r e l contains(label:string) getlabel() getlabel() 2012-2013 POO 31 2012-2013 POO 33

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(); 2012-2013 POO 34 Exercice : Code Schéma 2012-2013 POO 35