Abstract
Large amounts of Java software have been written since the language's escape into unsuspecting software ecology more than ten years ago. Surprisingly little is known about the structure of Java programs in the wild: about the way methods are grouped into classes and then into packages, the way packages relate to each other, or the way inheritance and composition are used to put these programs together. We present the results of the first in-depth study of the structure of Java programs. We have collected a number of Java programs and measured their key structural attributes. We have found evidence that some relationships follow power-laws, while others do not. We have also observed variations that seem related to some characteristic of the application itself. This study provides important information for researchers who can investigate how and why the structural relationships we find may have originated, what they portend, and how they can be managed.
- A. Barabasi. Linked: the New Science of Networks. Perseus Press, New York, 2002.]]Google Scholar
Digital Library
- A. L. Barabasi and R. Albert. Emergence of scaling in random networks. Science, 286:509--512, 1999.]]Google Scholar
Cross Ref
- D. W. Clark and C. C. Green. An empirical study of list structure in lisp. Commun. ACM, 20(2):78--87, 1977.]] Google Scholar
Digital Library
- C. Collberg, G. Myles, and M. Stepp. An empirical study of Java bytecode programs. Technical Report TR04-11, Department of Computer Science, Univeristy of Arizona, 2004.]]Google Scholar
- S. Dieckmann and U. Hölzle. A study of the allocation behavior of the SPECjvm98 Java benchmarks. In 13th European Conference on Object-Oriented Programming, pages 92--115, 1999.]] Google Scholar
Digital Library
- K. Ehrlich and E. Soloway. Human factors in computer systems, chapter An empirical investigation of the tacit plan knowledge in programming, pages 113--133. Ablex Publishing Corp., Norwood, NJ, USA, 1984.]] Google Scholar
Digital Library
- N. E. Fenton and S. L. Pfleeger. Software Metrics: A Rigorous & Practical Approach. PWS Publishing Company, second edition, 1997.]] Google Scholar
Digital Library
- J. Frederick P. Brooks. Three great challenges for half-century-old computer science. J. ACM, 50(1):25--26, 2003.]] Google Scholar
Digital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley, 1995.]] Google Scholar
Digital Library
- J. Y. Gil and I. Maman. Micro patterns in Java code. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications, pages 97--116, New York, NY, USA, 2005. ACM Press.]] Google Scholar
Digital Library
- J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java (tm) Language Specification. Addison-Wesley, 2000.]] Google Scholar
Digital Library
- C. Grothoff, J. Palsberg, and J. Vitek. Encapsulating objects with confined types. In OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 241--255, New York, NY, USA, 2001. ACM Press.]] Google Scholar
Digital Library
- J. Heering. Quantification of structural information: on a question raised by Brooks. SIGSOFT Softw. Eng. Notes, 28(3):6--6, 2003.]] Google Scholar
Digital Library
- S. Hunston. Corpora in Applied Linguistics. Cambridge University Press, 2002.]]Google Scholar
Cross Ref
- C. Jones. Programming productivity. McGraw-Hill, Inc., New York, NY, USA, 1986.]]Google Scholar
- D. E. Knuth. An empirical study of FORTRAN programs. Software - Practice and Experience, 1(2):105--133, 1971.]]Google Scholar
- P. Kruchten. The Rational Unified Process: An Introduction, Second Edition. Addison-Wesley, United States of America, 2000.]] Google Scholar
Digital Library
- J. Laherrere and D. Sornette. Stretched exponential distributions in nature and economy: "fat tails" with characteristic scales. The European Physical Journal B, 2:525, 1998.]]Google Scholar
Cross Ref
- H. Melton and E. Tempero. An empirical study of cycles among classes in Java. Technical Report UoA-SE-2006-1, Department of Computer Science, University of Auckland, 2006.]]Google Scholar
- H. Melton and E. Tempero. Identifying refactoring opportunities by identifying dependency cycles. In V. Estivill-Castro and G. Dobbie, editors, Twenty-Ninth Australasian Computer Science Conference, Hobart, Tasmania, Australia, Jan. 2006. Proceedings published as "Conferences in Research and Practice in Information Technology, Vol. 48".]] Google Scholar
Digital Library
- M. E. J. Newman. Power laws, Pareto distributions and Zipf's law. Contemporary Physics, 46(5):323--351, Sept. 2005.]]Google Scholar
Cross Ref
- J. Noble and R. Biddle. Visualising 1,051 visual programs module choice and layout in the nord modular patch language. In CRPITS '01: Australian symposium on Information visualisation, pages 121--127, Darlinghurst, Australia, Australia, 2001. Australian Computer Society, Inc.]] Google Scholar
Digital Library
- J. Noble and R. Biddle. Software Visualization, chapter Visual Program Visualisation. Kluwer, 2003.]]Google Scholar
- Object Management Group. Unified Modeling Language (UML ) 1.5 specification, 2004.]]Google Scholar
- A. Potanin, J. Noble, and R. Biddle. Checking ownership and confinement. Concurrency - Practice and Experience, 16(7):671--687, 2004.]] Google Scholar
Digital Library
- A. Potanin, J. Noble, M. Frean, and R. Biddle. Scale-free geometry in OO programs. Commun. ACM, 48(5):99--103, 2005.]] Google Scholar
Digital Library
- S. Purao and V. Vaishnavi. Product metrics for object-oriented systems. ACM Comput. Surv., 35(2):191--221, 2003.]] Google Scholar
Digital Library
- R. V. Solé, R. Ferrer-Cancho, J. M. Montoya, and S. Valverde. Selection, tinkering, and emergence in complex networks. Complex., 8(1):20--33, 2002.]] Google Scholar
Digital Library
- C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.]] Google Scholar
Digital Library
- S. Valverde, R. Ferrer-Cancho, and R. V. Solé. Scale-free networks from optimal design. Europhysics Letters, 60(4):512--517, Nov. 2002.]]Google Scholar
Cross Ref
- S. Valverde and R. V. Solé. Hierarchical small-worlds in software architecture. Under review, IEEE Transactions in Software Engineering. An earlier versino is available as Sante Fe Institute Working Paper 03-07-044, 2005.]]Google Scholar
- W. Weibull. A statistical distribution function of wide applicability. ASME Journal Of Applied Mechanics, pages 293--297, Sept. 1951.]]Google Scholar
- G. M. Weinberg. The Psychology of Computer Programming. John Wiley & Sons, Inc., New York, NY, USA, 1985.]] Google Scholar
Digital Library
- R. Wheeldon and S. Counsell. Power law distributions in class relationships. In Third IEEE International Workshop on Source Code Analysis and Manipulation (SCAM03), 2003.]]Google Scholar
Cross Ref
Index Terms
Understanding the shape of Java software
Recommendations
Understanding the shape of Java software
OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsLarge amounts of Java software have been written since the language's escape into unsuspecting software ecology more than ten years ago. Surprisingly little is known about the structure of Java programs in the wild: about the way methods are grouped ...
Evaluating the Java Native Interface JNI: Leveraging Existing Native Code, Libraries and Threads to a Running Java Virtual Machine
This article aims to explore JNI features and to discover fundamental operations of the Java programming language, such as arrays, objects, classes, threads and exception handling, and to illustrate these by using various algorithms and code samples. ...
Evaluating the Java Native Interface JNI: Data Types and Strings
This article describes how the java native interface JNI is a powerful feature of the java platform that started to draw attention in the latter years as an efficient programming framework for building and delivering innovative technological ...







Comments