Utiliser UML dans les projets Java. Daniel Tschirhart. UML pour les projets. Révision 1.0



Documents pareils
Documentation sur l importation en lot d utilisateurs sur la plateforme Via

Les marchés de l immobilier à l international. Évolutions, structures et performances

Cours de Génie Logiciel

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

Nos avocats présents sur le salon FISCAP. 30 et 31 mars 2010 Palais des Congrès de Paris

La stabilité des prix : pourquoi est-elle importante pour vous? Brochure d information destinée aux élèves

La diversité de nos fabrications et l esprit qualitatif appliqué à nos réalisations nous ont permis d évoluer en

Projet Active Object

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Optimiser le. succès. de vos nominations grâce à une solution. fiable, indépendante et globale

Movida Séduisant, simple et astucieux

Le service FTP. M.BOUABID, Page 1 sur 5

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

Table des matières Sources

Les diagrammes de modélisation

Litera. Caisson Universel. La meilleure manière de ranger tout ce dont vous avez besoin au bureau. steelcase.com

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

Diagramme de classes

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

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

Les tarifs T.T.C. Les salles. Les forfaits séjours séminaires. La restauration. Les conditions générales de vente

juillet 2010 Actualité du département de Droit social

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

KOMPAS Groupe international

Nos avocats présents au SIMI. 1 er, 2 et 3 décembre 2010 Palais des Congrès de Paris

Gamme distribution horaire. La maîtrise du temps

Chapitre I : le langage UML et le processus unifié

Gestion distribuée (par sockets) de banque en Java

Hay Group Spectrum. La nouvelle génération de solutions en RH

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

IFT2255 : Génie logiciel

NAS 254 Sauvegarde cloud

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Mouvement Européen France. Le livret du citoyen européen

RMI le langage Java XII-1 JMF

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

Cours STIM P8 TD 1 Génie Logiciel

Calculatrice horloge température FICHES TECHNIQUES

Informations pour Franchise Franchisés Principaux/ Détenteurs de licence Pour tous les pays du monde entier

MANUEL. de l application «CdC Online» pour Windows. Table des matières

Installation de Cisco Unified Call Manager

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

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

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

TABLE DES MATIÈRES. Page

Traduction des Langages : Le Compilateur Micro Java

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

JEU BOURSIER Séance d introduction à la plateforme de trading SaxoWebTrader. - Pour débutants -

eps Network Services Alarmes IHM

Guide de fonctions du téléphone du système SCI Norstar

METREX Le Réseau des Régions et des Aires Métropolitaines d'europe

Application web de gestion de comptes en banques

4. Groupement d objets

REALISATION d'un. ORDONNANCEUR à ECHEANCES

INITIATION AU LANGAGE JAVA

Prix et salaires. Une comparaison du pouvoir d achat dans le monde. Pouvoir d achat

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Chapitre 2. Classes et objets

Mode d'emploi abrégé du GPS GeoExplorer3 et du Software GPS Pathfinder Office

M1 : Ingénierie du Logiciel

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

Université de Bangui. Modélisons en UML

Gestion de projets logiciels. Xavier Dubuc

Transmissions série et parallèle


Gestionnaire de données edart

Il se peut que certains sites Web ne s'affichent pas correctement ou ne fonctionnent pas dans Internet Explorer 8 ou Internet Explorer 9 Bêta :

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

Espace Numérique Régional de Santé Formation sur la messagerie sécurisée. Version Auteur : Nathalie MEDA

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

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

McAfee Security-as-a-Service

ETI/Domo. Français. ETI-Domo Config FR

CA ARCserve Replication and High Availability

LE CONSEIL EN STRATÉGIE

Stellar Phoenix Outlook PST Repair - Technical 5.0 Guide d'installation

DirXML License Auditing Tool version Guide de l'utilisateur

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

Arcserve Replication and High Availability

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

Mode d'emploi pour tous les programmes de messagerie électronique

Configuration d'un annuaire LDAP

Préparer la synchronisation d'annuaires

NFP111 Systèmes et Applications Réparties

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

FAQ Trouvez des solutions aux problématiques techniques.

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Guide de référence rapide sur la messagerie vocale d'avaya Distributed Office

SCHMITT Année 2012/2014 Cédric BTS SIO. TP Serveur Backup

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

