The shape of feature code: an analysis of twenty C-preprocessor-based systems.

Saved in:
Bibliographic Details
Title: The shape of feature code: an analysis of twenty C-preprocessor-based systems.
Authors: Queiroz, Rodrigo1 rodrigoqueiroz@dcc.ufmg.br, Passos, Leonardo2 lnrdpss@acm.org, Valente, Marco1 mtov@dcc.ufmg.br, Hunsen, Claus3 claus.hunsen@uni-passau.de, Apel, Sven3 apel@uni-passau.de, Czarnecki, Krzysztof2 kczarnec@gsd.uwaterloo.ca
Source: Software & Systems Modeling. Feb2017, Vol. 16 Issue 1, p77-96. 20p.
Subjects: Open source software, Ripple (Computer network protocol), Uniform distribution (Probability theory), Standard deviations, Cumulative distribution function
Abstract: Feature annotations (e.g., code fragments guarded by #ifdef C-preprocessor directives) control code extensions related to features. Feature annotations have long been said to be undesirable. When maintaining features that control many annotations, there is a high risk of ripple effects. Also, excessive use of feature annotations leads to code clutter, hinder program comprehension and harden maintenance. To prevent such problems, developers should monitor the use of feature annotations, for example, by setting acceptable thresholds. Interestingly, little is known about how to extract thresholds in practice, and which values are representative for feature-related metrics. To address this issue, we analyze the statistical distribution of three feature-related metrics collected from a corpus of 20 well-known and long-lived C-preprocessor-based systems from different domains. We consider three metrics: scattering degree of feature constants, tangling degree of feature expressions, and nesting depth of preprocessor annotations. Our findings show that feature scattering is highly skewed; in 14 systems (70 %), the scattering distributions match a power law, making averages and standard deviations unreliable limits. Regarding tangling and nesting, the values tend to follow a uniform distribution; although outliers exist, they have little impact on the mean, suggesting that central statistics measures are reliable thresholds for tangling and nesting. Following our findings, we then propose thresholds from our benchmark data, as a basis for further investigations. [ABSTRACT FROM AUTHOR]
Copyright of Software & Systems Modeling is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Links:
  – Type: pdflink
Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 121251690
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: The shape of feature code: an analysis of twenty C-preprocessor-based systems.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Queiroz%2C+Rodrigo%22">Queiroz, Rodrigo</searchLink><relatesTo>1</relatesTo><i> rodrigoqueiroz@dcc.ufmg.br</i><br /><searchLink fieldCode="AR" term="%22Passos%2C+Leonardo%22">Passos, Leonardo</searchLink><relatesTo>2</relatesTo><i> lnrdpss@acm.org</i><br /><searchLink fieldCode="AR" term="%22Valente%2C+Marco%22">Valente, Marco</searchLink><relatesTo>1</relatesTo><i> mtov@dcc.ufmg.br</i><br /><searchLink fieldCode="AR" term="%22Hunsen%2C+Claus%22">Hunsen, Claus</searchLink><relatesTo>3</relatesTo><i> claus.hunsen@uni-passau.de</i><br /><searchLink fieldCode="AR" term="%22Apel%2C+Sven%22">Apel, Sven</searchLink><relatesTo>3</relatesTo><i> apel@uni-passau.de</i><br /><searchLink fieldCode="AR" term="%22Czarnecki%2C+Krzysztof%22">Czarnecki, Krzysztof</searchLink><relatesTo>2</relatesTo><i> kczarnec@gsd.uwaterloo.ca</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Software+%26+Systems+Modeling%22">Software & Systems Modeling</searchLink>. Feb2017, Vol. 16 Issue 1, p77-96. 20p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Open+source+software%22">Open source software</searchLink><br /><searchLink fieldCode="DE" term="%22Ripple+%28Computer+network+protocol%29%22">Ripple (Computer network protocol)</searchLink><br /><searchLink fieldCode="DE" term="%22Uniform+distribution+%28Probability+theory%29%22">Uniform distribution (Probability theory)</searchLink><br /><searchLink fieldCode="DE" term="%22Standard+deviations%22">Standard deviations</searchLink><br /><searchLink fieldCode="DE" term="%22Cumulative+distribution+function%22">Cumulative distribution function</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Feature annotations (e.g., code fragments guarded by #ifdef C-preprocessor directives) control code extensions related to features. Feature annotations have long been said to be undesirable. When maintaining features that control many annotations, there is a high risk of ripple effects. Also, excessive use of feature annotations leads to code clutter, hinder program comprehension and harden maintenance. To prevent such problems, developers should monitor the use of feature annotations, for example, by setting acceptable thresholds. Interestingly, little is known about how to extract thresholds in practice, and which values are representative for feature-related metrics. To address this issue, we analyze the statistical distribution of three feature-related metrics collected from a corpus of 20 well-known and long-lived C-preprocessor-based systems from different domains. We consider three metrics: scattering degree of feature constants, tangling degree of feature expressions, and nesting depth of preprocessor annotations. Our findings show that feature scattering is highly skewed; in 14 systems (70 %), the scattering distributions match a power law, making averages and standard deviations unreliable limits. Regarding tangling and nesting, the values tend to follow a uniform distribution; although outliers exist, they have little impact on the mean, suggesting that central statistics measures are reliable thresholds for tangling and nesting. Following our findings, we then propose thresholds from our benchmark data, as a basis for further investigations. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Software & Systems Modeling is the property of Springer Nature and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=121251690
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1007/s10270-015-0483-z
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 20
        StartPage: 77
    Subjects:
      – SubjectFull: Open source software
        Type: general
      – SubjectFull: Ripple (Computer network protocol)
        Type: general
      – SubjectFull: Uniform distribution (Probability theory)
        Type: general
      – SubjectFull: Standard deviations
        Type: general
      – SubjectFull: Cumulative distribution function
        Type: general
    Titles:
      – TitleFull: The shape of feature code: an analysis of twenty C-preprocessor-based systems.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Queiroz, Rodrigo
      – PersonEntity:
          Name:
            NameFull: Passos, Leonardo
      – PersonEntity:
          Name:
            NameFull: Valente, Marco
      – PersonEntity:
          Name:
            NameFull: Hunsen, Claus
      – PersonEntity:
          Name:
            NameFull: Apel, Sven
      – PersonEntity:
          Name:
            NameFull: Czarnecki, Krzysztof
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 02
              Text: Feb2017
              Type: published
              Y: 2017
          Identifiers:
            – Type: issn-print
              Value: 16191366
          Numbering:
            – Type: volume
              Value: 16
            – Type: issue
              Value: 1
          Titles:
            – TitleFull: Software & Systems Modeling
              Type: main
ResultId 1