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



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

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

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Chapitre I : le langage UML et le processus unifié

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Analyse,, Conception des Systèmes Informatiques

IFT2255 : Génie logiciel

Université de Bangui. Modélisons en UML

Cours STIM P8 TD 1 Génie Logiciel

Les diagrammes de modélisation

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

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

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

UML (Diagramme de classes) Unified Modeling Language

RTDS G3. Emmanuel Gaudin

Environnements et Outils de Développement Cours 1 Introduction

Rational Unified Process

Cours Gestion de projet

ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE

Génie logiciel (Un aperçu)

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

Diagramme de classes

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Patrons de Conception (Design Patterns)

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

Chapitre VI- La validation de la composition.

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

Table des matières Sources

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

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

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Développement itératif, évolutif et agile

Le Guide Pratique des Processus Métiers

Cours de Génie Logiciel

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

UML (Paquetage) Unified Modeling Language

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Introduction au génie logiciel

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

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

Le Processus Unifié. Une Démarche Orientée Modèle. IUP NTIE - Master 1 - Jérémie Guiochet - 4/11/09

Messagerie asynchrone et Services Web

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

Gestion de projets logiciels. Xavier Dubuc

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

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

OCL - Object Constraint Language

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Qu'est-ce que le BPM?

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

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

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

GL Le Génie Logiciel

Cours en ligne Développement Java pour le web

Université du Québec à Montréal CALCUL AVEC ISO DE LA TAILLE DE LOGICIELS DEVELOPPES SELON RATIONAL UNIFIED PROCESS

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

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Projet Active Object

Analyse par Objets. avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

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

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)

RAPPORT DE CONCEPTION UML :

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

1 Introduction à l infrastructure Active Directory et réseau

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Bases de données. Chapitre 1. Introduction

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

Business Process Execution Language

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Le génie logiciel. maintenance de logiciels.

M1 : Ingénierie du Logiciel

TP1 : Initiation à Java et Eclipse

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

GOL502 Industries de services

Identification du module

Cours 1 : La compilation

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

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

Méthodologies de développement de logiciels de gestion

Alfstore workflow framework Spécification technique

Description de la formation

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

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

3. UML - Unified Modeling Language Diagrammes statiques

Business Process Modeling (BPM)

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Génie Logiciel Orienté Objet UML

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

Les Architectures Orientées Services (SOA)

MEGA ITSM Accelerator. Guide de Démarrage

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

Rendez-vous la liberté avec Rational Quality Manager

Transcription:

Génie Logiciel Avancé Cours 3 Le modèle à objets Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/gla/ Copyright 2011 2014 Stefano Zacchiroli 2010 Yann Régis-Gianas License Creative Commons Attribution-ShareAlike 4.0 International License http://creativecommons.org/licenses/by-sa/4.0/deed.en_us Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 1 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 2 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 3 / 78

Le modèle à objets Note Ce cours suppose quelques connaissances en programmation orientée objet. Lorsque l on développe un système ayant une contrepartie physique, une association de la forme 1 objet physique 1 composant logiciel peut être tentante. Dans le cours de programmation objet vous avez vu le triangle sémiotique : les analogies référent/instance et signifié/interface peuvent faciliter le raisonnement et, surtout, la validation d une spécification vis-à-vis des besoins Est-ce que je construis le bon logiciel? Cette correspondance facilite la discussion avec un non-expert on peut utiliser un composant logiciel par son nom devant un client non informaticien et celui-ci peut comprendre à peu près de quoi il retourne. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 4 / 78

Principes généraux de GL... dans le modèle à objets Définition (Objet) Un objet est formé d un état et d un ensemble de comportements modélisés comme des réactions à des messages. Un object a une identité. Sa durée de vie est limitée. Il joue un ou plusieurs rôles dans le système. Principes : Modularité La logique interne de l objet est décorrélée de son utilisation. Encapsulation La seule façon d influer sur l état d un objet est de lui envoyer des messages. Abstraction Les objets sont généralement classifiés suivant une relation de généralisation. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 5 / 78

