American Journal of Software Engineering and Applications
Volume 8, Issue 1, June 2019, Pages: 1-7
Received: Feb. 12, 2019;
Accepted: Mar. 18, 2019;
Published: Apr. 3, 2019
Views 87 Downloads 22
Anas Alhamwieh, Faculty of Information Technology, Research Laboratory on Bio-inspired Software Engineering, Philadelphia University, Amman, Jordan
Said Ghoul, Faculty of Information Technology, Research Laboratory on Bio-inspired Software Engineering, Philadelphia University, Amman, Jordan
In the past years, software reverse engineering dealt with source code understanding. Nowadays, it is levered to software requirements abstract level, supported by feature model notations, language independent, and simpler than the source code reading. The recent relevant approaches face the following insufficiencies: lack of a complete integrated methodology, adapted feature model, feature patterns recognition, and Graph based slicing. This work aims to provide some solutions to the above challenges through an integrated methodology. The following results are unique. Elementary and configuration features are specified in a uniform way by introducing semantics specific attributes. The reverse engineering supports feature pattern recognition and requirements feature model graph-based slicing. The slicing criteria are rich enough to allow answering questions of software requirements maintainers. A comparison of this proposed methodology, based on effective criteria, with the similar works, seems to be valuable and competitive: the enrichment of the feature model and feature pattern recognition were never approached and the proposed slicing technique is more general, effective, and practical.
A Feature Based Methodology for Variable Requirements Reverse Engineering, American Journal of Software Engineering and Applications.
Vol. 8, No. 1,
2019, pp. 1-7.
Font Jaime, Arcega Lorena, Haugen Oystein, and Cetina Carlos, (2017). Leveraging variability modeling to address metamodel revisions in Model-based Software Product Lines, Computer Languages, Systems & Structures, Elsevier, vol. 48, pp. 20-38.
Cognini Riccardo, Corradini Flavio, Polini Andrea, and Re Barbara, (2016). Business Process Feature Model: An Approach to Deal with Variability of Business Processes, Domain-Specific Conceptual Modeling, Springer International Publishing, pp. 171-194.
Becan Guillaume, Acher Mathieu, Baudry Benoit, and Ben N Sana, (2016). Breathing ontological knowledge into feature model synthesis: an empirical study, Empirical Software Engineering, vol. 21, pp. 1794-1841.
Sanfilippo Emilio and Borgo Stefano, (2016). What are features? An ontology-based review of the literature, Computer Aided Design, Elsevier, vol. 80, pp. 9-18.
Sepulveda Samuel, Cravero Ania, and Cachero Cristina, (2016). Requirements modeling languages for software product lines: A systematic literature review, Information & Software Technology, Elsevier, vol. 69, pp. 16-36.
Washizaki Hironori, Gueheneuc Yann-Gael, and Khomh Foutse, (2016). A taxonomy for program metamodels, program reverse engineering Proceedings, IEEE International Conference on Software Maintenance and Evolution, pp. 1-12.
Varoy Elliot, Burrows John, Sun Jing, and Manoharan Sathiamoorthy, (2017). Code to Design: A Reverse Engineering Approach, Proceedings of the IEEE International Conference on Engineering of Complex Computer Systems, pp. 181-186.
Ibraheem Sumaya and Ghoul Said, (2017). Feature-based Variability Modelling in Software Evolution, journal of software engineering, vol. 11, no. 1, pp. 12-21.
Dasgupta Annwesa, and Purzer Senay, (2016). No patterns in pattern recognition: A systematic literature review, In Frontiers in Education Conference (FIE), IEEE, pp. 1-3.
Homenda Wladyslaw, and Lesinski Wojciech, (2014). Imbalanced pattern recognition: Concepts and evaluations, Neural Networks (IJCNN), International Joint Conference, pp. 3488-3495.
Singh Jagannath, Khilar P. M., and Mohapatra D. P., (2017). Dynamic slicing of distributed Aspect-Oriented Programs: A context-sensitive approach, Computer Standards & Interfaces, Elsevier, vol. 52, pp.71-84.
Ward Martin and Zedan Hussein, (2017). The formal semantics of program slicing for nonterminating computations, Journal of Software: Evolution and Process, vol. 29, no. 1.
Krieter Sebastian, Schröter Reimar, Thüm Thomas, Fenske Wolfram, and Saake Gunter, (2016). Comparing algorithms for efficient feature-model slicing, Proceedings of the 20th International Systems and Software Product Line Conference, ACM, pp. 60-64.
Tamanna and Singh Sukhvir, (2015). A Review of Model Based Slicing, (IJCSIT) International Journal of Computer Science and Information Technologies, vol. 6, no. 4, pp. 3396-3399.
Almsiedeen RaFat, Huchard Marianne, Seriai Abdelhak, Urtado Christelle, and Vauttier Sylvain, (2014). Reverse Engineering Feature Models from Software Configurations using Formal Concept Analysis, Concept Lattices and their Applications, Slovakia, 11th International Conference on Concept Lattices and Their Applications, CEUR-Workshop, vol. 1252, pp. 95-106.
Acher Mathieu, Baudry Benoit, Heymans Patrick, Cleve Anthony, and Hainaut Jean-Luc, (2013). Support for reverse engineering and maintaining feature models, Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems, ACM, vol. 51, pp. 20.
Lopez-Herrejon Roberto, Linsbauer Lukas, Galindo José, Parejo José, Benavides David, Segura Sergio, and Egyed Alexander, (2015). An assessment of search-based techniques for reverse engineering feature models, Journal of Systems and Software, Elsevier, vol. 103, pp. 353-369.
Yue Jianan, (2014). Transition from EBNF to Xtext, PSRC@MoDELs, Alternation, CEUR-WS.org, vol. 1258, pp. 75-80.
Raibulet, C., Arcelli Fontana, F., Zanoni, M. (2017). Model-driven reverse engineering approaches: A systematic literature review; IEEE Access 5, 7997723, pp. 14516-14542.
Buonamici, F., Carfagni, M., Furferi, R., (...), Lapini, A., Volpe, Y. (2018) Reverse engineering modeling methods and tools: a survey; Computer-Aided Design and Applications 15(3), pp. 443-464.
Niu, N., Brinkkemper, S., Franch, X., Partanen, J., Savolainen, J. (2018). Requirements engineering and continuous deployment, IEEE Software, 35(2), pp. 86-90.
Curcio, K., Navarro, T., Malucelli, A., Reinehr, S. (2018). Requirements engineering: A systematic mapping study in agile software development; Journal of Systems and Software, 139, pp. 32-50.