LOGICIEL KIPICAM : Manuel d installation et d utilisation

VRM Monitor. Aide en ligne

UML : DIAGRAMME D ETATS

Java 7 Les fondamentaux du langage Java

Mes documents Sauvegardés

Transcription:

Utiliser UML dans les projets Java Daniel Tschirhart. UML pour les projets. Révision 1.0

Préparer son projet

Cahier des charges Essayer de privilégier la description du QUOI avant celle du COMMENT Le QUOI et plus simple à comprendre que le COMMENT Dessiner une maquette de l IHM et dérouler un scénario. 3

Cahier des charges : horloge Horloge analogique Ou numérique Elle se synchronise automatiquement sur l heure GMT. On peut choisir le fuseau horaire On peut choisir l heure d été/hivers 4

Exemple : Horloge universelle synchronisée par un serveur NTP Horloge synchronisée par l horloge atomique de Boulder (Colorado). L horloge se resynchronise à minuit. On peut choisir les fuseaux horaires. On peut choisir manuellement l heure d été Maquette de l horloge Peut être dessinée à la main 5

Diagramme de cas d utilisation (DCU) Daniel Tschirhart. UML pour les projets. Révision 1.0 Un cas d utilisation est un condensé d une activité, décrit dans le dossier technique, que l utilisateur (l acteur) peut exercer avec le logiciel. Cette activité doit obligatoirement apporter une plus value à l acteur qui déclenche le cas d utilisation. 6

Diagramme de cas d utilisation (DCU) Daniel Tschirhart. UML pour les projets. Révision 1.0 Une activité doit s énoncer à l aide d un verbe + complément. Les traits qui relient l acteur au(x) CU(s) ne doivent pas être décorés par du texte car ils sont déjà porteur de l information suivante: Quel acteur principal à déclenche le CU pour obtenir la plus value escomptée. Quel acteur secondaire participe à l activité désignée par le CU 7

Diagramme de cas d utilisation (DCU) Daniel Tschirhart. UML pour les projets. Révision 1.0 On peut préparer le DCU à l aide du tableau suivant Actions que l on peut faire sur le dispositif Acteur humain (acteur principal) Acteur matériel (acteur secondaire) 8

Diagramme de cas d utilisation (DCU) Daniel Tschirhart. UML pour les projets. Révision 1.0 On peut préparer le DCU à l aide du tableau suivant Actions que l on peut faire sur le dispositif Acteur humain (acteur principal) Choisir le fuseau horaire utilisateur - Acteur matériel (acteur secondaire) 9

Diagramme de cas d utilisation (DCU) Daniel Tschirhart. UML pour les projets. Révision 1.0 On peut préparer le DCU à l aide du tableau suivant Actions que l on peut faire sur le dispositif Acteur humain (acteur principal) Choisir le fuseau horaire utilisateur - Choisir l heure d été / hivers utilisateur - Acteur matériel (acteur secondaire) 10

Diagramme de cas d utilisation (DCU) Daniel Tschirhart. UML pour les projets. Révision 1.0 On peut préparer le DCU à l aide du tableau suivant Actions que l on peut faire sur le dispositif Acteur humain (acteur principal) Choisir le fuseau horaire utilisateur - Choisir l heure d été / hivers utilisateur - Acteur matériel (acteur secondaire) Incrémenter les h, m, s - Mécanisme utilisant base de temps du calculateur 11

Diagramme de cas d utilisation (DCU) Daniel Tschirhart. UML pour les projets. Révision 1.0 On peut préparer le DCU à l aide du tableau suivant Actions que l on peut faire sur le dispositif Acteur humain (acteur principal) Choisir le fuseau horaire utilisateur - Choisir l heure d été / hivers utilisateur - Acteur matériel (acteur secondaire) Incrémenter les h, m, s - Mécanisme utilisant base de temps du calculateur Resynchroniser l horloge - Serveur NTP de Boulder 12

Diagramme de cas d utilisation de l horloge Daniel Tschirhart. UML pour les projets. Révision 1.0 C est moi Choisir le fuseau horaire Utlisateur Choisir l heure d été / hivers Incrémenter les h, m, s Mécanisme utilisant base de temps du calculateur Resynchroniser l horloge Serveur NTP de Boulder 13

