Programmation Orientée Objet. Ecrire beaucoup de lignes de code, même très propres, ne suffit pas



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

Université de Bangui. Modélisons en UML

UML et les Bases de Données

UML (Diagramme de classes) Unified Modeling Language

GOL502 Industries de services

Corrigés des premiers exercices sur les classes

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Table des matières Sources

Introduction au Génie Logiciel

Rational Unified Process

Programmation en Java IUT GEII (MC-II1) 1

Chapitre VI- La validation de la composition.

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

3. UML - Unified Modeling Language Diagrammes statiques

Guichet automatique de banque

UML. Diagrammes de classes (suite) Delphine Longuet.

Diagramme de classes

Ingénérie logicielle dirigée par les modèles

Programmer en JAVA. par Tama

Chapitre I : le langage UML et le processus unifié

UML (Paquetage) Unified Modeling Language

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

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

IFT2255 : Génie logiciel

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

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

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

Analyse,, Conception des Systèmes Informatiques

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Premiers Pas en Programmation Objet : les Classes et les Objets

Applet pour visualiser les variables «automate» notifiées

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

Cours 1: Java et les objets

OCL - Object Constraint Language

TD/TP PAC - Programmation n 3

TP1 : Initiation à Java et Eclipse

Chapitre 2. Classes et objets

Programmation par les Objets en Java

Patrons de Conception (Design Patterns)

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

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

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)

Application web de gestion de comptes en banques

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

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

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

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Traduction des Langages : Le Compilateur Micro Java

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

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

Structurer ses données : les tableaux. Introduction à la programmation

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

Introduction aux concepts d ez Publish

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

Corrigé des exercices sur les références

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

CONCEPTION ET IMPLANTATION DES SI PROJET : GESTION DU FOYER DE L ENIT

Visual Paradigm Contraintes inter-associations

4. Groupement d objets

as Architecture des Systèmes d Information

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

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

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Conception, architecture et urbanisation des systèmes d information

TP : Gestion d une image au format PGM

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

LES OUTILS DE GESTION DE PROJET

Remote Method Invocation (RMI)

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

Les diagrammes de modélisation

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

Monter une photo en médaillon

PROJET 1 : BASE DE DONNÉES REPARTIES

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

Tours - les îlots. Généralités. Historique. Maître d'ouvrage Ville de Tours, puis les copropriétés concernées

Pré-conditions : Evénement déclencheur : le client souhaite un virement. Description du déroulement du cas : Description des Use cases

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

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

Projet Active Object

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Alfstore workflow framework Spécification technique

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

Intégration de l interface graphique de Ptidej dans Eclipse

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

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

R. A. A. Bébian. Mimographie, ou essai d écriture mimique. París, 1825

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

Retour d expériences avec UML

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

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

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

Cours en ligne Développement Java pour le web

Transcription:

2 Modélisation Construire un bon logiciel : Répondre aux objectifs fixés (satisfaire le client) Avoir une base architecturale solide qui permette l évolution Mettre en place un processus de développement maîtriser coûts et délais Définir des modèles pour Spécifier la structure et les comportements attendus du système Visualiser et contrôler l architecture pour mieux la comprendre simplifier, réutiliser, gérer les risques De la niche à l'immeuble Construire une niche Planches, un marteau, des clous, une personne, quelques heures. Le client (le chien) sera probablement Construire une maison Matériaux et outils plus «complexes» Dessiner des plans, Qualité tenir compte des contraintes (utilisation, besoins en éclairage, chauffage, eau, normes, ) Une seule personne? Délais? Coûts? 3 Construire un immeuble : Prendre l avis des investisseurs (style, forme, taille, etc.) (y compris les modifications) Plannings temps et budget primordiaux De nombreuses personnes réparties en équipes Concevoir de nombreux plans et modèles Le plus souvent, faire une maquette Coordonner les différentes équipes, faciliter la communication entre elles etc. Pour une voiture, démarche similaire... Système logiciel = Immeuble Ecrire beaucoup de lignes de code, même très propres, ne suffit pas Nécessité de penser au préalable l architecture logicielle du système Construction d un modèle indispensable Modèle Qu est-ce que c est? «Une simplification de la réalité» Pourquoi? «Mieux comprendre le système à développer» Servir d interface entre les acteurs du projet Doit être proche de la réalité 4 objectifs : Aider à visualiser un système tel qu il est ou doit être. Préciser la structure ou le comportement d un système. Fournir un canevas pour la construction du système. Permettre de documenter les décisions prises. D autant plus nécessaire que le système est complexe 4 5 6