Les forces du modèle à objets En plus des apports mentionnés plus tôt, les objets facilitent un raffinement progressif du modèle logique à l implémentation. En effet, les concepts importants du système sont souvent modélisés par des classes abstraites dont les sous-classes fournissent des concrétisations. De plus, les objets améliorent la réutilisabilité grâce à leur relative indépendance vis-à-vis du contexte d utilisation. Enfin, l extension a posteriori d un composant est autorisée par le mécanisme d héritage. Cette extension n est pas intrusive : elle ne nécessite pas de reprendre à zéro le raisonnement sur le système dans sa globalité (separation of concerns). Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 6 / 78

Les faiblesses du modèle à objets Malgré son utilisation très répandue, le modèle à objet n est pas la solution ultime aux problèmes de la définition de composants logiciel réutilisables, corrects et robustes. Faiblesses du modèle à objets 1 La non-transparence observationnelle : à cause de son état interne, la réaction d un objet à un message n est pas toujours la même. Ceci rend difficile le raisonnement sur les objets. 2 Le mécanisme d héritage ne reflète pas la même intention en fonction du niveau d abstraction auquel on se place. En effet, dans un modèle logique, l héritage sert à refléter la relation de généralisation/spécialisation. Plus on se rapproche d une spécification technique et plus cette relation est un mécanisme de réutilisation de code. Le cours de POCA de Master 2. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 7 / 78

Les faiblesses du modèle à objets (cont.) Malgré son utilisation très répandue, le modèle à objet n est pas la solution ultime aux problèmes de la définition de composants logiciel réutilisables, corrects et robustes. Faiblesses du modèle à objets (cont.) 3 Les opérations n-aires sont peu compatibles avec le modèle objet (p.ex. le problème du multiple dispatching) 4 La notion de message n est pas de première classe, ce qui rend compliquée l expression de mécanismes calculatoires de la forme pour tout message,... solution partielle : aspect oriented programming 5 On aimerait parfois raisonner sur le système comme un monde clos en interdisant certaines extensions futures dangereuses solution partielle : final classes Le cours de POCA de Master 2. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 7 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 8 / 78

Le Rational Unified Process (RUP) Le Rational Unified Process (RUP) développé par IBM est une famille de processus de développement logiciel. Ce sont des processus itératifs et incrémentaux, centrés sur le modèle à objets et sur UML (voir plus loin dans ce cours) Les validations de chaque phase s appuient sur des cas d utilisation. Le système est décrit comme la somme de multiples vues. Son architecture est le soucis permanent : le RUP préconise le développement préliminaire d une architecture exécutable, c est-à-dire une version du système avec un nombre très limité de fonctionnalités mais dont le squelette est fixé. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 9 / 78

Les différentes variantes du RUP Unified Process (UP) est la version la plus documentée du RUP C est une version générique adaptable aux besoins particuliers. Agile Unified Process (AUP) ajoute un caractère évolutif à RUP On s appuie sur une haute qualification des développeurs pour limiter le plus possible la production de documents préliminaires au développement. Les cas d utilisation sont représentés par des tests exécutables. Un prototype est développé très rapidement et dirigés par la validation de ces tests. La spécification est construite en même temps que le logiciel, une fois que celui-ci est confronté sous une forme exécutable aux utilisations des clients. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 10 / 78

Perspectives du RUP 1 Perspective dynamique les phases du processus et leur ordre temporel 2 Perspective statique les work-flows qui correspondent aux activités de développeurs et d autre acteurs 3 Perspective pratique les bonnes pratiques (best practices) à utiliser pendant toute la durée du processus Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 11 / 78

Perspective dynamique les phases du RUP 1 initialisation (inception) 2 élaboration 3 construction 4 transition Itération chaque phase peut être itérée plusieurs fois avant de passer à la phase successive (micro-itération) l ensemble de phases est typiquement itéré plusieurs fois, comme dans tous les modèles itératifs (macro-itération) Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 12 / 78

Phase initialisation (inception) Cette phase correspond à l étude de faisabilité dont nous avons parlée dans le cours précédent. établir un business case pour le système il peut amener à l abandon du projet (donc il est plus intense vers le début du projet, pour minimiser les risques) Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 13 / 78

