Cours Langages et modèles à objets Eiffel


Télécharger Cours Langages et modèles à objets Eiffel

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Cours Langages et modèles à objets Eiffel

Extrait du cours:

CE CHAPITRE PRESENTE QUELQUES TRAITS SAILLANTS des systèmes EIFFEL, ce qui comprend le langage, sa méthode de programmation implicite, ses bibliothèques de composants et des ateliers de GLAO pour développer et réutiliser des composants logiciels de qualité. Après une discussion rapide de la situation d’EIFFEL face à ses concurrents, nous donnerons un aperçu de mécanismes EIFFEL parmi les plus caractéristiques, en insistant plus particulièrement sur l’héritage, la généricité paramétrique, le typage et les assertions. Nous soulignerons aussi les aptitudes des environnements EIFFEL pour réconcilier es bénéfices des approches statiques et dynamiques.

2.1 Introduction

EIFFEL existe depuis une dizaine d’années. De nombreuses discussions ont eu lieu à son sujet sur les forums d’Internet ; il a été utilisé pour écrire des milliers de composants et des applications de centaines de milliers de lignes de code. Cela permet aujourd’hui d’apprécier de manière réaliste son aptitude à atteindre ses objectifs et de mesurer la qualité de ses implémentations. Nous aurions aimé développer des perspectives d’évolution de ce langage dans les domaines de la persistance [Lahire, 1992], de la gestion de l’évolution [Brissi et Rousseau, 1995], des assertions et des requˆetes [Collet, 1997], voire de la méta programmation: mais cela supposerait que le lecteur connaisse déjà bien EIFFEL. Il faut donc nous résoudre à présenter ici des aspects plus classiques, car bien qu’il ait marqué incontestablement les domaines de la programmation par objets et du génie logiciel, il reste assez mal connu et beaucoup d’idées fausses circulent encore à son sujet.

Cours Langages et modèles à objets Eiffel

Table des matières :                   

Introduction 1

1 Objets, classes, héritage 3

1.1 Ouverture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

I Génie logiciel et objets 33

2 Eiffel : une approche globale pour programmer et réutiliser 35

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.2 Eiffel : un langage pour le génie logiciel . . . . . . . . . . . . . . . 36

2.3 Organisation générale d’un programme Eiffel . . . . . . . . . . . . 39

2.4 Instanciation, référence et expansion d’objets . . . . . . . . . . . . 44

2.5 Relation de clientèle . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.6 Relation d’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.7 Généricité paramétrique . . . . . . . . . . . . . . . . . . . . . . . . 58

2.8 Aides à la fiabilité . . . . . . . . . . . . . . . . . . . . . . . . . . 60

2.9 Les environnements Eiffel . . . . . . . . . . . . . . . . . . . . . . 68



2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3 Introduction a C++ et comparaison avec Eiffel 73 `

3.1 Un peu d’histoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.2 Les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3.3 Les objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.4 La surcharge et les conversions . . . . . . . . . . . . . . . . . . . . 83

3.5 L’héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.6 La généricité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

3.7 Les exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

4 Méthodes d’analyse et de conception 103 ´

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

4.2 Les modèles et leurs notations . . . . . . . . . . . . . . . . . . . . 106

4.3 Le processus d’une méthode d’analyse et de conception par objets . 118

4.4 La réutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

4.5 Evolution des méthodes d’analyse et de conception par objets . . . . 126

4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

5 Bases de données objet ´ 129

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

5.2 Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

5.3 Fonctionnalités des SGBDO . . . . . . . . . . . . . . . . . . . . . . 134

5.4 SGBDO et normes . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

5.5 Problèmes et perspectives . . . . . . . . . . . . . . . . . . . . . . . 156

5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

II Développements avancés de la notion d’objet 163

6 Objets pour la programmation parallèles et répartie 165

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

6.2 Enjeux et besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

6.3 Objets comme fondation . . . . . . . . . . . . . . . . . . . . . . . 168

6.4 Objets pour le parallélisme et la répartition : différentes approches . 171

6.5 Approche applicative . . . . . . . . . . . . . . . . . . . . . . . . . 172

6.6 Approche intégrée . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

6.7 Approche réflexive . . . . . . . . . . . . . . . . . . . . . . . . . . 185

6.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

7 Programmation parallèle et réactive 193 ´

7.1 Modèle de programmation parallèle . . . . . . . . . . . . . . . . . 193

7.2 Arbre binaire de recherche . . . . . . . . . . . . . . . . . . . . . . 205



7.3 Abstractions pour la programmation du contrôle . . . . . . . . . . . 209

7.4 Démarche de conception . . . . . . . . . . . . . . . . . . . . . . . 213

7.5 Réactivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

7.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

8 Les langages a prototypes ` 227

