ABSTRACT
Characterising and measuring software developed in multiple languages is a problem for practitioners. Rather than a language-based approach, we avoid difficulties related to syntax, semantics and language paradigms by looking directly at relative shared information content to perform these tasks. Measuring, for each language, the relative number of bits of shared binary information between artefacts representative of consecutive releases of the project using a common tool permits the direct comparison of evolution results for the multiple languages. This paper presents a case study of the program suite called git, written in C, perl and Bourne shell. The study uses this method to show that, for git, code in scripting languages does not prototype later C, Bourne shell and C code are written together and that the languages' code contributions occur concurrently.
- T. Arbuckle. Measure software -- and its evolution -- using information content. In IWPSE-Evol '09: Proceedings of the Joint International and Annual ERCIM workshops on Principles of Software Evolution (IWPSE) and Software Evolution (Evol) Workshops, pages 129--134, 2009. Google ScholarDigital Library
- T. Arbuckle. Studying software evolution using artefacts' shared information content. Science of Computer Programming, 76(12):1078--1097, 2011. Google ScholarDigital Library
- D. J. Barrett, A. Kaplan, and J. C. Wileden. Automated support for seamless interoperability in polylingual software systems. In Proc. 4th ACM SIGSOFT Symposium on Foundations of Software Engineering, SIGSOFT '96, pages 147--155, 1996. Google ScholarDigital Library
- T. Capers Jones. Estimating Software Costs, 2E. McGraw-Hill, Inc., New York, NY, USA, 2007. Google ScholarDigital Library
- T. Capers Jones. Applied Software Measurement: Global Analysis of Productivity and Quality, 3E. McGraw-Hill Osborne Media, 2008.Google Scholar
- M. Cebrián, M. Alfonseca, and A. Ortega. Common pitfalls using the normalized compression distance: What to watch out for in a compressor. Comms. Info. Sys., 5(4):367--384, 2005.Google ScholarCross Ref
- D. Chen, G. Doumeingts, and F. Vernadat. Architectures for enterprise integration and interoperability: Past, present and future. Computers in Industry, 59(7):647--659, 2008. Google ScholarDigital Library
- R. Cilibrasi. The CompLearn Toolkit, 2003.Google Scholar
- R. Cilibrasi and P. Vitányi. Clustering by compression. IEEE Trans. Information Theory, 51(4):1523--1545, April 2005. Google ScholarDigital Library
- L. Collin. XZ. {Online} http://tukaani.org/xz/, 2005.Google Scholar
- L. Deruelle, N. Melab, M. Bouneffa, and H. Basson. Analysis and manipulation of distributed multi-language software code. In Proc. 1st IEEE Int. Workshop on Source Code Analysis and Manipulation, pages 43--54, 2001.Google ScholarCross Ref
- C. Kolivas. lrzip -- long range zip, based on rzip by Andrew Tridgell. {Online} http://ck.kolivas.org/apps/lrzip/, 2006.Google Scholar
- K. Kontogiannis, P. Linos, and K. Wong. Comprehension and maintenance of large-scale multi-language software applications. In Proc. 22nd IEEE Int. Conf. on Software Maintenance, pages 497--500, 2006. Google ScholarDigital Library
- B. Kullbach, A. Winter, P. Dahm, and J. Ebert. Program comprehension in multi-language systems. In Proc. Working Conference on Reverse Engineering, WCRE '98, pages 135--143, 1998. Google ScholarDigital Library
- M. Li. Information distance and its applications. International Journal of Foundations of Computer Science, 18(4):669--681, 2007.Google ScholarCross Ref
- M. Li, X. Chen, X. Li, B. Ma, and P. Vitányi. The similarity metric. IEEE Trans. Information Theory, 50(12):3250--3264, 2004. Google ScholarDigital Library
- M. Li and P. M. Vitányi. An Introduction to Kolmogorov Complexity and Its Applications. Springer Publishing Company, Incorporated, 2008. Google ScholarDigital Library
- M. D. McIlroy. Macro instruction extensions of compiler languages. Comm. ACM, 3(4):214--220, 1960. Google ScholarDigital Library
- T. Mens and S. Demeyer, editors. Software Evolution. Springer, 2008. Google ScholarDigital Library
- T. Mens, M. Wermelinger, S. Ducasse, S. Demeyer, R. Hirschfeld, and M. Jazayeri. Challenges in software evolution. In IWPSE '05: Proc. 8th Int. Workshop on Principles of Software Evolution, pages 13--22, 2005. Google ScholarDigital Library
- D. L. Moise and K. Wong. Extracting and representing cross-language dependencies in diverse software systems. In Proc. 12th Working Conference on Reverse Engineering, pages 209--218, 2005. Google ScholarDigital Library
- A. Morris, A. Malony, S. Shende, and K. Huck. Design and implementation of a hybrid parallel performance measurement system. In 39th Int. Conf. on Parallel Processing, ICPP '10, pages 492--501, Sept. 2010. Google ScholarDigital Library
- I. Pavlov. LZMA compression algorithm implementation (SDK). {Online} http://www.7-zip.org/sdk.html, 1999.Google Scholar
- R Development Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria, 2008.Google Scholar
- R. Rahimi and R. Khosravi. Architecture conformance checking of multi-language applications. In IEEE/ACS Int. Conf. on Computer Systems and Applications (AICCSA), pages 1--8, May 2010. Google ScholarDigital Library
- L. Torvalds and J. C. Hamano. Git -- fast version control system. {Online} http://git.or.cz/index.html, 2005.Google Scholar
- D. Waddington and B. Yao. High-fidelity C/C++ code transformation. Science of Computer Programming, 68(2):64--78, 2007. Google ScholarDigital Library
Index Terms
- Measuring multi-language software evolution: a case study
Recommendations
Studying software evolution using artefacts' shared information content
In order to study software evolution, it is necessary to measure artefacts representative of project releases. If we consider the process of software evolution to be copying with subsequent modification, then, by analogy, placing emphasis on what ...
Measure software - and its evolution - using information content
IWPSE-Evol '09: Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshopsTo be able to examine software evolution - variation in software over a sequence of releases - or to compare differing versions of software with each other, we need to be able to measure artefacts representative of the software or its creation process. ...
A metrics tool for multi-language software
SEA '07: Proceedings of the 11th IASTED International Conference on Software Engineering and ApplicationsIn this paper, we present a prototype tool that automates the process of detecting, gathering and visualizing multi-language software metrics at an intermediate-language level. More specifically, the current version of our tool focuses on code written ...
Comments