Phase élaboration Il s agit de l analyse des besoins. Celle-ci fait un usage intensif des cas d utilisation (et donc de scénarios) pour raffiner la compréhension du problème posé et expliciter les spécificités du domaine. Des prototypes (parmi lesquels on trouve l architecture exécutable) sont développés pour évaluer concrètement des points techniques risqués. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 14 / 78

Phase construction Cette phase correspond à la conception et au développement. Elle est répète plusieurs fois pour une progression incrémentale aboutissant à diverses versions du système, résolvant les problèmes techniques à hauts risques en priorité. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 15 / 78

Phase construction (cont.) Dans une conception orienté objet, il est parfois difficile de bien distinguer la spécification [du système] de l implémentation. Certains spécialistes préconisent la définition de deux modèles disjoints : un modèle logique et un modèle d implémentation (voir : model-driven engineering). Cette distinction est importante car il doit toujours exister une spécification servant de référence aux développements et sur laquelle appuyé le cahier des charges. À partir des modèles logiques et d implémentation, model-driven engineering préconise la génération automatique de beaucoup de code d implémentation Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 15 / 78

Phase transition La phase de transition de ce processus correspond à l activité de déploiement et marque le début de la maintenance du logiciel Il s agit de vérifier la mise en place du système auprès des utilisateurs (production de manuel d utilisation, formation,... ) et de préparer ses futures évolutions. Cette phase a été ignoré par plusieurs modèles de développement précédents au RUP. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 16 / 78

Perspective statique les work-flows du RUP Core work-flows business modeling i.e. modélisation du contexte du logiciel, point de vue business requirements analysis and design implementation testing deployment Support work-flows configuration and change management project management environment i.e. gestion des outils (de développement ou autres) nécessaires dans les différentes phases et work-flows Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 17 / 78

Interaction entre phases et work-flows http://en.wikipedia.org/wiki/file:development-iterative.gif les lignes correspondent aux work-flows les colonnes correspondent aux phases la hauteur détermine l intensité de work-flows dans chaque micro-itération on répète tout le diagramme pour chaque macro-itération Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 18 / 78

Perspective pratique Bonnes pratiques encouragées par RUP : 1 développement itératif 2 gestion explicite de requis 3 utilisation de architecture à composante 4 modélisation semi-formelle et visuelle du logiciel avec UML 5 assurance qualité 6 gestion du changement (logiciel et spécification) Commentaire : (3), (5), et (6) sont encouragée explicitement dans RUP, mais ne sont pas liée au reste du processus l importance du (4) est discutable et à comparer avec autres langages des modélisation logiciel Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 19 / 78

Innovations du RUP Séparation entre phases et work-flows chaque work-flow est inter-phase, comme dans la réalité du projets de développement Work-flow explicite pour le déploiement du logiciel Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 20 / 78

Ce cours Nous allons nous intéresser à l utilisation d UML dans ces différentes phases pour les trois premières phases. Dans ce processus, elles correspondent à la spécification (des besoins et du système). Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 21 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 22 / 78

Présentation d UML UML est l acronyme de Unified Modeling Language. UML est un ensemble de notations. Ces notations sont en majorité des formats de diagrammes. UML est standardisé par l Object Management Group (OMG). UML est la notation la plus utilisée par l industrie logicielle. La dernière version de la spécification d UML est toujours disponible à : http://www.omg.org/spec/uml/current (version courante : 2.4.1, Août 2011) Nous ne pourrons pas l étudier en détail. Vous devez vous y référer pour écrire vos spécifications. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 23 / 78

Histoire Résolution des conflits par union plutôt que par intersection. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 24 / 78

Critiques d UML Avantages Plusieurs modèles sont réunis : objet, orienté donnée, flot de données. Il existe de nombreux outils pour produire des diagrammes UML. C est le résultat d un consensus entre plusieurs «écoles» de modélisation. Inconvénients La sémantique d UML n est pas encore fixée. Toutefois, des experts essaient de définir Precise UML, un sous-ensemble formalisé d UML. C est seulement depuis la version 2.0 que la syntaxe est standardisée. Les notations sont parfois redondantes. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 25 / 78

