Génie Logiciel Avancé Soutien

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

Université de Bangui. Modélisons en UML

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

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

RTDS G3. Emmanuel Gaudin

IFT2255 : Génie logiciel

Diagramme de classes

Environnements et Outils de Développement Cours 1 Introduction

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Chapitre I : le langage UML et le processus unifié

Programmer en JAVA. par Tama

Les diagrammes de modélisation

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

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

Projet Active Object

LO19. Tutorial Rotional Rose. Alexandre Penfornis Thomas Derive

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

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

Cours STIM P8 TD 1 Génie Logiciel

OCL - Object Constraint Language

Chapitre VI- La validation de la composition.

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

UML (Paquetage) Unified Modeling Language

Description de la formation

Cours 1 : La compilation

Patrons de Conception (Design Patterns)

GOL502 Industries de services

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

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

UML (Diagramme de classes) Unified Modeling Language

Conception des bases de données : Modèle Entité-Association

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Génie Logiciel Orienté Objet UML

TP1 : Initiation à Java et Eclipse

Analyse de sécurité de logiciels système par typage statique

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

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

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

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

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Introduction au Génie Logiciel

Table des matières Sources

3. UML - Unified Modeling Language Diagrammes statiques

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

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

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

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Systèmes d information et bases de données (niveau 1)

CNAM - CRA Nancy 2000/2001. Génie Logiciel. Jacques Lonchamp DEUXIEME PARTIE. Les techniques de spécification.

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

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)

Diffusion AFRISTAT. Quels droits accorder aux utilisateurs? - sur les données - sur les documents numériques

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

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

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

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

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

Évaluation et implémentation des langages

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

Classes et Objets en Ocaml.

Une introduction à Java

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

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

Chapitre 1: Introduction générale

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

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

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

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

Plan du cours Cours théoriques. 29 septembre 2014

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

Génie Logiciel Avancé Cours 1 Introduction

4.2 Unités d enseignement du M1

Traitement bas-niveau

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

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Arbres binaires de recherche

Programmation MacOSX / ios

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Analyse,, Conception des Systèmes Informatiques

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Le modèle standard, SPE (1/8)

Cours de Génie Logiciel

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

UML est-il soluble dans les méthodes agiles?

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Supervision des réseaux

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

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

Cours de Programmation 2

as Architecture des Systèmes d Information

Devenez un véritable développeur web en 3 mois!

Protocole NSI Registry de registraire (RRP) version 1.1.0

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

UML : Unified Modeling Language

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

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Transcription:

Génie Logiciel Avancé Soutien Stefano Zacchiroli zack@pps.jussieu.fr Laboratoire PPS, Université Paris Diderot - Paris 7 8 juin 2011 URL http://upsilon.cc/zack/teaching/1011/gla/ Copyright 2011 Stefano Zacchiroli License Creative Commons Attribution-ShareAlike 3.0 Unported License http://creativecommons.org/licenses/by-sa/3.0/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 1 / 22

Sommaire 1 Spécification informelle des charges 2 Conception à objet Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 2 / 22

Rappel Qu est-ce qu un système? Un système est un ensemble d éléments intéragissant entre eux suivant un certains nombres de principes et de règles dans le but de réaliser un objectif. La frontière d un système est le critère d appartenance au système. L environnement est la partie du monde extérieure au système. Un système est souvent hiérarchisé à l aide de sous-systèmes. Un système complexe se caractérise par : Example sa dimension, qui nécessite la collaboration de plusieurs personnes ; son évolutivité. une fourmilière, l économie mondiale, le noyau Linux,... Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 3 / 22

Rappel Types des charges Il y a trois grandes catégories de spécifications de système : Les spécifications fonctionnelles : on définit les services du système en termes de relation entre les sorties et les entrées. Les spécifications non fonctionnelles : ce sont les contraintes et les propriétés remplies par le système dans son intégralité, comme, par exemple, l efficacité, la robustesse, la sécurité,... Les spécifications liées aux domaines d activité : ce sont des spécifications, fonctionnelles ou non fonctionnelles, qui définissent des informations ou des contraintes liées aux règles qui régissent certains domaines. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 4 / 22

