CC30 Certificat de compétence Conception, développement et animation de sites Web



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

CC30 Certificat de compétence Conception, développement et animation de sites Web

Initiation à JAVA et à la programmation objet.

Cours en ligne Développement Java pour le web

CQP Développeur Nouvelles Technologies (DNT)

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

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

Vérifier la qualité de vos applications logicielle de manière continue

Description de la formation

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

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

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)

Patrons de Conception (Design Patterns)

Projet Active Object

Java pour le Web. Cours Java - F. Michel

IFT2255 : Génie logiciel

Programmation Orientée Objet

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

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

DotNet. Plan. Les outils de développement

Introduction au Génie Logiciel

Applications distribuées: le retour du client "riche"

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

TP1 : Initiation à Java et Eclipse

Messagerie asynchrone et Services Web

Traduction des Langages : Le Compilateur Micro Java

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

UML (Diagramme de classes) Unified Modeling Language

Refonte front-office / back-office - Architecture & Conception -

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

Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels

RAPPORT DE CONCEPTION UML :

Cours de Génie Logiciel

Université de Bangui. Modélisons en UML

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Catalogue des Formations

Introduction à la conception de systèmes d information

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

RTDS G3. Emmanuel Gaudin

Business Process Execution Language

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)

Le génie logiciel. maintenance de logiciels.

UML et les Bases de Données

Projet de Veille Technologique

NFP111 Systèmes et Applications Réparties

INITIATION AU LANGAGE JAVA

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

Analyse,, Conception des Systèmes Informatiques

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

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

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

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Cloud Computing et SaaS

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

Le Guide Pratique des Processus Métiers

Environnements de Développement

Migration et import de données

as Architecture des Systèmes d Information

Auto-évaluation Aperçu de l architecture Java EE

Chapitre VI- La validation de la composition.

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Cahier des charges (CDC)

SECTION 5 BANQUE DE PROJETS

< Atelier 1 /> Démarrer une application web

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

Conception des systèmes répartis

LICENCE PROFESSIONNELLE

Extensions à la formation. Laurent Pérochon, avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

CI1 - A quel besoin répond un objet technique?

Les frameworks au coeur des applications web

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Introduction MOSS 2007

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

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

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

Bases Java - Eclipse / Netbeans

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Les diagrammes de modélisation

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

Expert technique J2EE

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

> + Consultant / Architecte JEE Indépendant. Fabien GUIBERT 34 ans, 11 ans d expérience d expérience COMPETENCES / DOMAINES METIERS

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Cours STIM P8 TD 1 Génie Logiciel

SITE WEB E-COMMERCE ET VENTE A DISTANCE

WEBSPHERE & RATIONAL. Jacques Rage

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Evaluation Idéopass Cahier d analyse technique

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

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Développement Logiciel

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Rational Unified Process

Table des matières Sources

Cours Bases de données

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Transcription:

CC30 Certificat de compétence Conception, développement et animation de sites Web UE RSX050 Bases de l informatique Séance 1 UERSX050 Bases de l informatique Séance 1-25/10/2009 1

Table des matières Introduction... 4 1 Rappel objectifs de l UE... 4 2 Séances et planning:... 7 3 Glossaire... 8 Séance 1 Introduction... 9 Moyens et logiciels... 9 Enseignant... 9 Notations utilisées dans ce cours... 9 Programmation Objet et UML... 11 1 Notions objets...11 1.1. De quoi parlons-nous?...11 1.2. Classes, instances et objets...11 1.3. Abstraction...13 1.4. Encapsulation...14 1.5. Héritage, spécialisation, généralisation...14 1.6. Polymorphisme...15 1.7. Relations / Agrégation...16 1.8. Démarche fonctionnelle -> démarche objet...16 1.9. Messages...18 2 Modélisation UML...19 2.1. Présentation...19 Bibliographie... 20 UERSX050 Bases de l informatique Séance 1-25/10/2009 2

Table des illustrations Figure 1 concept d objet...12 Figure 2 instanciation d'une classe...12 Figure 3 Exemple de graphs d'héritages entre classes...15 Figure 4 Démarche fonctionnelle...17 Figure 5 démarche fonctionnelle 2...17 UERSX050 Bases de l informatique Séance 1-25/10/2009 3