Remarques sur les DCU Un DCU ne dit pas si les CU seront réalisés par un seul logiciel ou plusieurs logiciels séparés. Dans le cas présent, l horloge est évidement un seul logiciel. 14

Diagramme de classes d analyse On réfléchis au problème posé Daniel Tschirhart. UML pour les projets. Révision 1.0 On ne détaille pas les classes au de la de l indispensable (pas de méthodes, pas d attributs) 15

Diagramme de classes d analyse Une classe = un nom commun Daniel Tschirhart. UML pour les projets. Révision 1.0 Un lien entre deux classes = un verbe + éventuellement un complément d objet 16

Ce qu il ne faut pas faire Utilisateur Affichage Choix HE Affichage Données Choix utilisateur Mécanisme Code Recherche du site Internet 17

Ce qu il faut faire. Classe principale : IHM Daniel Tschirhart. UML pour les projets. Révision 1.0 IHM Horloge 18

Le mécanisme IHM L horlogerie Horloge Mécanisme 19

La base de temps IHM L horlogerie Horloge Mécanisme Le tic tac Timer 20

La référence du temps HeureGMT Accède au serveur NTP IHM L horlogerie Horloge Mécanisme Le tic tac Timer 21

Calcul de l heure HeureGMT Accède au serveur NTP IHM L horlogerie Horloge démarrer Mécanisme Le tic tac Timer 22

Calcul de l heure HeureGMT Accède au serveur NTP IHM L horlogerie Horloge démarrer Mécanisme Régler période 1s démarrer Le tic tac Timer 23

Calcul de l heure HeureGMT Accède au serveur NTP IHM L horlogerie Horloge démarrer Mécanisme Régler période 1s démarrer Le tic tac Timer 24

Affichage de l heure HeureGMT Accède au serveur NTP IHM L horlogerie Horloge démarrer Mécanisme MAJ et obtenir heure Régler période 1s démarrer Le tic tac Timer 25

Affichage de l heure HeureGMT Accède au serveur NTP IHM L horlogerie Obtenir l heure GMT Horloge démarrer Mécanisme MAJ et obtenir heure Régler période 1s démarrer Le tic tac Timer 26

Affichage de l heure HeureGMT Accède au serveur NTP IHM L horlogerie Horloge démarrer Mécanisme l horloge devra instancier le mécanisme en lui passant sa référence. Le timer utilisera cette référence pour appeler un méthode de l horloge permettant d afficher l heure MAJ et obtenir heure Régler période 1s Timer démarrer Le tic tac 27

Synchronisation de l horloge HeureGMT Accède au serveur NTP IHM L horlogerie Obtenir l heure GMT Horloge démarrer Mécanisme MAJ et obtenir heure Régler période 1s démarrer Le tic tac Timer 28

Synchronisation de l horloge HeureGMT Accède au serveur NTP IHM L horlogerie Obtenir l heure GMT Horloge démarrer Mécanisme MAJ et obtenir heure Régler période 1s démarrer Le tic tac Timer 29

Synchronisation de l horloge HeureGMT Accède au serveur NTP IHM L horlogerie Obtenir l heure GMT Horloge démarrer Mécanisme l horloge devra instancier le mécanisme en lui passant sa référence. L HeureGMT devra être instancée en lui passant la référence de l horloge recue par le mécanisme MAJ et obtenir heure Régler période 1s démarrer Le tic tac Timer 30

Choix du fuseau horaire HeureGMT Accède au serveur NTP IHM L horlogerie Obtenir l heure GMT Horloge démarrer Mécanisme MAJ et obtenir heure Régler période 1s démarrer Le tic tac Choise Liste déroulante Timer 31

Classe Timer? 32

Classe Timer 33

Création d'un objet Timer 34

Affichage et calcul de l heure 35

Diagramme de classes de conception. Affichage et calcul de l heure Défini à l instanciation Start() hms() afficheheure(h,m,s) 36

Synchroniser l horloge : Connexion à un serveur NTP Exemple Socket1 Ouverture du socket Lecture de la donnée fournie par le serveur 37

Diagramme de classes de conception. Obtention de l heure GMT 38

39

Lecture et mémorisation des fuseaux horaires 40

