Test dans les objets Andrés Farias –

Slides:



Advertisements
Présentations similaires
Lapproche Objet Séminaire IOS-AT Chapitre I Introduction.
Advertisements

Langage de modélisation objet unifié
Introduction: Concepts de la programmation
Treuil IRD Abdelwahed FSSM-Marrakech
Spécialisation/généralisation Héritage Polymorphisme
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Langage Java
Systèmes en temps réel Héritage avec les capsules.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Langages objet Définitions Traduction des méthodes en C++
UML - Présentation.
Programmation Orientée Objet (POO)
Gestion de la persistance des objets
Test dans les objets DESS Andrés Farias –
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Chapitre III Héritage (début)
FSAB1402: Informatique 2 Techniques de Programmation Orientée Objet
La programmation Orienté Objet
Introduction à la Programmation Orientée Objet Langage Java
Programmation orientée objet
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
IFT1025, Programmation 2 Jian-Yun Nie
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
C++ : classes Introduction aux Langages Orientés Objets
L’orienté objet: hier, aujourd’hui et demain
RDF(S)
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
POO : Objets et classes (Rappels)
Langage Oriente Objet Cours 2.
Modélisation orientée objet UML
SYSTEMES D’INFORMATION
Structures de données IFT-10541
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction au paradigme orienté-objet (suite)
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Chapitre 9 Les sous-programmes.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Structures de données IFT-2000 Abder Alikacem L’héritage en C++ Département d’informatique et de génie logiciel Édition Septembre 2009.
Procédures et fonctions
Patrons de conceptions de créations
Travaux Pratiques Représentation des connaissances
Supports de formation au SQ Unifié
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
12/04/ Le polymorphisme Cours 8 Cours 8.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
PHP objet Jérôme CUTRONA 10:13:27 Programmation Web
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
ISBN Chapitre 10 L'implémentation des sous- programmes.
2 Processus de conception de BD
Les classes Introduction aux Langages Orientés Objets
La programmation par objets Principes et concepts Etude de Smalltalk.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
La programmation par objets
Introduction à la Programmation Orientée Objet
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD.
Transcription de la présentation:

Test dans les objets Andrés Farias –

Plan Introduction Quest-ce quun objet? Quest-ce quune classe? Descriptions comportementaux Méthodologies formelles Propriétés dintérêt Les test dans les objet avec une description comportemental.

Des procédures aux objets Programmation dirigée par les traitements : Ecole de programmation Algol (1968) programme = {procédures} {données} avec = Méthodes danalyses = décomposition modulaire en arbre chaque module étant isolé des autres (boîte noire) Inconvénients : Couplage fort entre structures de données et procédures analyse dimpact au moindre changement de contexte Méthode de développement figé analyse conception développement tests Cycle de développement long, répercussion des erreurs de conception

Quest-ce quun objet? Intuition : « Nous manipulons des objets matériels complexes dont nous connaissons uniquement le mode demploi sans se soucier des principes physiques,théoriques, techniques nécessaires à leur réalisation. Nous savons utiliser des outils pour effectuer une tâche quelconque. Nous savons créer de nouveaux outils par assemblage ou combinaison doutils préexistants. La notion dobjet informatique permet la transposition de ce que nous savons faire dans la vie de tous les jours à lunivers informatique. » (Jean-François Perrot)

Quest-ce quun objet? Avantages : Mécanismes intellectuels partagés par le plus grand nombre dutilisateurs Traitement = collaboration (échange de messages) entre les objets (représentation informatique des objets réels) Couplage faible traitement / objets Analyse dimpact localisé dans les objets (ou les groupes dobjets) Développement incrémental, cycle raccourci Programmation dirigée par les données

Quest-ce quun objet? Réponse : Entité individuelle repérée par une adresse unique Formé de plusieurs champs variables dinstances en Smalltalk données membres en C++ attributs en Java A chaque champ est associée une valeur, valeurs des champs = état de lobjet Reçoit des messages et les traite en activant la procédure correspondante. des messages auxquels un objet peut répondre = comportement de lobjet

Quest-ce quun objet? METHODESCHAMPS INTERFACEINTERFACE OBJET abstraction de données : encapsulation représentation interne et implantation modularité / maintenance lieu unique évolution structurelle / comportementale réutilisabilité tel quel, par spécialisation, par composition lisibilité / compréhension Code moins chargé et plus naturel...

Les langages à objets à classes Exemple un objet anonyme représentant un point à lécran x y getX():Integer getY():Integer setX(Integer):void setY(Integer):void Accesseurs Modifieurs, setteurs ? voir():void {display(.,x,y);} centrer():void {this.setX(0); this.setY(0);} avancer():void {this.setX(this.getX()+1);} descendre():void {this.setY(this.getY()-1);}

