heritage et reutilisation de code
Héritage et réutilisation de codes
2°)
Héritage et réutilisation de code:
L'héritage se fait par la base de niveau supérieur:
Exemple d'héritage: Base pour folios de synthèse.
Lorsqu'on
exécute la tâche de constitution de la base pour folios de synthèse BF1, on
inclus toutes les caractéristiques des folios de synthèse dans cette base.
Par
la suite, lorsqu'on est au niveau inférieur (synthèse du trimestre) il suffit
de relire BF1 pour hériter de toutes les caractéristiques des folios de synthèse
déjà incluses dans cette base alors que si on lisait dans la base B11 BIS on
n'aurait pas pu profiter des caractéristiques des folios de synthèse. Donc
lire à partir de la BF1 au lieu de lire à partir de la BIS et B11 c'est hériter
et réutiliser du code déjà fait précédemment.
Exemple d'héritage au moyen d'une base de niveau intermédiaire:
Supposons
qu'on possède déjà la BF1 qui contient les caractéristiques des folios de
synthèse. Si on n'a pas la BD1 qui précise les caractéristiques du folio de
synthèse du trimestre, on serait obligé, au niveau du groupe de lignes
ressources de calculer les taux et marges des ressources.
Alors
que quand on a une base spéciale BD1 pour le folio de synthèse du trimestre,
on a déjà incorporé dans cette base les colonnes taux et marges ce qui
permet, au niveau inférieur (niveau groupe de lignes ressources), d'hériter
des caractéristiques du folio 1 et de ne pas refaire la lecture, le transcodage
et le calcul de taux et marges.
L'héritage
permet de confier au parent (BD1) le soin de régler une tâche commune (calcul
de taux) en une seule fois, sur un seul lieu (BD1) qui profitera à tous les
enfants (ressources, remplois, frais etc...) qui hériterons des bénéfices de
cette tâche et des caractéristiques communes (taux, marges).
Si
on n'a pas la BD1 on doit calculer les taux et marges plusieurs fois et cela
fait une charge de travail plus volumineuse, une plus grande quantité de save
data, un temps d'exécution plus long.
Tandis
qu'avec le principe de réutilisation de codes par héritage, le nombre de
queries est réduit au minimum, le nombre de tâches est réduit au minimum,
tout ce qui peut être mis en facteur de façon pratique est mis en facteur, le
nombre de tables intermédiaires est réduit, la procédure voit sa taille réduite
et l'exécution devient plus rapide, l'application devient moins complexe.
Résumé de l'héritage:
Lorsqu'on exécute une tâche (exemple: chargement BD1), on
exprime des caractéristiques
(exemple: caractéristique 1 = synthèse
caractéristique 2 = trimestre)
Lorsqu'on écrit dans une base orientée objets on stocke
ces caractéristiques (exemple: caractéristiques du folio 1)
Lorsqu'on lit à partir d'une base orientée objets on hérite
de ces caractéristiques.(exemple: caractéristiques du folio 1)
Lorsqu'on exécute des tâches successivement tout en écrivant
dans des bases et en relisant à partir de ces bases en chaîne, on obtient, à
partir d'un base contenant des caractéristiques générales, des bases
contenant des caractéristiques de plus en plus fines, de plus en plus spécifiques,
jusqu'à arriver au niveau où il ne reste plus qu'à programmer les caractéristiques
du groupe de lignes ou de la ligne de l'état de sortie.
Ainsi le traitement est ventilé sur différents niveaux
d'abstraction et chaque niveau ne traite que ce qui le concerne spécifiquement
et ignore le reste.
Exemple d'un niveau intermédiaire:
BD1:
à ce niveau, on ne s'occupe pas des détails des lignes.
On ne s'occupe que d'une seule caractéristique: elle
s'appelle : trimestre. Pour l'exprimer on fait le calcul de taux.
A
ce niveau on ne s'occupe pas non plus du transcodage et de la sélection de
lignes synthèse, ces travaux sont déjà faits plus haut en amont.
Exemples de relations entre caractéristiques et tâches:
caractéristique = trimestre ===> tâche = calcul de
taux
caractéristique = synthèse ===> tâche = sélection lignes
des folios de synthèse
caractéristique = comparaison ===> tâche = calcul d'écarts
et variations
Une caractéristique détermine une classe:
exemples:
classe des folios de synthèse
classe des folios de détail
classe des lignes du trimestre
classe des lignes de comparaison
Pour chaque classe on définit un traitements spécifique
à la classe
Il est plus rapide de traiter une classe que de traiter un
à un tous les éléments de la classe. D'où gain de productivité: Développement
moins coûteux pour les évolutions futures, et exécution plus rapide dans les
CTIR.
Une classe est un ensemble d'objets de même type
Exemples de types de lignes avec des taux:
type-taux = 1
type-taux = 2
type-taux = 3
Chaque type-taux détermine une classe.
Chaque classe comprend des lignes qui sont traitées
ensemble.
L'ensemble des type-taux englobe toutes les lignes d'un
folio du trimestre.
Une fois qu'on a traité tous les type-taux, on a traité
toutes les lignes du folio pour ce calcul de taux.
le nombre de lignes du folio (=80) est plus grand que
le nombre de type-taux (=3): conclusion = gain de temps.
Exemple de types de lignes avec des écarts et variations:
type-var = 1
type-var = 2
type-var = 3
type-var = 4
Chaque type-var détermine une classe de lignes avec écarts
et variations.
Chaque classe comprend des lignes qui sont traitées en même
temps.
L'ensemble des type-var représente l'ensemble des lignes
d'un folio de comparaisons.
Une fois qu'on a traité tous les type-var, on a traité
toutes les lignes du folio pour ce calcul d'écarts et variations.
Le nombre de lignes du folio (=80) est plus grand que
le nombre de type-var (=4): conclusion = le calcul des
variations par types de variations est optimisé.
Chaque ligne avec écarts et variations hérite de la
classe à laquelle elle appartient. De même chaque ligne avec taux hérite de
sa classe.
La technique de l'héritage permet de traiter simplement
les classes (peu nombreuses) de façon moins coûteuse au lieu de traiter les
lignes (plus nombreuses et plus coûteuses).