IFT Génie logiciel

Documents pareils
IFT2255 : Génie logiciel

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

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

Chapitre I : le langage UML et le processus unifié

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

UML (Diagramme de classes) Unified Modeling Language

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

3. UML - Unified Modeling Language Diagrammes statiques

Université de Bangui. Modélisons en UML

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

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

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

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

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

TP1 : Initiation à Java et Eclipse

RTDS G3. Emmanuel Gaudin

OCL - Object Constraint Language

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

Premiers Pas en Programmation Objet : les Classes et les Objets

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Cours STIM P8 TD 1 Génie Logiciel

Diagramme de classes

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

Programmer en JAVA. par Tama

Chapitre VI- La validation de la composition.

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Cours en ligne Développement Java pour le web

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

as Architecture des Systèmes d Information

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

Développement Logiciel

Conception des systèmes répartis

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

Initiation à JAVA et à la programmation objet.

Java Licence Professionnelle CISII,

Patrons de Conception (Design Patterns)

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

GOL502 Industries de services

Bases Java - Eclipse / Netbeans

Bases de données. Chapitre 1. Introduction

Auto-évaluation Programmation en Java

Programmation Objet Java Correction

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

Développement ebusiness

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

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

Remote Method Invocation (RMI)

Projet Active Object

UML (Paquetage) Unified Modeling Language

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

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

ACTIVITÉ DE PROGRAMMATION

Meta Object Facility. Plan

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

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

TD/TP PAC - Programmation n 3

Alfstore workflow framework Spécification technique

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

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

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

données en connaissance et en actions?

Web Tier : déploiement de servlets

UML et les Bases de Données

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

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

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

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

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

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Table des matières Sources

Conception, architecture et urbanisation des systèmes d information

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

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Description de la formation

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

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

Une introduction à Java

Utiliser Java sans BlueJ

Méthodologies de développement de logiciels de gestion

Classes et Objets en Ocaml.

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

Modélisation des données

Cours de Génie Logiciel

Programmation Orientée Objet

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

Information utiles. webpage : Google+ : digiusto/

Les diagrammes de modélisation

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

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

INITIATION AU LANGAGE JAVA

Package Java.util Classe générique

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

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

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

F. Barthélemy. 17 mai 2005

Traduction des Langages : Le Compilateur Micro Java

Transcription:

Qu est-ce que la modélisation? 2 IFT2255 - Génie logiciel Modélisation Bruno Dufour, Houari Sahraoui, Julie Vachon {dufour,sahraouh,vachon}@iro.umontreal.ca Activité consistant à créer une représentation simplifiée (modèle) d'un phénomène ou d'un système permet d'étudier son déroulement ou son fonctionnement peut être accompli avec différents degrés de formalisme Degrés de formalisme 3 Utilité de la modélisation 4 Descriptions informelles ex: description en langue naturelle, croquis, etc. Descriptions semi-formelles Notation graphique dont la sémantique n est pas formellement définie ex: UML Descriptions formelles Spécifications algébriques, spécifications logiques, réseaux de Petri, langages de programmation, etc. Approfondir la compréhension du problème Réduire la complexité du problème par l abstraction Réunir et visualiser un ensemble de détails choisis Favoriser la communication avec les autres membres de l équipe de développement, les utilisateurs, etc. Documenter

Unified Modelling Language (UML) 6 UML Une norme OMG (Object Management Group) Un langage visuel de modélisation rigoureux et non formel Un support de communication qui facilite la représentation et la compréhension Notation graphique : facilite la comparaison et l'évaluation de solutions Notation rigoureuse : limite les ambiguïtés et les incompréhensions Notation abstraite : indépendante des langages de programmation, domaines d'application et processus de développement UML comme cadre d analyse 7 Diagrammes UML et vues 8 L analyse et la conception se font graduellement par l élaboration et le raffinement de modèles Pas de barrière stricte entre analyse et conception Les modèles d'analyse et de conception ne diffèrent que par leur niveau d abstraction (ajout de détails) Approprié pour une approche de développement incrémentale et itérative Modèle UML: Ensemble de diagrammes décrivant le logiciel développé Le modèle UML d un logiciel peut être étudié sous différentes perspectives ou vues ex: vue comportementale, vue structurelle Différents types de diagrammes peuvent être regroupés pour offrir différentes vues

