Cours de base d Ingéniérie des applications objet. Introduction

Documents pareils
Analyse,, Conception des Systèmes Informatiques

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

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

Chapitre I : le langage UML et le processus unifié

IFT2255 : Génie logiciel

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

Évaluation et implémentation des langages

Visual Paradigm Contraintes inter-associations

Introduction au Génie Logiciel

UML et les Bases de Données

UML (Diagramme de classes) Unified Modeling Language

TP1 : Initiation à Java et Eclipse

Université de Bangui. Modélisons en UML

UML (Paquetage) Unified Modeling Language

Cours STIM P8 TD 1 Génie Logiciel

Bases de données. Chapitre 1. Introduction

Les diagrammes de modélisation

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

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

Modélisation des données

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

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

GOL502 Industries de services

Projet Active Object

Le génie logiciel. maintenance de logiciels.

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

CESI Bases de données

3. UML - Unified Modeling Language Diagrammes statiques

Utilisation du logiciel ModellingSpace

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

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

Guide d utilisation de la clé mémoire USB

Cours de Génie Logiciel

GUIDE UTILISATEUR WEBCONFERENCE. Utilisation depuis un PC Windows

Conception des systèmes répartis

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

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Bases Java - Eclipse / Netbeans

COURS AUTOCAD. Création et utilisation des blocs. b leclerc. ERP Jean Moulin METZ

Intégration de l interface graphique de Ptidej dans Eclipse

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

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

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

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

Présentation du PL/SQL

TP1 : Initiation à Java et Eclipse

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

Gé nié Logiciél Livré Blanc

Cours de bases de données. Philippe Rigaux

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

Chapitre I Notions de base et outils de travail

Outil d envoi de courrier électronique. STILOG I.S.T. et Claude Mayer Tous droits réservés

Manipuler fichiers et dossiers

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

< Atelier 1 /> Démarrer une application web

Utilisation du logiciel Epson Easy Interactive Tools

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

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)

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

CRÉATION MODIFICATION

Plan Pédagogique du cours

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

Ingénieur Développement Nouvelles Technologies

Unity Real Time 2.0 Service Pack 2 update

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Programme détaillé BTS INFORMATIQUE DE GESTION DIPLÔME D ETAT. Objectifs de la formation. Les métiers. Durée de la formation

DotNet. Plan. Les outils de développement

Le langage C. Séance n 4

Informatique appliqué Microsoft Windows et la suite bureautique Office. Carlier François

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

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

B2i Brevet Informatique. Internet. Livret de l enseignant

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

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

UML 2.0. (IUT, département informatique, 1 re année) Laurent AUDIBERT

Formation, Audit, Conseil, Développement, UX WinRT Silverlight WPF Android Windows Phone

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

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

données en connaissance et en actions?

Gestion des réunions dans Outlook 2007

Machines virtuelles Cours 1 : Introduction

La programmation orientée objet et le langage C++

CONFIGURATION... 2 Créer le compte bancaire... 3 Sélectionner un compte par défaut... 6 Configurer la numérotation des reçus...

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

Outils pour les réseaux de neurones et contenu du CD-Rom

Stage Ingénieur en développement logiciel/modélisation 3D

CYBER-BASE M. E. F. I 2 RIVES. Programme des Ateliers

DOCUMENTATION POINT FACTURE

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

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Chapitre VI- La validation de la composition.

Introduction à l informatique en BCPST

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

UTILISATION DE LA BORNE PAR LE CLIENT

Introduction aux Bases de Données Relationnelles Conclusion - 1

Transcription:

0-0 Cours de base d Ingéniérie des applications objet. Introduction Support de Cours Christophe Dony Université Montpellier-II

1 Contenu du cours - concepts de base de la programmation par objets avec Java. - La mise en pratique des concepts objet avec Java (on parlera également de C++ et Smalltalk). - la réutilisation et les architectures logicielles, frameworks, design patterns. - La pratique des classes de base de la bibliothèque. - Les principes de réalisation d interfaces graphiques à base d objets.

IMPORTANCE DES OBJETS DANS L INFORMATIQUE LOGICIELLE 2 1 Importance des objets dans l informatique logicielle Programmation généraliste : Simula (67), Smalltalk (72, 76, 80), C with classes(80), Objective-C(84), C++(84), Flavors(80), Clos (85), Eiffel (88), ADA9X(95), Object-Cobol(96), JAVA(96), Visual-Basic... Méthodes d analyse et de conception des logiciels et des systèmes d information - Informatique de gestion... OOD (Object Oriented Design) de BOOCH Objectory de Jacobson OMT (Object Modeling Technique) UML : notation unifiée pour OMT, OOD et Objectory. Interfaces et applications graphiques - domaine initiateur.

IMPORTANCE DES OBJETS DANS L INFORMATIQUE LOGICIELLE 3 Exemples : Smalltalk graphic library, JAva AWT, Java Swing,... Génie logiciel. conception, environnements de développement évolués (Smalltalk-80), modularité, réutilisation, composants. programmation concurrente et distribuée : programmation concurrente intégrée dans les langages à objets concurrents (processus Smalltalk, threads Java). architectures spécialisées pour la réalisation d applications distribuées utilisent la méthodologie objet : Corba, J2EE, Microsoft.NET.

