Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Apache FtpServer 1.0.5, http://mina.apache.org/ftpserver/
Abi-Antoun, M.: Static Extraction and Conformance Analysis of Hierarchical Runtime Architectural Structure. Ph.D. thesis, Carnegie Mellon University (2010); available as Technical Report CMU-ISR-10-114
Abi-Antoun, M., Aldrich, J.: Static Extraction and Conformance Analysis of Hierarchical Runtime Architectural Structure using Annotations. In: OOPSLA (2009)
Abi-Antoun, M., Ammar, N.: A Case Study in Evaluating the Usefulness of the Run-time Structure during Coding Tasks. In: Workshop on Human Aspects of Software Engineering, HAoSE (2010)
Abi-Antoun, M., Ammar, N., Hailat, Z.: Extraction of ownership object graphs from object-oriented code: an experience report. In: ACM Sigsoft Conference on the Quality of Software Architectures, QoSA (2012)
Abi-Antoun, M., Ammar, N., LaToza, T.: Questions about Object Structure during Coding Activities. In: Workshop on Cooperative and Human Aspects of Software Engineering, CHASE (2010)
Abi-Antoun, M., Barnes, J.M.: Analyzing Security Architectures. In: ASE, pp. 3–12 (2010)
Abi-Antoun, M., Hailat, Z.: A Case Study in Extracting the Runtime Architecture of an Object-Oriented System. Tech. rep., Wayne State University (2011)
Aldrich, J., Chambers, C.: Ownership Domains: Separating Aliasing Policy from Mechanism. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 1–25. Springer, Heidelberg (2004)
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation. In: ICSE (2002)
Aldrich, J., Kostadinov, V., Chambers, C.: Alias Annotations for Program Understanding. In: OOPSLA (2002)
Ammar, N.: Evaluation of the Usefulness of Diagrams of the Run-Time Structure for Coding Activities. Master’s thesis, Wayne State University (2011), http://www.cs.wayne.edu/~mabianto/
Ammar, N., Abi-Antoun, M.: Adding Ownership Domain Annotations to and Extracting Ownership Object Graphs from MiniDraw. Tech. rep., Wayne State University (2011), http://www.cs.wayne.edu/~mabianto/oog_data/
Ammar, N., Khazalah, F., Abi-Antoun, M.: A Case Study in Adding Ownership Domain Annotations. Tech. rep., Wayne State University (2010), http://www.cs.wayne.edu/~mabianto/oog_data/
Baxter, G., Frean, M., Noble, J., Rickerby, M., Smith, H., Visser, M., Melton, H., Tempero, E.: Understanding the Shape of Java Software. In: OOPSLA (2006)
Bloch, J.: Effective Java. Addison-Wesley (2001)
Boyapati, C., Liskov, B., Shrira, L.: Ownership Types for Object Encapsulation. In: POPL (2003)
Cameron, N., Drossopoulou, S., Noble, J., Smith, M.: Multiple Ownership. In: OOPSLA (2007)
Chidamber, S.R., Kemerer, C.F.: Towards a metrics suite for object oriented design. In: OOPSLA (1991)
Christensen, H.B.: Flexible, Reliable Software Using Patterns and Agile Development. Chapman and Hall/CRC (2010)
Clarke, D.G., Potter, J.M., Noble, J.: Ownership Types for Flexible Alias Protection. In: OOPSLA (1998)
Cunningham, D., Drossopoulou, S., Eisenbach, S.: Universe Types for Race Safety. In: VAMP, pp. 20–51 (2007)
Dietl, W., Müller, P.: Universes: Lightweight Ownership for JML. Journal of Object Technology 4(8) (2005)
DrawLets, version 2.0 (2002), http://www.rolemodelsoft.com/drawlets/
Eclipse Metrics Plugin (2010), http://metrics.sourceforge.net/
Hächler, T.: Applying the Universe Type System to an Industrial Application: Case Study. Master’s thesis, Department of Computer Science, Federal Institute of Technology Zurich (2005)
Hailat, Z., Abi-Antoun, M.: P-X Case Study: Online Appendix (2011), http://www.cs.wayne.edu/%257Emabianto/px/
Hauck, S.: Aphyds: The academic physical design skeleton. In: International Conference on Microelectronics Systems Education, pp. 8–9 (2003)
Intelligent Systems and Bioinformatics Laboratory, ISBL (2003), http://vortex.cs.wayne.edu/projects.htm/
Jackson, D., Waingold, A.: Lightweight Extraction of Object Models from Bytecode. TSE 27(2) (2001)
JHotDraw, version 5.3 (1996), http://www.jhotdraw.org
Kenan, K.: Cryptography in the Database. Addison-Wesley (2006), accompanying code at http://kevinkenan.blogs.com/downloads/cryptodb_code.zip
Koning, H., Dormann, C., van Vliet, H.: Practical Guidelines for the Readability of IT-Architecture Diagrams. In: SIGDOC (2002)
Lam, P., Rinard, M.: A Type System and Analysis for the Automatic Extraction and Enforcement of Design Information. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)
MiniDraw, http://www.baerbak.com/src/frs-src.zip
Müller, P., Poetzsch-Heffter, A.: Universes: a Type System for Controlling Representation Exposure. In: Poetzsch-Heffter, A., Meyer, J. (eds.) Programming Languages and Fundamentals of Programming (1999)
Murphy, G., Notkin, D., Sullivan, K.J.: Software Reflexion Models: Bridging the Gap between Design and Implementation. TSE 27(4) (2001)
Nägeli, S.: Ownership in Design Patterns. Master’s thesis, Department of Computer Science, Federal Institute of Technology Zurich (2006)
Noble, J., Vitek, J., Potter, J.: Flexible Alias Protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, Springer, Heidelberg (1998)
O’Callahan, R.W.: Generalized Aliasing as a Basis for Program Analysis Tools. Ph.D. thesis, Carnegie Mellon University (2001)
Poole, D., Macworth, A.: CISpace: Tools for learning Computational Intelligence (2001), http://www.cs.ubc.ca/labs/lci/CIspace/
Potanin, A., Noble, J., Biddle, R.: Checking Ownership and Confinement. Concurrency and Computation: Practice and Experience 16(7) (April 2004)
Potanin, A., Noble, J., Clarke, D., Biddle, R.: Generic Ownership for Generic Java. In: OOPSLA (2006)
Potanin, A., Noble, J., Frean, M., Biddle, R.: Scale-Free Geometry in OO Programs. Commun. ACM 48(5) (2005)
Riehle, D.: Framework Design: a Role Modeling Approach. Ph.D. thesis, Federal Institute of Technology Zurich (2000)
Spiegel, A.: Automatic Distribution of Object-Oriented Programs. Ph.D. thesis, FU Berlin (2002)
Storey, M.A.D., Müller, H.A., Wong, K.: Manipulating and Documenting Software Structures. In: Eades, P., Zhang, K. (eds.) Software Visualization (1998)
Valverde, S., Ferrer-Cancho, R., Sole, R.V.: Scale-free networks from optimal design. Europhysics Letters 60(4) (2002)
Vanciu, R., Abi-Antoun, M.: Adding Ownership Domain Annotations and Extracting OOGs from Apache FTP Server. Tech. rep., Wayne State University (2011), http://www.cs.wayne.edu/~mabianto/oog_data/
Waingold, A.: Automatic Extraction of Abstract Object Models. Master’s thesis, Department of Electrical Engineering and Computer Science, MIT (2001)
Waingold, A., Lee, R.: SuperWomble Manual (2002), http://sdg.lcs.mit.edu/womble/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Vanciu, R., Abi-Antoun, M. (2013). Object Graphs with Ownership Domains: An Empirical Study. In: Clarke, D., Noble, J., Wrigstad, T. (eds) Aliasing in Object-Oriented Programming. Types, Analysis and Verification. Lecture Notes in Computer Science, vol 7850. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36946-9_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-36946-9_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36945-2
Online ISBN: 978-3-642-36946-9
eBook Packages: Computer ScienceComputer Science (R0)