Différentes vues sur un système UML fournit des diagrammes pour plusieurs types de vues sur un logiciel. Dans ce cours on en regardera 4 : 1 les vues de cas d utilisation ; 1 2 les vues d architecture ; 3 les vues dynamiques ; 4 les vues statiques. 1. A priori, il s agit d une vue dynamique Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 26 / 78

Une abondance de diagrammes... Les diagrammes d UML 2.x... en syntaxe UML 2.x pour les diagrammes de classe (voir plus loin)! Diagram Structure Diagram Behaviour Diagram Class Diagram Component Diagram Object Diagram Activity Diagram Use Case Diagram Profile Diagram Composite Structure Diagram Deployment Diagram Package Diagram Interaction Diagram State Machine Diagram Notation: UML Sequence Diagram Communication Diagram Interaction Overview Diagram Timing Diagram http://en.wikipedia.org/wiki/file:uml_diagrams_overview.svg Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 27 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 28 / 78

Les cas d utilisation Définition (cas d utilisation rappel) Un cas d utilisation est la représentation d une interaction entre le système et des acteurs en vue de la réalisation d un objectif. On applique ici le principe de separation of concerns on se focalise sur une certaine utilisation du système en oubliant le reste. En plus de réduire temporairement la complexité du système, cette unité de description est intéressante car elle est accessible aux clients non experts. Lorsque l on suit RUP, les cas d utilisation sont décrits par deux notations : les spécifications en langage structuré (vues la dernière fois) les diagrammes de cas d utilisation d UML La méthode Agile représente les cas d utilisation par des programmes exécutables pour pouvoir vérifier leur satisfiabilité de automatiquement et quantifier l avancée du développement. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 29 / 78

Retour sur l exemple en langage structuré Contexte Flot normal Cas problématique Activités concurrentes Une partie est en cours. Le joueur a formulé une requête d action. La requête est excaucée. L état de la partie est modifiée en accord avec le scénario et l interface graphique est mise-à-jour. Un message (textuel?) informe le joueur du changement. L action n est pas applicable. Le joueur est informé des causes de l erreur. Il peut formuler une autre action. Les animations de la scène se poursuivent tout au long de la résolution de la requête d action. Table : scénario «résolution d une action». Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 30 / 78

Grammaire des diagrammes de cas d utilisation On représente un acteur par un personnage schématisé. Attention, cependant, un acteur n est pas forcément un utilisateur! (autres systèmes, API, etc.) Le système est inclus dans un rectangle (sa frontière), éventuellement étiqueté. Les interactions entre le système et les acteurs sont représentées par des lignes. Les cas d utilisation sont des verbes à l infinitif entourés par des ellipses. On représente des relations logiques (voir plus loin) : 1 entre les acteurs 2 entre le cas d utilisation Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 31 / 78

Exemple : cas d utilisation En général, tout diagramme UML peut être annoté par un complément textuel d information attaché à ces entités visuelles. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 32 / 78

Exemple : cas d utilisation (cont.) Une relation d héritage permet de classifier les acteurs. Si l acteur A 2 hérite de l acteur A 1 alors tous les scénarii de A 1 sont accessibles à A 2. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 32 / 78

Exemple : cas d utilisation (cont.) On retrouve ici les relations «étend» et «inclus» définies la dernière fois. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 32 / 78

Exemple : cas d utilisation (cont.) 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 Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 32 / 78

Étude de cas : diagramme de cas d utilisation Exercice Traduisez la description textuelle du cas d utilisation en un diagramme. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 33 / 78

Rôle des cas d utilisation dans RUP Ils jouent un rôle central. 1 Ils servent de matériau de base à la phase de élaboration (i.e. l analyse de besoins). Classifier les cas d utilisation, en termes logiques, de priorité ou de risque, permet d organiser l analyse qui suit. 2 De nombreuses vues dynamiques sont des raffinements des cas d utilisation. Ces raffinements précisent le vocabulaire et les mécanismes mis en jeu. 3 Si une nouvelle utilisation du système apparaît pendant l élaboration, il est systématiquement inséré dans la base des cas d utilisation. 4 La partie validation de la phase transition consiste souvent à formuler une version vérifiable/exécutable des cas d utilisation et à y confronter le système. 5 Enfin, le manuel d utilisation du système s appuie très largement sur cette base de connaissance. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 34 / 78