Lecture et mémorisation des fuseaux horaires (GMT+00:00) Casablanca (GMT+00:00) Heure de Greenwich : Dublin, Édimbourg, Lisbonne, Londres (GMT+00:00) Monrovia, Reykjavik (GMT+01:00) Afrique centrale - Ouest (GMT+01:00) Amsterdam, Berlin, Berne, Rome, Stockholm, Vienne (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague (GMT+01:00) Bruxelles, Copenhague, Madrid, Paris (GMT+01:00) Sarajevo, Skopje, Varsovie, Zagreb (GMT+02:00) Amman (GMT+02:00) Athènes, Bucarest, Istanbul (GMT+02:00) Beyrouth (GMT+02:00) Harare, Pretoria (GMT+02:00) Helsinki, Kiev, Riga, Sofia, Tallinn, Vilnius (GMT+02:00) Jérusalem (GMT+02:00) Le Caire (GMT+02:00) Minsk (GMT+02:00) Windhoek (GMT+03:00) Bagdad (GMT+03:00) Koweït, Riyad (GMT+03:00) Moscou, St. Petersbourg, Volgograd (GMT+03:00) Nairobi (GMT+03:00) Tbilissi (GMT+03:30) Téhéran (GMT+04:00) Abu Dhabi, Muscat (GMT+04:00) Baku (GMT+04:00) Erevan (GMT+04:30) Kaboul (GMT+05:00) Iekaterinbourg (GMT+05:00) Islamabad, Karachi 41

Diagramme de classes de conception. Lecture et mémorisation des fuseaux horaires 42

Lecture et mémorisation des fuseaux horaires Daniel Tschirhart. UML pour les projets. Révision 1.0 43

Diagramme de classes complet 44

Diagramme de séquences Les diagrammes de séquences permettent de représenter les collaborations entre objets selon un point de vue temporel. La représentation se concentre sur l'expression des interactions. Les diagrammes de séquences peuvent servir à illustrer un cas d'utilisation. 45

Syntaxe des diagrammes de séquences L'ordre d'envoi d'un message est déterminé par sa position sur un axe vertical; le temps s'écoule "de haut en bas" de cet axe. La disposition des objets sur l'axe horizontal n'a pas de conséquence pour la sémantique du diagramme. 46

Diagramme de séquences (2) 47

Signification des messages message simple Message dont on ne spécifie aucune caractéristique d'envoi ou de réception particulière. message minuté (timeout) Bloque l'expéditeur pendant un temps donné (qui peut être spécifié dans une contrainte), en attendant la prise en compte du message par le récepteur. L'expéditeur est libéré si la prise en compte n'a pas eu lieu pendant le délai spécifié. message synchrone Bloque l'expéditeur jusqu'à prise en compte du message par le destinataire. Le flot de contrôle passe de l'émetteur au récepteur (l'émetteur devient passif et le récepteur actif) à la prise en compte du message. message asynchrone N'interrompt pas l'exécution de l'expéditeur. Le message envoyé peut être pris en compte par le récepteur à tout moment ou ignoré (jamais traité). message dérobant N'interrompt pas l'exécution de l'expéditeur et ne déclenche une opération chez le récepteur que s'il s'est préalablement mis en attente de ce message. 48

Tests et itérations dans les diagramme de séquences Ce fragment de diagramme de séquence (sd) illustre l emploi de 3 fragments UML2 : - l option (opt) qui correspondant en pseudo-code à l instruction «SI condition ALORS FINSI» - l alternative (alt) qui correspondant en pseudo-code à l instruction «SI condition ALORS SINON FINSI» - la boucle (loop) qui correspondant en pseudo-code à l instruction «TANT QUE condition ALORS FIN TANT QUE» sd a : AAA message0 b : BBB Pseudo-code équivalent b.message0() SI condition1 ALORS b.message1() FINSI loop opt [ condition1 ] message1 alt message2 [ condition d itération ] [ condition2 ] TANT QUE condition d itération FAIRE SI condition2 ALORS b.message2() message3() SINON b.message4() FINSI message5() FIN TANT QUE message3 message4 [ sinon ] message5 49