GRANDES IDÉES RELATIVES À LA PROGRAMMATION PAR OBJETS 4 2 Grandes idées relatives à la programmation par objets 2.1 Une vision différente de la réalisation des applications L approche objet suggère la décomposition modulaire d un systeme informatique sur les sortes d objets qui constituent le système et que le systême va permettre de manipuler plutôt que sur les fonctionnalités qu il va offrir. Exemple 1 : Interfaces (exemple canonique), Les entités qui constituent le système. Entités visibles fenêtres figures menus

GRANDES IDÉES RELATIVES À LA PROGRAMMATION PAR OBJETS 5 boutons icones Entités cachées vues sous-vues contrôleurs de la souris et du clavier etc. Exemple 2 : Un système de gestion d une entreprise: clients produits livraisons factures fournisseurs

GRANDES IDÉES RELATIVES À LA PROGRAMMATION PAR OBJETS 6 dates etc 2.2 De nouvelles techniques de programmation Un ensemble de techniques de programmation (Abstraction de données, abstraction procédurale, surcharge des noms d opération, polymorphisme d inclusion) fournissant des mécanismes d abstraction et rendant les programmes plus facilement extensibles et réutilisables. Définitions: Extensible: programme auquel il est possible d ajouter de nouvelles fonctionnalités ou de nouvelles sortes de données sans modifier (ou en minimisant les modifications) ce qui est déjà écrit. Réutilisable: programme pour lequel il est possible d adapter une fonctionnalité existante à une nouvelle sorte de données sans modifier le code existant.

GRANDES IDÉES RELATIVES À LA PROGRAMMATION PAR OBJETS 7 2.3 Une intuition de la programmation par objets 2.3.1 Programmation fonctionnelle programme == ensemble de fonctions ensemble de données 2.3.2 programmation par objets objet : encapsulation d un ensemble de données et d un ensemble de fonctions spécialisées pour manipuler ces données. exemple : Objet compte bancaire

GRANDES IDÉES RELATIVES À LA PROGRAMMATION PAR OBJETS 8 depot(float) montant 5000 retrait(float) solde() fermeture() Figure 1: Objet : Encapsulation données-fonctions

GRANDES IDÉES RELATIVES À LA PROGRAMMATION PAR OBJETS 9 programme : ensemble d objets communiquant en s envoyant des messages. banque client2 compte2 envoie des messages client1 compte1 Figure 2: programme en exécution

GRANDES IDÉES RELATIVES À LA PROGRAMMATION PAR OBJETS 10 2.4 Qualités de l approche objet Stabilité de la conception. les objets manipulés changent moins que les fonctionnalités offertes Les fonctionalités peuvent être modifiées, ou de nouvelles être ajoutées sans que le modèle sous-jacent n ait à être modifié. Gestion de la complexité et de la taille des logiciels. La spécification séparée des objets du système induit une décomposition modulaire et compréhensible du monde. Extensibilité : ajoût simple de nouvelles sortes d objets. Réutilisabilité : réutilisation de fonctionnalités existantes pour de nouvelles sortes d objets.

HISTOIRE 11 3 Histoire 3.1 Emergence - 65-80 Simuler des systèmes Le but visé est faire fonctionner un programme non pas comme un algorithme mais comme l animation d un modèle réduit. Ce modèle est construit à partir d entités informatiques qui reproduisent fidèlement les entités du monde réel. On appelera ces entités des objets. [Perrot96] Simula Représenter des connaissances symboliques - Intelligence Artificielle. Lisp - Flavors Traiter informatiquement et simplement toutes sortes d entités. Smalltalk

HISTOIRE 12 3.2 Intérêts pour le génie logiciel : 80-90 Découverte par la R-D puis par les gros industriels des vertus de la programmation par objets. Développement des langages : C++, Clos, Eiffel, Smalltalk,... 3.3 Diffusion généralisée : 1990-2010 Les modèles à objets gagnent la plupart les champs du domaine logiciel.

GRANDS PRINCIPES DE CONCEPTION D APPLICATIONS 13 4 grands principes de conception d applications Exemple d énoncé : Logiciel de gestion des inscriptions pour un club sportif. Les inscrits peuvent être des travailleurs ou des scolaires. Une inscription lie, en respectant les contraintes de dates et de nombre, un inscrit à une activité, à une certaine date, avec un certain moniteur. 4.1 Analyse : Recensement des principales sortes d objets du système à modéliser. Définir un modèle conceptuel du domaine concerné i.e. décomposer le domaine en un ensemble de concepts individuels ou sortes d objets. Travail tres similaire à celui effectué lors de la conception d un système d information. Exemple : Club, Activité, membre, employé, planning, periode, date, heure.