Activités liées à l explicitation des cas d utilisation À titre indicatif, voici une succession d activités pouvant mener à l obtention des cas d utilisation : 1 Identification des acteurs principaux. Les acteurs à satisfaire en priorité. Les entités externes vitales au système. 2 Identification des cas d utilisation principaux. On omet les situations exceptionnelles. On obtient une description intentionnelle (centrée sur les objectifs). On met à jour les termes et concepts incontournables du système. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 35 / 78

Activités liées à l explicitation des cas d utilisation À titre indicatif, voici une succession d activités pouvant mener à l obtention des cas d utilisation : 3 Identification des acteurs secondaires. Des acteurs qui interviennent dans les cas d utilisation découverts. 4 Identification des cas d utilisations secondaires. Par raffinement des cas d utilisation principaux. 5 Factorisation des redondances. 6 Définition du vocabulaire du domaine. Les cas d utilisation soulèvent des questions sur le sens des termes employés par les acteurs. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 35 / 78

Étude de cas : extraction des cas d utilisation Exercice Définissez les acteurs et cas d utilisation principaux du moteur générique de jeu d aventure. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 36 / 78

Critique des cas d utilisation Malgré les qualités citées plus tôt, la centralisation autour des cas d utilisation peut avoir des faiblesses : Taille l énumération des cas d utilisation et de leurs variations peut induire une combinatoire assez importante. Conception le point de vue «utilisateur» n est pas forcément la bonne façon d aborder un problème. Par exemple, les utilisateurs peuvent avoir une vue incomplète du problème ou être des instances (inconscientes) de problèmes plus généraux. Imprécision il est très difficile d avoir un discours précis en s exprimant seulement à l aide de cas d utilisation. Formaliser rapidement les concepts ou processus primordiaux permet d en saisir les subtilités. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 37 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 38 / 78

Vues d architecture L architecture est une vue d ensemble du système. C est un point de conception à haut risque. Il s agit de partitionner le système en sous-systèmes. Un bon partitionnement établit : une faible dépendance entre les sous-systèmes ; affecte un rôle clair et distinct à chaque sous-système ; permet de couvrir l ensemble des cas d utilisation. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 39 / 78

Exemple : paquets Figure : Diagramme d architecture (ou de paquets ). Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 40 / 78

Diagramme des paquets : contenu Un diagramme des paquets peut contenir : 1 classes importantes du système, pour associer classes aux sous-systèmes 2 cas d utilisation, pour montrer les cas d utilisation gérés par un sous-système spécifique Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 41 / 78

Diagramme des paquets : relations Les relations suivantes peuvent être définies entre sous-systèmes dans des diagrammes des paquets : dépendance l utilisation (vague... ) d un sous-système par un autre import merge a relationship between an importing namespace and a package, indicating that the importing namespace adds the names of the members of the package to its own namespace a directed relationship between two packages, that indicates that the contents of the two packages are to be combined. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 42 / 78

Exemple : paquets avec classes et dépendances Les «boîtes» qui apparaissent ici sont des classes importantes du système que l on commence à classifier en termes de leur appartenance à un sous-système donné. Les relations entre ces classes (voir plus loin) induisent des dépendances entre les sous-systèmes. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 43 / 78

Effets de dépendances Lorsqu un sous-système dépend d un autre, on doit commencer par établir l interface de ce dernier. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 44 / 78

Exemple : paquets avec classes et annotations On peut préciser les relations de dépendances à l aide d annotations. Voir la spécification d UML pour connaître les annotations standards. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 45 / 78

Exemple : avec cas d utilisations et relations http://en.wikipedia.org/wiki/file:package_diagram.png Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 46 / 78

Diagramme de déploiement Définition (Diagramme de déploiement) Un diagramme de déploiement (deployment diagram) montre le plan de déploiement d un système, quand le système sera complet. Dans un diagramme de déploiement, une association (mapping) entre artefacts et noeuds est établie les artefacts sont des entités physiques produites ou utilisées par le processus de développement logiciel (p ex. fichiers, code objets, bases de donnes, documents, etc.) les noeuds sont des ressources de computation, sur lesquelles les artefacts peuvent être déployés (p. ex. serveurs matériels), ou des environnements d exécution (p. ex. serveurs logiciels, framework, etc.) en général, les noeuds sont organisés dans une hiérarchie de noeuds Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 47 / 78

Exemple : déploiement http://en.wikipedia.org/wiki/file:uml_diagramme_deploiement.gif Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 48 / 78

Exemple : déploiement http://en.wikipedia.org/wiki/file:deployment_diagram.png Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 48 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 49 / 78

Vues dynamiques Les vues dynamiques décrivent le comportement du système (behaviour). Elles permettent de 1 préciser les cas d utilisation sous la forme d interaction entre objets 2 de décrire l état des objets de façon abstraite en termes de réactions vis-à-vis de leur environnement et des messages qui leur sont envoyés. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 50 / 78

Exemple : diagramme de communication Figure : Diagramme de communication (ou collaboration, dans UML 1.x). On représente ici un scénario comme un enchaînement d envoi de message entre objets Les objets soulignés correspondent à des instances. Le nom entre crochet symbolise l état de l objet à chaque étape du scénario (lorsqu il est informatif). La séquence d échange des messages est ordonné en utilisant des indexes numériques. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 51 / 78

Exemple : diagramme de communication (cont.) Figure : Diagramme de communication (ou collaboration, dans UML 1.x). Critique : Cette notation met l accent sur les objets nécessaires à la réalisation d un cas d utilisation. Il peut être difficile à lire, car les messages sont éparpillés sur le diagramme. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 51 / 78

Diagramme de séquence Un diagramme de séquence présente les interactions entre les objets comme une succession de message On peut y dénoter des contraintes de réponses synchrones ou asynchrones, des états bloquants, des protocoles requête/réponse ou fire and forget,... 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 Diderot) Le modèle à objets 2013 2014 52 / 78

Exemple : diagramme de séquence http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 53 / 78

Exemple : diagramme de séquence (cont.) http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 53 / 78

Exemple : diagramme de séquence (cont.) http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 53 / 78

Exemple : diagramme de séquence (cont.) http://www.tracemodeler.com/gallery/ Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 53 / 78

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 Diderot) Le modèle à objets 2013 2014 54 / 78

Exemple : diagramme d état http://en.wikipedia.org/wiki/file:uml_state_machine_fig1.png Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 55 / 78

Exemple : diagramme d état (cont.) http://en.wikipedia.org/wiki/file:uml_state_machine_fig2.png Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 55 / 78

Diagramme d activité un diagramme d activité modèle un processus business (ou work-flow), ses choix, et comment ils interagissent avec le contexte dans lequel le système sera déployé plusieurs systèmes et sous-systèmes, faisant partie ou pas du système en cours de développement, peuvent apparaître dans un diagramme d activité les diagrammes d activité permettent d exprimer choix, concurrence/synchronisation, et itérations une sémantique (en termes de réseaux de Petri) a été proposée pour les diagrammes d activité. P.ex. : Harald Störrle and Jan Hendrik Hausmann Towards a formal semantics of UML 2.0 activities. Software Engineering 2005 http://subs.emis.de/lni/proceedings/proceedings64/ article3638.html originalement encodés comme diagrammes d état dans UML 1.x, ont été séparés à partir de UML 2.x Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 56 / 78

Grammaire des diagrammes d activité rectangles arrondis activités losanges choix/décisions barres concurrence (fork) et synchronisation (join) circles noirs état initial circles noirs contournés état final Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 57 / 78

Exemple : diagramme d activité [else] [inexperienced participants in the group] [idea(s) available] [no idea(s)] [more] [one] [no time left] [time left] [one] [more] [time left] [no time left] [none] http://en.wikipedia.org/wiki/file:activity_conducting.svg Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 58 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 59 / 78