7 Modélisation orientée objet Statique et Dynamique Classes UML : Unified Modeling Language langage conçu pour l écriture de plans d élaboration de logiciels (pas une méthode) né de la fusion de plusieurs méthodes objet, standard de fait utilisable pour visualiser, spécifier, construire et documenter un méta-modèle : Langage sans ambiguïtés Peut servir de support pour tout langage objet Notation graphique simple compréhensible par des non informaticiens et facilitant la communication Vues statiques diagrammes d objets, diagrammes de classes, diagrammes des cas d utilisation, diagrammes de déploiement. Vues dynamiques diagrammes de séquences, diagrammes de collaboration, diagrammes d états-transitions, diagrammes d activités. nom attributs méthodes nom «complet», intégrant le paquetage largeur hauteur draw() moveto() resize() Classe documentée appli::geom::triangle Classe non documentée 8 9 Objets (instances) privé UneClasse + attpublic - attprivate - attstatic statique - largeur : float - hauteur : float - estvisible : boolean = true Classe détaillée note stylo:crayon : Objet : publique + methpublic() - methprivate() + draw() + moveto( newp : Position) + resize( scale : Float) + tostring() : String return rectangle +largeur+, +hauteur; largeur = 0 hauteur = 20 estvisible = true stylo relation de visibilité 0 2

3 Relations Association Exemple Identifier les classes ne suffit pas, elles coopèrent/ interagissent entre elles, il faut exprimer ces relations (le plus souvent binaires). Dépendances C est une relation structurelle qui exprime une relation sémantique entre (le plus souvent) deux classes. Elle est le plus souvent réflexive. cardinalités nom direction relations d utilisation Associations relations structurelles, connexion sémantique Agrégation, composition Généralisations : interfaces + relations d héritage (relation «is a», cf. UE COO du S6) On peut la compléter de 4 informations : Nom Rôles Multiplicité Agrégation rôles.. Travaille pour association 4 5 Cardinalités Définissent la multiplicité des rôles Une cardinalité à une extrémité signifie qu à l autre extrémité ce nombre d éléments doit exister pour tout objet de la classe. Expressions possibles : n : exactement n n..m : de n à m : quelconque (équivalent à «0..n» ou «0..») n.. : n ou plus liste de cardinalités :..2,3..5 = à 5 sauf 4 Il peut exister plusieurs relations entre les mêmes classes Travaille pour.. 0..n directeur est dirigée par Dépendance Exprimer le fait qu une classe en utilise une autre. Toute modification de la classe utilisée risque d'avoir un impact sur la classe utilisatrice. Relation d'obsolescence. largeur hauteur draw() moveto() resize() java::awt::color dépendance 6 7 8

9 Navigabilité restreinte Rendre unidirectionnelle la relation Pour indiquer que les instances d'une classe ne "connaissent" pas les instances d'une autre. Classe-association quand on veut exprimer les propriétés d une relation.. Travaille pour Interfaces Electeur vote pour Candidat classe-association Emploi salaire dateembauche fonction... 20 2 Agrégation/Composition Association «tout/partie», relation de possession «has-a» la partie est éventuellement partagée Composition : agrégation forte, la partie n est pas partagée Agrégation : le tout est responsable de la gestion de ses parties. Relation de subordination. agrégation Un animal peut appartenir à un zoo (qui peut posséder plusieurs animaux). Un objet animal peut être lié à un autre objet. Zoo Animal tout partie Compagnie appartient Port Bateau composition Un animal peut appartenir à un zoo (qui peut posséder plusieurs animaux). Un objet animal ne peut pas être lié à un autre objet. Si on détruit l'objet zoo, on détruit aussi les instances animaux liées. Zoo.. Animal tout partie 22 23 24

25 Exemple : compteur Counter #value : int #incf: +getvalue() : int +increment() +initvalue(value:int) value = incf.increment(value); affiche SimpleIncrement «interface» increment(value : int) : int AnotherIncrement CounterGraphicInterface Javax::swing::JFrame ModularIncrement Cas d'utilisation (use cases) représenter le modèle conceptuel identifier les acteurs et leurs interactions avec le système permettre de structurer les besoins des utilisateurs et les objectifs du système permettre de définir le comportement attendu du système, sans en préciser la réalisation on ne s occupe que des objectifs, pas des solutions d implémentation clarification et organisation des besoins Représentation acteur : une personne ou un composant à l origine d une interaction avec le système cas d utilisation : un objectif du système, un besoin d un acteur acteur gestionnaire de sécurité cas d utilisation traiter login noms 26 27 Inclusion Diagramme de cas d'utilisation package Counter affiche CounterGraphicInterface relation d utilisation imprimer solde compte «include» «include» consulter solde compte imprimer ticket client visualise débite DAB consulter solde compte retirer argent technicien éteint DAB avant de le ravitailler incremente client débite retirer argent retrait possible dans la limite du stock du coffre mise en service ravitailler billets technicien donne valeur utilisateur visualise initialise afficher valeur affiche interface 28 29 30