Introduction 1 Rappel objectifs de l UE Objectifs du cours : donner un vernis en programmation Objet, introduire à la modélisation UML et à la programmation Java, et donner une connaissance étendue des domaines couverts par la programmation Java. Le cours se nomme Bases de l informatique, mais son intitulé plus exact devrait être : introduction à la programmation objet, à la programmation Java, et au développement d applications informatiques. A l issue de ce cours, vous saurez : modéliser et concevoir un logiciel réaliser un logiciel simple en java savoir quelle partie de java est concernée pour aller plus loin dans la programmation informatique Ce cours peut être difficile et vous demandera une forte implication, mais les bénéfices sont importants dans l objectif du certificat et plus globalement dans une optique industrielle. UERSX050 Bases de l informatique Séance 1-25/10/2009 4

Plus exactement, le plan global de ce cours est le suivant : Programmation Objet et UML 1 Notions objets 1.1. Classes, instances et objets 1.2. Abstraction 1.3. Encapsulation 1.4. Héritage, spécialisation, généralisation 1.5. Polymorphisme 1.6. Relations / Agrégation 1.7. Démarche fonctionnelle -> démarche objet 1.8. Messages 2 Modélisation UML 2.1. Présentation 2.2. Dictionnaire 2.3. Quelques outils pour modéliser en UML 2.4. Types de diagrammes 2.5. Résumé des diagrammes UML 2.6. Vues statiques 2.7. Vue dynamique 2.8. UML en couleur 2.9. Model Driven Architecture (MDA) 2.10. En savoir plus sur UML Java 1 Historique Java 2 Que développe-t-on en JAVA? 2.1. Applications JSE 2.2. Application JEE 2.3. Applications riches 3 Outils de programmation JAVA 4 Eléments de programmation JAVA 4.1. JVM 4.2. Exécution 4.3. JAR 5 Règles de programmation java 5.1. Les types en java 5.2. Les classes 5.3. Les packages 5.4. Les méthodes 5.5. Boucles et structures 5.6. Gestion des erreurs, exceptions 6 Framework JAVA Single Edition (JSE) 6.1. Que contient JSE? 6.2. Entrées/Sorties Java, gestion des fichiers 6.3. Programmation asynchrones (Thread) 6.4. Logs 6.5. Gestion des moyens de communication réseau (Socket) 6.6. SWING, AWT, SWT 6.7. Applets 6.8. Java et bases de données UERSX050 Bases de l informatique Séance 1-25/10/2009 5

6.9. Evénements et messages 6.10. Servlets, JSP 6.11. Cryptographie 6.12. Serialisation 6.13. Collections 6.14. Mise en place d un serveur 7 Framework Java edition (JEE) 7.1. Que contient JEE? 7.2. Qu apporte JEE par rapport à JSE? 7.3. EJB 8 Java et UML 8.1. UML vers JAVA 8.2. JAVA vers UML 9 Java avancé 9.1. Programmation par aspects 9.2. Industrialisation Java 9.3. Garbage Collector 9.4. Java et les performances 9.5. Exploitation java 9.6. Portails et portlets, JSR 168 9.7. Programmation J2ME 9.8. Règles de codage Java UERSX050 Bases de l informatique Séance 1-25/10/2009 6

2 Séances et planning: Ce cours est décomposé en 16 séances : Séance 1 : Programmation Objet et UML : Notions Objets, concepts modélisation UML Séance 2 : Programmation Objet et UML : Modélisation UML concepts, types de diagrammes Séance 3 : Programmation Objet et UML : vues UML statiques 1 Séance 4 : Programmation Objet et UML : vues UML statiques 2, vues UML dynamiques 1 Séance 5 : Programmation Objet et UML : vues UML dynamique2 Séance 6 : Programmation Objet et UML : vues UML dynamique3, UML avancé Séance 7 : Introduction à Java Séance 8 : Règles de programmation Java Séance 9 : JSE (1), introduction, Entrées/Sorties, gestion des fichiers, thread, logs, réseau Séance 10 : JSE (2), framework graphique, applets Séance 11: JSE (3), base de données, messages, servlets Séance 12 : JSE(4), cryptographie, sérialisation, collections, mise en place d un serveur Séance 13 : JEE Séance 14 : Java et UML Séance 15 : Java avancé 1 Séance 16 : Java avancé 2 Le planning de mise en ligne des séances, de regroupement et d examens vous est communiqué de façon séparée. UERSX050 Bases de l informatique Séance 1-25/10/2009 7

