Managing Big Clones to Ease Evolution: Linux Kernel Example

Kuldeep Kumar, Stan Jarzabek, Daniel Dan
2016 Proceedings of the 2016 Federated Conference on Computer Science and Information Systems  
Successful software is often enhanced and adapted to the needs of new users. During evolution, a software system grows in size, becomes more complex, and costly to maintain. In this paper, we point to big clones-large granular duplicated program structures such as files or directories-as one of many reasons why this happens. Using the Linux kernel as an example, we show that big clones arise in the Linux kernel despite careful architecture design and a systematic approach for managing
more » ... y. We propose a solution to avoid these big clones by representing them as generalized templates in ART (Adaptive Reuse Technique). ART templates are constructed on top of the Linux code, without conflicts with the state-of-art techniques and tools used to manage the Linux kernel. Benefits include simplification of the Linux kernel due to non-redundancy, easier comprehension, and traceability of the change impact during evolution. The proposed technique is general and the Linux example discussed in this paper also illustrates general phenomena.
doi:10.15439/2016f173 dblp:conf/fedcsis/KumarJD16 fatcat:wymbif7blbbxzadslvey3es5ga