2 Concepts de base de la programmation orientée objet 2.1. Le paradigme objet 2
2 Concepts de base de la programmation orientée objet 2.1. Le paradigme objet 2.1.1 Approche de la définition des objets Un paradigme contient les règles selon lesquelles le réel va être perçu, ce que l'on appelle les principes d'intelligibilité. Espace de problème-Espace de solution L'espace de problème est l'environnement dans lequel se déroule l'informatisation, environnement à la fois organisationnel et technique, mais surtout sémantique ou culturel. L'espace de solution est le discours dans lequel s'élabore la solution. Il est caractérisé par une modélisation fondée sur des structures de représentation et contrainte par des catégories à priori. Autrement dit, l'espace de solution est une réduction assortie d'une projection. Ces catégories mentales ou ces structures de représentation diffèrent d'une méthode à l'autre. On croira épuiser toute la signification d'un domaine, mais c'est faux : on ne produira jamais qu'une vue subjective, limitée par la finitude de nos schémas de pensée. La modélisation est toujours un homomorphisme. Pour le succès de l'informatisation, le concepteur doit absolument être averti de cette limitation et de la distorsion conséquente. Bien des conflits entre l'utilisateur et l'informaticien viennent de là. Comment limiter, voire supprimer la distorsion entre l'espace de problème et l'espace de solution? Comment maîtriser le processus mental de la modélisation ? Dans la représentation de l'utilisateur, dans sa pratique, quelle est l'unité de perception qui est manipulée mentalement ? Données, actions, traitements, fonctions, systèmes, règles … ? Ces réponses se situent dans des cadres souvent étrangers aux utilisateurs ou jugés artificiels, soit que ces cadres dérivent trop directement de la technique informatique (données, traitements) soit qu'ils renvoient à des appareils conceptuels ignorés(fonctions mathématiques, logique, systèmes ). La réponse qui semble plus proche de la représentation naturelle est : l'utilisateur perçoit dans sa pratique des « entités » stables, douées d'autonomie, et qui se manifestent par des informations accessibles et des comportements : des objets. 2.1.2. Le concept d'objet L'objet est une représentation d'une portion cohérente de la réalité. La cohérence est liée à l'adéquation de l'objet, soit à une entité réelle, soit à un concept. L'objet est plus que la donnée ou l'entité du modèle entités-relations, plus même qu'un groupement de données et de traitements: il est un modèle exact et complet d'un objet du monde réel. Donc un objet est une entité associant données et programmes. Il existe un rapport très étroit entre objet et classe au point de confondre les deux. L'objet est une occurrence d'une classe. Instance d'une classe: cette expression est synonyme d'objet. L'objet n'existe que pendant l'exécution prolongée par le stockage Classe : la classe correspond à la notion de module auquel on aurait agrégé une structure de fichier, elle existe dans le programme comme séquence d'instructions du langage; elle existe également pendant l'exécution comme code, et parfois à travers des variables de classe (typiquement le compteur des objets ou une information à appliquer à toutes les instances). L'objet modèle puis l'objet informatique se calquent sur l'objet réel. Ce dernier est une entité de l'espace du problème, accessible par deux aspects: - présent dans le monde réel - présent dans la représentation du réel ( univers, discours) Concepts de base de la programmation orientée objet Page 2/23 Selon les cas il sera plus facile d'observer discrètement la réalisation ou d'analyser la présentation; l'informatique industrielle penchera pour la première solution; l'informatique de gestion pour la seconde. Les attributs constitutifs de l'objet en tant qu'entité du monde réel sont la cohérence, l'autonomie, la résistance. Ces termes renvoient respectivement à la logique, à la théorie des systèmes, à l'action. 2.1.3. Généralité du concept objet A la question « qu'est ce qu'un objet ? » on serait tenté de répondre d'une manière aussi simple: <<un objet est ce qui est>>, Une telle réponse laisse au concept objet toute sa généralité et c'est dans cette généralité que le concept objet trouve sa force opératoire. Mieux encore que l'aspect général, son coté naturel le distingue des autres structures de représentation. Cela débouche sur un précepte de modélisation: les objets pertinents pour le système sont ceux que l'utilisateur identifie naturellement. Naturellement s'entend comme instantanément, sans effort de reformulation, directement en rapport avec la représentation mentale de l'utilisateur. L'effort de reformulation s'avère inutile parce que la structure objet colle à la réalité. Ainsi le fossé entre espace de problème et espace de solution est suffisamment comblé par la modélisation objet pour aller jusqu'à énoncer: <<observer c'est modéliser>>. Ainsi nous pouvons dire sans ambages: <<Tout est objet>>. Cette formule se rencontre assez souvent. Sa concision ne doit pas masquer sa capacité pratique: elle a été réellement implémentée par certains langages, par exemple SmallTalk. 2.1.4 Lien avec le paradigme systémique Un système est un ensemble d'objets organisés en fonction d'un but. Cette définition d'un système en tant qu'ensemble a été critiquée malgré le fait que cette formule a l'avantage de la concision. La notion d'objet telle qu'elle est ici utilisée recouvre la nôtre : objet ou élément du monde réel ou conceptuel. Distinction entre les deux approches (systémique et orientée objet) : - l'orienté objet se focalise sur l'identification et la définition des objets - le systémique traite plutôt les aspects structurel, relationnel Trois idées essentielles forgent la notion du système - l'autonomie dans l'environnement - la cohérence assurée par l'interdépendance d'éléments en interaction - la permanence conservée malgré les modifications. Ces idées, si elles ne s'appliquent pas directement à l'objet, interviennent significativement dans la modélisation objet, laquelle peut s'envisager comme la production d'un <<système des objets>>. Il n'est pas un précepte de la démarche systémique qui ne puisse s'appliquera la lettre à la démarche objet. o La modélisation systémique applique sur la réalité un modèle lui permettant d'accéder à une certaine intelligibilité : Le modélisateur prend conscience de la restriction opérée par son modèle, et l'impute explicitement à son intention. Il est donc théoriquement capable d'en rendre compte. o La modélisation objet procède de même, mais dispose d'un schéma de représentation plus simple : l'objet en tant qu'encapsulation de données et de traitements, la classe en tant que type abstrait. La jonction entre les deux courants s'établit, en considérant l'objet comme l'unité de base et le terme de la décomposition du système. On rejoint la notion d'implexe définie par Jean Louis Lemoigne Implexe: caractérise une unité d'action indécomposable, irréductible pourtant à un élément unique La deuxième partie de cette définition formule le constat selon lequel l'implexe conserve une certaine complexité impossible à réduire (sous peine de déformer la réalité). Au-delà de la Concepts de base de la programmation orientée objet Page 3/23 coïncidence entre l'objet et l'implexe, de nombreuses notions du paradigme systémique correspondent à des notions de l'orienté objet. L’autonomie renvoie à la localité; la cohérence à la notion de type abstrait: l'interaction aux notions connexes de message, contrat, responsabilité et comportement. En définitive, le paradigme objet hérite légitimement du paradigme systémique. 2.1.5 Implémentation progressive La généralité des catégories objet alliée au caractère naturel des objets se traduit par une chaine d'implémentation sans rupture: on repère l'objet réel, c'est- à- dire l'objet dans le monde réel on formule l'objet modèle dans l'espace de représentation c'est-à-dire le modèle on l'implémente en objet informatique La puissance de la démarche objet réside indubitablement dans la linéarité et la continuité de l'implémentation. Contrairement aux démarches traditionnelles, à aucun moment le développement ne rencontre de rupture : aucun changement de niveau n'oblige à remodeler la physionomie du système. Sauf erreur ou réorientation, ce qui est objet au début se retrouve objet à la fin, ayant conservé la même définition fonctionnelle. Même quand les approfondissements amènent à déclarer des composants d'un objet initial, cet objet subsiste sans qu'il soit besoin de le redéfinir dans sa finalité ou son interface. Cette chaîne d'implémentation garantit la continuité, et autorise le recours au prototypage comme cycle de développement. 2.1.6 Critère de décomposition Pour la démarche objet, le critère de décomposition s'impose : c'est l'objet. On appelle « orienté-objet » toute méthode dont le critère de décomposition horizontale est l'objet, en tant qu'abstraction d'un objet du monde réel. Pour être précis, le composant de base que l'on trouve dans le logiciel est la classe comme abstraction d'un ensemble d'occurrences : les objets, nommés également instances de la classe. Cette unité de décomposition du logiciel est la même que l'unité de perception du réel. L'unité manipulée par l'utilisateur est sans conteste l'objet comme occurrence concrète, mais on peut supposer que l'utilisateur se livre plus ou moins consciemment à une généralisation qui lui permet d'identifier des entités abstraites correspondant aux classes. En programmation classique, l'unité minimale à laquelle aboutit la décomposition est la procédure ou la fonction ou encore le bloc d'instructions. Il s'agit donc d'un traitement ou d'une action, éléments beaucoup moins riches de sens et également moins stables. Le fait d'utiliser la même unité tout au long du développement est à la base de la chaîne d'implémentation et a des conséquences importantes sur l'architecture du logiciel comme sur son évolution. Architecture du logiciel : collection de classes, collection que ne contraignent pas l'arbre d'héritage, ni uploads/Philosophie/ 2-concepts-de-base.pdf
Documents similaires
-
106
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 14, 2022
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 0.9676MB