Vues UML 9 Vue utilisateur 10 Structure Comportement Utilisateur Implémentation Environnement Définit les buts et objectifs des utilisateurs du logiciel Définit les besoins (services & contraintes) requis par la solution Vue unificatrice des autres vues en ce sens qu elle sert de référence à leur validation Vue structurelle 11 Vue comportementale 12 Décrit les aspects statiques représentant la structure du logiciel. Identifie les éléments du domaine (classes, attributs, paquetages) et les relations (association, compositions, dépendance) entre eux Décrit les aspects dynamiques et le comportement du logiciel Spécifie les interactions et collaborations entre éléments du système Montre la décomposition du logiciel en termes de processus, d interactions entre processus, de synchronisation et de communication entre activités

Vue implémentation 13 Vue environnementale 14 Décrit les aspects de structure et de comportement de la solution Décrit la réalisation, l organisation en composants, les contraintes de développement Décrit les aspects de structure et de comportement du domaine dans lequel la solution est réalisée Décrit les ressources matérielles (disposition, nature, performance) et comment elles sont utilisées par le logiciel Diagrammes UML 15 Diagrammes UML 16 Diagramme d objets Diagramme de classes Diagramme de cas d utilisation Diagramme de composants Diagramme de collaboration Structure Comportement Utilisateur Implémentation Environnement Deux grandes catégories de diagrammes Diagrammes décrivant les aspects statiques Diagrammes décrivant les aspects dynamiques Diagramme de séquence Diagramme de déploiement Diagramme d états Diagramme d activités

Diagrammes statiques 17 Diagrammes dynamique 18 Diagramme de classes : décrit les données du logiciel (structure, traitements, relations, contraintes, rôles) Diagramme d objets : diagramme de classes instanciées utilisé pour illustrer un exemple particulier Diagramme de composants : montre l'architecture physique du logiciel et l'affectation des objets aux différents composants de cette architecture Diagramme de déploiement : montre la configuration des différents composants à l'exécution et leur distribution Diagramme de cas d utilisation : montre à un haut niveau d'abstraction une collection de cas d'utilisation caractérisant le comportement de tout le logiciel Diagramme de séquence : montre l'échange de messages entre objets en fonction du temps Diagramme de collaboration : s'intéresse à la structure de collaboration entre les objets (séquence, itération, concurrence) Diagramme d états : permet de décrire le comportement dynamique d'un objet (changements d états) Diagramme d activités : montre l'ensemble des traitements associés à une classe, une opération ou à un cas d'utilisation (workflow) Objet 20 Concepts OO (rappel) Caractéristiques État : données enregistrées dans l objet Opérations : comportement supporté par l objet Identité : permet de distinguer différents objets

Classe 21 Envoi de message (message passing) 22 Description générale d un ensemble d objets Attributs (état) Opérations (comportements) Partie publique : interface Partie cachée : implémentation Instance : objet créé à partir de la classe Communication entre deux instances Instance émettrice Nom de l opération Arguments et paramètres de sortie Héritage (inheritance) 23 Portée 24 Relation entre deux classe Enrichissement Substitution Par exemple, en Java class FileInputStream extends InputStream {... Les membres (attributs, opérations) peuvent appartenir aux instances : attributs / méthodes d instances à la classe : attributs / méthodes de classes static en Java }

Polymorphisme 25 Liaison dynamique (dynamic dispatch) 26 Permet de manipuler différents types de données à l aide d une interface uniforme Par exemple, en Java, une instance de la class ArrayList peut être manipulée comme List ou Collection Un même message peut déclencher des opérations différentes selon le type de l instance auquel il est destiné La méthode spécifique qui est appelée n est déterminée qu au moment de l exécution Surcharge (overloading) 27 Dans une classe, un même nom est employé pour définir deux opérations de signatures différentes Par exemple, en Java : String.valueOf(boolean b) String.valueOf(char c) String.valueOf(Object obj) Diagrammes de classes

Diagramme de classes 29 Représentation des classes 30 Permet de décrire la structure statique du logiciel Classes : attributs, opérations Relations : associations, agrégations, compositions, héritage, etc. Nom de classe Attribut Attribut Operation Operation Attributs 31 Visibilité 32 [visibilité] [portée] <nom> : <type> [= <valeur_initiale>] Type primitif : boolean, real, integer, string, date Types définis par une classe ou interface NB: un modèle ne devrait pas comporter d attribut de type classe, ces attributs (références sur des instances) sont représentés par des associations Portée $ ou nom souligné: attribut de classe, sinon attribut d instance Représentée par un des 4 symboles : +,, # ou ~ Public (+) : élément visible par toutes les instances de toutes les classes Private ( ) : élément visible que par les instances de la classe Protected (#) : élément visible par toutes les instances de la classe et de ses sous-classes Package (~) : élément visible par les classes du même paquetage