Vues statiques Les vues statiques établissent la structure du système, à un niveau de détail plus fin que celui du diagramme de paquets. Il s agit d énumérer les différentes classes d objets et leur relations. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 60 / 78

Exemple : 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 Diderot) Le modèle à objets 2013 2014 61 / 78

Exemple : 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 Diderot) Le modèle à objets 2013 2014 61 / 78

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 Diderot) Le modèle à objets 2013 2014 62 / 78

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 Diderot) Le modèle à objets 2013 2014 63 / 78

Exemple : 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 Diderot) Le modèle à objets 2013 2014 64 / 78

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 Diderot) Le modèle à objets 2013 2014 65 / 78

Agrégation/Composition L agrégation est une relation d appartenance (has a) 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 (owns a) Exemples Si l échiquier est détruit alors ses pièces aussi. vs Si une partie est terminée, les joueurs peuvent en jouer une autre. (Ils survivent à la partie.) 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 Diderot) Le modèle à objets 2013 2014 66 / 78

Exemple : 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 Diderot) Le modèle à objets 2013 2014 67 / 78

Objectifs de la généralisation/spécialisation Spécialisation Ajout d une fonctionnalité. Focalisation sur un aspect spécifique à une classe. Généralisation Factorisation de critères communs. Abstraction des détails. Analogie avec la relation d inclusion ensembliste (is a). Définition (Classe abstraite) Une classe est abstraite si elle n est jamais vouée à être instanciée. Être abstraite capture la notion de concept. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 68 / 78

Exemple : généralisation Figure : Diagramme de classe (avec relation de généralisation). «Piece» est une super-classe de «Queen», elle généralise cette dernière. «Queen» est une sous-classe de «Piece», elle spécialise cette dernière. On exprime ici une relation d abstraction entre composants. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 69 / 78

Exemple : mauvaise généralisation La relation suivante n est pas correcte puisqu une règle n est pas un cas particulier (is a) de tour et de fou. Il ne faut pas confondre factorisation de code et généralisation. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 70 / 78

Annotations de la relation de généralisation On peut annoter la relation de généralisation par : complete on ne peut plus rajouter une nouvelle sous-classe. incomplete on pourra rajouter une nouvelle sous-classe dans le futur. disjoint les sous-classes ne pourront pas être les parents d une future sous-classes. overlap les sous-classes pourront être utilisées comme super-classes d une même sous-classe dans le futur. Intuition : complete/incomplete s occupent de la extensibilité horizontale de la généralisation ; disjoint/overlap de sa extensibilité verticale Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 71 / 78

Exemple : diagramme composite Figure : Diagramme composite. Les diagrammes composites servent à donner une vision abstraite de la structure interne d une classe. On brise ici le principe d encapsulation : à n utiliser qu en cas de stricte nécessité. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 72 / 78

Exemple : diagramme de réalisation Figure : Diagramme de réalisation. Un diagramme de réalisation illustre la compatibilité entre un objet et une interface. Il y a deux notations possibles pour cela en UML : 1 Un lien vers un cercle faisant référence au nom de l interface. 2 Une relation de généralisation en pointillés vers une description précise de l interface. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 73 / 78

Exemple : diagramme de rôle Figure : Diagramme de rôle ou de profil. Un rôle peut être joué par un objet dans une situation particulière ou en fonction de son état. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 74 / 78

Exemple : mauvais rôle Figure : Point de vue incorrect sur un rôle. Il faut distinguer généralisation et prise temporaire d un rôle. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 75 / 78

Exemple : bon rôle Figure : Une implémentation correcte d un rôle. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 76 / 78

Sommaire 1 Le modèle à objets 2 Un processus associé au modèle à objets 3 Spécification à l aide d UML Vues de cas d utilisation Vues d architecture Vues dynamiques Vues statiques 4 Synthèse Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 77 / 78

Résumé Nous avons brièvement présenté RUP. Nous en étudierons les principes dans le cours de conception orientée objet des systèmes. Nous avons survolé UML. Ce sera un outil que nous appliquerons et approfondirons par la suite. Stefano Zacchiroli (Paris Diderot) Le modèle à objets 2013 2014 78 / 78