Settings

Theme

Ad-Hoc Features and Where to Find Them, Part 1: Origin Story

blog.ptidej.net

4 points by yann-gael 4 months ago · 2 comments

Reader

yann-gaelOP 4 months ago

When you look at a piece of code/software, it is often fairly intuitive to know where/what are some of the implemented features; either because there is a good amount of documentation, the code is well structured, or because there are tools that help with feature location. However, not all features are simple to find: some because of poor maintenance, others because the feature was not necessarily treated as such during the implementation. I would call these ad-hoc features. As the name suggests, these features were implemented without much thought: maybe developers thought it would not be useful to properly package them and they ended up being reused elsewhere, maybe a large team got confused and re-implemented the same piece of code many times, or maybe someone just didn't recognize that there was even a feature to begin with!

  • luca-sctr 4 months ago

    A recent paper[1] has shown that such features (which can also be looked at as refactoring candidates) can be detected with concept lattices, using a 'reverse-inheritance' relationship.

    Their tool is available[2] on github, for those wishing to experiment with ad-hoc features.

    [1] H. Mili, I. Benzarti, A. Elkharraz, G. Elboussaidi, Y. -G. Guéhéneuc and P. Valtchev, "Discovering Reusable Functional Features in Legacy Object-Oriented Systems," in IEEE Transactions on Software Engineering, vol. 49, no. 7, pp. 3827-3856, July 2023

    [2] https://github.com/hafedhmili/featurediscovery

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection