skip to main content
10.1145/2660190.2662114acmotherconferencesArticle/Chapter ViewAbstractPublication PagesfosdConference Proceedingsconference-collections
research-article

Does feature scattering follow power-law distributions?: an investigation of five pre-processor-based systems

Published: 14 September 2014 Publication History

Abstract

Feature 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 ripple effects. Despite this fact, scattering often occurs in practice, either due to limitations in existing programming languages (e.g., imposition of a dominant decomposition) or time-pressure issues. In the latter case, scattering provides a simple way to support new capabilities, avoiding the upfront investment of creating modules and interfaces (when possible). Hence, we argue that scattering is not necessarily bad, provided it is kept within certain limits, or thresholds. Extracting thresholds, however, is not a trivial task. For instance, research shows that some source-code-metric distributions are heavy-tailed, usually following power-law models. In the face of heavy-tailed distributions, reporting metrics in terms of averages and standard deviations is unreliable, although commonly done so. Thus, prior to extracting reliable thresholds for feature scattering, one must understand the shape of feature-scattering distribution. In this direction, we analyze the scattering degree of five C-pre-processor-based software families and verify whether their empirical cumulative feature-scattering distributions follow power laws. Our results show that feature scattering in the studied subject systems have characteristics of heavy-tailed distributions, with a good-fit with power laws. Hence, we raise awareness that feature scattering thresholds based on central measures may not be reliable in practice.

References

[1]
T. L. Alves, C. Ypma, and J. Visser. Deriving Metric Thresholds from Benchmark Data. In Proceedings of the International Conference on Software Maintenance, pages 1--10. IEEE, 2010.
[2]
S. Apel, D. Batory, C. Kstner, and G. Saake. Feature-Oriented Software Product Lines: Concepts and Implementation. Springer, 2013.
[3]
S. Apel, T. Leich, and G. Saake. Aspectual Feature Modules. IEEE Transactions on Software Engineering, 34(2):162--180, 2008.
[4]
G. Baxter, M. Frean, J. Noble, M. Rickerby, H. Smith, M. Visser, H. Melton, and E. Tempero. Understanding the Shape of Java Software. In Proceedings of the International Conference on Object-oriented Programming Systems, Languages, and Applications, pages 397--412. ACM, 2006.
[5]
A. Clauset, C. R. Shalizi, and M. E. J. Newman. Power-Law Distributions in Empirical Data. Society for Industrial and Applied Mathematics Review, 51(4):661--703, 2009.
[6]
G. Concas, M. Marchesi, S. Pinna, and N. Serra. Power-Laws in a Large Object-Oriented Software System. IEEE Transactions on Software Engineering, 33(10):687--708, 2007.
[7]
M. Couto, M. Valente, and E. Figueiredo. Extracting Software Product Lines: A Case Study Using Conditional Compilation. In Proceedings of the European Conference on Software Maintenance and Reengineering, pages 191--200. IEEE, 2011.
[8]
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.
[9]
J.-M. Favre. Preprocessors from an Abstract Point of View. In Proceedings of the International Conference on Software Maintenance, pages 329--. IEEE, 1996.
[10]
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 International Conference on Program Comprehension, pages 138--147. IEEE, 2009.
[11]
C. S. Gillespie. Fitting Heavy-Tailed Distributions: The poweRlaw Package, 2014. R package version 0.20.5.
[12]
C. S. Gillespie. The poweRlaw Package: A General Overview, 2014.
[13]
C. Kästner, S. Apel, and K. Ostermann. The Road to Feature Modularity? In Proceedings of the International Software Product Line Conference, pages 1--8. ACM, 2011.
[14]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming, pages 220--242. Springer, 1997.
[15]
G. Krone, M.; Snelting. On the Inference of Configuration Structures from Source Code. In Proceedings of the International Conference on Software Engineering, pages 49--57. IEEE, 1994.
[16]
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 International Conference on Software Engineering, pages 105--114. ACM, 2010.
[17]
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 International Conference on Aspect-Oriented Software Development, pages 191--202. ACM, 2011.
[18]
P. Louridas, D. Spinellis, and V. Vlachos. Power Laws in Software. ACM Transactions on Software Engineering and Methodology, 18:1--26, 2008.
[19]
P. Oliveira, F. Lima, M. T. Valente, and S. Alexander. RTTOOL: A Tool for Extracting Relative Thresholds for Source Code Metrics. In Proceedings of the International Conference on Software Maintenance and Evolution (Tool Demo Track), pages 1--4, 2014.
[20]
P. Oliveira, M. Valente, and F. Paim Lima. Extracting Relative Thresholds for Source Code Metrics. In Proceedings of the International Conference on Software Maintenance, Reengineering and Reverse Engineering, pages 254--263. IEEE, 2014.
[21]
L. Passos, J. Guo, L. Teixeira, K. Czarnecki, A. Wąsowski, and P. Borba. Coevolution of Variability Models and Related Artifacts: A Case Study from the Linux Kernel. In Proceedings of the International Software Product Line Conference, pages 91--100. ACM, 2013.
[22]
H. Spencer and G. Collyer. #ifdef Considered Harmful, or Portability Experience with C News. In Proceedings of the USENIX Technical Conference, page 185--197. USENIX Association, 1992.
[23]
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 International Symposium on Foundations of Software Engineering, pages 166--175. ACM, 2005.
[24]
R. Wheeldon and S. Counsell. Power Law Distributions in Class Relationships. In Proceedings of the International Working Conference on Source Code Analysis and Manipulation, pages 45--54. IEEE, 2003.

Cited By

View all
  • (2021)The life cycle of features in highly-configurable software systems evolving in space and timeProceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3486609.3487195(2-15)Online publication date: 17-Oct-2021
  • (2020)Evolving System Families in Space and TimeProceedings of the 24th ACM International Systems and Software Product Line Conference - Volume B10.1145/3382026.3431252(104-111)Online publication date: 19-Oct-2020
  • (2017)The shape of feature codeSoftware and Systems Modeling (SoSyM)10.1007/s10270-015-0483-z16:1(77-96)Online publication date: 1-Feb-2017
  • Show More Cited By

Index Terms

  1. Does feature scattering follow power-law distributions?: an investigation of five pre-processor-based systems

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    FOSD '14: Proceedings of the 6th International Workshop on Feature-Oriented Software Development
    September 2014
    53 pages
    ISBN:9781450329804
    DOI:10.1145/2660190
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 14 September 2014

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. feature orientation
    2. power-law distribution
    3. pre-processor
    4. scattering
    5. software families

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    FOSD '14

    Acceptance Rates

    Overall Acceptance Rate 17 of 28 submissions, 61%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 16 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)The life cycle of features in highly-configurable software systems evolving in space and timeProceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3486609.3487195(2-15)Online publication date: 17-Oct-2021
    • (2020)Evolving System Families in Space and TimeProceedings of the 24th ACM International Systems and Software Product Line Conference - Volume B10.1145/3382026.3431252(104-111)Online publication date: 19-Oct-2020
    • (2017)The shape of feature codeSoftware and Systems Modeling (SoSyM)10.1007/s10270-015-0483-z16:1(77-96)Online publication date: 1-Feb-2017
    • (2016)Analyzing the Impact of Feature Changes in LinuxProceedings of the 10th International Workshop on Variability Modelling of Software-Intensive Systems10.1145/2866614.2866618(25-32)Online publication date: 27-Jan-2016
    • (2015)Feature scattering in the large: a longitudinal study of Linux kernel device driversProceedings of the 14th International Conference on Modularity10.1145/2724525.2724575(81-92)Online publication date: 16-Mar-2015

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media