Introduction à UML. ESIR 1 ère année. Rémi Cozot

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

Université de Bangui. Modélisons en UML

Corrigé des exercices sur les références

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

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Chapitre I : le langage UML et le processus unifié

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

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

Premiers Pas en Programmation Objet : les Classes et les Objets

UML (Paquetage) Unified Modeling Language

Table des matières Sources

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

IFT2255 : Génie logiciel

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

TP1 : Initiation à Java et Eclipse

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

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

Programmer en JAVA. par Tama

Conception des systèmes répartis

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

Diagramme de classes

Cours STIM P8 TD 1 Génie Logiciel

ACTIVITÉ DE PROGRAMMATION

Utiliser Java sans BlueJ

GOL502 Industries de services

Analyse,, Conception des Systèmes Informatiques

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

Design patterns. Design patterns - définition. Design patterns - avantages

Les diagrammes de modélisation

Package Java.util Classe générique

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

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

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

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre VI- La validation de la composition.

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

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

Initiation à JAVA et à la programmation objet.

TD/TP PAC - Programmation n 3

Tutoriel BlueJ. Michael Kölling Mærsk Institute University of Southern Denmark. Version 1.4 fr-2 par le groupe Sigma 1 pour BlueJ Version 1.2.

Langage Java. Classe de première SI

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

Auto-évaluation Programmation en Java

RMI le langage Java XII-1 JMF

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

RTDS G3. Emmanuel Gaudin

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Projet de programmation (IK3) : TP n 1 Correction

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

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

TD/TP PAC - Programmation n 3

Programme Compte bancaire (code)

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

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

Projet Active Object

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Java Licence professionnelle CISII,

as Architecture des Systèmes d Information

Corrigés des premiers exercices sur les classes

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Chapitre 10. Les interfaces Comparable et Comparator 1

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

INITIATION AU LANGAGE JAVA

Programmation Par Objets

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

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Classe Interne, Anonyme & Enumération

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Programmation avec des objets : Cours 7. Menu du jour

Architecture Orientée Service, JSON et API REST

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

Java Licence Professionnelle CISII,

GL Le Génie Logiciel

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Tp 1 correction. Structures de données (IF2)

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

Desktop Intégration. Rémi Forax

UML (Diagramme de classes) Unified Modeling Language

Programmation en Java IUT GEII (MC-II1) 1

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

Eclipse atelier Java

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

Institut d Informatique & d Initiative Sociale

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Remote Method Invocation Les classes implémentant Serializable

TD3: tableaux avancées, première classe et chaînes

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

UML et les Bases de Données

TD2 Programmation concurrentielle

Plan Pédagogique du cours

Développement Logiciel

UML : DIAGRAMME D ETATS

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

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

LOG4430 : Architecture logicielle et conception avancée

Transcription:

Introduction à UML ESIR 1 ère année Rémi Cozot Maître de Conférences Habilité à Diriger des Recherches Équipe FRVSense UMR IRISA remi.cozot@irisa.fr

Plan Introduction Modélisation : classification et relations UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

Introduction Projet informatique (ou autre) Besoin de décrire, de spécifier Les besoins La solution Solution «classique» Cahier des charges Quel(s) niveaux de détails Laisse trop de place à l interprétation Besoin d un outil formel Cahier des Charges - Analyse fonctionnelle - Analyse de valeur : fonction/coût Généraliste, modulaire, hiérarchique, etc.

Introduction Spécifier, modéliser Pour qui? Pour le client Comment exprimer son besoin Pour l informaticien Pour concevoir la solution répondant au besoin Si l outil n est pas commun entre le client et le fournisseur, cela entraine des erreurs Outil : vocabulaire, schéma, etc. UML : cadre formel «simple»

Plan Introduction Modélisation : classification et relations UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

Modélisation : classification et relations Représentation un «problème» Lister les «acteurs» Mettre en évidence les relations Des acteurs partagent des propriétés communes Généraliser / spécialiser : classifier Approches communes aux sciences

