A comparison of methods for locating features in legacy software

✒ Enzo SandrĂ© · 📆 18/04/2023 · #ïžâƒŁ Façonnage de code · đŸ§Ș Tests

đŸšïž Lorsqu’il s’agit de savoir quels morceaux de code legacy sont reliĂ©s Ă  une feature que l’on veut Ă©diter, nous avons plusieurs outils Ă  notre disposition, tous complĂ©mentaires.

🔍 Le plus simple est le bon vieux Ctrl+F/grep. Rapide, mais peu prĂ©cis, il est trĂšs dĂ©pendant Ă  la qualitĂ© du nommage, rarement exemplaire dans le code legacy. Les auteurs le recommandent en premiĂšre intention, pour se familiariser avec le code.

🔩 Vient ensuite la reconnaisance logicielle, utilisant des tests afin de repĂ©rer quelles parties du code sont appelĂ©es par ceux-ci. Cette mĂ©thode est dĂ©taillĂ©e sur cette veille 10.1109/ICSM.1992.242542. Il s’agit de la mĂ©thode la plus fiable, mais aussi de la plus lourde Ă  mettre en place. Elle est en outre incapable de repĂ©rer des concepts, contrairement aux deux autres.

đŸȘą Enfin, les graphes de dĂ©pendance peuvent parfois servir, mais il dĂ©pendent d’une bonne structuration du code en module, rarement prĂ©sente dans les code legacy.

🧰 Ces trois outils se complĂštent dans la boĂźte Ă  outils du dĂ©veloppeur faisant face au code legacy.

SOURCE

Wilde, Norman, Michelle Buckellew, Henry Page, Václav Rajlich and LaTreva Pounds. “A comparison of methods for locating features in legacy software.” J. Syst. Softw. 65 (2003): 105-114. DOI:10.1016/S0164-1212(02)00052-3

Enzo Sandré


📄 Lien public DOIs: 10.1016/S0164-1212(02)00052-3