Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7850))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Apache FtpServer 1.0.5, http://mina.apache.org/ftpserver/

  2. 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

    Google Scholar 

  3. Abi-Antoun, M., Aldrich, J.: Static Extraction and Conformance Analysis of Hierarchical Runtime Architectural Structure using Annotations. In: OOPSLA (2009)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. Abi-Antoun, M., Barnes, J.M.: Analyzing Security Architectures. In: ASE, pp. 3–12 (2010)

    Google Scholar 

  8. Abi-Antoun, M., Hailat, Z.: A Case Study in Extracting the Runtime Architecture of an Object-Oriented System. Tech. rep., Wayne State University (2011)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation. In: ICSE (2002)

    Google Scholar 

  11. Aldrich, J., Kostadinov, V., Chambers, C.: Alias Annotations for Program Understanding. In: OOPSLA (2002)

    Google Scholar 

  12. 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/

  13. 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/

  14. 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/

  15. 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)

    Google Scholar 

  16. Bloch, J.: Effective Java. Addison-Wesley (2001)

    Google Scholar 

  17. Boyapati, C., Liskov, B., Shrira, L.: Ownership Types for Object Encapsulation. In: POPL (2003)

    Google Scholar 

  18. Cameron, N., Drossopoulou, S., Noble, J., Smith, M.: Multiple Ownership. In: OOPSLA (2007)

    Google Scholar 

  19. Chidamber, S.R., Kemerer, C.F.: Towards a metrics suite for object oriented design. In: OOPSLA (1991)

    Google Scholar 

  20. Christensen, H.B.: Flexible, Reliable Software Using Patterns and Agile Development. Chapman and Hall/CRC (2010)

    Google Scholar 

  21. Clarke, D.G., Potter, J.M., Noble, J.: Ownership Types for Flexible Alias Protection. In: OOPSLA (1998)

    Google Scholar 

  22. Cunningham, D., Drossopoulou, S., Eisenbach, S.: Universe Types for Race Safety. In: VAMP, pp. 20–51 (2007)

    Google Scholar 

  23. Dietl, W., Müller, P.: Universes: Lightweight Ownership for JML. Journal of Object Technology 4(8) (2005)

    Google Scholar 

  24. DrawLets, version 2.0 (2002), http://www.rolemodelsoft.com/drawlets/

  25. Eclipse Metrics Plugin (2010), http://metrics.sourceforge.net/

  26. 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)

    Google Scholar 

  27. Hailat, Z., Abi-Antoun, M.: P-X Case Study: Online Appendix (2011), http://www.cs.wayne.edu/%257Emabianto/px/

  28. Hauck, S.: Aphyds: The academic physical design skeleton. In: International Conference on Microelectronics Systems Education, pp. 8–9 (2003)

    Google Scholar 

  29. Intelligent Systems and Bioinformatics Laboratory, ISBL (2003), http://vortex.cs.wayne.edu/projects.htm/

  30. Jackson, D., Waingold, A.: Lightweight Extraction of Object Models from Bytecode. TSE 27(2) (2001)

    Google Scholar 

  31. JHotDraw, version 5.3 (1996), http://www.jhotdraw.org

  32. Kenan, K.: Cryptography in the Database. Addison-Wesley (2006), accompanying code at http://kevinkenan.blogs.com/downloads/cryptodb_code.zip

  33. Koning, H., Dormann, C., van Vliet, H.: Practical Guidelines for the Readability of IT-Architecture Diagrams. In: SIGDOC (2002)

    Google Scholar 

  34. 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)

    Google Scholar 

  35. MiniDraw, http://www.baerbak.com/src/frs-src.zip

  36. 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)

    Google Scholar 

  37. Murphy, G., Notkin, D., Sullivan, K.J.: Software Reflexion Models: Bridging the Gap between Design and Implementation. TSE 27(4) (2001)

    Google Scholar 

  38. Nägeli, S.: Ownership in Design Patterns. Master’s thesis, Department of Computer Science, Federal Institute of Technology Zurich (2006)

    Google Scholar 

  39. Noble, J., Vitek, J., Potter, J.: Flexible Alias Protection. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, Springer, Heidelberg (1998)

    Google Scholar 

  40. O’Callahan, R.W.: Generalized Aliasing as a Basis for Program Analysis Tools. Ph.D. thesis, Carnegie Mellon University (2001)

    Google Scholar 

  41. Poole, D., Macworth, A.: CISpace: Tools for learning Computational Intelligence (2001), http://www.cs.ubc.ca/labs/lci/CIspace/

  42. Potanin, A., Noble, J., Biddle, R.: Checking Ownership and Confinement. Concurrency and Computation: Practice and Experience 16(7) (April 2004)

    Google Scholar 

  43. Potanin, A., Noble, J., Clarke, D., Biddle, R.: Generic Ownership for Generic Java. In: OOPSLA (2006)

    Google Scholar 

  44. Potanin, A., Noble, J., Frean, M., Biddle, R.: Scale-Free Geometry in OO Programs. Commun. ACM 48(5) (2005)

    Google Scholar 

  45. Riehle, D.: Framework Design: a Role Modeling Approach. Ph.D. thesis, Federal Institute of Technology Zurich (2000)

    Google Scholar 

  46. Spiegel, A.: Automatic Distribution of Object-Oriented Programs. Ph.D. thesis, FU Berlin (2002)

    Google Scholar 

  47. Storey, M.A.D., Müller, H.A., Wong, K.: Manipulating and Documenting Software Structures. In: Eades, P., Zhang, K. (eds.) Software Visualization (1998)

    Google Scholar 

  48. Valverde, S., Ferrer-Cancho, R., Sole, R.V.: Scale-free networks from optimal design. Europhysics Letters 60(4) (2002)

    Google Scholar 

  49. 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/

  50. Waingold, A.: Automatic Extraction of Abstract Object Models. Master’s thesis, Department of Electrical Engineering and Computer Science, MIT (2001)

    Google Scholar 

  51. Waingold, A., Lee, R.: SuperWomble Manual (2002), http://sdg.lcs.mit.edu/womble/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics