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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
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)
Apel, S., Batory, D., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines. Springer, Heidelberg (2013)
Apel, S., Kätner, C., Lengauer, C.: FeatureHouse. In: 31st ICSE, pp. 221–231 (2009)
Batory, D., Sarvela, J., Rauschmayer, A.: scaling step-wise refinement. In: 25th International Conference on Software Engineering (ICSE), pp. 187–197 (2003)
Cornfield, J.: A method of estimating comparative rates from clinical data. J. Natl Cancer Inst. 11(6), 1269–1275 (1951)
Fawcett, T.: An introduction to ROC analysis. Pattern Recogn. Lett. 27(8), 861–874 (2006)
Fenske, W., Schulze, S.: Code smells revisited. In: 9th VaMoS, pp. 3–10 (2015)
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
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)
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)
Fisher, R.: On the interpretation of x2 from contingency tables, and the calculation of P. J. Roy. Stat. Soc. 85(1), 87–94 (1922)
Fowler, M.: Refactoring. Object Technology Series. Addison-Wesley, Boston (1999)
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)
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)
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
Lanza, M., Marinescu, R.: Object-Oriented Metrics in Practice. Springer, Heidelberg (2006)
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)
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)
Meyer, B.: Object-Oriented Software Construction. Prentice Hall, Upper Saddle River (1988)
Moha, N., Gueheneuc, Y., Duchien, L., Le Meur, A.: DECOR. IEEE Trans. Softw. Eng. 36(1), 20–36 (2010)
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)
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering. Springer Science & Business Media, Heidelberg (2005)
Schulze, S., Apel, S., Kästner, C.: Code clones in feature-oriented software product lines. In: 4th GPCE, pp. 103–112 (2010)
Vale, G., Albuquerque, D., Figueiredo, E., Garcia, A.: Defining metric thresholds for software product lines. In: 19th SPLC, pp. 176–185 (2015)
Yau, S., Collofello, J.: Design stability measures for software maintenance. IEEE Trans. Softw. Eng. 11(9), 849–856 (1985)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)