UML : Les Autres Concepts

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

OCL - Object Constraint Language

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

Object Constraint Language (OCL)

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

Diagramme de classes

UML. Diagrammes de classes (suite) Delphine Longuet.

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

3. UML - Unified Modeling Language Diagrammes statiques

UML (Diagramme de classes) Unified Modeling Language

Description de la formation

Université de Bangui. Modélisons en UML

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

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

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

UML et les Bases de Données

UML (Paquetage) Unified Modeling Language

Les diagrammes de modélisation

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

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

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

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

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels

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

Introduction à Eclipse

TP Service HTTP Serveur Apache Linux Debian

Cours de Génie Logiciel

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

CREATION WEB DYNAMIQUE

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

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Object Constraint Language (OCL) Une introduction

Un exemple avec WORKSPACE d'interwrite

IFT2255 : Génie logiciel

Développement de logiciel avec UML

Chapitre I : le langage UML et le processus unifié

OASIS Date de publication

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

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

Cahier Technique Envoi par à partir des logiciels V7.00

Bases de données. Chapitre 1. Introduction

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

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

Manuel d'utilisation du navigateur WAP Palm

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Chapitre VI- La validation de la composition.

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Application web de gestion de comptes en banques

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Module BD et sites WEB

Prise en compte des ressources dans les composants logiciels parallèles

Modélisation de Lignes de Produits en UML *

Rappel sur les bases de données

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

D UN BON REFERENCEMENT

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Dispositif Technique

Cours STIM P8 TD 1 Génie Logiciel

Formation en Logiciels Libres. Fiche d inscription

Réussir la modélisation UML des phases amont Techniques de «pré-modélisation» : un pont vers le modèle

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

Cours Bases de données 2ème année IUT

BI2 : Un profil UML pour les Indicateurs Décisionnels

A. À propos des annuaires

Access 2007 FF Access FR FR Base

Introduction aux concepts d ez Publish

FileMaker Server 12. publication Web personnalisée avec XML

LES BIBLIOTHEQUES DE WINDOWS 7

Notion de base de données

Table des matières Sources

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

FileMaker Server 13. Guide de configuration de l'installation réseau

MEGA Database Builder. Guide d utilisation

RTDS G3. Emmanuel Gaudin

PROJET DE PORTAIL INTRANET YNNA

Dossier I Découverte de Base d Open Office

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

7.0 Guide de la solution Portable sans fil

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

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

Reporting Services - Administration

Guide de démarrage de Business Objects Crystal Decisions

OpenPaaS Le réseau social d'entreprise

Sage CRM. Sage CRM 7.3 Guide du portable

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

Site Web de paris sportifs

Manuel d utilisation du site web de l ONRN

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

contact@nqicorp.com - Web :

Université Paris XI Faculté des sciences d Orsay THÈSE. présentée pour l obtention du grade de Docteur en Sciences de l Université Paris-Sud XI Orsay

Installer les Pilotes USB

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Transcription:

MAI NFE103 Année 2013-2014 UML : Les Autres Concepts F.-Y. Villemin (f-yv@cnam.fr) Les Autres Concepts! Relation de dépendance! Paquetage ("Package")! Stéréotype! Interface! Note et Etiquette ("Tagged value")! Contrainte " Object Constraint Language (OCL) " Association et attribut dérivés! Profil http://deptinfo.cnam.fr/enseignement/cyclespecialisation/mai/index.html 2! Extensions d'uml!!paquetage!: regroupement d'éléments de modélisation!!stéréotype : distinction d usage!!valeur marquée : propriété spécifique associée à un élément de modélisation!!contraintes : information sémantique rajoutée à un élément de modélisation. OCL (Object Constraint Language) est le langage d expression des contraintes!!profil : modèle d utilisation d! UML Étiquette ou valeur marquée (tagged value) contrainte stéréotype d'opération Extensions d'uml stéréotype de classe «container» Pile {Version 2.1} +ajouter() {sequential} {si p:pile est vide()} +retirer() {sequential} «test» +vide() {sequential} 3! 4!

Relation de dépendance Une relation de dépendance, notée par une flèche pointillée, définit une relation d utilisation unidirectionnelle entre deux éléments de modélisation l'élément source (client) et l'élément cible (fournisseur) Les Paquetages Les Paquetages (packages) servent à organiser un modèle objet en domaines et sous-domaines "de la même manière que les répertoires organisent les systèmes de fichier" [PAM-97 p88] Elément source (client) Elément cible (fournisseur) Commande Facture Le Paquetage "Facture" utilise l'interface d'objets du Paquetage "Commande" (relation de dépendance) 5! 6! La notion de Paquetage : Les Paquetages!!est purement organisationnelle!!ne possède aucune sémantique dans la définition du modèle! permet!d'obtenir une vision de plus haut niveau!!permet!de mettre en évidence des éléments réutilisables!!permet!de répartir le travail entre développeurs!!permet!d'organiser la gestion de configuration (versionning) Les Paquetages!!Un paquetage est une encapsulation d éléments de modélisation : Un paquetage possède une interface et une réalisation!!un paquetage peut inclure d autres paquetage!!un paquetage peut importer d autres paquetage!!l héritage entre paquetages est possible 7! 8!

Les Paquetages Un paquetage définit un espace de nom : deux éléments différents, contenus par deux paquetages différents, peuvent porter le même nom Par exemple: client.société.nom! fournisseur.société.nom! Exemple de paquetage nom Client Société (from Client) Société (from Fournisseur) nom Fournisseur 9! 10! Les Stéréotypes Permet d'étendre la notation standard d'uml par la possibilité de modifier l icône <<Nom du stéréotype>>!!une classe correspondant à un acteur du système d'information est du stéréotype <<Actor>> <<Window>> WEnregPret Stéréotype Les stéréotypes Les stéréotypes font partie des mécanismes d extensibilités, prévus par UML [PAM-97 p85] Un stéréotype permet la métaclassification d un élément d UML. Il permet aux utilisateurs (méthodologistes, constructeurs d outils, analystes et concepteurs) d ajouter de nouvelles classes d éléments de modélisation, en plus du noyau prédéfini par UML cb_rechercheemp_click( ) cb_saisiepret_click( ) Infos( ) 11! [PAM-00 p98] 12!

Exemples de stéréotypes Les Interfaces Une interface est une spécification externe des opérations visibles d'une classe ou de toutes autres éléments, tels que des paquetages Une interface peut donc contenir des opérations «datatype» Integer «subsystem» User Interface «exception» Overflow Une classe réalise une interface si elle est capable d exécuter toutes les opérations de l interface «utility» Maths «traces» «refines» On utilisera une relation de dépendance pour exprimer le fait qu une classe est cliente d une interface 13! 14! Interface Les Interfaces Une interface ne spécifie souvent qu'une partie limitée du comportement de la classe Notation pour une interface : Engine Element +addchild(in child:element) +getchildren(): [*] Element Parser «interface» Dictionaire +chercherdefintion() +chercherpronociation() -key -entry Dictionary +searchdefintion() +searchpronunciation() +sort()... Engine Element Parser 15! 16!

Les Notes et étiquettes!!une note est une petite boite de texte incluses dans un diagramme UML!!Une note est l équivalent d un commentaire dans un programme!!une étiquette ou valeur marquée ("tagged value") est utilisée pour ajouter des informations sur les classes Exemple d'étiquette : JavaName : le nom Java de la classe est différent du nom UML de la classe Les étiquettes Une étiquette ou valeur marquée (tagged value) permet la création de nouvelles informations dans la spécification d'un élément Par exemple, "version" et "auteur" ne font pas partie des concepts UML de base et peuvent être ajoutés à n'importe quelle brique de base, comme une classe, par l introduction de nouvelles étiquettes à cette brique Une étiquette est une paire (nom, valeur) qui ajoute une nouvelle propriété à un élément de modélisation 17! 18! Les Contraintes et Notes Les notes Il est possible de contraindre ou d annoter n importe quel élément du modèle Commentaire attaché à un ou plusieurs éléments de modélisation <<comment>> Une association n'est pas une company! Appartient à la vue, pas au modèle! Peut être stéréotypée en contrainte Company Employee A Ceci est un commentaire Les contraintes et les notes sont bien souvent écrites en langage naturel Le langage OCL permet de formaliser les contraintes! self.age<60! B Blah blah 19! 20!

Les Contraintes Les contraintes sont utilisées pour exprimer des relations les stéréotypes et les étiquettes Les contraintes servent à exprimer la sémantique du profil Exemple:! Toute classe stéréotypée «EJBRemoteInterface»! doit être réalisée par une classe stéréotypé «EJBImplementationClass» Les Contraintes On distingue :!!Les contraintes sur un objet!!les contraintes sur un lien!!les contraintes entre liens Les contraintes simples peuvent être définies dans le modèle objet Les contraintes complexes doivent être définies dans le modèle fonctionnel 21! 22! Les Contraintes Les Contraintes Les contraintes sur un objet sont des contraintes qui portent sur des valeurs d'attributs d'une même instance, elles sont notées à l'aide d'une étiquette Les contraintes sur un lien sont des contraintes qui portent sur des valeurs d'attributs d'instances différentes reliées par un lien Fenetre titre $nbfenetresactives longueur largeur chef créer () ouvrir() fermertoutes () 23! 24!