8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

8.2 Notion de prototype . . . . . . . . . . . . . . . . . . . . . . . . . . 229

8.3 Avant les langages de prototypes . . . . . . . . . . . . . . . . . . . 230

8.4 Motivations et intérêts de la programmation par prototypes . . . . . 234

8.5 Premières propositions de langages à prototypes . . . . . . . . . . . 238

8.6 Récapitulatif des concepts et mécanismes primitifs . . . . . . . . . 241

8.7 Caractérisation des mécanismes et interprétation des concepts . . . 242

8.8 Discussion des problèmes relatifs à l’identité des objets. . . . . . . . 246

8.9 Discussion des problèmes liés à l’organisation des programmes . . . 250

8.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

9 Objets et contraintes 257

9.1 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

9.2 Contraintes et objets pour la programmation . . . . . . . . . . . . . 264

9.3 Contraintes et objets pour la représentation . . . . . . . . . . . . . . 277

9.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

III Objets pour la représentation de connaissance 291 ´

10 Représentation de connaissance par objets 293 ´

10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

10.2 Principes des représentations de connaissance par objets . . . . . . 297

10.3 Les problèmes approchés par TROEPS . . . . . . . . . . . . . . . . 304

10.4 Description de TROEPS . . . . . . . . . . . . . . . . . . . . . . . . 308

10.5 TROEPS : inférence . . . . . . . . . . . . . . . . . . . . . . . . . . 314

10.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

11 Les logiques de descriptions 321

11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

11.2 Les bases des logiques de descriptions . . . . . . . . . . . . . . . . 323

11.3 La méthode des tableaux sémantiques . . . . . . . . . . . . . . . . 339

11.4 Discussions sur les logiques de descriptions . . . . . . . . . . . . . 344

11.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

12 La logique des objets 351

12.1 Les systèmes classificatoires . . . . . . . . . . . . . . . . . . . . . 353

12.2 Sémantique des systèmes classificatoires . . . . . . . . . . . . . . . 357



12.3 Déduction dans les SC : présentation abstraite . . . . . . . . . . . . 361

12.4 La classification d’instances . . . . . . . . . . . . . . . . . . . . . 362

12.5 Comparaisons, conclusions et perspectives . . . . . . . . . . . . . . 378

IV Applications des objets 381

13 Objets et musique 383

13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

13.2 MUSES : concepts de base et programmation par objets . . . . . . . 385

13.3 Les objets temporels de MUSES . . . . . . . . . . . . . . . . . . . 387

13.4 Analyse harmonique de grilles de jazz . . . . . . . . . . . . . . . . 390

13.5 Harmonisation automatique . . . . . . . . . . . . . . . . . . . . . . 392

13.6 Editeurs graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . 392

13.7 Autres applications . . . . . . . . . . . . . . . . . . . . . . . . . . 394

13.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396

14 Objets et classification en chimie organique 397

14.1 Le problème de la synthèse en chimie organique . . . . . . . . . . . 398

14.2 Le système RESYN . . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.3 Représentations à objets dans RESYN . . . . . . . . . . . . . . . . 402

14.4 Raisonnement par classification . . . . . . . . . . . . . . . . . . . 409

14.5 Raisonnement distribué . . . . . . . . . . . . . . . . . . . . . . . . 416

14.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

15 Représentations par objets et classifications biologiques 421 ´

15.1 Les sens de  classification. . . . . . . . . . . . . . . . . . . . . 422

15.2 Les pratiques de la classification stricto sensu . . . . . . . . . . . . 427

15.3 Classification et biologie . . . . . . . . . . . . . . . . . . . . . . . 429

15.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

Bibliographie 449

Index 497

Index des références bibliographiques . . . . . . . . . . . . . . . . . . . 497

Index des langages, méthodes et systèmes cités . . . . . . . . . . . . . . 505

Index des termes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509

Cours Langages et modèles à objets Eiffel


139