EPITECH 2009 sebastien@migniot.com UML EPITECH 2009 sebastien@migniot.com.

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

EPITECH 2009 UML EPITECH 2009
Génie Logiciel 2 Julie Dugdale
Julie Dugdale Génie Logiciel 2 Julie Dugdale
Introduction: Concepts de la programmation
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Les cas d’utilisation (use cases)
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
UML - Présentation.
Les diagrammes d’interactions
UML (Unified Modeling Langage)
Ce qui est fait Cahier des charges L’analyse de l’application
Système de gestion de bases de données. Modélisation des traitements
Introduction à la POO: Les classes vs les objets
Diagramme d’activité.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
Présentation SysML (Systems Modeling Language ) est basé sur UML et remplace la modélisation de classes et d'objets par la modélisation de blocs pour un.
Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel
Cours de programmation
Les Cas d’utilisation.
Analyse et Conception des Systèmes d’Informations
Modélisation des bases de données avec UML
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
1 Introduction : Management des systèmes dinformation version 1.1 du 13 Novembre 2001 Introduction : Management des systèmes dinformation ENSGI Cours MSI.
Chapitre 3 Les diagrammes de classes
Vers la conception objet
Modèle, Méthode et Conception
Outils pour la modélisation des systèmes distribués
Complément Le diagramme des classes
Les structure d’un programme :
Unified Modeling Langage
Diagramme d’interaction
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
Sémantique dénotationnelle
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Le diagramme de séquences
Le diagramme de collaboration
UML (2) Modèle dynamique le diagramme de séquence
Diagrammes d’interaction
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Rappel sur les diagrammes de collaboration
Héritage et composition
Travaux Pratiques Représentation des connaissances
Diagrammes de classe UML.
Le diagramme d’états-transitions
Introduction au langage de modélisation Unifié UML
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Unified Modeling Langage
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
J. Cardoso — C. Sibertin-Blanc — C
Nouvelles Technologies Internet & Mobile
2 Processus de conception de BD
Diagramme de Déploiement
Initiation au JavaScript
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
(UML) Unified Modeling Language
Nouvelles Technologies Internet & Mobile
Langage de modélisation objet unifié
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
UML Unified Modeling Language. UML : 8 diagrammes 1.Classes 2.Activités 3.Séquences 4.Collaboration 5.Etats transition 6.Cas d’utilisation 7.Composants.
Transcription de la présentation:

EPITECH 2009 sebastien@migniot.com UML EPITECH 2009 sebastien@migniot.com

UML2 – Diagrammes principaux Pré-Requis La démarche Classes, la vue statique Séquences, la vue dynamique Diagrammes de classe Notation, attributs et opérations Associations entre classes Abstractions et interfaces Patterns et méta-classes Diagrammes de séquence Les types de message Contraintes, récursivité, boucles Diagramme de collaboration Exemple complet

Pré-requis La démarche Classes, la vue statique Séquences, la vue dynamique

La démarche UseCase : utilisations du système Sequence : déroulement par fonctionnalité Class : détail des participants

Classes Représente les concepts participant au logiciel Représente la vue statique, l'union de tous les attributs et opérations issus de la vue dynamique Contient les relations entre concepts

Séquences Représente le déroulement ou le séquencement Détaille en profondeur un message Liste les participants à la séquence

Diagrammes de classe Notation, attributs et opérations Associations entre classes Abstractions et interfaces Patterns et méta-classes

Notation, attributs et opérations Un objet particulier est nommé, souligné et suivi de sa classe Ses attributs représentent son état à un moment donné Il reste l'instance d'une classe

Notation, attributs et opérations Une classe est présentée comme une fiche de propriétés Ses attributs d'abord Ses opérations ensuite Tous les membres ont une visibilité private - protected rien public +

Notation, attributs et opérations Le type des membres est suffixé Format d'attribut [visi] [nom] [:] [type] Format d'opération [visi] [nom] [(] paramètre* [)] [:] [type] Format de paramètre [in|out|inout] attribut*

Notation, attributs et opérations Les classes ou membres abstraits sont en italique Les membres statiques sont soulignés

Associations entre classes Généralisation Réalisation Agrégation Composition Dépendance utilisation instanciation Import, friend

Associations entre classes La généralisation spécifie que la destination généralise la source La réalisation spécifie que la source remplit le contrat décrit par la destination

Associations entre classes L'agrégation est la relation de contenance La composition est employée lorsque le conteneur contrôle le cycle de vie des contenus Exemple : Un album contient physiquement des Images alors qu’une Facture contient une référence vers un payeur existant ailleurs

Associations entre classes La relation de dépendance générique permet de multiples expressions Les stéréotypes classique sont use instanciate import friend

