Abstract
A large set of object-oriented programming (OOP) languages exists to realize software for different purposes. Companies often create variants of their existing software by copying and modifying them to changed requirements. While these so-called clone-and-own approaches allow to save money in short-term, they expose the company to severe risks regarding long-term evolution and product quality. The main reason is the high manual maintenance effort which is needed due to the unknown relations between variants. In this paper, we introduce a model-based approach to identify variability information for OOP code, allowing companies to better understand and manage variability between their variants. This information allows to improve maintenance of the variants and to transition from single variant development to more elaborate reuse strategies such as software product lines. We demonstrate the applicability of our approach by means of a case study analyzing variants generated from an existing software product line and comparing our findings to the managed reuse strategy.
This work was partially supported by the DFG (German Research Foundation) under grant SCHA1635/2-2 and by the European Commission within the project HyVar (grant agreement H2020-644298).).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Antkiewicz, M., Ji, W., Berger, T., Czarnecki, K., Schmorleiz, T., Lammel, R., Stănciulescu, S., Wąsowski, A., Schaefer, I.: Flexible product line engineering with a virtual platform. In: Proceedings of the International Conference on Software Engineering (ICSE), ICSE 2014, pp. 532–535. ACM (2014)
Duszynski, S., Knodel, J., Becker, M.: Analyzing the source code of multiple software variants for reuse potential. In: Proceedings of the Working Conference on Reverse Engineering (WCRE), WCRE 2011. IEEE, pp. 303–307 (2011)
Frenzel, P., Koschke, R., Breu, A.P.J., Angstmann, K.: Method for consolidating software variants into product lines. Softw. Qual. J. 17(4), 331–366 (2009)
Hemel, A., Koschke, R.: Reverse engineering variability in source code using clone detection: a case study for linux variants of consumer electronic devices. In: Proceedings of the Working Conference on Reverse Engineering (WCRE), WCRE 2012, pp. 357–366. IEEE (2012)
Kapser, C., Godfrey, M.W.: “Cloning Considered Harmful” considered harmful. In: Proceedings of the Working Conference on Reverse Engineering (WCRE), WCRE 2006, pp. 19–28. IEEE (2006)
Klatt, B., Krogmann, K., Seidl, C.: Program dependency analysis for consolidating customized product copies. In: Proceedings of the International Conference on Software Maintenance and Evolution (ICSME), ICSME 2014, pp. 496–500. IEEE (2014)
Koschke, R.: Survey of research on software clones. In: Duplication, Redundancy, and Similarity in Software. Dagstuhl Seminar Proceedings 06301. Internationales Begegnungs- und Forschungszentrum fur Informatik (IBFI), Schloss Dagstuhl, Germany, Dagstuhl, Germany (2007)
Krieter, S., Schroter, R., Fenske, W., Saake, G.: Use-case-specific source- code documentation for feature-oriented programming. In: Proceedings of the International Workshop on Variability Modeling in Software-intensive Systems (VaMoS), VaMoS 2015, pp. 27:27–27:34. ACM (2015)
Levenshtein, V.I.: Binary codes capable of correcting deletions, insertions, reversals. Soviet Phys. Doklady 10(8) (1966)
Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Variability extraction, modeling for product variants. Softw. Syst. Model., 1–21 (2016)
Martinez, J., Ziadi, T., Bissyande, T.F., Klein, J., Le Traon, Y.: Bottomup adoption of software product lines: a generic and extensible approach. In: Proceedings of the International Software Product Line Conference (SPLC), SPLC 2015, pp. 101–110. ACM (2015)
Monden, A., Nakae, D., Kamiya, T., Sato, S., Matsumoto, K.: Software quality analysis by code clones in industrial legacy software. In: Proceedings of the International Symposium on Software Metrics (METRICS), METRICS 2002, pp. 87–94. IEEE (2002)
Pohl, K., Bockle, G., van der Linden, F.J.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Heidelberg (2005)
Roy, C.K., Cordy, J.R., Koschke, R.: Comparison and evaluation of code clone detection techniques and tools: a qualitative approach. Sci. Comput. Program. 74(7), 470–495 (2009)
Rubin, J., Chechik, M.: Combining related products into product lines. In: Lara, J., Zisman, A. (eds.) FASE 2012. LNCS, vol. 7212, pp. 285–300. Springer, Heidelberg (2012). doi:10.1007/978-3-642-28872-2_20
Rubin, J., Chechik, M.: N-way model merging. In: Proceedings of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE), ESEC/FSE 2013, pp. 301–311. ACM (2013)
Thum, T., Kastner, C., Benduhn, F., Meinicke, J., Saake, G., Leich, T.: FeatureIDE: an extensible framework for feature-oriented software development. Sci. Comput. Program. 79, 70–85 (2014)
Wille, D.: Managing lots of models: the FaMine approach. In: Proceedings of the International Symposium on Foundations of Software Engineering (FSE), FSE 2014, pp. 817–819. ACM (2014)
Wille, D., Schulze, S., Seidl, C., Schaefer, I.: Custom-tailored variability mining for block-based languages. In: Proceedings of the International Conference on Software Analysis, Evolution, and Reengineering (SANER), SANER 2016. IEEE (2016)
Wille, D., Holthusen, S., Schulze, S., Schaefer, I.: Interface variability in family model mining. In: Proceedings of the International Workshop on Model-Driven Approaches in Software Product Line Engineering (MAPLE), SPLC 2013, pp. 44–51. ACM (2013)
Yoshimura, K., Ganesan, D., Muthig, D.: Assessing merge potential of existing engine control systems into a product line. In: Proceedings of the International Workshop on Software Engineering for Automotive Systems (SEAS), SEAS 2006, pp. 61–67. ACM (2006)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Wille, D., Tiede, M., Schulze, S., Seidl, C., Schaefer, I. (2016). Identifying Variability in Object-Oriented Code Using Model-Based Code Mining. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation: Discussion, Dissemination, Applications. ISoLA 2016. Lecture Notes in Computer Science(), vol 9953. Springer, Cham. https://doi.org/10.1007/978-3-319-47169-3_43
Download citation
DOI: https://doi.org/10.1007/978-3-319-47169-3_43
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-47168-6
Online ISBN: 978-3-319-47169-3
eBook Packages: Computer ScienceComputer Science (R0)