GRANDS PRINCIPES DE CONCEPTION D APPLICATIONS 14 A cette étape, on ne recense aucune sorte d objet informatique. 4.2 Recensement des caractéristiques de chaque sorte d objets Caractéristique d une sorte d objets : les différentes sortes de relations qu elle possède avec les autres sortes d objets. - Relation d association : relation spécifiant qu un l objet est associé, est sémantiquement connecté, à un autre objet indépendant. Exemples : Une entreprise emploie des personnes. CLubSportif est dirigé par un responsable : (de type) employe emploie des moniteurs : collection d employes gère des membres : collection de personnes utilise un lieu_d activité : salle

GRANDS PRINCIPES DE CONCEPTION D APPLICATIONS 15 Les relations peuvent avoir un nom (emploie), des rôles (employé - employeur), une multiplicité (un employeur emploie plusieurs employés), etc. - Relations d Agrégation et de Composition : relations binaires entre un tout et ses parties, les parties étant des éléments constitutifs du tout. - Relation de Composition : le mot composition est utilisé lorsque la partie n a pas d existance possible sans son tout : une personne possède deux mains. Représentation graphique : losange noir. - Relation d agrégation : le cas opposé. Une voiture possède un moteur. losange blanc. 4.3 Définition du savoir-faire d une sorte d objets Savoir Faire : Ensemble des messages qu un objet comprend et pour lesquels il sait exécuter un comportement.

GRANDS PRINCIPES DE CONCEPTION D APPLICATIONS 16 Comportement : Propriété fonctionelle d une sorte d objets. Exemples: Un club sait donner son emploi du temps général, inscrire une nouvelle personne (objets inanimés avez vous donc une âme...) Une activité sait dire quel est son responsable, sa plage horaire et son nombre d inscrits. Une liste sait insérer ou supprimer un nouvel élément. Une période de temps sait dire si elle contient une certaine date. 4.4 Prise en compte de la relation de spécialisation Exemples : Un club est-une sorte d association. Un membre est-une sorte de personne. Un moniteur est-une sorte de personne.

LES GRANDS PRINCIPES DE LA RÉALISATION D APPLICATIONS 17 5 Les grands principes de la réalisation d applications Réalisation informatique d une spécification de logiciel batie autour d un modème conceptuel objet. 5.1 Sortes d objets et Classes Une classe est un moyen de représenter dans un programme la notion de sorte d objets. La plupart des langages à objets sont des langages à classes Classe : entité - représentant un ensemble d objets ayant les mêmes caractéristiques et les mêmes comportements, - définissant leur structure interne, - définissant et détenant ces comportements,

LES GRANDS PRINCIPES DE LA RÉALISATION D APPLICATIONS 18 - capable de générer des instances. 5.2 Représentation des relations Les relations d association, d agrégation et de composition sont représentées par des (un ou plusieurs) attributs des classes. Une relation d association peut entrainer la création d une classe. ex: personne emprunte livre (dans une bibliothèque) (classe Emprunt éventuelle) Un attribut possède un nom, éventuellement un type et une valeur par défaut. Un attribut peut être public ou privé selon qu il est accessibles ou non. Exemple : Activite nom mixité

LES GRANDS PRINCIPES DE LA RÉALISATION D APPLICATIONS 19 responsable salle creneaux : collection de periodes 5.3 Savoir-faire et Méthodes Méthode (ou fonction membre). Fonction définie sur une classe, représentant un savoir-faire d un objet. Ex : La classe Club Attribut : nom : String, moniteurs : Collection d employés... Methode : inscrire-membre Ex : La classe date Attribut : j, m, a : int Methode :, jour, num-an, numjc Remarque : Type abstrait En première approche, il existe une analogie totale entre classe et type abstrait, entre instance de la classe et élément d un type. Langages permettant de définir des type abstraits: Simula (classes),

LES GRANDS PRINCIPES DE LA RÉALISATION D APPLICATIONS 20 Modula (modules), Ada (Packages), Clu (Clusters) 5.4 Les objets - tout objet est instance d une classe. La classe détermine la structure et les comportements des objets qui sont ses instances. - un objet est une entité individuelle, repérée par une adresse unique. - champs : un objet est une entité informatique, constituée d un ensemble de champs. Il y a autant de champs que d attributs déclarés par la classe. - Chaque champs contient une valeur qui peut varier au cours du temps. L ensemble de ces valeurs constitue à chaque instant l état courant de l objet. - Encapsulation : l état courant d un objet n est par défaut pas accessible par le monde extérieur à l objet.

LES GRANDS PRINCIPES DE LA RÉALISATION D APPLICATIONS 21 5.5 L objet et ses comportements - un comportement d un objet est activé par un envoi de message. - L ensemble des méthodes définies par sa classe définit le comportement global d un objet. - un envoi de message comporte un receveur, un sélecteur et des arguments. - Un message est une demande à un objet d exécuter une de ses opérations ou procédure ou fonction. L objet répond au message en exécutant la procédure dont le nom correspond au sélecteur du message. exemples: MUC.inscrire(eric, Volley ) unrectangle.surface(), unrectangle.volume() : (echec).

LES GRANDS PRINCIPES DE LA RÉALISATION D APPLICATIONS 22 5.6 Calculs L éxécution d une application par objet se résume à une succession d envois de messages entre objets.