An empirical investigation of the tacit plan knowledge in programming
Human factors in computer systems
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Software metrics (2nd ed.): a rigorous and practical approach
Software metrics (2nd ed.): a rigorous and practical approach
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
An empirical study of list structure in Lisp
Communications of the ACM
Encapsulating objects with confined types
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Rational Unified Process: An Introduction, Second Edition
The Rational Unified Process: An Introduction, Second Edition
The Psychology of Computer Programming
The Psychology of Computer Programming
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Visualising 1,051 visual programs module choice and layout in the Nord Modular patch language
APVis '01 Proceedings of the 2001 Asia-Pacific symposium on Information visualisation - Volume 9
Three great challenges for half-century-old computer science
Journal of the ACM (JACM)
Selection, tinkering, and emergence in complex networks
Complexity - Special issue: Selection, tinkering, and emergence in complex networks
Quantification of structural information: on a question raised by Brooks
ACM SIGSOFT Software Engineering Notes
Product metrics for object-oriented systems
ACM Computing Surveys (CSUR)
Scale-free geometry in OO programs
Communications of the ACM - Adaptive complex enterprises
Checking ownership and confinement: Research Articles
Concurrency and Computation: Practice & Experience - Formal Techniques for Java-like Programs
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Identifying refactoring opportunities by identifying dependency cycles
ACSC '06 Proceedings of the 29th Australasian Computer Science Conference - Volume 48
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
On Complex Networks in Software: How Agent---Orientation Effects Software Structures
CEEMAS '07 Proceedings of the 5th international Central and Eastern European conference on Multi-Agent Systems and Applications V
How Do Java Programs Use Inheritance? An Empirical Study of Inheritance in Java Software
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Sourcerer: mining and searching internet-scale software repositories
Data Mining and Knowledge Discovery
The Java Programmer's Phrase Book
Software Language Engineering
Discovering power laws in computer programs
Information Processing and Management: an International Journal
Are We Ready for a Safer Construction Environment?
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
SpotWeb: Detecting Framework Hotspots and Coldspots via Mining Open Source Code on the Web
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
A large-scale empirical study of practitioners' use of object-oriented concepts
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Does size matter?: a preliminary investigation of the consequences of powerlaws in software
Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics
Assessing traditional and new metrics for object-oriented systems
Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics
An empirical investigation into a large-scale Java open source code repository
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement
An empirical study of overriding in open source Java
ACSC '10 Proceedings of the Thirty-Third Australasian Conferenc on Computer Science - Volume 102
Detecting missing method calls in object-oriented software
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
The use of overloading in JAVA programs
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
An analysis of SNA metrics on the Java Qualitas Corpus
Proceedings of the 4th India Software Engineering Conference
An empirical study of social networks metrics in object-oriented software
Advances in Software Engineering - Special issue on new generation of software metrics
Large-scale, AST-based API-usage analysis of open-source Java projects
Proceedings of the 2011 ACM Symposium on Applied Computing
Comparing fine-grained source code changes and code churn for bug prediction
Proceedings of the 8th Working Conference on Mining Software Repositories
Proceedings of the 25th European conference on Object-oriented programming
Identifying thresholds for object-oriented software metrics
Journal of Systems and Software
QoSA'10 Proceedings of the 6th international conference on Quality of Software Architectures: research into Practice - Reality and Gaps
Extensions during software evolution: do objects meet their promise?
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
An empirical study of aspect-oriented metrics
Science of Computer Programming
Software systems through complex networks science: review, analysis and applications
Proceedings of the First International Workshop on Software Mining
Detecting missing method calls as violations of the majority rule
ACM Transactions on Software Engineering and Methodology (TOSEM)
Understanding privacy policies
Empirical Software Engineering
An empirical study of PHP feature usage: a static analysis perspective
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Object graphs with ownership domains: an empirical study
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
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.