Variability extraction and modeling for product variants

Software & Systems Modeling - Tập 16 - Trang 1179-1199 - 2016
Lukas Linsbauer1, Roberto Erick Lopez-Herrejon1, Alexander Egyed1
1Institute for Software Systems Engineering, Johannes Kepler University, Linz, Austria

Tóm tắt

Fast-changing hardware and software technologies in addition to larger and more specialized customer bases demand software tailored to meet very diverse requirements. Software development approaches that aim at capturing this diversity on a single consolidated platform often require large upfront investments, e.g., time or budget. Alternatively, companies resort to developing one variant of a software product at a time by reusing as much as possible from already-existing product variants. However, identifying and extracting the parts to reuse is an error-prone and inefficient task compounded by the typically large number of product variants. Hence, more disciplined and systematic approaches are needed to cope with the complexity of developing and maintaining sets of product variants. Such approaches require detailed information about the product variants, the features they provide and their relations. In this paper, we present an approach to extract such variability information from product variants. It identifies traces from features and feature interactions to their implementation artifacts, and computes their dependencies. This work can be useful in many scenarios ranging from ad hoc development approaches such as clone-and-own to systematic reuse approaches such as software product lines. We applied our variability extraction approach to six case studies and provide a detailed evaluation. The results show that the extracted variability information is consistent with the variability in our six case study systems given by their variability models and available product variants.

Tài liệu tham khảo

