Changer le paradigme de la conception et de la construction de logiciels

Changer le paradigme de la conception et de la construction de logiciels

Il faut aspirer à changer le paradigme de la conception et de la construction de logiciels. Le concept principal est la transition d’une ingénierie logicielle centrée sur le code vers une ingénierie basée sur des modèles, afin d’atteindre une plus grande cohérence, un niveau accru d’automatisation et de productivité. En un mot, il faut livrer des logiciels en moins de temps et à moindre coût.

Cela dit, la nature abstraite des concepts rend souvent difficile la compréhension complète de l’ensemble de la procédure. Par conséquent, dans ce billet de blog, nous utiliserons une métaphore extensive tirée du domaine du génie civil à travers laquelle nous développerons progressivement les concepts. Une fois cela fait, dans la deuxième partie de cet article de blog, nous examinerons la manière afin d’automatiser le processus de création de services.

Rien qu’en jetant un coup d’œil à l’extérieur d’une maison victorienne, nous observons des propriétés et des modèles communs qui la différencient de toutes les autres. Par exemple, ils ont des toits raides de couleur sombre et beaucoup de détails d’ornementation. De plus, ils sont construits avec des briques et ont beaucoup de fenêtres à guillotine fantaisie avec de grandes vitres.

De plus, les maisons victoriennes partagent de nombreuses caractéristiques communes dans leur intérieur. Les papiers peints et les tapis sont riches en motifs avec l’un ou l’autre teint en rouge rubis foncé riche ou en vert forêt. L’intérieur présente également des meubles fortement rembourrés qui sont généralement rembourrés, tandis que les boiseries sont généralement de couleur sombre. Enfin, lorsque de telles maisons ont été introduites, sous le règne de la reine Victoria, elles avaient des plafonniers à gaz, remplaçant progressivement ceux par des bougies.

Bien sûr, le but de cet article de blog n’est pas d’examiner complètement le style victorien ou même d’être absolument précis à ce sujet. Le but est de démontrer clairement que ce style spécifique, comme tout autre, intègre des caractéristiques et des propriétés distinctes qui le différencient des autres. Par conséquent, une fois que vous décidez d’acheter une telle maison, vous vous attendez à ce qu’elle ait les propriétés susmentionnées. Pour secouer cette métaphore, supposons que nous sommes les spectateurs cachés d’une conversation entre un client du 19ème siècle, qui veut acheter une maison, et un ingénieur civil. Nous supposerons également que cet ingénieur civil ne conçoit que des maisons victoriennes. De plus, il jouera également le rôle d’un décorateur de style victorien de l’intérieur du bâtiment. Par conséquent, puisque ce client a choisi cet ingénieur spécifique, cela signifie qu’il sait que ce qu’il va acheter est une maison victorienne avec les propriétés susmentionnées.

Au cours de cette conversation, le client expliquerait probablement ses besoins à l’ingénieur. Par exemple, il voudrait probablement un salon spacieux, une cuisine, des toilettes, une salle à manger lumineuse, une chambre principale et deux chambres d’enfants, une pour un garçon et une pour une fille. Cependant, au cours de cette première étape de cette collaboration, personne ne considère les problèmes de conception ou les matériaux spécifiques qui devraient être utilisés pour le bâtiment. Ils sont axés sur des concepts liés au domaine de la construction d’habitations. Ainsi, ils ne discutent que du type et du nombre de pièces qu’il devrait avoir et probablement de quelques détails et propriétés supplémentaires. C’est ça !

C’est en fait ce qui se passe lors de la première étape, qui est la formulation du modèle indépendant de calcul. Rien de ce qui a à voir avec la conception du logiciel lui-même n’est discuté, sans parler des technologies de mise en œuvre ou du codage spécifiques. Ce n’est qu’une discussion sur ce qui devrait être inclus dans cette maison qui va être construite et rien de plus.