Les Contraintes Les contraintes entre liens s'expriment en langage naturel, ou par des équations Une flèche pointillée indique une dépendance Personne nom age est-membre-de 0..* 0..* /est-animateur-du {inclue dans "est_membre-de"} Groupe de Travail Les Association et attribut dérivés Attribut dérivé : Un attribut dérivé est le résultat d une fonction ou d un calcul L'attribut dérivé est noté en utilisant le caractère '/' devant son nom Exemple : l attribut age d une PERSONNE! Personne nom / age 25! 26! Les Association et attribut dérivés Les Association et attribut dérivés Association dérivée : Une association dérivée est un sous-ensemble de liens de l'association qui est dérivée Les associations dérivées portent en général des contraintes indiquant leur mode de calcul La notation pour une association dérivée est une barre oblique sur le trait Société contient Service L'association dérivée doit être définie par la contrainte, l'équation ou la requête qui la détermine /emploie emploie Employé {Société./emploie = Société.contient.emploie} 27! 28!

Exemples de contraintes Quelques exemples de contraintes standard Généralisation Copie {xor} Livre Complete Incomplete Journal Disjoint Overlapping {self.roues->size <= 4} Instance ou lien New Transaction quantité:euro {quantité est un multiple de!5} Destroyed Transient 29! 30! Différents types de contraintes!!prédéfinies : {or, subset, ordered, disjoint, }!!quelconques : (expressions algorithmiques) Exemple : {Personne.age = AnnéeEnCours Personne.annéeNaissance}! Permet de décrire :!!les invariants du méta-modèle UML!!des invariants des classes!!des pré/post-conditions des opérations!!des conditions des diagrammes d états!!des expressions pour la navigation OCL (Object Constraint Language) est un langage permettant de décrire des contraintes présentes dans un module!!une expression OCL décrit un énoncé logique à propos du système (contrainte) qui doit demeurer vraie!! Une contrainte ne doit pas amener d effets secondaires Elle n effectue aucun calcul, ne modifie pas les données!! Un énoncé OCL peut, par contre, spécifier quelles valeurs doivent avoir les attributs d une classe ou d une association 31! 32!

Ces énoncée se construisent à partir de :!! Référence à des noms de rôle, d associations, d attributs et de résultats d opérations!!valeurs logiques étant vrai ou fausse!!opérateurs logiques tels que non, et, ou, =, >, <, <>!!Chaînes de caractères Exemple :! "Un compte doit avoir un solde toujours positif!!un client peut posséder plusieurs comptes!!un client peut être client de plusieurs banques!!un client d'une banque possède au moins un compte dans cette banque!!une banque gère plusieurs comptes!!une banque possède plusieurs clients!!entiers ou nombres réels!!opérations arithmétiques *, /, +, - 33! 34! Le diagramme de classe ne permet pas d'exprimer tout ce qui est défini dans la spécification (texte) Banque Une note avec une contrainte étend la sémantique : Banque client Compte solde:integer créditer():integer créditer():integer getsolde():integer client Personne age: integer titulaire D'après E. Cariou! {solde>0} Compte solde:integer créditer():integer débiter():integer getsolde():integer Personne age: integer titulaire 35! 36!

Le langage OCL permet de préciser formellement la sémantique des modèles UML 1. Un compte doit toujours être positif : context Compte! inv: solde 0 2. La somme à débiter doit être positive pour que l'appel de l'opération soit valide : context Compte : débiter(somme: integer)! pre: somme 0! post: solde = solde@pre - somme! 3. L'ensemble des clients de la banque associée au compte contient le propriétaire du compte ("banque" objet de la classe "Banque") : context Personne! inv: banque.client -> includes (titulaire)! Exemple! d'étiquettes : context Compte inv: solde > 0 context Compte : débiter(somme: integer) pre: somme > 0 post: solde = solde@pre - somme Banque Compte solde:integer créditer():integer débiter():integer getsolde():integer context Compte inv: banque.clients -> includes (titulaire) client Personne age: integer titulaire 37! 38! Exemples d'assertions en OCL L'âge d'une personne mariée doit être >= 18! self.wife->notempty implies self.wife.age >= 18 and self.husband->notempty implies self.husband.age >= 18! Une PME a moins de 50 employés! self.employe->taille <= 50! Tout mariage est entre une femme et un homme! self.femme.sexe = #feminin and self.mari.sexe = #masculin! URL: http://www.rational.com/uml/html/ocl/ Profil UML Un profil UML permet de spécialiser UML à un domaine particulier Un profil UML permet par exemple de préciser qu une classe UML est en fait un EJB session Un profil est composé de stéréotypes, de valeurs marquées et de contraintes Il existe plusieurs profils standards :!!EJB, CORBA,.net Les profils standards proposent des règles de génération de code 39! 40!