Opérations 33 Classe - exemple 34 [visibilité] [portée] <nom> (<params>) : <type_resultat> Paramètres <direction> <nom> : <type> [= valeur_initiale] <direction> := in out inout Rectangle - length: integer - width: integer - pos: Point ~ rectanglecount : integer + display(canvas:canvas) : void + remove() : void + setposition(newpos:point) : void Association 36 Relations Lien / connexion entre deux instances Habituellement implémentée à l aide d attributs d instances Représentée visuellement par une ligne entre deux classes Banque Client Spécification Cardinalité Rôle(s)

Cardinalité 37 Cardinalité 38 Précise le nombre d instances participantes min..max min et max sont des entiers max peut être non borné ( ) Par défault, 1 si aucune cardinalité n est spécifiée Exemples 6 : implique exactement six instances 1..5 : entre une et cinq instances 2.. : implique deux ou plusieurs instances : équivalent à 0.. Polygone forme sommet 3.. Professeur 1 est_doyen 0..1 1.. est_rattaché 0..1 Point Faculté Noms de rôles 39 Spécifie la fonction d une classe (de ses instances) pour une association Chaque extrémité peut être annotée avec un rôle (optionnel) Information indispensable pour les associations réflexives Navigabilité restreinte 40 Par défaut, une association est bidirectionnelle Pour réduire la portée de l association et indiquer que les instances d une classe ne peuvent être identifiées par les instances de l autre, la navigabilité est restreinte Électeur vote 0..1 Candidat parent 2 Personne 0..* enfant À partir d un électeur, on peut directement identifier le candidat pour lequel il a voté. À partir d un candidat, on ne peut pas retrouver directement les électeurs qui ont voté pour lui.

Agrégation 41 Agrégation - exemple 42 Association qui exprime une union marquée et une relation de subordination entre deux instances (agrégat, instance agrégée) Inclusion «possède» ou «a pour partie» Une instance agrégée peut être impliqué dans plus d une association N implique pas d unicité Une instance agrégée peut exister sans son agrégat et inversement, i.e., les cycles de vie de l agrégat et de l instance agrégée sont indépendants N implique pas de dépendance existentielle Chemin Agrégat Segment Agrégé Composition 43 Composition - exemple 44 Agrégation forte entre deux instances (un composite et un composant) Inclusion «est composé (physiquement) de» À un même moment, un composant ne peut appartenir qu à un seul composite Unicité exigée Si le composite est détruit (ou copié), ses composants le sont aussi Implique une dépendance existentielle Les composants peuvent être détruits avant le composite Immeuble Composite Appartement Composant

Composition vs association 45 Modélisation vs implémentation 46 La destruction d un livre entraîne la destruction de ses pages et des paragraphes de texte qu elles contiennent Livre 1 Page Association 1 Membre 1 La fin d une organisation fait disparaître ses membres et son comité exécutif. Paragraphe et non pas Organisation 1 Membre Membre Association 1 0..1 Comité exécutif 3.. mon_association: Association membres: set<membre> La dissolution du comité n engendre pas l exclusion de ses membres. Généralisation 47 Généralisation 48 Relation d héritage entre un élément de description générale et un élément plus spécifique (cohérent) est un(e) Cercle Forme - x : Point - y : Point + display() : void Relation Non réflexive Non symétrique Transitive Class A Class B Class A Class B Class C Class A - rayon : integer + display() : void

Type d héritage 49 Une super-classe peut avoir plusieurs sous-classes héritage (généralisation) simple Une sous-classe peut avoir plusieurs super-classes héritage (généralisation) multiple le langage d implémentation peut ne pas supporter l héritage multiple Autres concepts Text Widget TextWidget Réalisation 51 Notes 52 «interface» Runnable run() Solution + quadratic() : integer Cette classe a été revue par les utilisateurs Thread id: integer run() «constraint» Une seule instance de solution peut exister à la fois {retourne sqrt(b*b -4*a*c/2*a)}