Rappel Cas d utilisation Les cas d utilisation (use-cases) sont une technique fondée sur les scénarios qui jouent un rôle central dans le Rational Unified Process que nous étudierons au prochain cours. C est un des piliers de la notation UML utilisée pour spécifier les systèmes à l aide d un modèle à objets. Stricto senso, un cas d utilisation regroupe plusieurs scénarios que l on regarde à un niveau d abstraction suffisamment haut pour les assimiler. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 5 / 22

Rappel Cas d utilisation Un diagramme de cas d utilisation en UML explicite : Les acteurs du système, c est-à-dire les entités qui intéragissent avec lui et lui sont extérieurs. Les scénarios du systèmes, regroupés et organisées suivant trois relations principales : la généralisation : explicite des sous-ensembles de scénario ; «Faire X, c est une façon particulière de faire Y» «Y généralise X» l inclusion : explicite un préfixe d un scénario ; «Pour faire X, il faut d abord faire Y» «Y est inclus dans X» l extension : explicite des événements supplémentaires. «Faire Y, c est faire X et Z» «Y étend X» Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 5 / 22

Rappel Cas d utilisation uc Use Cases System Boundary Waiter receive order place order Order Food <<extend>> confirm order Order Wine Serve Food <<extend>> Serve Wine Cook Food {if wine was ordered} Chef Client Eat Food facilitate payment <<extend>> {if wine was served} Drink Wine Cashier accept payment pay Pay for Food <<extend>> {if wine was consumed} Pay for Wine http://en.wikipedia.org/wiki/file:use_case_restaurant_model.svg, GNU GFDL Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 5 / 22

Rappel Diagramme de séquence Un diagramme de séquence présente les interactions entre les objets comme une succession de message(/réponse). On peut y dénoter des contraintes de réponses synchrones ou asynchrones, des états bloquants,... La ligne du temps est bien définie sur l axe verticale du diagramme Cette notation met l accent sur le protocole de communication entre les objets. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 6 / 22

Rappel Exemple de diagramme de séquence http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 7 / 22

Rappel Exemple de diagramme de séquence (cont.) http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 7 / 22

Rappel Exemple de diagramme de séquence (cont.) http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 7 / 22

Rappel Exemple de diagramme de séquence (cont.) http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 7 / 22

Rappel Diagramme d état Les diagrammes d état (UML state machine ou UML statechart) représentent l évolution de l état du système (ou d un sous-système) sous la forme d un automate. Une transition de cet automate est suivie en réaction à un événement. Elle peut être conditionnée par des contraintes exprimées sur le système. Intuition UML statechart automate fini + héritage entre les états + machine de Mealy (sortie état) + machine de Moore (sortie état + trans.) + variables & gardes +... Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 8 / 22

Rappel Exemple de diagramme d état http://en.wikipedia.org/wiki/file:uml_state_machine_fig1.png Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 9 / 22

Rappel Exemple de diagramme d état (cont.) http://en.wikipedia.org/wiki/file:uml_state_machine_fig2.png Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 9 / 22

Sommaire 1 Spécification informelle des charges 2 Conception à objet Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 10 / 22

Rappel Exemple de diagramme de (une) classe http://en.wikipedia.org/wiki/file:bankaccount.jpg Figure: Diagramme de classe, réduit à une classe on retrouve, pour chaque classe : 1 nom de la classe (unique dans le paquet) 2 attribues avec types (et valeur initial) 3 méthodes avec noms et types (d entrée et sortie) Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 11 / 22

Rappel Exemple de diagramme de (une) classe http://en.wikipedia.org/wiki/file:bankaccount.jpg Figure: Diagramme de classe, réduit à une classe méthodes et attribues peuvent être annotés avec leur visibilité (scope) ; pour cela, UML offre des préfixes standardisés : + public (default) # protected - private ~ package Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 11 / 22

