|
Propriétés du langage Eiffel
Eiffel permet une démarche de
développement complète.
Voici résumés les points fort qui
sous-tendent cette démarche.
- démarche Orienté-Objets de
A à Z
- conception par contrat grâce à
l'usage de pré et post-conditions et
invariant de classe (programmation par
contrat)
- héritage du contrat dans les
descendant
- renforcement possible du contrat dans les
decendants;
- grande ouverture d'Eiffel vers d'autres
langages (C, C++...) ;
- gestion du cycle de vie complet du
logiciel ;
- système de documentation
automatique ;
- la documentation automatique et la conception
par contrat ensemble forment une
spécification complete et à jour des
composants
- héritage multiple ;
- généricité contrainte ou
non contrainte ;
- cohérence de la notion de type dont la
définition est basées sur celles de
classes ;
- contrôle statique du type des
données. C'est à la compilation que
sont détectées par exemple
l'accès à une propriété
qu'un objet n'a pas ;
- gestion transparente de la mémoire
(ramasse-miette automatique) ;
- dissimulation de l'information : chaque classe
n'exporte que ce qui doit l'être et de plus
indique à quel client c'est
destiné ;
- redéfinition possible de
l'implémentation des fonctions
héritées ;
- implémentation différé
d'un fonction ;
- polymorphisme (les mêmes fonctions ou
attributs peuvent apparaître dans des objets
de types différents) ;
- lien dynamique : l'utilisation d'une
propriété d'un objet invoque à
l'exécution la propriété
spécifique de cet objet, même dans le
cadre de redéfinition et de
polymorphisme ;
- renommage possible des propriétés
des objets ;
- héritage répété non
ambigu (partage ou duplication d'une
propriété lors d'un héritage
multiple par plusieurs chemins) ;
- mécanisme spécifique
d'initialisation (routine "une seule
fois") ;
- bibliothèques standard fournissant les
types abstraits essentiels.
En bref, il est claire qu'Eiffel n'est pas
seulement un language mais bien le support par
excellence du génie logiciel de
qualité. La méthode
Orienté-Objet c'est EIffel.
Abstraction.ch all rights reserved
|