Diagramme de séquence de la méthode Horloge.initialize() : Horloge initialize() créer() labeltime : Label créer(41,32,205,53) setbounds(r) r : Rectangle settext("") setfont(créer("", Font.BOLD, 48)) f : Font setlayout(null) setbackground(color.green) setsize(301, 134) settitle("horloge Universelle") add(labeltime) cfh = getchoicefuseauhoraire() add(cfh) créer Objet anonyme d'une classe anonyme dérivée de WindowAdapter qui redéfinit la méthode windowclosing() pour terminer l'application. oanonyme : Anonyme1 addwindowlistener(obj Anonyme) retour 50

Diagramme de séquence du lancement Daniel Tschirhart. de l'horloge UML pour les projets. Révision 1.0 :programme_principal créer() :Horloge Frame() initialize() choicefuseauhoraire : Choice Cette séquence génère une exception si le fichier n'est pas trouvé. Un message d'erreur est alors affiché dans le composant choicefuseauhoraire. créer("fuseautriés.txt") f : File créer(f) fr : FileReader créer(fr) in : BufferedReader loop break line = readline() [line == null] add(line) créer(this) : Mecanisme start() retour setvisible(true) 51

Diagramme de séquence du constructeur de Mécanisme créer (thehorloge) :Mécanisme Objet anonyme de la classe Mécanisme Message trouvé : Cela veut simplement dire que l'objet appelant ne nous intéresse pas ici. mémoriser thehorloge La classe HeureGMT ne possède qu'une méthode statique get(). HeureGMT L'appel de la méthode privée CreateTimer est ici mis en exergue par 3 éléments : - l'auto-message "createtimer", - la barre d'activation grisée, qui se détache de la ligne de vie de l'objet :Mécanisme - l'auto-message "retourne t" qui indique la fin de l'exécution de createtimer et la reprise du contrôle dans le constructeur de Mécanisme. time = get(thehorloge) timer = createtimer() créer() al : ActionListener Le constructeur ne fait alors rien d'autre que de rendre le contrôle à son appelant. Message perdu : Cela veut simplement dire que l'objet appelant ne nous intéresse pas ici créer(1000, al) retourne t t : Timer retourne Ligne de vie de l'objet :Mécanisme 52

Diagramme de séquence montrant la lecture de l'heure GMT sur le site de Daniel Boulder Tschirhart. UML pour les projets. Révision 1.0 1 objet Horloge La classe HeureGMT et sa méthode de classe get (static) : Horloge HeureGMT get(this) Bloc try-catch bâti à l'aide d'un cadre d'interaction stéréotypé. Ceci n'est pas de l'uml normalisé mais permet de représenter utilement une structure de contrôle utilisée en C++, java et C#. try créer("time-a.timefreq.bldrdoc.gov",13) is = getinputstream() s : Socket créer(is) isr : InputStreamReader créer(isr) in : BufferReader loop line = readline() break [line == null] opt [line.lenght > 30] ts = extrait l'heure de la ligne close() close() catch [UnknownHostException [UnknownHostException e] e] settitle("serveur non trouvé") [IOException e] settitle("pas de mise à l'heure") retourne ts 53

Construire les diagrammes UML pour le projet Les projets devrons comporter au minimum Un ou plusieurs diagrammes de cas d utilisation Les diagrammes ce classes d analyse montrant les interactions entre les classes. Un ou plusieurs diagrammes de classe de conception. Un ou plusieurs diagramme de séquences que vous jugerez digne d intérêt pour la compréhension de votre projet. 54

Construire les diagrammes UML pour le projet Les projets devrons comporter au minimum Un ou plusieurs diagrammes de cas d utilisation Les diagrammes ce classes d analyse montrant les interactions entre les classes. Un ou plusieurs diagrammes de classe de conception. Un ou plusieurs diagramme de séquences que vous jugerez digne d intérêt pour la compréhension de votre projet. 55

Outils pour construire les diagrammes UML On pourra utiliser Visual Paradigme téléchargeble avec ce lien : http://www.visual-paradigm.com/download/vpuml.jsp?edition=ce Microsoft Visio + stencils UML 2 disponibles dans le répertoire OutilsProjets sur le serveur de l école. 56

Soutenance 1. D abord présenter le contexte du problème 2. Présenter le problème. 3. Puis votre solution 4. Et enfin les informations les moins inportantes 57