Paradigme de programmation De l intérêt de la programmation objet Philippe Holland :...

9
Paradigme de programmation De l ’intérêt de la programmation objet Philippe Holland : philippe.holland@ free

Transcript of Paradigme de programmation De l intérêt de la programmation objet Philippe Holland :...

Page 1: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Paradigme de programmationDe l ’intérêt de la programmation objet

Philippe Holland : [email protected]

Page 2: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 2

Sommaire

Différents paradigmes de programmation

Origine de la programmation objet

Principes de programmation objet

Bonnes pratiques de conception objet

Historique de la modélisation UML

Programmation par assamblage alternative au « Make all versus buy all »

Typologie des investissements dans les systèmes d ’information

Page 3: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 3

Différents paradigmes de programmation

Programmation procédurale :– Un programme est vu comme un ensemble d’instructions qui manipulent un ensemble de

données– Exemples : Fortran, Pascal, C

Programmation fonctionnelle :– Un programme est vu comme l’équivalent informatique d’une fonction mathématique qui

associe à des valeurs d’entrée des valeurs de sorties – Exemples : Lisp

Programmation logique :– Un programme est vu comme un raisonnement logique dont l’exécution est une preuve de

la déductibilité d’une formule logique. – Exemples : Prolog

Programmation objet :– Un programme est vu comme un ensemble de petites entités interagissant par messages. – Exemples : C++, Java

Page 4: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 4

Origine de la programmation objet

La programmation objet est aujourd’hui une réalité industrielle qui comme la plupart des innovations en informatique est issue de la recherche en Intelligence Artificielle :

– 1967 : SIMULA (Norvège)L’objectif initial était de simuler le comportement d’un système (dans le domaine de la recherche nucléaire) ayant des parties pouvant fonctionner en concurrence. Les langages constituées de suite d’instructions successives ne pouvaient convenir. En poussant jusqu’au bout la logique de programmation modulaire on est parvenu à élaboré un langage permettant de définir des modules stables avec des comportements possibles. C’est la remise en question de la séparation entre données et programmes.

– 1972 : SMALLTALK (Centre de recherche de Xerox à Palo Alto)Alan Kay souhaitait réaliser un langage de programmation de son ordinateur convivial (souris, écran bitmap,…) il reprend est systématise SIMULA pour faire de SMALLTALK le premier langage objet.

Si la cuisine est l’art de réutiliser les restes, la programmation objet est aujourd’hui son équivalent informatique

Page 5: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 5

Principes de programmation objet

La séparation classique entre les données et les traitements dans la programmation procédurale est remplacée par des objets qui incorporent des aspects statiques (données) et dynamiques (traitements) dans la programmation objet.

Principes de bases :

– Modélisation (classes et instances) :» Une classe regroupe des objets possédant une structure et des comportements

communs. Une classe est définie par des attributs et des méthodes qui leur sont applicables.

» Les objets qui correspondent à une classe sont des instances de cette classe

– L’encapsulation (des données) :» N ’autoriser la modification des données d ’un objet que via ces méthodes.

– L’activation (méthodes) :» Appel de méthode d ’un objet par l ’équivalent d ’un envoi de message

– L’héritage :» Récupération automatique des attributs et méthodes d’une classe parente et de

définition d’une hiérarchie de classes

Page 6: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 6

Bonnes pratiques de conception objet

Tout est objet– Si on peut parler de quelque chose en lui attribuant des propriétés ou que cette chose

peut être manipulée alors il faut en faire un objet

Autonomie et localité– Un programme objet doit être constitué d’unités indépendantes, chacune disposant de

sa propre mémoire locale et des opérations qu’elle sait effectuer

Composition et affinage– L’objectif est de n’écrire que la différence entre ce qui existe et ce qu’on souhaite

réaliser en utilisant le classique mécanisme de composition et celui plus original d’affinage qui consiste à hériter de classes plus génériques.

