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)

les tâches élémentaires devenues plus claires plus nettes deviennent plus simples plus rapide à programmer plus facile à contrôler et mettre au point.