3 Glossaire Terme UML Java Objet Classe Instance Abstraction Encapsulation Instanciation Message Diagramme Système Processus métier Polymorphisme Héritage Stéréotype Définition Unified Model Langage, méta-langage de modélisation orienté objet Langage de programmation objet Entité d un programme informatique sui est créé et sera détruite «Moule» pour créer un objet, definit les attributs et méthodes communes d un objet Une instance d une classe est un objet Capacité à créer une entité de plus haut niveau qui contient les paramètres communs (ex les attributs et méthodes communes à un ensemble de classes ou d objet) à des entités plus concrètes. Capacité pour un objet d exposer une interface d utilisation simplifiée, et de ne pas exposer son implémentation interne. Mécanisme de création d un objet. Entité de communication asynchrone entre objets. Graphique qui vise à modéliser un trait particulier d un système Un système informatique désigne en général un ensemble d application à developper. Un processus métier est un ensemble de services rendus par des objets mis à contribution pour rendre un service métier (exemple traitement d une facture). Capacité pour une même fonction à avoir une implémentation différente suivant l objet. Mécanisme d abstraction particulier aux classes. Elément de modélisation qui permet d'apposer une sémantique particulière aux éléments UML. Permet de spécialiser le langage UML afin qu'il s'adapte mieux au domaine dans lequel le langage est utilisé. Par exemple stéréotype "<<Table>>" pour une modélisation de base de données. UERSX050 Bases de l informatique Séance 1-25/10/2009 8

Séance 1 Introduction Le but de cette séance est d introduire aux notions objets, de commencer à raisonner objet. Moyens et logiciels L outil Star UML peut être nécessaire éventuellement mais n est pas indispensable. Les concepts présentés sont des concepts théoriques et ne nécessitent pour mise en pratique qu un simple crayon et une feuille de papier. Enseignant Frédéric Rougeot, Architecte/Chef de Projet Expérience 10 ans d expérience, répartis ainsi : Architecte IT, 6 ans d expérience dans le conseil en Management. (Telecom) Design Engineer, 3 ans d expérience, pour Wavetek Wandel Golterman, n 2 sur le marché des produits de tests et mesures Expérience Java/UML : Six ans d expérience cumulée en industrialisation JAVA. Six ans d expérience cumulée UML. Formations Java/UML Formation UML reçue des sociétés Softeam, et Rational. Formation UML et JAVA dispensée : Capgemini, CNEDI, Isipharm. Exemples de réalisation Objet/Java Chef de projet Eclipse RCP : logiciel de gestion de paramètres CNEDI Industrialisation Java : mise en place d une usine J2SE (30 développeurs) Encadrement équipe JAVA, projet Billing Bouygues Telecom Conduite bench performance Java Développements applets, portlets, serveur Offshore : autour d un portail Sun Mise en exploitation service 7j/7, 24h/24 Java Etude comparative Framework AJAX Conception architecture, UML Notations utilisées dans ce cours Afin d en faciliter la lecture, et indiquer au lecteur le niveau d information utilisé, une notation particulière est utilisée dans ce cours. En voici les règles : Une notion importante sera toujours en gras et peut être aussi soulignée. L italique est utilisée pour les citations mais aussi pour les concepts un peu en marge du cours. UERSX050 Bases de l informatique Séance 1-25/10/2009 9

Par ailleurs les icônes suivantes seront utilisées : Icône Sens Signale un outil ou une méthode Signale que l on va un peu plus loin que le niveau attendu pour ce cours Signale un piège de compréhension courant Signale que l on inspecte en détail une notion Signale une notion interdite Signale un avertissement Signale une notion clé Signale une illustration, un commentaire, à titre informatif. UERSX050 Bases de l informatique Séance 1-25/10/2009 10

