Chapitre 3 Langage UML

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

IFT2255 : Génie logiciel

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

Chapitre I : le langage UML et le processus unifié

RTDS G3. Emmanuel Gaudin

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

Université de Bangui. Modélisons en UML

UML et les Bases de Données

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Cours de Génie Logiciel

M1 : Ingénierie du Logiciel

Table des matières Sources

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Premiers Pas en Programmation Objet : les Classes et les Objets

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

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

Projet Active Object

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Les diagrammes de modélisation

Conception des systèmes répartis

Modélisation avec UML

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

Diagramme de classes

Cours en ligne Développement Java pour le web

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

TP1 : Initiation à Java et Eclipse

Modèle conceptuel : diagramme entité-association

OCL - Object Constraint Language

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

Chapitre VI- La validation de la composition.

Patrons de Conception (Design Patterns)

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

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

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

NetCrunch 6. Superviser

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

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

Guichet automatique de banque

Formation des enseignants. Le tensiomètre. Objet technique modélisable issu de l environnement des élèves

Description de la formation

Introduction aux concepts d ez Publish

Par : ZIED TOUNSI PROJET DE FIN D ETUDE. Licence Appliquée GESTON DES PERSONNELS GOUVERNORAT DU KAIROUAN

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

Cours 1: Java et les objets

BES WEBDEVELOPER ACTIVITÉ RÔLE

progression premiere et terminale

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

Chapitre 2. Classes et objets

Votre Réseau est-il prêt?

Le Guide Pratique des Processus Métiers

Bases de données et interfaces Génie logiciel

CORBA. (Common Request Broker Architecture)

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

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

Pré-conditions : Evénement déclencheur : le client souhaite un virement. Description du déroulement du cas : Description des Use cases

UML : DIAGRAMME D ETATS

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)

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Présentation du PL/SQL

Évaluation et implémentation des langages

Site Web de paris sportifs

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Cours Gestion de projet

UML : Unified Modeling Language

Traduction des Langages : Le Compilateur Micro Java

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Tableau comparatif des offres Visual Studio

RAPPORT DE CONCEPTION UML :

découverts et prêts conso Pouvoir d'achat, arnaques aides du chômaae Doper ses revenus Lafont LOCATAIRES Gare aux contrats ruineux es moins chères

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

Le standard d'échange de données pour l'archivage (SEDA)

INTERNET & RESEAUX. Dino LOPEZ PACHECO lopezpac@i3s.unice.fr

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

Rapport de certification ANSSI-CSPN-2010/07. KeePass Version 2.10 Portable

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

//////////////////////////////////////////////////////////////////// Administration bases de données

Règlement de la Bibliothèque municipale

Création d entreprise «Survey_Economy»

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

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

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

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

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

Génie Logiciel Orienté Objet UML

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

Méthodes de développement. Analyse des exigences (spécification)

Cours STIM P8 TD 1 Génie Logiciel

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

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

Formation, Audit, Conseil, Développement, UX WinRT Silverlight WPF Android Windows Phone

Business Process Design Max Pauron

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

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

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

Les formations. ENI Ecole Informatique

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

Java DataBaseConnectivity

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

Transcription:

3 Langage UML 2IAC3 : Génie logiciel et Conception par objet Régis Clouard, ENSICAEN - GREYC «Il existe deux manières de concevoir un logiciel. La première, c est de le faire si simple qu il est évident qu il ne présente aucun problème. La seconde, c est de le faire si compliqué qu il ne présente aucun problème évident. La première méthode est de loin la plus complexe.» Antony R. Hoare, prix Turing 1980

Objectifs du chapitre 2 Présentation du langage UML à travers ses principaux diagrammes. Démonstration de la puissance du langage pour décrire un logiciel malgré sa simplicité. À l'issue de ce chapitre, vous serez en mesure de : Écrire une modélisation partielle ou complète. Relire une modélisation. Échanger sur un problème ou sur une solution de modélisation avec d autres développeurs.

