Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ICSE.2007.61acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Ownership and Immutability Inference for UML-Based Object Access Control

Published: 24 May 2007 Publication History

Abstract

We propose a mechanism for object access control which is based on the UML. Specifically, we propose use of ownership and immutability constraints on UML associations and verification of these constraints through reverse engineering. These constraints inherently support software design principles, and impose requirements on the implementation that may help prevent serious program flaws. We propose implementation-level models for ownership and immutability that capture well the meaning of these concepts in design, and we develop novel static ownership and immutability inference analyses. We perform an empirical investigation on several small-to-large Java programs. The results indicate that the inference analyses are precise and practical. Therefore, the analyses can be integrated in reverse engineering tools and can help support effective reasoning about software quality and security.

References

[1]
{1} Ashes suite collection. http://www.sable.mcgill.ca/software.
[2]
{2} Dacapo benchmark suite. http://www-ali.cs.umass.edu/dacapo/gcbm.html.
[3]
{3} R. Agarwal and S. Stoller. Type inference for parameterized race-free Java. In VMCAI, pages 149-160, 2004.
[4]
{4} J. Aldrich, V. Kostadinov, and C. Chambers. Alias annotations for program understanding. In OOPSLA, pages 311- 330, 2002.
[5]
{5} C. Boyapati, B. Liskov, and L. Shrira. Ownership types for object encapsulation. In POPL, pages 213-223, 2003.
[6]
{6} D. Clarke and S. Drossopoulou. Ownership, encapsulation and the disjointness of type and effect. In OOPSLA, pages 292-310, 2002.
[7]
{7} D. Clarke, J. Potter, and J. Noble. Ownership types for flexible alias protection. In OOPSLA, pages 48-64, 1998.
[8]
{8} D. Clarke, M. Richmond, and J. Noble. Saving the world from bad beans: Deployment time confinement checking. In OOPSLA, pages 374-387, 2003.
[9]
{9} C. Grothoff, J. Palsberg, and J. Vitek. Encapsulating objects with confined types. In OOPSLA, pages 241-253, 2001.
[10]
{10} D. Heine and M. Lam. A practical flow-sensitive and context-sensitive C and C++ memory leak detector. In PLDI, pages 168-181, 2003.
[11]
{11} G. Kniesel and D. Theisen. JAC-access right based encapsulation for Java. Software: Practice and Experience, 31(6):555-576, 2001.
[12]
{12} P. Lam and M. Rinard. A type system and analysis for the automatic extraction and enforcement of design information. In ECOOP, pages 275-302, 2003.
[13]
{13} C. Larman. Applying UML and Patterns. Prentice Hall, 2nd edition, 2002.
[14]
{14} O. Lhotak and L. Hendren. Scaling Java points-to analysis using Spark. In CC, pages 153-169, 2003.
[15]
{15} Y. Liu and A. Milanova. UML-based alias control. Technical Report RPI/DCS-06-10, Rensselaer Polytechnic Institute, Sept. 2006.
[16]
{16} A. Milanova. Precise identification of composition relationships for UML class diagrams. In ASE, pages 76-85, 2005.
[17]
{17} A. Milanova, A. Rountev, and B. Ryder. Parameterized object sensitivity for points-to and side-effect analyses for Java. In ISSTA, pages 1-12, 2002.
[18]
{18} J. Noble, J. Vitek, and J. Potter. Flexible alias protection. In ECOOP, pages 158-185, 1998.
[19]
{19} I. Pechtchanski and V. Sarkar. Immutability specification and its applications. In Joint ACM-ISCOPE Java Grande Conference , pages 202-211, 2002.
[20]
{20} S. Porat, M. Biberstein, L. Koved, and B. Mendelson. Automatic detection of immutable fields in Java. In CASCON, 2000.
[21]
{21} J. Potter, J. Noble, and D. Clarke. The ins and outs of objects. In Australian Software Engineering Conference, pages 80- 89, 1998.
[22]
{22} D. Rayside, L. Mendel, R. Seater, and D. Jackson. An analysis and visualization for revealing object sharing. In Workshop on Eclipse technology eXchange, pages 11-15, 2005.
[23]
{23} A. Rountev. Precise identification of side-effect free methods. In ICSM, pages 82-91, 2004.
[24]
{24} A. Rountev, A. Milanova, and B. G. Ryder. Points-to analysis for Java using annotated constraints. In OOPSLA, pages 43- 55, 2001.
[25]
{25} A. Rountev, A. Milanova, and B. G. Ryder. Fragment class analysis for testing of polymorphism in Java software. IEEE TSE, 30(6):372-386, June 2004.
[26]
{26} B. G. Ryder, W. Landi, P. Stocks, S. Zhang, and R. Altucher. A schema for interprocedural modification side-effect analysis with pointer aliasing. ACM TOPLAS, 23(2):105-186, Mar. 2001.
[27]
{27} A. Salcianu and M. Rinard. A combined pointer and purity analysis for Java programs. In VMCAI, pages 199-215, 2005.
[28]
{28} M. Sridharan and R. Bodik. Refinement-based context-sensitive points-to analysis for Java. In PLDI, pages 387- 400, 2006.
[29]
{29} M. Tschantz and M. D. Ernst. Javari: Adding reference immutability to Java. In OOPSLA, pages 211-230, 2005.
[30]
{30} R. Vallée-Rai, E. Gagnon, L. Hendren, P. Lam, P. Pominville, and V. Sundaresan. Optimizing Java bytecode using the Soot framework: Is it feasible? In CC, LNCS 1781, pages 18-34, 2000.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '07: Proceedings of the 29th international conference on Software Engineering
May 2007
784 pages
ISBN:0769528287

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 24 May 2007

Check for updates

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2012)Reim & ReImInferACM SIGPLAN Notices10.1145/2398857.238468047:10(879-896)Online publication date: 19-Oct-2012
  • (2012)Reim & ReImInferProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/2384616.2384680(879-896)Online publication date: 19-Oct-2012
  • (2011)Static dominance inferenceProceedings of the 49th international conference on Objects, models, components, patterns10.5555/2025896.2025912(211-227)Online publication date: 28-Jun-2011
  • (2010)Detecting inefficiently-used containers to avoid bloatACM SIGPLAN Notices10.1145/1809028.180661645:6(160-173)Online publication date: 5-Jun-2010
  • (2010)Detecting inefficiently-used containers to avoid bloatProceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1806596.1806616(160-173)Online publication date: 5-Jun-2010
  • (2009)Static extraction of sound hierarchical runtime object graphsProceedings of the 4th international workshop on Types in language design and implementation10.1145/1481861.1481869(51-64)Online publication date: 24-Jan-2009
  • (2008)RubaconProceedings of the 30th international conference on Software engineering10.1145/1368088.1368228(875-878)Online publication date: 15-May-2008
  • (2008)Aliasing, Confinement, and Ownership in Object-Oriented ProgrammingObject-Oriented Technology. ECOOP 2008 Workshop Reader10.1007/978-3-642-02047-6_4(30-41)Online publication date: 15-May-2008
  • (2007)Inferring aliasing and encapsulation properties for javaACM SIGPLAN Notices10.1145/1297105.129705942:10(423-440)Online publication date: 21-Oct-2007
  • (2007)Type qualifier inference for javaACM SIGPLAN Notices10.1145/1297105.129705142:10(321-336)Online publication date: 21-Oct-2007
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media