Programmation Objet et UML 1 Notions objets 1.1. De quoi parlons-nous? Nous parlons d un type de programmation, la programmation par objet, et de la faculté que ce type de programmation propose pour concevoir un logiciel. On parle alors de conception Objet. Nous allons dans cette séance en voir les fondamentaux. 1.2. Les fondamentaux 1.2.1. Classes, instances et objets En programmation objet, nous allons parler de classes, d instances et d objet. Voyons ce qu il en est A partir du «monde réel» ou du domaine d applications visé, dans lequel sont présent des objets «réels», l homme a besoin de faire des schémas, de dessiner, pour se faire comprendre. Le modèle informatique objet permet une représentation partielle de concepts jugés importants. Un homme identifie un objet, par exemple une voiture, par ses caractéristiques : La voiture neuve du voisin est noire, a 4 portes et roule jusqu à 200 km/heures. C est une Clio Williams. Un homme attend des comportements d un objet : Avec sa Clio, le voisin amène ses enfants à l école et va au travail. Un objet ne peut pas toujours rendre les services attendus : Mais en ce moment sa Clio est en panne. Définition d un objet : un objet, en informatique, est une entité aux frontières précises qui possède une identité : un nom. Un ensemble d attributs qui caractérisent l état de l objet. Un ensemble d opérations (méthodes) qui en définissent le comportement. On dit d un objet qu il est une instance d une classe, une occurence d un type abstrait. Quand on parlait de la Clio Williams, on parlait d une voiture. L objet est alors la voiture Clio Williams, la classe et l entité «Voiture». Une classe est un type de données abstrait, caractérisé par des propriétés (attributs et méthodes) communes à des objets et permettant de créer des objets possédant ces propriétés. UERSX050 Bases de l informatique Séance 1-25/10/2009 11

Objet Voiture Clio Williams Méthodes Attributs Publiques démarrer arrêter Publics Interface Privées Vérifier niveau huile couleur Privés Code antivol Interface Figure 1 concept d objet Un objet est un élément dynamique: Il est créé à partir d une classe, ce pourquoi on dit qu un objet est une instance d une classe. Un objet a ses propres valeurs d attribut. Un objet est utilisé par d autres objets pour exécuter des méthodes (fournir un service) ou stocker des données. Un objet est détruit quand le système n en a plus besoin. Nous verrons plus en détail cela dans ce cours, mais regarder le diagramme de classe suivant, on y représente la classe Voiture et deux objets, instances de la même classe. Figure 2 instanciation d'une classe Les objets sont donc issus d un même «moule», une classe. Une classe définit la structure et le comportement commun de tous les objets issus de cette classe. Un classe est un élément statique, et n a pas de cycle de vie. UERSX050 Bases de l informatique Séance 1-25/10/2009 12

On dit qu un objet est une instance d une classe, mais on dit aussi qu un objet réalise une classe (la rend concrète). 1.2.2. Abstraction L abstraction est une notion importante de la conception objet. Entre deux objets, on est amené à distinguer les attributs propres à un objet et ceux qui sont partagés avec d autres objets. On peut ainsi classer les objets par famille. Exemple : un épervier et un crapaud sont des animaux, un épervier et une corneille sont des oiseaux, les oiseaux sont des animaux, etc. Les familles d objets ainsi énumérés peuvent donner lieu à une modélisation sous une forme de classe, en fonction du besoin de l application développée. Exemple : si on travaille sur un outil de classification des animaux, il est important de distinguer les oiseaux des mammifères, et on créera des classes «oiseaux» et mammifères, maintenant si on travaille sur un outil qui permet de peser un animal, que l animal soit un oiseau ou un mammifère, cela ne change rien, on créera simplement une classe «animal». Exemple : Soient 2 «stylos», un bic bleu et un stylo plume avec une cartouche rouge. Tous deux ont en commun de l encre et la possibilité d écrire. Le stylo plume a une cartouche d encre rouge changeable, une plume et a une durée de vie très longue. L encre du stylo plume peut être effacé. Le bic, quant à lui, a une cartouche intégrée, une bille, et une durée de vie très courte. On pourra, fonction de l application à modéliser, définir une classe «Stylo» ayant pour attribut encre, et une méthode écrire(). Tout dépend de l utilisation! Abstraire un objet, permet d utiliser les services offerts par cet objet sans connaître la structure et le fonctionnement interne de cet objet. Les objets sont des boîtes noires, seuls les services rendus sont importants, l implémentation interne est invisible. (implémentation : terme informatique qui désigne la façon concrète mise en œuvre pour fabriquer quelque chose : par exemple l implémentation d une chaussure peut être en cuir ou en toile!. En pratique, en informatique on parlera plutôt du code informatique utilisé.) De la même façon que l on abstrait un objet en créant une classe, on peut aussi abstraire une classe avec une autre classe. Par exemple, un animal est une abstraction d un oiseau, qui lui-même est une abstraction des oiseaux à becs longs, etc. UERSX050 Bases de l informatique Séance 1-25/10/2009 13

