Encapsulation of legacy software: A technique for reusing legacy software components

✒ Enzo SandrĂ© · 📆 02/11/2023 · đŸ§© Design (Anti-)Patterns · 📐 Architecture

đŸšïž Parmi les composants obsolĂštes*, les plus difficiles Ă  gĂ©rer sont ceux dont la technologie sous-jacente est dĂ©prĂ©ciĂ©e, voire abandonnĂ©e.

📩 Faut-il reprendre ou refaire de tels composants ? La question n’admet aucune rĂ©ponse gĂ©nĂ©rale, trop de paramĂštres sont contextuels. Dans le cas oĂč l’on choisit de reprendre, deux options s’offrent Ă  nous : encapsuler ou adapter. Plus exactement, il s’agit d’un continuum, car l’encapsulation parfaite, celle qui ne requiert aucune adaptation, n’existe souvent pas.

đŸ§‘â€âš•ïž L’encapsulation peut s’effectuer Ă  plusieurs niveaux. Dans le plus grossier, le programme est lancĂ© avec des entrĂ©es forgĂ©es, ses sorties sont converties dans le format du nouveau systĂšme. Dans le plus fin, le code du composant obsolĂšte est modifiĂ© afin d’accepter les entrĂ©es telles que le requiert le nouveau sytĂšme. Ce dernier est bien plus chronophage que le premier niveau.

⌛ La technologie Ă©tait dĂ©jĂ  mĂ»re en 2000 quand ce papier a Ă©tĂ© Ă©crit. Encapsuler est bien moins coĂ»teux qu’un redĂ©veloppement, mais au prix d’une fuite en avant. Maintenir le composant obsolĂšte sous cloche sera de plus en plus difficile avec le temps. Ca n’est jamais une solution dĂ©finitive, mais un moyen d’acheter du temps, afin de refaire le composant ou de modifier le besoin qui en est Ă  l’origine.

* L’auteur utilise le terme de Legacy, impropre ici.

SOURCE

Sneed, H.M. Encapsulation of legacy software: A technique for reusing legacy software components. Annals of Software Engineering 9, 293–313 (2000). DOI:10.1023/A:1018989111417

Enzo Sandré


📄 Lien public DOIs: 10.1023/A:1018989111417