Modélisation : classification et Classification relations Exemple biologie / zoologie Équidés Chevaux Ânes Zèbres Classification en fonction de critères Sauvage Domestique chevaux domestique lusitanien équidés ânes pur sang sauvage zèbres przewalski

Modélisation : classification et relations Relations autres que la classification Exemple Chevaux mangent fourrage chevaux mangent fourrage herbe foin paille

Modélisation : classification et relations Exemple : bibliothèque Lister les acteurs, généraliser Livre Usagé Emprunt Date d emprunt, de retour Relations Usagé (Recherche) livre Usagé (Emprunte) livre Usagé (Rend) livre Emprunt (A) date d emprunt Emprunt (A) date de retour

Modélisation : classification et relations Exemple : bibliothèque personne s inscrit bibliothèque commande possède usagé emprunte exemplaire Date a emprunt rend de livre Date emprunt Date retour album poche classique

Modélisation : classification et relations Critère(s) de classification Exemple : Choix livre album poche classique

Modélisation : classification et relations Critère(s) de classification Exemple : oui, mais Roman livre Essai BD album poche classique

Modélisation : classification et relations Critère(s) de classification Exemple : alors Roman classique livre Roman Essai BD Roman poche Essai poche Essai classique BD poche BD album

Modélisation : classification et relations Critère(s) de classification Mais aussi? Paru en 2016 livre Paru en 2015 Paru en 2014

Modélisation : classification et relations Critère(s) de classification Mais aussi? livre est paru en date de parution

Modélisation : classification et relations Critère(s) de classification Ou alors format < est du format livre est paru en date de parution album poche classique Essai BD Roman

Modélisation : classification et relations Critère(s) de classification Ou bien encore exemplaire de livre est paru en date de parution < est du format format Essai BD Roman album poche classique

Modélisation : classification et relations Exemple : bibliothèque Des boîtes des flèches : manque d un formalisme précis Dimensions du modèle Statique Dynamique Vues De l utilisateur Architecture logicielle Déploiement Granularité Niveau de détail du modèle Dans l exemple : quel est l intérêt de la spécialisation» BD, poche, classique UML propose un cadre formel et ouvert

Plan Introduction Modélisation : classification relation UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

UML : Les diagrammes Une seule vue ne suffit pas Dimension structurelle statique Classe, objet Dimension dynamique Utilisation États (automates) Dimension des interactions Communication et séquences

UML : Les diagrammes Diagrammes structurels ou diagrammes statiques (UML Structure) diagramme de classes (Class diagram) diagramme d objets (Object diagram) diagramme de composants (Component diagram) diagramme de déploiement (Deployment diagram) diagramme de paquetages (Package diagram) diagramme de structures composites (Composite structure diagram) Diagrammes comportementaux ou dynamiques (UML Behavior) diagramme de cas d utilisation (Use case diagram) diagramme d activités (Activity diagram) diagramme d états-transitions (State machine diagram) Diagrammes d interaction (Interaction diagram) diagramme de séquence (Sequence diagram) diagramme de communication (Communication diagram) diagramme global d interaction (Interaction overview diagram) diagramme de temps (Timing diagram)

Plan Introduction Modélisation : classification relation UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

Cas d utilisation Use Case Expression des besoins recueillir, analyser, organiser les besoins Éléments de diagramme Acteur : personne externe, un processus ou une chose qui interagit avec un système Cas d utilisation : une unité cohérente représentant une fonctionnalité visible de l extérieur

Cas d utilisation Use Case Exemple

Cas d utilisation Use Case Relations entre cas Inclusion A inclut B lorsque A appelle B pour sa réalisation. Extension A étend B lorsque le cas d utilisation A peut être appelé au cours de l exécution du cas d utilisation B. L extension est optionnelle. Généralisation / spécialisation Relations entre acteurs Généralisation / spécialisation

