coo poo concl industrialisation
L'industrialisation
L'approche
orientée objets c'est comme l'industrialisation appliquée à la production de
logiciels.
Quand
on fait des voitures et qu'on fait des tas de pièces A (boulons) et des tas de
pièces B (écrous) il faut que n'importe quelle pièce A (boulon) puisse
s'adapter à n'importe quelle pièce B (écrou) correspondant. Il faut des
normes et des standarts. sinon les voitures seraient très chères à produire
si on devait les mettre au point une à une sur de tels sujet. l'astuce de la
grande production en grande série à grande échelle c'est de mettre au point
une fois pour toutes un modèle de voitures (ou de logiciel) et de reproduire en
grande quantité à grande échelle le même modèle (avec de petites variantes
de couleur) pour réduire les coûts unitaires et augmenter la productivité.
Quand
on fabrique des voitures en grande série pour réduire les coûts de production
et élever la productivité, on pratique la division du travail, on ne va pas
donner une grande longue chaîne de fabrication à un poste de travail on va
plutôt diviser la chaîne de production en de nombreux postes de travail où à
chaque maillon de la chaîne il y a un poste de travail qui ne fait qu'un seul
travail bien codifié standardisé normalisé et défini de façon précise.
Dans le RTGE ça va être pareil, on divise le travail par étapes et chaque étape
est bien définie, standardisée ,rationnalisée, normalisée sinon le folio 5
ne ressemble pas au folio 1, le folio 6 ne ressemble pas au folio 2 le folio 4
ne ressemble à personne et c'est la grande pagaille pour s'y retrouver.
Voici
les principes qui définissent le concept d'industrialisation
commencé à l'époque ou FORD augmentait la productivité dans la fabrication
des voitures: spécialisation, division du travail, standardisation,
normalisation, diminution des coûts unitaires, élevation de la productivité,
mécanisation, automatisation, augmentation de la proportion de capital fixe,
production en chaîne, grande production en grande série à grande échelle,
production de masse, informatisation, élévation de la qualité des produits,
et de la qualité du travail, coopération, socialisation, intégration
horizontale, intégration verticale, intégration de différentes branches, intégration
nationale, régionale, mondiale.
Elevation de la productivité dans RTGE: une fois que le
modèle est bien défini il devient plus rapide de multiplier en grand nombre
des queries toutes pareil ou presque, des tables qui se ressemblent, des procédures
sur la même architecture, des programmes sur le même principe déjà au point.
Il faut unifier, harmoniser, homogénéiser, standardiser RTGE et ne pas laisser
comme avant où plusieurs styles se confrontaient et se contredisaient.
Diminution des coûts unitaires:
une
fois qu'on a bien défini un modèle valable pour tous à travers la recherche
et l'étude et par la conception orientée objets, il devient facile rapide et
peu cher de multiplier, multiplier, encore et encore des queries toutes pareil,
reproduire en grande série à grande échelle, pratiquer la production de
masse.
Elevation de la qualité du produit et de la qualité du
travail:
Avant,
(dans la préhistoire du RTGE) la qualité du produit est égale à la qualité
du travail fourni par chaque personne à chaque endroit du RTGE, la qualité est
inégale et pas standart.
Maintenant la qualité est égale à la plus haute qualité
possible car tous se concertent dans la recherche pour trouver le meilleur modèle
possible. Donc le produit est de qualité. Ensuite on progage cette qualité à
travers les normes sur toute la surface du RTGE. Ainsi le travail de chaque
personne devient de plus grande qualité possible puisque chacun doit appliquer
les mêmes normes et standarts de qualité il ne peut plus exister quelqu'un qui
sort un produit de moindre qualité que les autres puisqu'il y a de nombreux
checkpoints de contrôle de qualité répartis tout le long de la chaîne de
production du logiciel.
L'idée
est qu'on prend son temps pour faire de la recherche et du développement pour
trouver le meilleur modèle de produit possible et ensuite on impose des règles,
normes, standarts, procédés de fabrication à travers toute la chaîne de
production de telle manière qu'aucun maillon de la chaîne de production n'échappe
aux normes et standarts de qualité maximale trouvées lors de l'étude de
solution et d'optimisation.
On fait des
objets bien encapsulés et des checkpoints bien clairs à la sortie des objets.
(Un objet c'est les procédures plus des données pour accomplir une tâche).
(encapsuler c'est mettre des frontières fortes autour de
l'objet).(une frontière forte est une frontière où une donnée non conforme
ne passe pas).
Coopération, socialisation du travail:
avant chacun
travaillait dans son coin. le résultat devient incohérent (exemple; les folios
4 7 8 on un style différent). maintenant on fait ensemble l'étude et le résultat
est unique. Donc il n'y a qu'un seul modèle, on peut donc multiplier les
queries, tables et procédure sans qu'aucun objet DB2 ne devienne incohérent
avec les autres.
avant chacun faisait des queries dans son coin les queries
sont aléatoires. maintenant on travaille par tables paramètres. les tables
paramètres sont bien définies, beaucoup mieux définies que les queries. la définition
des tables paramètres nécessite des discussions et communications. une fois
les discussions arrétées. les codes sont communes à tout le monde. il ne peut
y avoir de queries contradictoires ou incompréhensible puisque presque tout est
piloté par des tables paramètres. les espaces communs deviennt plus grands les
espaces particuliers deviennent plus petits, la communication devient davantage
nécessaire, la cohérence et l'homogénéité augmentent. les développeurs
deviennent plus interdépendents. la compréhension devient plus générale. la
solution devient plus claire pour chaque intervenant et pour les débuggeurs. le
contrôle de qualité et des délais devient plus fiable pour le responsable du
pilotage de l'application.
Augmentation de la proportion de coûts fixes:
avant il y avait peu de tables et beaucoup de queries. après optimisation il y
a plus de tables (paramètres) et moins de queries. Une table paramètres est
plus longue à installer qu'une query elle ressemble à un coût fixe de départ.
Installer un grand nombre de tables est plus coûteux qu'installer un grand
nombre de queries. par contre, une fois les tables installées, il coûte moins
cher de modifier un mot dans une table que de modifier un mot dans une query. il
est moins coûteux de modifier cent mots dans les tables que de modifier cent
mots dans les queries.
donc l'investissement de départ est plus lourd (comme
quand on contruit une grande chaîne de production moderne de voitures dernier
modèle) mais le coût unitaire à l'arrivée est plus bas si on dépasse le
seuil de quantité produite (queries).
l'esprit d'augmenter la proportion du coût fixe c'est
comme l'esprit de faire le TGV pour remplacer le train traditionnel: pour faire
le TGV il est plus coûteux et plus long de couper les montagnes, combler les
vallées, creuser des tunnels, contruire des ponts ,développer des suspensions
nouvelles, locomotives nouvelles etc...
mais une fois fini, le TGV va plus vite et fait gagner plus d'argent.
pour le RTGE la technique orientée objets est pareil que
le TGV, ça coûte cher au départ de décomposer les procédures en tâches et
étapes, de créer et saisir les tables paramètres pour chaque étape, de définir
les tables de données permanentes, créer et charger pour remplacer les tables
intermédiaires temporaires. Mais après la mise au point, le produit est plus
facile à maintenir et plus évolutif, plus grande fiabilité et meilleure
ergonomie et convivialité, plus puissant et plus performant(il fait plus de
choses en moins de queries et il les fait plus vite).
remarque: d'habitude un produit plus puissant prend plus de
temps machine et plus de place disque(opposition entre L4G plus puissant plus coûteux
et L3G moins puissant plus performant en temps CPU). Un produit plus puissant
est d'habitude moins performant en temps CPU. D'habitude le produit le plus
performant est le plus proche de la machine comme l'assembleur qui est aussi le
moins lisible et le moins convivial et le moins proche de l'utilisateur humain.
la particularité de l'approche orientée objet dans RTGE
est que ça le rend plus à la fois plus puissant (en peu de mots en touche peu
d'endroits, on peut accomplir plus de choses: exemple: modifier la lecture ou le
calcul ou la mise en forme)
et plus performant: ça tourne plus vite, ça fait tourner
beaucoup moins de queries dans une procédure, chaque query a un effet beaucoup
plus grand grâce à la technique de l'héritage appliquée dans RTGE orienté
objets.
dans le RTGE nouveau on bénéficie de tous les avantages
du relationnel et de toute la puissance de l'orienté objets sans avoir les
inconvénients de bases de données orientées objets (coûteux à l'exécution)
on a dans RTGE les avantages des deux mondes: 100 % des fonctionnalités du
relationnel 100 % de la rapidité des SGBDR (comparé aux SGBDOO) et en plus on
bénéficie des avantages de l'orienté objet en ce qui concerne la puissance de
chaque code et de chaque intervention future.
l'intervention future est puissante parceque dans le futur
chaque fois qu'on intervient, on intervient à un endroit et le logiciel est
contruit de telle manière que chaque endroit où on intervient multiplie
l'effet par dix par cent, on n'est plus obligé d'intervenir à dix à cent
endroits comme avant. c'est pour cela que c'est puissant même pour le futur.
exemple: dans le futur si on intervient
dans l'endroit appelé table paramètre pour lecture des folios de détail, cela
influera sur l'équivalent de centaines de queries actuelles alors que ce ne
sera qu'un seul endroit simple et rapide à modifier. Un tel système aussi
puissant ne tourne pas plus lentement au contraire il tourne plus vite.
Production de masse en chaîne en grande série à grande
échelle:
avant, à chaque fois qu'on voit un problème, on réfléchit,
maintenant on réfléchis une fois pour toutes à tous les problèmes sur tous
les folios à toutes les étapes de fabrication du logiciel (il y a 4 folios
1,2,5,6 et 4 étapes lecture,calcul,totaux,miesenforme) et ensuite il ne reste
plus qu'à coder en masse à la chaîne en grande série à grande échelle et
contrôler la conformité aux normes. Ce qui rend le développement beaucoup
plus rapide beaucoup plus sûr beaucoup plus fiable avec une qualité plus égale
plus garantie.
production de masse: on fait de nombreuses fois de
nombreuses queries, tables et procédures qui se ressemblent toutes, sur le même
modèle ca devrait être beaucoup plus rapide qu'avant où chaque tâche devait
être sujette à une étude qui à la fin devient contradictoire avec le résultat
d'une autre étude d'une autre tâche. Ici la phase d'étude se fait en une
seule fois.
et la phase de production en chaîne se fait avec la qualité
issue de la phase d'étude. comme le modèle est validé, et comme les
composants logiciels se ressemblent tous, il ne peuvent plus être faux. un
composant logiciel ne peut être faux que s'il sort de la norme. avant il n'y
avait pas de norme donc un composant peut manquer de qualité. maintenant comme
il y a la norme, un composant conforme à la norme ne peut être que juste.
comme il existe une norme largement diffusée. plus
personne ne peut faire un logiciel faux. plus personne ne peut se tromper.
puisqu'on peut contrôler à tous les points de contrôle. plus personne ne peut
être lent car le travail est bien défini. et il se répète de la même manière
donc l'expérience est facilement acquise et avec l'expérience, la production
devient plus rapide parceque les gestes et mouvements élémentaires deviennent
bien connus ainsi que leur enchaînememt cécrit dans un dossier bien clair et
précis qui contient des checklist.
Intégration horizontale:
quand
les tâches se ressemblent, on les regroupe: par exemple la tâche d'étude et
d'analyse: avant: plusieurs personnes faisaient séparément plusieurs études.
on obtient en résultat plusieurs solutions incohérentes même à l'intérieur
d'un même folio (le folio2) c'est incohérent entre deux parties (le haut et le
bas) ce qui fait des bugs, des retards, des reproches.
maintenant on met plusieurs personnes en brain trust (équipe
d'étude) qui sortent une seule solution cohérente. ce qui rend logique toute
la surface du RTGE sans aucune contradiction qui reste de l'ancien temps.
avant il y avaient dix groupes de lignes par folio et
quatre tâche par procédure de niveau siège d'un folio donc il y avaient 10 *
4 = 40 tâches à faire par niveau siège d'un folio.
maintenant on pratique l'intégration horizontale, on
regroupe les tâches qui se ressemblent on en fait une entité unique une tâche
unique , un objet unique on l'appelle par exemple "la lecture", on étude
cette lecture puis on la solutionne de façon unique, cohérente et logique.
Cela sort une solution de lecture beaucoup plus simple et rapide à implanter
que l'ancienne solution qui consistait à faire 10 lectures (une par groupe de
lignes). maintenant, avec l'intégration horizontale , pour les lectures qui se
ressemblent (celles de BP5) on fait une lecture d'un coup (ou deux selon de
faibles variances)
avant on faisait autant de calculs de taux que de groupes
de lignes (10 groupes de lignes). maintenant après intégration horizontale on
fait moins de calculs de taux. s'il existent 4 types de taux on fait seulement 4
calculs de taux et non pas 10 comme
avant. l'astuce est de regrouper
les calculs de taux qui se ressemblent dans un seul et unique calcul de taux.
on détermine donc 4 types de taux numérotés de 1 à 4 et
on les catalogue dans une table de type de taux. Si un groupe de lignes
appartient au type de taux 1 selon la table de types de taux, alors ce groupe de
lignes sera traité par la query de calcul de taux 1.
exemple: les totaux: avant on faisait autant de totaux que
de groupes de lignes: il y avaient 10 groupes de lignes donc on faisait 10
totaux. Maintenant, avec la méthode de regroupement des tâches qui se
ressemblent, on constate qu'il existe 3 types de totaux dans le folio 5 donc on
va faire 3 queries de totaux au lieu de 10 queries de totaux.
exemple d'intégration horizontale: avant il y avaient 10
groupes de lignes et une tâche de mise en forme à accomplir. on faisait donc
10 queries de mise en forme, une query de mise en forme par groupe de lignes.
maintenant, avec la technique de regrouper les tâches qui
se ressemblent pour les traiter ensemble, on regroupe toutes les queries de mise
en forme en une seule query de mise en forme. et la particularité de chaque
ligne sera exprimée par une table de correspondance.
Intégration verticale: tout ce qui appartient à
une même chaîne de production verticale doit se traiter ensemble.
avant on mélangeait ce qui appartient aux folios de synthèse
et ce qui appartient aux folios de détail dans une même table paramètres de
calculs la B13. après intégration verticale on fait la distinction entre la
chaîne verticale concernant les folios de détail et la chaîne verticale
concerant les folios de synthèse et on fait des tables paramètres de calculs
pour folios de détail et des tables paramètres de calculs pour folios de synthèse.
ce qui fait qu'on peut mieux se concentrer sur une chaîne verticale par exemple
la chaîne des folios de détail et solutionner ses spécificités (par rapport
à l'ensemble du RTGE) et ses généralités (par opposition aux spécificités
des périodicités des folios 5 et 6). ainsi on trouvera une solution commune à
tous les folios de détail et distinct des folios de synthèse.
par l'intégration verticale on fait un base pour folios de
détail un base pour folios de synthèse, une base pour folio 1, uns base pour
folio 2 une base pour folio 5 une base pour folio 6. on regroupe verticalement
tout ce qui appartient à un folio alors qu'avant c'était mélangé les frontières
de folios n'étaient pas aussi claires.
l'intégration horizontale rend les frontières de tâches
plus claires plus nettes l'intégration verticale rend les frontières de folios
plus claires plus nettes, les frontières de niveaux (synthèse ou détail) plus
claires les frontières de périodicité (trimestre, comparaison) plus claires.
l'intégration horizontale rend plus net les frontières horizontales, l'intégration
verticale rend plus nettes les frontières verticales. les frontières étant
plus nettes, les tâches élémentaires deviennents plus claires et nettes. au
lieu d'avoir 100 queries par folio et 400 queries pour le RTGE on n'aura plus
que 4 folios principaux et 4 tâches principales (ou étapes. donc 4 * 4 = 16 tâches
principale dans tout le RTGE qui se ressemblent beaucoup: par la magie de l'héritage
il n'y aura plus que 14 tâches principales (la lecture se fait en deux fois et
non pas 4: une fois synthèse une fois détail)