Abstractions et interfaces Une classe abstraite représente une mise en commun non instanciable Exemple : Un noeud de système de fichier n’a pas d’existence physique autre que Dossier, Fichier et Lien Les interfaces sont les concepts minimalistes les plus proches d’un contrat Exemple : Le comparateur, le filtre

Patterns et méta-classes Les Design pattern, des patrons de conception Exemple: Le Visitor et le Composite du système de fichier Eprouvées depuis des années, nul besoin de reinventer la roue, faire confiance aux QI à trois chiffres D'autres patrons, les patrons d’implémentation Exemple : couplage LDAP et Database Les Meta classes, les classes des classes

Annexe1 Exercice suivant le temps Écrire le diagramme de classes qui modélise cette présentation Montre que les diagrammes de classes ne sont pas triviaux

Diagrammes de séquence Les types de message Contraintes, récursivité, boucles Diagramme de collaboration

Les types de message Synchronze Asynchrone Retour Réflexif Instanciation et destruction

Message synchrone Le message synchrone est le plus concevable L'appelant pose la question et attend la réponse Forme impérative et bloquante

Message asynchrone Le message asynchrone est un mail L'appelant envoie « avec bon espoir de réception » Forme non bloquante, fire and forget

Message retour Pas forcément explicité En général implicitement OK Représente les choix comportementaux et les plages de valeur en réponse au message

Message réflexif Typique d'un message auto-suffisant Exemple : FileSystem.getRoot() Valable pour les récursions Valable pour les itérations

Instanciation, destruction Pour effectuer un virement on passe par une Transaction La transaction est crée, stéréotypée <<new>> ou <<instantiate>> La transaction est effectuée puis détruite, marqué d'un X Cf documents normatifs

Contraintes, récursivité, boucles Les blocs stéréotypés, types et gardes assert : assertion, donc nécessité loop : itération sur une collection alt : alternatives, if else-if, else opt : optionel, if unitaire sans else par : parallele, exécution concurrente break, seq, strict, neg, critical Exemples

Blocs stéréotypés Les blocs ont un stéréotype en haut du cadre Les blocs ont des gardes pour chaque compartiment du cadre stéréotypé alt, assert, loop ...

Assertion Bloc stéréotypé assert Permet de préciser un cas sine qua non Exprime une condition évidente Exemple: dans un chemin de fichier, les intermédiaires sont des dossiers

Conditionnalité Bloc stéréotypé opt et alt Le bloc opt est un if sans else, par exemple, « si le compte est débiteur, envoyer un mail » Le bloc alt décrit de multiples choix exclusifs, par exemple « impair, pair ou jackpot »

Itération Bloc stéréotypé loop Le garde indique la collection itérée Couplable avec break pour une itération de recherche Remarque : va souvent de pair avec une agrégation de cardinalité > 1

Exemple mixte Deux blocs opt ne se joignent pas forcément en un seul bloc alt – commenter – Le bloc loop est évident

Concurrence Bloc stéréotypé par, seq et strict Le lancement de windows lance de multiples programmes Le lancement est fini sur jonction des actions parallèles

Autres blocs Break : fin de boucle Neg : chemin impossible, en erreur Terminer une boucle de recherche Neg : chemin impossible, en erreur Exemple du masculin enceinte Critical : chemin synchronisé Exemple du call 911

Syntaxe des messages [pré "/"] [["["cond"]"] [séq] ["*"["||"]["["iter"]"]] ":"] [r ":="] msg"("[par]")" 3 : bonjour() [heure = midi] 1 : manger() 1.3.6 * : ouvrir() 3 / *||[i := 1..5] : fermerEnParralele() 1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom) Cosmétique avant tout

Exemple des billets Exemple de bloc alternatifs Pour certaines alternatives, itérer Notation des « continuation »

Annexe2 Exercice suivant le temps Écrire le diagramme de séquences qui modélisent le scénario « rendre transparentes les images de la présentation » Montre que les diagrammes de classes sont triviaux .. lorsque les diagrammes de séquence sont implicites

Diagramme de collaboration Bijection avec les diagrammes de séquences Plus facile à écrire et imaginer Plus facilement partageable Traduit en diagramme de séquences pour ajouter des blocs et des gardes

Récapitulatif Pré-Requis Diagrammes de classe Diagrammes de séquence La démarche Classes, la vue statique Séquences, la vue dynamique Diagrammes de classe Notation, attributs et opérations Associations entre classes Abstractions et interfaces Patterns et méta-classes Diagrammes de séquence Les types de message Contraintes, récursivité, boucles Diagramme de collaboration

Exemple complet Ouvrir le diagramme BoUML joint au cours dans le fichier ./UML2 - Diagrammes principaux/Diagrammes/Diagrammes.prj et illustrer les relations d'héritage, les abstractions, les interfaces, les conditionnalités et assertion de séquencement.