Towards a metrics suite for object oriented design
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Lightweight Extraction of Object Models from Bytecode
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Practical guidelines for the readability of IT-architecture diagrams
Proceedings of the 20th annual international conference on Computer documentation
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
APHYDS: The Academic Physical Design Skeleton
MSE '03 Proceedings of the 2003 International Conference on Microelectronics Systems Education
Generalized aliasing as a basis for program analysis tools
Generalized aliasing as a basis for program analysis tools
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
Cryptography in the Database: The Last Line of Defense
Cryptography in the Database: The Last Line of Defense
Generic ownership for generic Java
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Understanding the shape of Java software
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Questions about object structure during coding activities
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Analyzing security architectures
Proceedings of the IEEE/ACM international conference on Automated software engineering
Flexible, Reliable Software: Using Patterns and Agile Development
Flexible, Reliable Software: Using Patterns and Agile Development
Static extraction and conformance analysis of hierarchical runtime architectural structure
Static extraction and conformance analysis of hierarchical runtime architectural structure
A case study in evaluating the usefulness of the run-time structure during coding tasks
Human Aspects of Software Engineering
Extraction of ownership object graphs from object-oriented code: an experience report
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Hi-index | 0.00 |
Researchers have proposed many ownership type systems but reported limited experience with most of them on real object-oriented code. Only a few systems have been implemented, and there have been few substantial case studies done with those systems. In order to better empirically evaluate ownership type systems, we have therefore conducted a number of case studies applying the Ownership Domains type system to programs at a larger scale. To facilitate the study of legacy code, we reimplemented Ownership Domains using available language support for annotations. After annotating and typechecking a range of object-oriented systems, we extracted global, hierarchical, Ownership Object Graphs (OOGs) using static analysis. OOGs provide an abstracted view that is consistent with programmer design intent, compared to flat object graphs that can be extracted without the benefit of the ownership annotations. An OOG also visualizes the system's ownership structure and helps developers refine the annotations they add to better express the system's design. This paper shares our observations from studying the annotations and the extracted OOGs across several subject systems. We compute metrics on the annotations and on the extracted OOGs, to gain insights into the ownership relationships latent within object-oriented code and to evaluate the effectiveness of the abstraction mechanisms in OOGs.