Skip to main content

No Code Anomaly is an Island

Anomaly Agglomeration as Sign of Product Line Instabilities

  • Conference paper
  • First Online:
Mastering Scale and Complexity in Software Reuse (ICSR 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10221))

Included in the following conference series:

Abstract

A software product line (SPL) is a set of systems that share common and varying features. To provide large-scale reuse, the components of a SPL should be easy to maintain. Therefore, developers have to identify anomalous code structures – i.e., code anomalies – that are detrimental to the SPL maintainability. Otherwise, SPL changes can eventually propagate to seemly-unrelated features and affect various SPL products. Previous work often assume that each code anomaly alone suffices to characterize SPL maintenance problems, though each single anomaly may represent only a partial, insignificant, or even inexistent view of the problem. As a result, previous studies have difficulties in characterizing anomalous structures that indicate SPL maintenance problems. In this paper, we study the surrounding context of each anomaly and observe that certain anomalies may be interconnected, thereby forming so-called anomaly agglomerations. We characterize three types of agglomerations in SPL: feature, feature hierarchy, and component agglomeration. Two or more anomalies form an agglomeration when they affect the same SPL structural element, i.e. a feature, a feature hierarchy, or a component. We then investigate to what extent non-agglomerated and agglomerated anomalies represent sources of a specific SPL maintenance problem: instability. We analyze various releases of four feature-oriented SPLs. Our findings suggest that a specific type of agglomeration indicates up to 89% of sources of instability, unlike non-agglomerated anomalies.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://winmerge.org/.

  2. 2.

    https://cran.r-project.org/.

References

  1. Ampatzoglou, A., Chatzigeorgiou, A., Charalampidou, S., Avgeriou, P.: The effect of GoF design patterns on stability. IEEE Trans. Softw. Eng. 41(8), 781–802 (2015)

    Article  Google Scholar 

  2. Apel, S., Batory, D., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines. Springer, Heidelberg (2013)

    Book  Google Scholar 

  3. Apel, S., Kätner, C., Lengauer, C.: FeatureHouse. In: 31st ICSE, pp. 221–231 (2009)

    Google Scholar 

  4. Batory, D., Sarvela, J., Rauschmayer, A.: scaling step-wise refinement. In: 25th International Conference on Software Engineering (ICSE), pp. 187–197 (2003)

    Google Scholar 

  5. Cornfield, J.: A method of estimating comparative rates from clinical data. J. Natl Cancer Inst. 11(6), 1269–1275 (1951)

    Google Scholar 

  6. Fawcett, T.: An introduction to ROC analysis. Pattern Recogn. Lett. 27(8), 861–874 (2006)

    Article  MathSciNet  Google Scholar 

  7. Fenske, W., Schulze, S.: Code smells revisited. In: 9th VaMoS, pp. 3–10 (2015)

    Google Scholar 

  8. Fernandes, E., Vale, G., Figueiredo, S., Figueiredo, E., Garcia, A., Lee, J.: No Code Anomaly is an Island: Anomaly Agglomeration as Sign of Product Line Instabilities – Data of the Study. http://labsoft.dcc.ufmg.br/doku.php?id=about:no_code_anomaly_is_an_island

  9. Ferreira, G., Gaia, F., Figueiredo, E., Maia, M.: On the Use of Feature-Oriented Programming for Evolving Software Product Lines. Sci. Comput. Program. 93, 65–85 (2014)

    Article  Google Scholar 

  10. Figueiredo, E., Cacho, N., Sant’Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., Castor Filho, F., Dantas, F.: Evolving software product lines with aspects. In: 30th International Conference on Software Engineering (ICSE), pp. 261–270 (2008)

    Google Scholar 

  11. Fisher, R.: On the interpretation of x2 from contingency tables, and the calculation of P. J. Roy. Stat. Soc. 85(1), 87–94 (1922)

    Article  Google Scholar 

  12. Fowler, M.: Refactoring. Object Technology Series. Addison-Wesley, Boston (1999)

    MATH  Google Scholar 

  13. Gaia, F., Ferreira, G., Figueiredo, E., Maia, M.: A quantitative and qualitative assessment of aspectual feature modules for evolving software product lines. Sci. Comput. Program. 96(2), 230–253 (2014)

    Article  Google Scholar 

  14. Khomh, F., Di Penta, M., Gueheneuc, Y.: An Exploratory Study of the Impact of Code Smells on Software Change-Proneness. In: 16th WCRE, pp. 75–84 (2009)

    Google Scholar 

  15. Kim, C.H.P., Bodden, E., Batory, D., Khurshid, S.: Reducing configurations to monitor in a software product line. In: Barringer, H., et al. (eds.) RV 2010. LNCS, vol. 6418, pp. 285–299. Springer, Heidelberg (2010). doi:10.1007/978-3-642-16612-9_22

    Chapter  Google Scholar 

  16. Lanza, M., Marinescu, R.: Object-Oriented Metrics in Practice. Springer, Heidelberg (2006)

    MATH  Google Scholar 

  17. Macia, I., Garcia, J., Popescu, D., Garcia, A., Medvidovic, N., von Staa, A.: Are automatically-detected code anomalies relevant to architectural modularity? In: 11th International Conference on Aspect-Oriented Software Development (AOSD), pp. 167–178 (2012)

    Google Scholar 

  18. Medeiros, F., Kästner, C., Ribeiro, M., Nadi, S., Gheyi, R.: The love/hate relationship with the C prepocessor. In: 29th ECOOP, pp. 495–518 (2015)

    Google Scholar 

  19. Meyer, B.: Object-Oriented Software Construction. Prentice Hall, Upper Saddle River (1988)

    Google Scholar 

  20. Moha, N., Gueheneuc, Y., Duchien, L., Le Meur, A.: DECOR. IEEE Trans. Softw. Eng. 36(1), 20–36 (2010)

    Article  Google Scholar 

  21. Oizumi, W., Garcia, A., Sousa, L., Cafeo, B., Zhao, Y.: Code anomalies flock together. In: 38th International Conference on Software Engineering (ICSE), pp. 440–451 (2016)

    Google Scholar 

  22. Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering. Springer Science & Business Media, Heidelberg (2005)

    Book  MATH  Google Scholar 

  23. Schulze, S., Apel, S., Kästner, C.: Code clones in feature-oriented software product lines. In: 4th GPCE, pp. 103–112 (2010)

    Google Scholar 

  24. Vale, G., Albuquerque, D., Figueiredo, E., Garcia, A.: Defining metric thresholds for software product lines. In: 19th SPLC, pp. 176–185 (2015)

    Google Scholar 

  25. Yau, S., Collofello, J.: Design stability measures for software maintenance. IEEE Trans. Softw. Eng. 11(9), 849–856 (1985)

    Article  Google Scholar 

Download references

Acknowledgments

This work was partially supported by CAPES/Procad, CNPq (grants 424340/2016-0 and 290136/2015-6), and FAPEMIG (grant PPM-00382-14).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eduardo Fernandes .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Fernandes, E., Vale, G., Sousa, L., Figueiredo, E., Garcia, A., Lee, J. (2017). No Code Anomaly is an Island. In: Botterweck, G., Werner, C. (eds) Mastering Scale and Complexity in Software Reuse. ICSR 2017. Lecture Notes in Computer Science(), vol 10221. Springer, Cham. https://doi.org/10.1007/978-3-319-56856-0_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-56856-0_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-56855-3

  • Online ISBN: 978-3-319-56856-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics