Conception orientee objets
Conception orientée objets
3°)
Conception orientée objets
En
général, la conception orientée objets consiste à commencer par considérer
les données et non les fonctions.
Dans
RTGE 96 la conception orientée objets se traduit par le fait qu'au tout début
de la conception, on étudie les bases orientées objets sans étudier les procédures
de transformations qui font passer d'une base à l'autre:voir le dessin de la
BDROO RTGE. Dans ce dessin, le premier de la conception, on ne voit pas les
traitements (lecture,calcul,etc...) mais on voit les bases (BIS, BF1, BD1,
etc...) avec leurs caractéristiques.
Ce
n'est qu'après que les données sont bien décomposées en ensembles de données
semblables et hiérarchisées qu'on étudie les traitements à appliquer pour
arriver aux données cibles avec les caractéristiques voulues (c'est à dire prêtes
à être éditées).
Ainsi,
dans les premiers dessins des premiers niveaux conceptuels, les traitements sont
toujours justes parce qu'ils sont absents ou bien très schématiques. Donc dans
l'analyse de haut niveau il ne peut y avoir d'erreur lorsque les traitements
varient selon l'avancement des travaux et le degré de détail étudié. Premièrement
les traitements ne sont pas représentés du tout, seuls leurs résultats sont
représentés (le pourquoi). Deuxièmement, lorsqu'on descend un peu de niveau
conceptuel, les traitement sont représentés par leurs objectifs (le quoi) et
pas leur fonctionnement interne (le comment). Par conséquent, au fur et à
mesure qu'on avance dans la précision, le travail conceptuel déjà fait n'est
jamais faux il reste toujours valable.(Le niveau haut est assez vague et général
pour rester toujours juste concernant les procédures de traitement).
Conception par les données.
La
conception orientée objets dans RTGE se fait en cherchant à déterminer les
caractéristiques des lignes de sortie de l'état.
Ensuite les lignes possédant des caractéristiques
conmunes sont classées par types de lignes ou classes.
A
ces lignes types ou classes de lignes sont affectées des traitements communs
selon les caractéristiques de ces classes.
Après
la conception orientée objets, on peut très bien programmer les lignes de même
type avec les codes et queries de même type sans pour autant mettre en facteur
les codages vers des niveaux supérieurs (parents).
La
détermination des classes et des types fait partie de la conception orientée
objets. A l'issue de la COO on obtient un dessin hiérarchique.
Le
résultat de la conception orientée objets est la classification des objets en
types d'objets dans une structure hiérarchique.
Exemples de types de lignes d'état RTGE: lignes des folios
de synthèse, lignes des folios de détail, lignes avec taux, lignes sans taux,
lignes sous-totaux ...
Une
fois qu'on obtient une structure hiérarchique, on peut très bien programmer en
faisant autant de lectures et calculs que de groupes de lignes. (40 lectures et
calculs pour 40 groupes de lignes).
Dans ce
cas quel est l'avantage de la conception orientée objets? elle permet de
traiter de manière identique tous les groupes de lignes appartenant à un même
type, une même classe, une même catégorie. C'est déjà un bon point, cela
permet d'être clair: on traite toutes les ressources, toutes les lignes
trimestres, toutes les lignes synthèse avec la même technique.
Apport de la programmation orientée objets.
Qu'apporte
la programmation orientée objets en plus de la conception orientée objets?
Elle
permet de traiter en une seule fois toutes les lectures des folios de synthèse,
et à un seul endroit tous les calculs des lignes détail du folio de synthèse
du trimestre.
Quelle
est la différence entre la COO et la POO?
Avec
la COO on traite de la même façon les lignes qui se ressemblent.
Avec la POO au lieu de seulement traiter de la même façon
(dupliquée en autant d'exemplaires) on traite en même temps et en une seule
fois les lignes semblables. Ainsi, avec la POO, chaque type de traitement se
retrouve en une seule fois dans toute l'application et non pas en autant de fois
qu'il y a d'occurences du type de traitement à exécuter. La COO+POO optimise
plus loin que la COO seule qui rend clair et permet de programmer en évitant
les erreurs. Dans la COO chaque ligne de code appartient à une classe et donc
ressemble à d'autres lignes de code semblables et donc peut être validée et vérifiée
par comparaison avec les lignes de codes appartenant à la même classe. C'est déjà
pas mal d'avoir une référence sûre pour chaque ligne de chaque query d'une
application.
Ú‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑¿
³ * Programmation sauvage empirique ===> pas d'héritage
³
³ * Conception Orientée Objets ===> héritage
³
³ * COO sans POO ===> héritage avec duplication des
codes ³
³ * COO avec POO ===> héritage sans duplication des
codes ³
À‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑Ù
Qu'apporte la base de données orientée objets?.
Elle
permet l'héritage et la réutilisation de code.
Sans la base orientée objets on peut hériter aussi en
disant qu'un fils hérite de son parent et reprend les caractéristiques de son
parent. Exemple: le fils "ressources du folio 1" hérite du parent
"folio 1" il reprend ses caractéristiques. Mais si on n'a pas la base
orientée objets pour faire de la réutilisation de code, on doit répéter
autant de fois le même moule du parent sur les enfants, s'il y a 10 groupes de
lignes du folio 1 on doit répéter 10 fois les lectures, 10 fois les calculs.
La
base orientée objets permet de ne faire le calcul qu'une seule fois et la
lecture transcodage qu'une seule fois.
Si on reporte par copie de code, c'est l'héritage de
caractéristiques mais le code est dupliqué n fois.
Si
on écrit le résultat de l'exécution dans une base afin de relire la base après
pour profiter du produit de ce travail, alors le code est réutilisé et n'a
plus besoin d'être dupliqué, reproduit, c'est seulement son effet, le produit
de son exécution qui est reconduit et diffusé autant de fois que nécessaire
par la lecture.
La
base de données OO permet de faire la POO alors que sans la BDOO on ne peut
faire que de la COO sans la POO.