Les langages à objets à classes Comment interagir avec un objet ? La métaphore de lenvoi de messages Penser envoi de messages et non activation de procédures style de programmation et de conception plus souple Point p = new Point (3, 4); Point q = new Point(3, 5); Point origine = new Point(0,0); boolean val = p.estOrigine();% Faux val = origine.estOrigiine();% Vrai val = q.estIsole();% Faux

Langages à objets : trois principes Recours à la simulation : notion dobjet exécution du programme par activation du modèle algorithme <> animation dun modèle réduit Distinction entre concept (abstrait) et instance (concrète) définition / exemple, classe / instance Classification de concepts, relation de généralisation / spécialisation caractéristique majeure de la programmation par objets ? Ne fontionne pas comme espéré… (réalisation informatique délicate)

Les langages à objets Algol Simula CPascalAda Lisp Smalltalk Eiffel Self CLOS C++ Objective C Ada 95 Java Object Pascal Delphi

Quest-ce quune classe ? Texte structuré qui contient : Le nom des champs communs à toutes les instances de la classe. Une liste de procédures agissant sur ces champs Les seules variables libres (nayant pas encore de valeur) sont les variables dinstance Création dun objet instanciation par moulage (structure de données dupliquée) valeurs propres à lobjet stocké par celui-ci modèle et liste de procédures stockés par la classe lien à lexécution : chaque objet instance dune classe contient ladresse du code compilé de sa classe.

Les langages à objets à classes Quest-ce quune classe ? Représentation de la classe Position et de quelques instances. x y getX():Integer getY():Integer setX(Integer):void setY(Integer):void voir():void {display(.,x,y);} centrer():void {this.setX(0); this.setY(0);} estIsole ():boolean {this.setX(this.getX()+1);} estOrigine():boolean {this.setY(this.getY()-1);} Class Position 1 3 P 4 2 Q 2 6 R

Les langages à objets à classes Conclusion provisoire sur les classes. Instances > versus classes > Types de données abstrait, clusters, paquetage en Ada. Intension et extension dune class: Extension dune classe = ensemble des instances de cette classe Intension dune classe = description intensionnel des instances de cette classe (un ensemble de programmes)

Les langages à objets à classes Polymorphisme (1er niveau) : comportement polymorphe des objets > / méthode voir() Point p; Rectangle r; Cercle c; // activation procédure voir() sur classe Point p.voir(); // activation procédure voir() sur classe Rectangle r.voir(); // activation procédure voir() sur classe Cercle c.voir();

Les langages à objets à classes Quest-ce que lhéritage ? c lasse A hérite de classe B Point de vue intensionnel (héritage statique) Attributs(B) Attributs(A) Si Protocole(C) = ensemble des méthodes auquel un objet c instance de C sait répondre alors Protocole(B) Protocole(A) Intension(B) Intension(A) un moyen efficace de réutiliser du code ! On écrit que ce qui est supplémentaire ou les comportements qui changent.

Les langages à objets à classes Quest-ce que lhéritage ? c lasse A hérite de classe B Point de vue extensionnel (héritage dynamique) Toute instance de A est une instance de B (Attention la réciproque est fausse !) Extension(A) Extension(B) A est sous-classe de B, B est super-classe de A Relation dhéritage est une relation dordre, le diagramme de Hasse de cette relation s appelle le graphe d héritage (en général un arbre)

Les langages à objets à classes La classe PointColoré étends (spécialise) la classe Point x y voir():void {display(.,x,y);} centrer():void {this.setX(0); this.setY(0);} avancer():void {this.setX(this.getX()+1);} descendre():void {this.setY(this.getY()-1);} Class Point x y voir():void {display(.,x,y);} centrer():void {this.setX(0); this.setY(0);} avancer():void {this.setX(this.getX()+1);} descendre():void {this.setY(this.getY()-1);} Blanchir():void {this.setColor = « blanch »;} Class PointColoré color

Tests dans les objets Les tests dans les objets servent a vérifier si lobjet fait effectivement ce quil est sensé de faire. Transformer chaque spécification fait au niveau de la documentation en un test pour vérifier la spécification. Lancer le test.

Tests dans les objets (2) Création de test est difficile: Pour créer des tests il faut transformer des spécifications qui sont par fois informelles en méthodes qui vont tester un objet. Le domaine des valeurs dentré pour le test seront probablement des objets (et par fois du même type a celui qui est testé) : Domaine infini. Génération des objets difficile.

Tests dans les objets (3) Réduction des tests: Étant donné que la réalisation des test est difficile est elle nest pas exhaustif nous proposons de diminuer les test à faire. Déplacement des spécifications dans la documentation: Prend des spécification dun certain type et étudier limpact dans le modèle objet lors de leur intégration.