Ali, N., Guéhéneuc, Y.G., Antoniol, G.: Trustrace: mining software repositories to improve the accuracy of requirement traceability links. IEEE Trans. Softw. Eng. 39(5), 725–741 (2013) Apel, S., Atlee, J.M., Baresi, L., Zave, P.: Feature interactions: the next generation (dagstuhl seminar 14281). Dagstuhl Rep. 4(7), 1–24 (2014). doi:10.4230/DagRep.4.7.1 Apel, S., Kästner, C.: An overview of feature-oriented software development. J. Object Technol. 8(5), 49–84 (2009) ArgoUML: Argouml-spl project. http://argouml-spl.tigris.org/ (2013). Accessed 2014 Assuncao, W.K.G., Lopez-Herrejon, R.E., Linsbauer, L., Vergilio, S.R., Egyed, A.: Extracting variability-safe feature models from source code dependencies in system variants. In: Genetic and Evolutionary Computation Conference (GECCO) (2015) Assunção, W.K.G., Vergilio, S.R.: Feature location for software product line migration: a mapping study. In: Gnesi, S., Fantechi, A., ter Beek, M.H., Botterweck, G., Becker, M. (eds.) 18th International Software Product Lines Conference—Companion Volume for Workshop, Tools and Demo papers, SPLC ’14, Florence, Italy, September 15–19, 2014, pp. 52–59. ACM (2014). doi:10.1145/2647908.2655967 Batory, D.S., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. IEEE Trans. Softw. Eng. 30(6), 355–371 (2004). doi:10.1109/TSE.2004.23 Benavides, D., Segura, S., Cortés, A.R.: Automated analysis of feature models 20 years later: a literature review. Inf. Syst. 35(6), 615–636 (2010) Chen, X., Hosking, J.G., Grundy, J.: Visualizing traceability links between source code and documentation. In: Erwig, M., Stapleton, G., Costagliola, G. (eds.) VL/HCC, pp. 119–126. IEEE (2012) Cleland-Huang, J., Gotel, O., Zisman, A. (eds.): Software and Systems Traceability. Springer, Berlin (2012). doi:10.1007/978-1-4471-2239-5 Couto, M.V., Valente, M.T., Figueiredo, E.: Extracting software product lines: a case study using conditional compilation. In: CSMR, pp. 191–200 (2011) Dit, B., Revelle, M., Gethers, M., Poshyvanyk, D.: Feature location in source code: a taxonomy and survey. J. Softw. Evol. Process 25(1), 53–95 (2013) Dubinsky, Y., Rubin, J., Berger, T., Duszynski, S., Becker, M., Czarnecki, K.: An exploratory study of cloning in industrial software product lines. In: Cleve, A., Ricca, F., Cerioli, M. (eds.) 17th European Conference on Software Maintenance and Reengineering, CSMR 2013, Genova, Italy, March 5–8, 2013, pp. 25–34. IEEE Computer Society (2013). doi:10.1109/CSMR.2013.13 Egyed, A.: Automatically detecting and tracking inconsistencies in software design models. IEEE Trans. Softw. Eng. 37(2), 188–204 (2011) Fischer, S., Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Enhancing clone-and-own with systematic reuse for developing software variants. In: 30th International Conference on Software Maintenance and Evolution, pp. 391–400 (2014) Fischer, S., Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A., Ramler, R.: Bridging the gap between software variability and system variant management: experiences from an industrial machinery product line. In: Euromicro Conference on Software Engineering and Advanced Applications (SEAA) (2015) Haslinger, E.N., Lopez-Herrejon, R.E., Egyed, A.: On extracting feature models from sets of valid feature combinations. In: Cortellessa, V., Varró, D. (eds.) FASE, Lecture Notes in Computer Science, vol. 7793, pp. 53–67. Springer, New York (2013). doi:10.1007/978-3-642-37057-1 Hetrick, W.A., Krueger, C.W., Moore, J.G.: Incremental return on incremental investment: Engenio’s transition to software product line practice. In: Tarr, P.L., Cook, W.R. (eds.) Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22–26, 2006, Portland, Oregon, USA, pp. 798–804. ACM (2006). doi:10.1145/1176617.1176726 Kagdi, H.H., Gethers, M., Poshyvanyk, D.: Integrating conceptual and logical couplings for change impact analysis in software. Empir. Softw. Eng. 18(5), 933–969 (2013) Kang, K., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-oriented domain analysis (foda) feasibility study. Tech. rep., Technical Report CMU/SEI-90TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA, USA (1990) Kästner, C., Apel, S., ur Rahman, S.S., Rosenmüller, M., Batory, D.S., Saake, G.: On the impact of the optional feature problem: analysis and case studies. In: Muthig, D., McGregor, J.D. (eds.) Software Product Lines, 13th International Conference, SPLC 2009, San Francisco, California, USA, August 24–28, 2009, Proceedings, ACM International Conference Proceeding Series, vol. 446, pp. 181–190. ACM (2009). doi:10.1145/1753235.1753261 Koschke, R., Frenzel, P., Breu, A.P.J., Angstmann, K.: Extending the reflexion method for consolidating software variants into product lines. Softw. Qual. J. 17(4), 331–366 (2009) Laguna, M.A., Crespo, Y.: A systematic mapping study on software product line evolution: from legacy system reengineering to product line refactoring. Sci. Comput. Program. 78(8), 1010–1034 (2013). doi:10.1016/j.scico.2012.05.003 Linsbauer, L., Angerer, F., Gruenbacher, P., Lettner, D., Praehofer, H., Lopez-Herrejon, R.E., Egyed, A.: Recovering feature-to-code mappings in mixed-variability software systems. In: 30th International Conference on Software Maintenance and Evolution., pp. 426–430 (2014) Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Recovering traceability between features and code in product variants. In: SPLC-7, pp. 131–140 (2013) Linsbauer, L., Lopez-Herrejon, R.E., Egyed, A.: Feature model synthesis with genetic programming. In: Goues, C.L., Yoo, S. (eds.) Search-Based Software Engineering—6th International Symposium, SSBSE 2014, Fortaleza, Brazil, August 26–29, 2014. Proceedings, Lecture Notes in Computer Science, vol. 8636, pp. 153–167. Springer, Berlin (2014). doi:10.1007/978-3-319-09940-8_11 Liu, J., Batory, D., Lengauer, C.: Feature oriented refactoring of legacy applications. In: ICSE-28, pp. 112–121. ACM (2006) Lopez-Herrejon, R.E., Galindo, J.A., Benavides, D., Segura, S., Egyed, A.: Reverse engineering feature models with evolutionary algorithms: An exploratory study. In: Fraser, G., de Souza, J.T. (eds.) SSBSE, Lecture Notes in Computer Science, vol. 7515, pp. 168–182. Springer, Berlin (2012). doi:10.1007/978-3-642-33119-0_13 Martinez, J., Ziadi, T., Bissyandé, T.F., Klein, J., Traon, Y.L.: Bottom-up adoption of software product lines: a generic and extensible approach. In: Schmidt, D.C. (ed.) Proceedings of the 19th International Conference on Software Product Line, SPLC 2015, Nashville, TN, USA, July 20–24, 2015, pp. 101–110. ACM (2015). doi:10.1145/2791060.2791086 Nguyen, H.A., Nguyen, T.T., Pham, N.H., Al-Kofahi, J.M., Nguyen, T.N.: Clone management for evolving software. IEEE Trans. Softw. Eng. 38(5), 1008–1026 (2012) Pohl, K., Böckle, G., Linden, FJvd: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Secaucus (2005) Rubin, J., Chechik, M.: N-way model merging. In: Meyer, B., Baresi, L., Mezini, M. (eds.) Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE’13, Saint Petersburg, Russian Federation, August 18–26, 2013, pp. 301–311. ACM (2013). doi:10.1145/2491411.2491446 Rubin, J., Chechik, M.: A survey of feature location techniques. In: Domain Engineering: Product Lines, Conceptual Models, and Languages, pp. 29–58. Springer, Berlin (2013) Rubin, J., Czarnecki, K., Chechik, M.: Managing cloned variants: a framework and experience. In: SPLC, pp. 101–110 (2013) Russell, S.J., Norvig, P.: Artificial Intelligence: A Modern Approach (3. internat. ed.). Pearson Education (2010). http://vig.pearsoned.com/store/product/1,1207,store-12521_isbn-0136042597,00.html Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0, 2nd edn. Addison-Wesley Professional (2009) Svahnberg, M., van Gurp, J., Bosch, J.: A taxonomy of variability realization techniques. Softw. Pract. Exp. 35(8), 705–754 (2005) Xue, Y., Xing, Z., Jarzabek, S.: Feature location in a collection of product variants. In: WCRE, pp. 145–154. IEEE Computer Society (2012) Ziadi, T., Frias, L., da Silva, M.A.A., Ziane, M.: Feature identification from the source code of product variants. In: Mens, T., Cleve, A., Ferenc, R. (eds.) 16th European Conference on Software Maintenance and Reengineering, CSMR 2012, Szeged, Hungary, March 27–30, 2012, pp. 417–422. IEEE (2012). doi:10.1109/CSMR.2012.52