Rappel Relation entre classes Les classes peuvent être mise en relation. UML propose les relations suivantes : Association un lien sémantique entre deux classes. Agrégation/composition une relation d appartenance. Généralisation/spécialisation une relation d abstraction. Instanciation une relation d affectation de paramètres. Réalisation une relation de conformité entre une interface et une implémentation. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 12 / 22

Rappel Relation d association Il s agit de la notion mathématique de relation. Une relation a une arité à gauche et à droite. Chaque objet impliqué a un rôle dans la relation. Exemples Un scénario est joué par un joueur dans un partie. Une action est applicable sur plusieurs objets d une scène. Des objets sont nécessaires pour autoriser une action. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 13 / 22

Rappel Diagramme de classe avec association Un association est formée par : un nom ; des multiplicités à gauche et à droite ; des rôles affectés à chaque objet. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 14 / 22

Rappel Syntaxe des multiplicités Un entier n n objets interviennent dans la relation. L étoile * plusieurs objets interviennent. Le segment n..* au moins n objets interviennent. Le segment n..m au moins n et au plus m objets interviennent. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 15 / 22

Rappel Agrégation/Composition L agrégation est une relation d appartenance L agrégation est forcement binaire (l association non) Exemples (container) : Les pièces d un échiquier lui appartiennent. Les joueurs d une partie appartiennent à la partie. La composition est une relation d agrégation qui établit une relation de vie ou de mort d un objet sur un autre. Exemples Si l échiquier est détruit alors ses pièces aussi. Si une partie est terminée, les joueurs peuvent en jouer une autre. (Ils survivent à la partie.) Note La composition est une relation assez subtile et souvent tributaire de certains choix d implémentation. Il est souvent préférable de ne pas l utiliser (sauf en C++ car la gestion explicite de la mémoire nécessite une réflexion précise sur la notion de durée de vie qu il faut considérer dès la phase de spécification). Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 16 / 22

Rappel Exemple de compositions et agrégations Figure: diagramme de classe avec compositions et agrégations. Le losange vide signifie «est agrégé à». Le losange plein signifie «est composé de». Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 17 / 22

Rappel Composite : description Exemple Dans un logiciel de dessin, il est possible de créer des groupes de formes. Un groupe de formes est alors considéré comme une forme. Problème Comment voir une composition de formes comme une forme? Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 18 / 22

Rappel Composite : description Exemple Dans un logiciel de dessin, il est possible de créer des groupes de formes. Un groupe de formes est alors considéré comme une forme. Problème Comment voir une composition de formes comme une forme? Solution Fournir un objet Shape qui implémente l interface d une forme ainsi que les services add et remove. Un objet ShapeComposite, héritant de Shape, correspond à un noeud possédant des sous-composants qui sont des formes. Lorsqu un message est envoyé a une classe composite, elle le transfère à toutes ses composantes. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 18 / 22

Rappel Composite : UML Component + operation() 0..* child Leaf + operation() Composite + operation() + add() + remove() + getchild() 1 parent http://en.wikipedia.org/wiki/file:composite_uml_class_diagram_(fixed).svg Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 19 / 22

Rappel Interpreter : description Exemple Composer les filtres n est pas suffisant, un utilisateur avancé doit pouvoir programmer ses propres filtres (visuellement ou textuellement). Problème Comment représenter un langage (syntaxe et sémantique à la fois) à l aide d objets? Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 20 / 22

Rappel Interpreter : description Exemple Composer les filtres n est pas suffisant, un utilisateur avancé doit pouvoir programmer ses propres filtres (visuellement ou textuellement). Problème Comment représenter un langage (syntaxe et sémantique à la fois) à l aide d objets? Solution Une classe abstraite Expression dont dérive les diverses constructions du langage. Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 20 / 22

Rappel Interpreter : UML Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 21 / 22

Rappel Interpreter : discussion il s agit d une généralisation du patron Command, pour cas plus complexes ce patron partage beaucoup des caractéristiques (et critiques, comme la sûreté de typage) avec le patron Composite on utilise le contexte pour stocker les données pas locales, nécessaire pour interpréter le langage Stefano Zacchiroli (Paris 7) Soutien 8 juin 2011 22 / 22