– Plus on est capable de concevoir des classes abstraites plus on est capable de définir des mécanismes de gestion génériques sans nécessairement disposer de tous les mécanismes d’implémentation propres à des classes de plus bas niveau.

Page 7: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 7

Modélisation UML

Dans les années 70, il existait en France une profusion de méthodes d’analyse à l’initiative de nombreuses SSII avec deux grandes écoles celle de l’approche par les données et celle de l’approche par les traitements.

En 1979, le projet français Merise est lancé avec le soutien du Ministère de l’Industrie et rencontre un vif succès pendant plus d’une décennie.

Les nouvelles approches de modélisation et le savoir-faire acquis par les SSII permettent de réconcilier l’approche par les données et l’approche par les traitements et de mettre la modélisation au cœur du processus d’étude, les modèles étant construits pour comprendre, diagnostiquer et proposer des solutions.

Le principal reproche à Merise est d’avoir sous-estimé l’importance de la modularité des SI.

UML né en 1997 de la fusion de trois méthodes d’analyse orientées objet initialement issues des milieux industriels à l’initiative de Rational Software :

– Objet Oriented Design de Booch, DOD, structuration de programme Ada et C++– Object Modeling Technique de Rumbaugh, General Electric, modélisation de

comportement– Object Oriented Software Engineering, Ericson, modélisation d’utilisation du système

A partir de 1998, UML est le langage de modélisation retenu comme norme par l’OMG, son intérêt continue de croître depuis auprès des développeurs

Page 8: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 8

Programmation par assemblage alternative au « Make all versus Buy all»…

Programmation de logiciel spécifique :

Solution optimale pour la satisfaction des besoins métiers

Production et maintenance coûteuse

Délais de réalisation importants

Paramétrage de logiciel générique :

Réduction des coûts et de risques à court terme

Nécessite une réorganisation des processus métiers

Avantage stratégique moins fort

Perte de control local

Solution parfois inadaptée à certaines problématiques métiers

% acheté0% 100 %

Courbe de réduction

des coûts Courbe de flexibilité

La programmation par assemblage :

Solution optimale pour la satisfaction des besoins métiers

Coût maîtrisé

Possibilité de développement d’un système stratégique

L’alternative offerte par la programmation par assemblage est une solution beaucoup plus souple

que la programmation de logiciel spécifique ou le paramétrage de logiciel générique.

Les besoins et les technologies évoluent tellement vite qu’aujourd’hui la programmation par assemblage est inévitable.

Programmation de logiciel spécifique :

Solution optimale pour la satisfaction des besoins métiers

Production et maintenance coûteuse

Délais de réalisation importants

Paramétrage de logiciel générique :

Réduction des coûts et de risques à court terme

Nécessite une réorganisation des processus métiers

Avantage stratégique moins fort

Perte de control local

Solution parfois inadaptée à certaines problématiques métiers

% acheté0% 100 %

Courbe de réduction

des coûts Courbe de flexibilité

La programmation par assemblage :

Solution optimale pour la satisfaction des besoins métiers

Coût maîtrisé

Possibilité de développement d’un système stratégique

Page 9: Paradigme de programmation De l intérêt de la programmation objet Philippe Holland : philippe.holland@free.frphilippe.holland@free.fr.

Page 9

Typologie des investissements dans les systèmes d ’information

Infrastructure

Systèmes transactionnels

Acquérir unavantage concurrentiel

Améliorer la capacité de tousà prendre les bonnes décisions

Systèmes d'aideà la

décision

Systèmesstratégiques

Réduire les coûts

Accroître la flexibilité,la réactivité

Risque élevé(50% d'échec)

Risque faibleRetour sur investissemententre 25 et 40%

Investissement élevéFavorise la croissance

Succès conditionné parl'utilisation

On constate pratiquement que les gros investissements réalisés dans le domaine du SI sont plus souvent fondés sur la foi que sur des démonstrations solides