On multi-language software development, cross-language links and accompanying tools: a survey of professional software developers

Sociedade Brasileira de Computacao - SB - Tập 5 - Trang 1-33 - 2017
Philip Mayer1, Michael Kirsch1, Minh Anh Le2
1Programming & Software Engineering Group, Ludwig-Maximilians-Universität München, München, Germany
2Statistical Consulting Unit StaBLab, Ludwig-Maximilians-Universität München, München, Germany

Tóm tắt

Non-trivial software systems are written using multiple (programming) languages, which are connected by cross-language links. The existence of such links may lead to various problems during software development. There is little empirical evidence on the incidence of these problems and the experiences of professional developers in this field. We want to provide empirical evidence on multi-language software development, cross-language linking, and tool support in industry, including the views of professional developers on benefits and problems in these areas. We conducted a survey study to gather responses from 139 professional software developers. Respondents reported an average of 7 languages and 3 linked language pairs per project. Respondents saw benefits of multi-language development for the motivation of developers and the translation of requirements, but problems in understandability and changeability. Over 90% of respondents reported problems related to cross-language linking. Developers universally agree on the usefulness of tool support. Multi-language programming and cross-language linking seem common but lead to several problems. We suggest that future practical as well as research efforts focus on these issues by creating appropriate tool support and by developing better techniques for cross-language linking for improved changeability and understandability.

Tài liệu tham khảo