UML Langage de modélisation de logiciels... Orienté objet. Diagrammatique. Normalisé (OMG). Indépendant des langages de programmation. Importance Il faut utiliser le langage UML pour parler des logiciels. Il est partagé par toute la communauté mondiale des développeurs. 3

13 diagrammes Trois vues sur la modélisation Structurel Diagramme de classes Diagramme d objets Diagramme de paquets Diagramme de composants Diagramme de déploiement Structure de composite 4 Fonctionnel Diagramme des cas d'utilisation Diagramme de séquence Diagramme d'activité Comportemental Diagramme d'activités Diagramme de séquence Diagramme de communication Diagramme d'états-transitions Vue d'ensemble des interactions Diagramme de timing

Trois vues sur la modélisation 6 diagrammes principaux Structurel Diagramme de classes Diagramme de paquets 5 Fonctionnel Diagramme des cas d'utilisation Diagramme de séquence Comportemental Diagramme d'activités Diagramme de séquence Diagramme d'états-transition

Six diagrammes principaux Diagramme des cas d'utilisation 6 Définition du problème. Diagramme de classes Description statique du logiciel. Diagramme de paquets Description organisationnelle du projet. Diagrammes de séquence / communication Description de la séquence de messages échangés pour réaliser une fonctionnalité (analyse des besoins et conception). Diagramme d'activités Description d'un algorithme. Diagramme d'états-transitions Description du comportement d'une classe.

Aspect fonctionnel Bibliothécaire 1- Diagramme des cas d'utilisation Intention : Définir les fonctionnalités du futur système. Vision anthropo-centrée du logiciel. Interactions des acteurs avec le futur système. Acteur Héritage <<include>> Restituer Emprunter Cas d'utilisation <<include>> <<include>> <<extend>> Identifier l'adhérent Inclusion Extension 7 Emprunter par Internet Bloquer l'emprunt Responsable adhérent Gérer les litiges Introduire un exemplaire Responsable exemplaire

Acteur Syntaxe Interagit avec le système (humain ou non) Cas Restituer Fonctionnalité du système Relations include Inclure obligatoirement un sous-cas. extends Inclure facultativement un sous-cas. héritage <<include>> <<extend>> cas : Une variante d'un cas. acteur : le sous-acteur bénéficie de tous les cas du superacteur. Le sous-acteur à plus de cas d utilisation que le super-acteur. 3-1 8

Nom Détail d'un cas Retirer de l'argent au guichet avec une carte Visa 9 Acteur principal Acteur secondaire Pre-conditions Déclencheur Porteur d'une carte Visa Système d'authentification Visa La carte est reconnue par le système (Visa ou banque). Insertion d'une carte dans le lecteur Scénario nominal 1. Le porteur s'authentifie. 2. Le porteur indique le montant. 3. Le système délivre les billets. 4. Le système délivre une fadette. 5. Le système rend la monnaie Scénarios alternatifs 1a : le porteur peut annuler l'opération 1b. Le porteur n'est pas authentifié : fin de l'opération 2a. Le montant dépasse la somme autorisée retour en 2 4a. demander la justification d'une facturette Contraintes non fonctionnelles Performance le système doit réagir dans un délai inférieur à 4 secondes, quelque soit l action de l utilisateur.

Démarche Cas d'utilisation 10 1. Définir les acteurs. 2. Définir les cas d'utilisation nominaux. 3. Les faire valider par l'équipe. La règle des 80-20 20 % des cas d'utilisation couvrent 80 % des fonctionnalités du futur logiciel. Les 80 % des cas d'utilisation restants ne couvrent que 20 % des fonctionnalités.

2- Diagramme de classes Vision statique du logiciel. 11 Intention : décrire la structure du logiciel. Classes et relations (association, héritage). 3-2

Diagramme de classes Attention à la lisibilité! 12

