ABSTRACT
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.
- Online Appendix. http://lpassos.bitbucket.org/ modularity15/.Google Scholar
- S. Apel, T. Leich, and G. Saake. Aspectual Feature Modules. IEEE Transactions on Software Engineering, 34(2):162–180, 2008. Google ScholarDigital Library
- S. Apel, D. Batory, C. Kästner, and G. Saake. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, 2013. Google ScholarCross Ref
- T. Berger, S. She, R. Lotufo, K. Czarnecki, and A. W ˛ asowski. Featureto-Code Mapping in Two Large Product Lines. In Proceedings of the 14th International Conference on Software Product Lines, pages 498–499. Springer, 2010. Google ScholarDigital Library
- T. Berger, S. She, R. Lotufo, A. W ˛ asowski, and K. Czarnecki. Variability Modeling in the Real: A Perspective from the Operating Systems Domain. In Proceedings of the 26th International Conference on Automated Software Engineering, pages 73–82. ACM, 2010. Google ScholarDigital Library
- T. Berger, S. She, R. Lotufo, A. Wasowski, and K. Czarnecki. A Study of Variability Models and Languages in the Systems Software Domain. Transactions on Software Engineering, 39(12):1611–1640, 2013. Google ScholarDigital Library
- T. Chaikalis, A. Chatzigeorgiou, and G. Examiliotou. Investigating the Effect of Evolution and Refactorings on Feature Scattering. Software Quality Journal, pages 1–27, 2013. Google ScholarDigital Library
- J. Conway, D. Eddelbuettel, T. Nishiyama, S. Kumar, and T. Neil. Package ’RPostgreSQL’, 2013. R package version 0.4.Google Scholar
- J. Corbet, G. Kroah-Hartman, and A. McPherson. Linux Kernel Development: How Fast It is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It. http://www.linuxfoundation.org/publications/ linux-foundation/who-writes-linux-2013. Last seen: February 14, 2015.Google Scholar
- J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers. O’Reilly, 3rd edition, 2005. Google ScholarDigital Library
- M. V. Couto, M. T. Valente, and E. Figueiredo. Extracting Software Product Lines: A Case Study Using Conditional Compilation. In Proceedings of the 15th European Conference on Software Maintenance and Reengineering, pages 191–200. IEEE, 2011. Google ScholarDigital Library
- C. Dietrich, R. Tartler, W. Schröder-Preikshat, and D. Lohmann. Understanding Linux Feature Distribution. In Proceedings of the 2nd Workshop on Modularity in Systems Software, pages 15–20. ACM, 2012. Google ScholarDigital Library
- M. Eaddy, A. Aho, and G. C. Murphy. Identifying, Assigning, and Quantifying Crosscutting Concerns. In Proceedings of the 1st International Workshop on Assessment of Contemporary Modularization Techniques, pages 2–7. IEEE, 2007. Google ScholarDigital Library
- M. Eaddy, T. Zimmermann, K. D. Sherwood, V. Garg, G. C. Murphy, N. Nagappan, and A. V. Aho. Do Crosscutting Concerns Cause Defects? IEEE Transactions on Software Engineering, 34(4):497–515, 2008. Google ScholarDigital Library
- J.-M. Favre. Preprocessors from an Abstract Point of View. In Proceedings of the 12th International Conference on Software Maintenance, pages 329–339. IEEE, 1996. Google ScholarDigital Library
- D. G. Feitelson. Perpetual Development: A Model of the Linux Kernel Life Cycle. Journal of Systems and Software, 85(4):859–875, 2012. Google ScholarDigital Library
- E. Figueiredo, C. Sant’Anna, A. Garcia, T. T. Bartolomei, W. Cazzola, and A. Marchetto. On the Maintainability of Aspect-Oriented Software: A Concern-Oriented Measurement Framework. In Proceedings of the 12th European Conference on Software Maintenance and Reengineering, pages 183–192. IEEE, 2008. Google ScholarDigital Library
- E. Figueiredo, B. C. da Silva, C. Sant’Anna, A. F. Garcia, J. Whittle, and D. J. Nunes. Crosscutting Patterns and Design Stability: An Exploratory Analysis. In Proceedings of the 17th International Conference on Program Comprehension, pages 138–147. IEEE, 2009.Google Scholar
- B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer, 1st edition, 1997. Google Scholar
- M. W. Godfrey and Q. Tu. Evolution in Open Source Software: A Case Study. In Proceedings of the 16th International Conference on Software Maintenance, pages 131–142. IEEE, 2000. Google ScholarDigital Library
- G. Grothendieck. Package ’sqldf’, 2014. R package version 0.4-7.1.Google Scholar
- Hewlett-Packard Corp., Intel Corp., Microsoft Corp., Phoenix Technologies Ltd. and Toshiba Corp. Advanced Configuration and Power Interface Specification, Revision 5.0. http://www.acpi.info/ spec50a.htm. Last seen: February 14th, 2015.Google Scholar
- M. Hubert and E. Vandervieren. An Adjusted Boxplot for Skewed Distributions. Computational Statistics & Data Analysis, 52(12):5186–– 5201, 2008. Google ScholarDigital Library
- C. Izurieta and J. Bieman. The Evolution of FreeBSD and Linux. In Proceedings of the 5th International Symposium on Empirical Software Engineering, pages 204–211. ACM, 2006. Google ScholarDigital Library
- M. T. Jones. Anatomy of the Linux Kernel. IBM Developer Works, 2009.Google Scholar
- C. Kästner, S. Apel, and K. Ostermann. The Road to Feature Modularity? In Proceedings of the 15th International Software Product Line Conference, pages 5:1–5:8. ACM, 2011. Google ScholarDigital Library
- Kbuild. The Kernel Build Infrastructure. www.kernel.org/doc/ Documentation/kbuild. Last seen: February 14th, 2015.Google Scholar
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of the 11th European Conference on Object-Oriented Programming, pages 220–242. Springer, 1997.Google Scholar
- G. Krone, M.; Snelting. On the Inference of Configuration Structures from Source Code. In Proceedings of the 6th International Conference on Software Engineering, pages 49–57. IEEE, 1994. Google ScholarDigital Library
- J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. An Analysis of the Variability in Forty Preprocessor-Based Software Product Lines. In Proceedings of the 32nd International Conference on Software Engineering, pages 105–114. ACM, 2010. Google ScholarDigital Library
- J. Liebig, C. Kästner, and S. Apel. Analyzing the Discipline of Preprocessor Annotations in 30 Million Lines of C Code. In Proceedings of the 10th International Conference on Aspect-Oriented Software Development, pages 191–202. ACM, 2011. Google ScholarDigital Library
- R. Lotufo, S. She, T. Berger, K. Czarnecki, and A. Wasowski. Evolution of the Linux Kernel Variability Model. In Proceedings of the 14th International Conference on Software Product Lines, pages 136–150. Springer, 2010. Google ScholarDigital Library
- D. S. Moore, G. P. McCabe, and B. Craig. Introduction to the Practice of Statistics. W. H. Freeman, 6th edition, 2009.Google Scholar
- S. Nadi and R. Holt. The Linux Kernel: A Case Study of Build System Variability. Journal of Software: Evolution and Process, 26(8):730–746, 2014.Google ScholarDigital Library
- P. Oliveira, M. T. Valente, and F. P. Lima. Extracting Relative Thresholds for Source Code Metrics. In Proceedings of the Conference on Software Maintenance, Reengineering and Reverse Engineering, pages 254–263. IEEE, 2014.Google Scholar
- L. Passos and K. Czarnecki. A Dataset of Feature Additions and Feature Removals from the Linux Kernel. In Proceedings of the 11th Working Conference on Mining Software Repositories, pages 376–379. ACM, 2014. Google ScholarDigital Library
- L. Passos, K. Czarnecki, S. Apel, A. W ˛ asowski, C. Kästner, and J. Guo. Feature-Oriented Software Evolution. In Proceedings of the 7th International Workshop on Variability Modelling of Software-Intensive Systems, pages 17:1–17:8. ACM, 2013. Google ScholarDigital Library
- L. Passos, L. Teixeira, N. Dintzner, S. Apel, A. W ˛ asowski, K. Czarnecki, P. Borba, and J. Guo. Coevolution of Variability Models and Related Artifacts: A Fresh Look at Evolution Patterns in the Linux Kernel. Empirical Software Engineering, 2015. To appear.Google Scholar
- R. Queiroz B., L. Passos, M. T. Valente, S. Apel, and K. Czarnecki. Does Feature Scattering Follow Power-Law Distributions? An Investigation of Five Pre-Processor-Based Software Families. In Proceedings of the 6th International Workshop on Feature-Oriented Software Development, pages 23–29. ACM, 2014. Google ScholarDigital Library
- M. P. Robillard and G. C. Murphy. Representing Concerns in Source Code. Transactions on Software Engineering Methodologies, 16(1), 2007. Google ScholarDigital Library
- J. Sincero, H. Schirmeier, W. Schröder-Preikschat, and O. Spinczyk. Is the Linux Kernel a Software Product Line? In Proceedings of the International Workshop on Open Source Software and Product Lines, pages 30–33, 2007.Google Scholar
- H. Spencer and G. Collyer. #ifdef Considered Harmful, or Portability Experience with C News. In USENIX, pages 185–197, 1992.Google Scholar
- K. Sullivan, W. G. Griswold, Y. Song, Y. Cai, M. Shonle, N. Tewari, and H. Rajan. Information Hiding Interfaces for Aspect-Oriented Design. In Proceedings of the 10th European Software Engineering Conference, pages 166–175. ACM, 2005. Google ScholarDigital Library
- P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton, Jr. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In Proceedings of the 21st International Conference on Software Engineering, pages 107–119. ACM, 1999. Google ScholarDigital Library
- R. Vasa, M. Lumpe, P. Branch, and O. Nierstrasz. Comparative Analysis of Evolving Software Systems Using the Gini Coefficient. In Proceedings of the 25th International Conference on Software Maintenance, pages 179–188. IEEE, 2013.Google Scholar
- S. Venkateswaran. Essential Linux Device Drivers. Prentice Hall Press, 1st edition, 2008. Google ScholarDigital Library
Index Terms
- Feature scattering in the large: a longitudinal study of Linux kernel device drivers
Recommendations
A Study of Feature Scattering in the Linux Kernel
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, ...
Does feature scattering follow power-law distributions?: an investigation of five pre-processor-based systems
FOSD '14: Proceedings of the 6th International Workshop on Feature-Oriented Software DevelopmentFeature scattering is long said to be an undesirable characteristic in source code. Since scattered features introduce extensions across the code base, their maintenance requires analyzing and changing different locations in code, possibly causing ...
Boundary element solution for the bidimensional scattering of guided waves in laminated plates
The boundary element method (BEM) in the frequency domain based on the full space fundamental solution is used in this paper to study bidimensional plate wave scattering problems. When some purely elastic waveguides are present, the BEM cannot be ...
Comments