Arbuckle, T (2011) Measuring multi-language software evolution: a case study. In: Cleve A Robbes R (eds)Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution, EVOL/IWPSE 2011, September 5-6, 91–95.. ACM, Szeged, Hungary. doi:10.1145/2024445.2024461. Caracciolo, A, Chis A, Spasojevic B, Lungu M (2014) Pangea: A workbench for statically analyzing multi-language software corpora In: 14th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2014, September 28-29, 2014, 71–76.. IEEE Computer Society, Victoria. doi:10.1109/SCAM.2014.39. Delorey, DP, Knutson CD, Giraud-Carrier C (2007) 2nd International Workshop on Public Data about Software Development WoPDaSD ’07, Springer, Heidelberg, Limerick. Einarsson, B, Gentleman WM (1984) Mixed language programming. Softw Pract Exper 14(4): 383–392. doi:10.1002/spe.4380140410. Favre, J, Lämmel R, Varanovich A (2012) Modeling the linguistic architecture of software products. In: France RB, Kazmeier J, Breu R, Atkinson C (eds)Model driven engineering languages and systems. MODELS 2012, 151–167. doi:10.1007/978-3-642-33666-9_11. Fowler, M (2011) Domain-Specific Languages. The Addison-Wesley signature series. Addison-Wesley Professional, Indianapolis. http://vig.pearsoned.com/store/product/1,1207,store-12521_isbn-0321712943,00.html. Franzen, A (2014) Antwortskalen in standardisierten befragungen. In: Baur N Blasius J (eds)Handbuch Methoden der empirischen Sozialforschung, 701–711.. Springer Fachmedien, Wiesbaden. doi:10.1007/978-3-531-18939-0_51. Kitchenham, B, Pfleeger SL (2002a) Principles of survey research: part 5: populations and samples. ACM SIGSOFT Softw Eng Notes 27(5): 17–20. doi:10.1145/571681.571686. Kitchenham, BA, Pfleeger SL (2002b) Principles of survey research: part 3 constructing a survey instrument. ACM SIGSOFT Softw Eng Notes 27(2): 20–24. doi:10.1145/511152.511155. Lämmel, R, Varanovich A (2014) Interpretation of linguistic architecture. In: Cabot J Rubin J (eds)Modelling Foundations and Applications - 10th European Conference, ECMFA 2014, Held as Part of STAF 2014, York, UK, July 21-25 2014 vol 8569, 67–82.. Springer, Heidelberg. doi:10.1007/978-3-319-09195-2_5. Linos, PK (1995) Polycare: a tool for re-engineering multi-language program integrations In: 1st IEEE International Conference on Engineering of Complex Computer Systems (ICECCS ’95), November 6-10, 1995. Fort Lauderdale, 338.. IEEE Computer Society.http://dx.doi.org/10.1109/ICECCS.1995.479355. Mayer, P, Bauer A (2015) An empirical analysis of the utilization of multiple programming languages in open source projects. In: Lv J, Zhang HJ, Babar MA (eds)Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, EASE 2015, April 27-29, 4:1–4:10.. ACM, Nanjing. doi:10.1145/27458022745805. Mayer, P, Schroeder A (2014) Automated multi-language artifact binding and rename refactoring between java and dsls used by java frameworks. In: Jones R (ed)ECOOP 2014 - Object-Oriented Programming - 28th European Conference, Uppsala, Sweden, July 28 - August 1, 2014, 437–462.. Proceedings, Springer, Lecture Notes in Computer Science. doi:10.1007/978-3-662-44202-9_18. Nguyen, HV, Nguyen HA, Nguyen TT, Nguyen TN (2012) Babelref: Detection and renaming tool for cross-language program entities in dynamic web applications. In: Glinz M, Murphy GC, Pezzè M (eds)34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, 1391–1394.. IEEE, Zurich.http://dx.doi.org/10.1109/ICSE.2012.6227240. Pfeiffer, R, Wasowski A (2012a) Cross-language support mechanisms significantly aid software development. In: France RB, Kazmeier J, Breu R, Atkinson C (eds)Model driven engineering languages and systems. MODELS 2012., 168–184.http://dx.doi.org/10.1007/978-3-642-33666-9_12. Pfeiffer R, Wasowski A (2012b) Texmo: A multi-language development environment. In: Vallecillo A, Tolvanen J, Kindler E, Störrle H, Kolovos DS (eds)Modelling Foundations and Applications - 8th European Conference, ECMFA 2012, Kgs. July 2-5, 2012. vol 7349. Proceedings, Lyngby,178–193.. Springer, Lecture Notes in Computer Science. doi:10.1007/978-3-642-31491-9_15. Pfeiffer, R, Wasowski A (2015) The design space of multi-language development environments. Softwa Syst Model 14(1): 383–411. doi:10.1007/s10270-013-0376-y. Core Team (2015) R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Vienna, Austria, http://www.R-project.org/. Sakamoto, K, Shimojo K, Takasawa R, Washizaki H, Fukazawa Y (2013) OCCF: A framework for developing test coverage measurement tools supporting multiple programming languages In: Sixth IEEE International Conference on Software Testing, Verification and Validation, ICST 2013 March 18-22. Luxembourg, 422–430.. IEEE Computer Society, Luxembourg. doi:10.1109/ICST.2013.59. Sobernig, S, Zdun U (2010) Evaluating java runtime reflection for implementing cross-language method invocations. In: Krall A Mössenböck H (eds)Proceedings of the 8th International Conference on Principles and Practice of Programming in Java, PPPJ 2010 September 15-17, 139–147.. ACM, Vienna.http://dx.doi.org/10.1145/18527611852781. Tomassetti, F, Torchiano M (2014) An empirical assessment of polyglot-ism in github. In: Shepperd MJ, Hall T, Myrtveit I (eds)18th International Conference on Evaluation and Assessment in Software Engineering, EASE ’14, May 13-14, 2014, 17:1–17:4.. ACM, London. doi:10.1145/26012482601269. Tomassetti, F, Rizzo G, Troncy R (2014) Crosslanguagespotter: a library for detecting relations in polyglot frameworks. In: Chung C, Broder AZ, Shim K, Suel T (eds)23rd International World Wide Web Conference, WWW ’14, April 7-11, 2014. Companion Volume, 583–586.. ACM, Seoul. doi:10.1145/2567948.2578036. Wohlin, C, Runeson P, Höst M, Ohlsson MC, Regnell B (2012) Experimentation in Software Engineering. Springer, Heidelberg. doi:10.1007/978-3-642-29044-2.