Diagramme de classes Principes à respecter : 13 Maximiser la notation statique. Ne pas mettre les attributs (encapsulation). Au pire, quand cela est nécessaire, ne faire apparaître que les méthodes publiques ; ie. les services (encapsulation). Exception : diagrammes à usage interne entre développeurs. On peut lever le masque sur les attributs privés et les méthodes privées et protégées. 3-2

3- Diagramme de paquets Vision structurelle du logiciel Intention : décrire l'organisation des classes. C'est par exemple le reflet de l'architecture. Paquet Mécanisme de regroupement d'éléments. classes et interfaces. Imbrications possibles. Importance pour : organisation du développement (p. ex. en équipes de dév.). maintenance. entreprise commercial Paquet Import <<import>> production comptabilité <<access>> accès 14 3-3

Syntaxe 15 Espace de noms import : le contenu est ajouté à l'espace de nom. Java : import paquet; import static paquet; access : pas de rupture de l'espace de nom. Java : paquet.classe 3-3

Aspect dynamique 4- Diagramme d'activités 16 Intention : Décrire les activités liées à la réalisation d'un cas d'utilisation ou d'un algorithme. Point de départ Activité Transition Branchement Barre de synchronisation Objet généré Point d'arrivée 3-4

Aspect dynamique. 5- Diagramme de séquence 17 Intention : décrire une séquence particulière d interaction entre plusieurs objets, dans un seul contexte d exécution du système. Privilégie le point de vue temporel : lecture du haut vers le bas. appelant : Abonné : Ligne téléphonique appelé : Abonné instance décroche() focus d'exécution tonalité numérote(numéro) message ligne de vie valeur de retour indication sonnerie() estoccupe() décroché non auto-reference fin communication 3-5

Utilisation pour le développement Ajout des méthodes dans le diagramme de classes 18 appelant : Abonné : Ligne téléphonique appelé : Abonné décroche() tonalité numérote(numéro) indication sonnerie() décroché estoccupe() non fin communication Définition des méthodes avec leurs paramètres et leur visibilité Abonne + indication sonnerie(): boolean - est-occupé(): boolean Ligne Téléphonique + décroche() + numérote(string) 3-5

6- Diagramme d'états-transitions Aspect dynamique lié à une classe. 19 Intention : décrire les différents états que peuvent prendre une classe en fonction des opérations qui lui sont appliquées. Chaque état d'une instance est caractérisé par un n-uplet unique de valeurs de propriétés. Un diagramme états-transitions est propre à une classe donnée. Evénement recu Garde Action Evénement généré e1 Evnt1[cond]/m() Evnt2 e2 3-6

Diagramme d'objets. Diagrammes plus spécifiques 20 Collecte des données. Diagramme de communication. Dual du diagramme de séquence (vision plus organisationnelle). Diagramme de Structure Composite. Structure interne d'une classe et ses collaborations (Callback / délégués). Diagramme de Composants. Structure des éléments logiciels (fichiers, exécutables, bibliothèques...). Diagramme de Déploiement. Infrastructure physique (serveur, routeur, smart phone,...). Diagramme de Timing. Synchronisation de tâches.

Utilisation des diagrammes Méthodes de génie logiciel classiques 21 Documentation analyse des besoins Documentation de conception Méthodes de génie logiciel agiles Essentiellement un support de communication entre développeurs. Diagramme de classes avec l'architecture au tableau à la vue de tous.

Logiciels gratuits Argouml Umbrello Atelier de génie logiciel Visual Paradigm (Netbeans) UMLet Yuml (version en ligne) 22 3-7

Que retenir de ce chapitre? UML est un langage de modélisation diagrammatique. 23 Très puissant. Couvre tout le cycle de vie. Incontournable pour la modélisation de logiciels. Il n y a que 6 diagrammes principaux. Les autres diagrammes sont plus spécialisés et utilisés que dans certains cas précis. Toute modélisation doit commencer par le diagramme des cas d'utilisation. Il y a peu de syntaxe mais elle doit être respectée.