Challenges in software model reuse: cross application domain vs. cross modeling paradigm

Empirical Software Engineering - Tập 29 - Trang 1-25 - 2023
Iris Reinhartz-Berger1
1Department of Information Systems, University of Haifa, Haifa, Israel

Tóm tắt

Software reuse is a common practice that aims to reduce costs and effort, while improving quality and productivity. However, it also raises challenges of retrieving existing artifacts and adapting them to the given context. Sometimes, the most relevant artifacts are realized in a different application domain and/or in a different paradigm (e.g., object-oriented vs. data-driven). These challenges are extremely relevant to non-code artifacts, such as models, which are relatively rare, as well as vary in the level of details and quality. In this paper, we aim to explore the challenges and opportunities of cross application domain and cross modeling paradigm model reuse. These types of reuse require different mapping mechanisms (analogy creation and transformation, respectively), but similar adaptation operations (use-as-is, modification, omission and addition). To explore the challenges of these reuse types, we present the design and the results of a series of controlled experiments, involving 64 participants, which analyzed correctness of software model reuse across application domains and across two modeling paradigms: object-oriented expressed in UML use case and class diagrams and data-driven expressed in entity-relationship and data flow diagrams. Our results show that overall cross-domain reuse is more correctly performed than cross-paradigm reuse, especially with respect to addition. We further analyzed the challenges in each reuse type and found that modification and addition in both reuse types are quite challenging and require careful support to meet new or differing requirements.

Tài liệu tham khảo

Aleryani AY (2016) Comparative study between data flow diagram and use case diagram. Int J Sci Res Publ 6(3):124–126 Barrón-Cedeño A, Gupta P, Rosso P (2013) Methods for cross-language plagiarism detection. Knowl-Based Syst 50:211–217 Barros-Justo JL, Pinciroli F, Matalonga S, Martínez-Araujo N (2018) What software reuse benefits have been transferred to the industry? A systematic mapping study. Inform Softw Technol 103:1–21 Braga RM, Werner CM, Mattoso M (1999). Odyssey: A reuse environment based on domain models. In Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No. PR00122) (pp. 50-57). IEEE Burgueño L, Clarisó R, Gérard S, Li S, Cabot J (2021) An NLP-Based Architecture for the Autocompletion of Partial Domain Models. International Conference on Advanced Information Systems Engineering. Springer, Cham, pp 91–106 Capilla R, Gallina B, Cetina C, Favaro J (2019) Opportunities for software reuse in an uncertain world: From past to emerging trends. J Softw: Evol Process 31(8):e2217 Deshmukh M, Schwarz R, Braukhane A, Lopez RP, Gerndt A (2014). Model linking to improve visibility and reusability of models during space system development. In 2014 IEEE Aerospace Conference (pp. 1-11). IEEE Estublier J, Daniela Ionita A, Vega G (2006) Relationships for domain reuse and composition. J Res Pract Inform Technol 38(4):287–301 FitzGerald J, FitzGerald AF (1987) Fundamentals of systems analysis: using structured analysis and design techniques. John Wiley & Sons Inc Flores E, Barrón-Cedeno A, Rosso P, Moreno L (2011) Towards the detection of cross language source code reuse. International Conference on Application of Natural Language to Information Systems. Springer, Berlin, pp 250–253 Flores E, Barrón-Cedeño A, Moreno L, Rosso P (2015) Cross-Language Source Code Re-Use Detection Using Latent Semantic Analysis. J Univers Comput Sci 21(13):1708–1725 Fries TP (2006). A framework for transforming structured analysis and design artifacts to UML. In Proceedings of the 24th annual ACM international conference on Design of communication (pp. 105-112) Gallina B, Kashiyarandi S, Zugsbratl K, Geven A (2014). Enabling cross-domain reuse of tool qualification certification artefacts. In Computer Safety, Reliability, and Security: SAFECOMP 2014 Workshops: ASCoMS, DECSoS, DEVVARTS, ISSE, ReSA4CI, SASSUR, Proceedings 33 (pp. 255-266). Springer International Publishing: Florence Gharehyazie M, Ray B, Filkov V (2017). Some from here, some from there: Cross-project code reuse in github. In 2017 IEEE/ACM 14th international conference on mining software repositories (MSR) (pp. 291-301). IEEE Haber A, Hölldobler K, Kolassa C, Look M, Rumpe B, Müller K, Schaefer I (2013). Engineering delta modeling languages. In Proceedings of the 17th international software product line conference (pp. 22-31) Hebig R, Quang TH, Chaudron MR, Robles G, Fernandez MA (2016). The quest for open source projects that use UML: mining GitHub. In Proceedings of the ACM/IEEE 19th international conference on model driven engineering languages and systems (pp. 173-183) Heinemann L, Deissenboeck F, Gleirscher M, Hummel B, Irlbeck M (2011) On the extent and nature of software reuse in open source java projects. International Conference on Software Reuse. Springer, Berlin, pp 207–222 Holmes R, Walker RJ (2013) Systematizing pragmatic software reuse. ACM Trans Softw Eng Methodol (TOSEM) 21(4):1–44 Kahani N, Bagherzadeh M, Cordy JR, Dingel J, Varró D (2019) Survey and classification of model transformation tools. Softw Syst Model 18(4):2361–2397 Kitchenham B, Mendes E (2004) Software productivity measurement using multiple size measures. IEEE Trans Softw Eng 30(12):1023–1035 Kitchenham BA, Pfleeger SL, Pickard LM, Jones PW, Hoaglin DC, El Emam K, Rosenberg J (2002) Preliminary guidelines for empirical research in software engineering. IEEE Trans Softw Eng 28(8):721–734 Krüger J, Berger T (2020). An empirical analysis of the costs of clone-and platform-oriented software reuse. In Proceedings of the 28th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering (pp. 432-444) Kugele S, Segler C, Hubregtsen T (2020). Architectural patterns for cross-domain personalised automotive functions. In 2020 IEEE international conference on software architecture (ICSA) (pp. 191-201). IEEE Maiden N, Sutcliffe A (1992) Exploiting reusable specifications through analogy. Commun ACM 35(4):55–64 Mäkitalo N, Taivalsaari A, Kiviluoto A, Mikkonen T, Capilla R (2020) On opportunistic software reuse. Computing 102(11):2385–2408 Martinez-Mosquera D, Navarrete R, Lujan-Mora S (2020) Modeling and management big data in databases—A systematic literature review. Sustainability 12(2):634 Mazzini S, Favaro J, Vardanega T (2013) Cross-domain reuse: Lessons learned in a multi-project trajectory. International conference on software reuse. Springer, Berlin, pp 113–126 Mikkonen T, Taivalsaari A (2019) Software reuse in the era of opportunistic design. IEEE Softw 36(3):105–111 Mohagheghi P, Conradi R (2007) Quality, productivity and economic benefits of software reuse: a review of industrial studies. Empir Softw Eng 12(5):471–516 Mojica IJ, Adams B, Nagappan M, Dienst S, Berger T, Hassan AE (2013) A large-scale empirical study on software reuse in mobile apps. IEEE Softw 31(2):78–86 Nafi KW, Roy B, Roy CK, Schneider KA (2020) A universal cross language software similarity detector for open source software categorization. J Syst Softw 162:110491 Nafi KW, Roy B, Roy CK, Schneider KA (2018). Crolsim: Cross language software similarity detector using api documentation. In 2018 IEEE 18th international working conference on source code analysis and manipulation (SCAM) (pp. 139-148). IEEE Osman MH, Chaudron MR (2013). UML usage in open source software development: A field study. In EESSMod@ MoDELS (pp. 23-32) Ozkaya M, Erata F (2020) A survey on the practical use of UML for different software architecture viewpoints. Inform Softw Technol 121:106275 Paschali ME, Ampatzoglou A, Bibi S, Chatzigeorgiou A, Stamelos I (2017) Reusability of open source software across domains: A case study. J Syst Softw 134:211–227 Pfeiffer RH, Wąsowski A (2012) Cross-language support mechanisms significantly aid software development. international conference on model driven engineering languages and systems. Springer, Berlin, pp 168–184 Pohl K, Böckle G, Van Der Linden F (2005) Software product line engineering: foundations, principles, and techniques, 1st edn. Springer, Heidelberg Reggio G, Leotta M, Ricca F (2014) Who knows/uses what of the UML: A personal opinion survey. International conference on model driven engineering languages and systems. Springer, Cham, pp 149–165 Reinhartz-Berger I, Zamansky A (2020) Reuse of similarly behaving software through polymorphism-inspired variability mechanisms. IEEE Trans Softw Eng 48(3):773–785 Riley RD, Lambert PC, Abo-Zaid G (2010). Meta-analysis of individual participant data: rationale, conduct, and reporting. Bmj, 340: Ruy FB, Reginato CC, Santos VA, Falbo RA, Guizzardi G (2015) Ontology engineering by combining ontology patterns. International Conference on Conceptual Modeling. Springer, Cham, pp 173–186 Santos A, Vegas S, Oivo M, Juristo N (2019) A procedure and guidelines for analyzing groups of software engineering replications. IEEE Trans Softw Eng 47(9):1742–1763 Scanniello G, Gravino C, Genero M, Cruz-Lemus JA, Tortora G, Risi M, Dodero G (2018) Do software models based on the UML aid in source-code comprehensibility? Aggregating evidence from 12 controlled experiments. Empir Softw Eng 23:2695–2733 Schots M (2014). On the use of visualization for supporting software reuse. In Companion proceedings of the 36th international conference on software engineering (pp. 694-697) Schots M, Vasconcelos R, Werner C (2014). A quasi-systematic review on software visualization approaches for software reuse. Tech Rep Sommerville I (2016). Software Engineering, (10th edn), Pearson Sutcliffe A (2019). Software reuse: State of the art and survey of technical approaches. Integrated Softw Reuse: Manag Tech 51-76 Svahnberg M, Aurum A, Wohlin C (2008). Using students as subjects-an empirical evaluation. In Proceedings of the second ACM-IEEE international symposium on empirical software engineering and measurement (pp. 288-290) Varnell-Sarjeant J, Andrews AA, Lucente J, Stefik A (2015) Comparing development approaches and reuse strategies: An empirical evaluation of developer views from the aerospace industry. Inform Softw Technol 61:71–92 Varnell-Sarjeant J, Andrews AA, Stefik A (2014). Comparing reuse strategies: An empirical evaluation of developer views. In 2014 IEEE 38th international computer software and applications conference workshops (pp. 498-503). IEEE Vislavski T, Rakić G, Cardozo N, Budimac Z (2018). LICCA: A tool for cross-language clone detection. In 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER) (pp. 512-516). IEEE vom Brocke J (2007). Design principles for reference modeling: reusing information models by means of aggregation, specialisation, instantiation, and analogy. In Reference modeling for business systems analysis (pp. 47-76). IGI Global Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012). Experimentation in software engineering. Springer Science & Business Media Xiong W, Lagerström R (2019) Threat modeling–A systematic literature review. Comput Sec 84:53–69 Xu Y, Ramanathan J, Ramnath R, Singh N, Deshpande S (2011) Reuse by placement: a paradigm for cross-domain software reuse with high level of granularity. International conference on software reuse. Springer, Berlin, pp 69–77 Zaimi A, Ampatzoglou A, Triantafyllidou N, Chatzigeorgiou A, Mavridis A, Chaikalis T, Deligiannis I, Sfetsos P, Stamelos I (2015). An empirical study on the reuse of third-party libraries in open-source software development. In Proceedings of the 7th Balkan Conference on Informatics Conference (pp. 1-8)