Cas d utilisation Use Case

Plan Introduction Modélisation : classification relation UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

Diagramme de Classes Diagramme le plus important Structure interne qui fournit une représentation abstraite des classes (objets) du système qui réalisent les cas d utilisation Éléments de diagramme Classe

Diagramme de Classes Relations entre classes Héritage / généralisation / spécialisation La classe enfant possède toutes les caractéristiques des ses classes parents. Une classe enfant peut redéfinir plusieurs méthodes de la classe parent Toutes les associations de la classe parent s appliquent aux classes enfants

Diagramme de Classes Relations entre classes Composition A est composé de B Si A disparaît alors B disparaît également Agrégation

Diagramme de Classes Relations entre classes Association

Diagramme de Classes Relations entre classes Association Direction Le «client» a une «adresse» de «livraison» Notion d accessibilité Client Livraison Du client on trouve l adresse MAIS de l adresse on ne remonte pas aux clients 1 Adresse

Diagramme de Classes Relations entre classes : chercher l erreur Maison 1 1..* Pièces 1 0..* Fenêtre

Diagramme de Classes Relations entre classes : chercher l erreur Chambre 1 * Réservation * Personne 1 0.. * Client Hôtel 1 1 Gérant

Plan Introduction Modélisation : classification relation UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

Diagramme d états /transitions Rôle : spécifier le comportement logique interne d un objet d une classe sous forme d un automate à états finis Éléments du diagramme État Initial Final Transition et évènement

Diagramme d états /transitions Plus de détails État composite État encapsulant un automate Historique

Diagramme d états /transitions Plus de détails Concurrence Des états fonctionnant en parallèle

Diagramme d états /transitions

Plan Introduction Modélisation : classification relation UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

Diagramme de séquences Rôle Précise les messages échangés (appel de méthodes) entre les objets dans un ordre chronologiques Décrit «comment» et par qui les cas d utilisation sont réalisés Éléments Objet (éventuellement acteur) Message / signal

Diagramme de séquences Message Synchrone Méthode avec retour Asynchrone (signal) Création / destruction

Diagramme de séquences Messages A appelle B A appelle B B appelle A

Diagramme de séquences Exemple : jeux démineur

Diagramme de séquences témoinetage Contrôleur Ascenseur Portes appelascenseur() allumer() éteindre() déplacer() ouvrir() demandeetage() allumer() fermer() déplacer()

Plan Introduction Modélisation : classification relation UML : les diagrammes Cas d utilisation Diagramme de Classes États transitions Séquences Conclusion

Conclusion UML est un outil généraliste Informatique Gestion / économie / finances Création Rubika (anciennement SupInfoGame) Médecine UML ne fait pas tout Nécessite une méthodologie

Conclusion

conclusion Forme type de conception : patron de conception

Conclusion Forme type de conception : patron de conception /* * GUIFactory Example */ public abstract class GUIFactory { public static GUIFactory getfactory() { int sys = readfromconfigfile("os_type"); if (sys == 0) { return (new WinFactory()); } else { return (new OSXFactory()); } } public abstract Button createbutton();} class WinFactory extends GUIFactory { public Button createbutton() { return (new WinButton()); } } class OSXFactory extends GUIFactory { public Button createbutton() { return (new OSXButton()); } } public abstract class Button { private String caption; public abstract void paint(); public String getcaption(){ return caption; } public void setcaption(string caption){ this.caption = caption; }} class WinButton extends Button { public void paint() { System.out.println("I'm a WinButton: "+ getcaption()); } } class OSXButton extends Button { public void paint() { System.out.println("I'm a OSXButton: "+ getcaption()); } } public class Application { public static void main(string[] args) { GUIFactory afactory = GUIFactory.getFactory(); Button abutton = afactory.createbutton(); abutton.setcaption("play"); abutton.paint(); }

MERCI J