Jesus Alejandro Padilla’s research while affiliated with University of Waterloo and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (2)


A Study of Feature Scattering in the Linux Kernel
  • Article

December 2018

·

66 Reads

·

54 Citations

IEEE Transactions on Software Engineering

Leonardo Passos

·

·

·

[...]

·

Jesus Alejandro Padilla

Feature code is often scattered across a software system. Scattering is not necessarily bad if used with care, as witnessed by systems with highly scattered features that evolved successfully. Feature scattering, often realized with a pre-processor, circumvents limitations of programming languages and software architectures. Unfortunately, little is known about the principles governing scattering in large and long-living software systems. We present a longitudinal study of feature scattering in the Linux kernel, complemented by a survey with 74, and interviews with nine Linux kernel developers. We analyzed almost eight years of the kernel's history, focusing on its largest subsystem: device drivers. We learned that the ratio of scattered features remained nearly constant and that most features were introduced without scattering. Yet, scattering easily crosses subsystem boundaries, and highly scattered outliers exist. Scattering often addresses a performance-maintenance tradeoff (alleviating complicated APIs), hardware design limitations, and avoids code duplication. While developers do not consciously enforce scattering limits, they actually improve the system design and refactor code, thereby mitigating pre-processor idiosyncrasies or reducing its use.


Feature scattering in the large: a longitudinal study of Linux kernel device drivers

March 2015

·

35 Reads

·

38 Citations

Feature code is often scattered across wide parts of the code base. But, scattering is not necessarily bad if used with care—in fact, systems with highly scattered features have evolved successfully over years. Among others, feature scattering allows developers to circumvent limitations in programming languages and system design. Still, little is known about the characteristics governing scattering, which factors influence it, and practical limits in the evolution of large and long-lived systems. We address this issue with a longitudinal case study of feature scattering in the Linux kernel. We quantitatively and qualitatively analyze almost eight years of its development history, focusing on scattering of device-driver features. Among others, we show that, while scattered features are regularly added, their proportion is lower than non-scattered ones, indicating that the kernel architecture allows most features to be integrated in a modular manner. The median scattering degree of features is constant and low, but the scattering-degree distribution is heavily skewed. Thus, using the arithmetic mean is not a reliable threshold to monitor the evolution of feature scattering. When investigating influencing factors, we find that platform-driver features are 2.5 times more likely to be scattered across architectural (subsystem) boundaries when compared to non-platform ones. Their use illustrates a maintenance-performance trade-off in creating architectures as for Linux kernel device drivers.

Citations (2)


... A related concept is scattering of features; instead of organizing kernel code in a modular way, files and functionalities are extensively spread within a subsystem or across multiple subsystems. Existing results indicate that Linux kernel developers try to limit global scattering by making particularly device drivers as self-contained as possible, but the device driver subsystem has still been prone to scattering [36]. Although these architectural reasons may provide a good starting point for a theorization, it is also possible to consider the subsystems from a social perspective. ...

Reference:

Fast Fixes and Faulty Drivers: An Empirical Analysis of Regression Bug Fixing Times in the Linux Kernel
A Study of Feature Scattering in the Linux Kernel
  • Citing Article
  • December 2018

IEEE Transactions on Software Engineering

... Unfortunately, locating features is challenging. Feature implementations are often scattered across the codebase [91] and vary in granularity [60,69], from lines of code to whole subsystems. Code can also belong to multiple features, such as for featureinteraction code, which controls the system behavior when two or more features interact [2,8,11,32]. ...

Feature scattering in the large: a longitudinal study of Linux kernel device drivers
  • Citing Conference Paper
  • March 2015