1.2.3. Encapsulation L encapsulation est une propriété fondamentale du modèle objet ; elle permet de masquer l intérieur (propriétés internes, états, corps) pour ne montrer que l extérieur. Ceci permet de réduire la complexité d un objet. L encapsulation est un moyen d abstraire. Par exemple, il n y a pas besoin d être un électronicien pour regarder la télé. Réparer une télé par contre doit se faire en ouvrant la télé et en réparant la pièce défectueuse. Dit autrement, la télé doit pouvoir s ouvrir pour que l électronicien puisse accéder aux différents composants à réparer. L encapsulation assure la sécurité de l objet qui n est ainsi pas modifié par quelqu un qui ne le connaît pas. On dit que le fonctionnement et les composants internes sont encapsulés. 1.2.4. Héritage, spécialisation, généralisation L héritage est un mécanisme de transmission des propriétés d une classe (ses attributs et méthodes) vers une sous-classe. L héritage est un moyen d abstraire. Une classe peut être spécialisée en d autres classes, afin d y ajouter des caractéristiques spécifiques, ou encore d en adapter certaines. Plusieurs classes peuvent être généralisées en une classe qui les factorise, afin de regrouper les caractéristiques communes d un ensemble de classes. La spécialisation et la généralisation permettent de construire des hiérarchies de classes. L héritage peut être simple (entre deux classes) ou multiples (entre n classes, n > 2). Tous les langages objets ne supportent pas l héritage multiple. L héritage évite la duplication et encourage la réutilisation. L héritage permet de factoriser la structure et le comportement commun de plusieurs classes au sein d une même classe, de définir des niveaux d abstraction pour construire des classes réutilisables. Nous y reviendrons mais voici un diagramme de classes qui illustre l héritage entre classes. UERSX050 Bases de l informatique Séance 1-25/10/2009 14

Figure 3 Exemple de graphs d'héritages entre classes Sur cet exemple, la voiture électrique est une spécialisation d une voiture, et la voiture est une généralisation d une voiture électrique. Lorsqu une classe hérite d une autre classe, elle peut rajouter des attributs et des méthodes qui lui sont propres. Par un exemple, un oiseau aura une méthode voler() qui n est pas héritée de la classe mère «animal». Si l on abstrait un oiseau en tant qu animal, il ne sera par possible de le faire voler, à moins de spécifiquement savoir qu il s agit d un oiseau. Essayez un jour de faire voler un éléphant! 1.2.5. Polymorphisme Le polymorphisme représente la faculté d une méthode à pouvoir s appliquer à des objets de classes différentes (qui prend plusieurs formes). Le polymorphisme contribue à l abstraction. Le polymorphisme, appliquer à du code informatique en augmente la généricité. Par exemple, la méthode démarrer d une voiture électrique est différente par nature de la méthode démarrer d une voiture essence. Si la classe voiture offre une méthode démarrer purement abstraite (on parle dans ce cas de classe abstraite), les classes «voiture électrique» et «voiture à essence» offre chacune une implémentation de la méthode démarrer qui leur est propre. Lorsqu on va utiliser une voiture, qu elle soit à essence ou électrique, on va simplement tenter de démarrer la voiture. L héritage et le polymorphisme permettent la réutilisation. Dans un langage procédural, sans polymorphisme, on devrait coder quelque chose semblable à : Si type de voiture = électrique Démarrer voiture électrique UERSX050 Bases de l informatique Séance 1-25/10/2009 15

Si type de voiture = essence Démarrer voiture essence Si type de voiture = GPL Démarrer voiture GPL. Dans un langage objet, avec polymorphisme, on codera plus simplement : Démarrer voiture. 1.2.6. Relations / Agrégation Quand un objet utilise un autre objet, on parle de relation. Une relation possède : Un sens (précise quel objet utilise l autre) Une cardinalité (précise le nombre d objets concerné) Eventuellement un nom de relation L agrégation est une relation particulière entre deux classes : les objets d une classe sont des composants de l autre classe. On peut donc ainsi définir des objets composés d autres objets. L agrégation permet donc d assembler des objets de base, afin de construire des objets plus complexes. 1.2.7. Résumé de l approche objet En résumé, l approche objet c est : Un ensemble de concepts stables éprouvés et normalisés Une solution destinée à faciliter l évolution d applications complexes Une panoplie d outils et de langages performants pour le développement. 1.3. Pour aller plus loin avec l approche objet 1.3.1. Démarche fonctionnelle -> démarche objet La découpe fonctionnelle d un problème informatique est une approche intuitive. Exemple : découpe fonctionnelle d un logiciel dédié à router les clients vers le bon interlocuteur en fonction du type de service qu ils demandent et transmet automatiquement le dossier client: Le logiciel est vu comme une suite de fonctions qui fournissent les services désirés, et les données. Cela est logique, cohérent et intuitif : UERSX050 Bases de l informatique Séance 1-25/10/2009 16

Demander au client motif appel Motif appel Récupérer dossier client Dossier client Aiguiller vers conseiller Figure 4 Démarche fonctionnelle L avantage de la découpe fonctionnelle est la factorisation des comportements. En reprenant, l exemple précédent et en considérant maintenant une nouvelle fonction du receveur d appel, pouvoir valider ou supprimer une facture d un dossier client puis fermer un dossier client, sans passer par un conseiller. Le schéma précédent devient : Demander au client motif appel Motif appel Récupérer dossier client Dossier client Aiguiller vers conseiller Valider facture Supprimer facture Fermer dossier Figure 5 démarche fonctionnelle 2 Le revers de la médaille est la maintenance complexe en cas d évolution. Sur l exemple précédent, une évolution du dossier client et plus précisément si le dossier client vient à être différent selon l âge du client, cela entraîne un impact UERSX050 Bases de l informatique Séance 1-25/10/2009 17

et donc une modification au niveau de toutes les fonctions en vert dans le schéma précédent. L approche objet offre deux améliorations par rapport à cela : On peut généraliser un dossier client, le voir comme un concept abstrait, et on peut le traiter de façon générique. Ainsi, si un nouveau type de dossier client voit le jour, les fonctions qui manipulent le dossier client de façon générique n ont pas à être modifiées si on créer par ailleurs ce nouveau type de dossier client. 1.3.2. Messages Les objets communiquent entre eux soit par appel directs (synchrones), le plus fréquent, soit par un mécanisme asynchrone, par écoute de message. La modélisation objet permet de modéliser ces messages. UERSX050 Bases de l informatique Séance 1-25/10/2009 18

2 Modélisation UML 2.1. Présentation 2.1.1. Fondements d UML? Il est plus naturel pour le raisonnement humain de décomposer un problème informatique sous forme d une hiérarchie de fonctions atomiques et de données, qu en terme d objets et d interactions entre ces objets. De surcroît, le vocabulaire précis est un facteur d échec important dans la mise en œuvre d une approche objet. Puisque l approche objet est moins intuitive, il faut se questionner de la sorte : Quels moyens utiliser pour faciliter l analyse objet? Quels critères identifient une conception objet pertinente? Comment comparer deux solutions de découpe objet d un système? Comment décrire la structure objet d un système de lanière pertinente, en tenant compte de la précision du vocabulaire objet. Pour répondre à ces questions, nous avons besoin : D un langage pour exprimer les concepts qu on utilise, afin de pouvoir Représenter des concepts abstraits (graphiquement par exemple) Limiter les ambigüités, parler un langage commun Faciliter l analyse, simplifier la comparaison et l évaluation des solutions D une démarche d analyse et de conception objet pour Ne pas effectuer une analyse fonctionnelle et se contenter d une implémentation objet, mais penser objet dés le départ Définir les vues qui permettent de couvrir tous les aspects d un système, avec des concepts objets. 2.1.2. Résumé de la séance Vous avez ici appris : Ce qu est l approche objet Les fondamentaux de l approche objet : o Les objets et les classes o Le principe d abstraction o Les notions d encapsulation, d héritage, de généralisation, de polymorphisme et d agrégation Que la conception Objet nécessite un langage, UML est le standard et nous allons le présenter dans les séances suivantes. Pour programmer une application, il ne convient pas démarrer par l écriture du code : il est nécessaire d organiser ses idées. La réalisation ellemême doit être documentée. Tel est l objet de la modélisation. UERSX050 Bases de l informatique Séance 1-25/10/2009 19

Bibliographie Description Site officiel UML Tutorial UML en français Site FTP de téléchargemen t de l OMG Tutorial UML Tutorial UML Tutorial UML Site www.uml.org www.uml.free.fr ftp://ftp.omg.org http://www.sparxsystems.com.au/resources/uml2_tutorial/ http://dn.codegear.com/article/31863 http://www.smartdraw.com/tutorials/software/uml/tutorial_01. htm UERSX050 Bases de l informatique Séance 1-25/10/2009 20