Une fois que l’ingénieur civil a reçu les concepts souhaités de son client, il commence patiemment et méticuleusement à concevoir le bâtiment en gardant à l’esprit que le style victorien doit lui être appliqué. Il s’agit d’un processus étape par étape que cet ingénieur civil doit suivre afin de créer le design de la maison de telle manière que tous les concepts demandés par son client (3 chambres, 1 salon, etc.) sont pris en charge. En particulier, il concevra une chambre de garçon en y appliquant des propriétés victoriennes comme des papiers peints et des tapis à motifs lourds, des meubles en bois de couleur foncée pour tous les placards/commodes, etc. et bien sûr des fenêtres à guillotine avec de grandes vitres et un gaz…

Cependant, l’ingénieur ne prend pas encore la peine de choisir les matériaux spécifiques avec lesquels la maison sera construite. Il écrit simplement sur sa conception que pour l’extérieur de la maison, on utilisera une sorte de briques. De plus, les murs intérieurs seront recouverts d’une sorte de papier peint à motifs, tandis que les meubles seront en bois de couleur foncée et l’éclairage sera d’une sorte de plafonnier à gaz. Arrêt complet! Une fois qu’il a fini d’appliquer le style victorien à chaque concept que son client a demandé, il sait qu’il en a terminé avec la deuxième phase, qui est la formulation du modèle indépendant de la plate-forme. En d’autres termes, dans cette deuxième phase, la conception de toute la maison qui satisfait les besoins du client, qui ont été prescrits est introduite.

Une fois que l’ingénieur a terminé, avant d’appeler son équipe de construction pour construire la maison, il doit encore décider des matériaux spécifiques à utiliser pour cette maison spécifique. Comment décide-t-il cela ? Ces informations proviennent principalement de son client. Le client devra choisir une combinaison spécifique de marques de matériaux que son ingénieur est capable de gérer.

Une fois que l’ingénieur connaît sa sélection de clients, il peut passer à la phase suivante. À ce stade, il sait que les parties du bâtiment constituées de briques doivent être construites avec des briques de marque X, les papiers peints doivent être de marque Y, l’éclairage au gaz du plafond doit être un modèle spécifique de 1897 de marque Z, etc. En fait, lorsque ce point est atteint, l’ingénieur sait qu’il a transformé chaque composant de la maison en son homologue spécifié, qui est le modèle spécifique à la plate-forme. En d’autres termes, l’ingénieur a spécialisé les matériaux avec lesquels le bâtiment de cette conception spécifique décrite va être mis en œuvre selon l’une des combinaisons de matériaux disponibles. D’autres clients pourraient éventuellement choisir d’autres combinaisons de matériaux.

La dernière étape consiste à employer une équipe de construction spécifique qui sait comment construire les bâtiments victoriens avec le type spécifique de matériaux sélectionnés. Par exemple, il devra embaucher des maçons qui savent manier les briques de marque X suivant le style victorien. De même, il fera appel à un décorateur d’intérieur qui saura poser sur les murs des papiers peints en Y à gros motifs etc. Bien sûr, il est fort probable que certaines parties du bâtiment soient partiellement achevées voire vides. Par exemple, des parties comme un jardin (figure 4) nécessiteront du personnel spécialisé, comme un jardinier, pour être achevées. Cette dernière étape est la phase analogue de la génération de code. Certaines parties du code seront entièrement implémentées, tandis que d’autres nécessiteront l’intervention d’un programmeur pour être complétées.

L’étape finale est la génération du code (l’action de construire) et la révision par les développeurs (experts spécialisés). Il faut cependant souligner que cette procédure est automatisée. Par exemple, si un client était capable de parler à un moteur imaginaire qui sait construire des maisons victoriennes, il lui dirait ses besoins et le moteur lui renverrait le bâtiment automatiquement et instantanément ! En d’autres termes, les transformations, les transitions de phase en phase, sont automatisées.