skip to main content
10.1145/1052898.1052913acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

Crosscutting techniques in program specification and analysis

Authors Info & Claims
Published:14 March 2005Publication History

ABSTRACT

We present three aspect-oriented constructs (formats, scopes, and defaults) that, in combination with a specification language based on abstract sets of objects, enable the modular application of multiple arbitrarily precise (and therefore arbitrarily unscalable) analyses to scalably verify data structure consistency properties in sizable programs. Formats use a form of field introduction to group together the declarations of all of the fields that together comprise a given data structure. Scopes and defaults enable the developer to state certain data structure consistency properties once in a single specification construct that cuts across the preconditions and postconditions of the procedures in the system. Standard approaches, in contrast, scatter and duplicate such properties across the preconditions and postconditions. We have implemented a prototype implementation, specification, analysis, and verification system based on these constructs and used this system to successfully verify a range of data structure consistency properties in several programs.Most previous research in the field of aspect-oriented programming has focused on the use of aspect-oriented concepts in design and implementation. Our experience indicates that aspect-oriented concepts can also be extremely useful for specification, analysis, and verification.

References

  1. J. Aldrich. Open modules: Reconciling extensibility and information hiding. Software Engineering Properties of Languages for Aspect Technologies, March 2004.]]Google ScholarGoogle Scholar
  2. M. Barnett, K. R. M. Leino, and W. Schulte. The Spec# programming system: An overview. In CASSIS 2004: International Workshop on Construction and Analysis of Safe, Secure and Interoperable Smart devices, March 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Batory and S. O'Malley. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology, 1(4), Oct. 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. W. Blume and R. Eigenmann. Performance analysis of parallelizing compilers on the Perfect Benchmarks programs. IEEE Transactions on Parallel and Distributed Systems, 3(6):643--656, Nov. 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. L. Burdy, Y. Cheon, D. Cok, M. D. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll. An overview of JML tools and applications. Technical Report NII-R0309, Computing Science Institute, Univ. of Nijmegen, March 2003.]]Google ScholarGoogle Scholar
  6. D. R. Cheriton and M. E. Wolf. Extensions for multi-module records in conventional programming languages. In Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 296--306. ACM Press, 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. C. Chu-Carroll. Supporting distributed collaboration through multidimensional software configuration management. In Proceedings of the 10th ICSE Workshop on Software Configuration Management, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Clifton and G. Leavens. Observers and assistants: A proposal for modular aspect-oriented reasoning. Technical Report TR 02-04, Department of Computer Science, Iowa State University, Mar. 2002.]]Google ScholarGoogle Scholar
  9. K. Fisler and S. Krishnamurthi. Modular verification of collaboration-based software designs. In Proceedings of the Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, Vienna, Austria, Sept. 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Flanagan, K. R. M. Leino, M. Lilibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended Static Checking for Java. In Proc. ACM PLDI, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. E. Gamma, R. Helm, R. Johnson, and J. Vlisside. Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, Mass., 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Janzen and K. D. Volder. Programming with crosscutting effective views. In M. Odersky, editor, 18th ECOOP, pages 195--218, 2004.]]Google ScholarGoogle Scholar
  13. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An overview of AspectJ. In ECOOP, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP, 1997.]]Google ScholarGoogle ScholarCross RefCross Ref
  15. N. Klarlund, A. Møller, and M. I. Schwartzbach. MONA implementation secrets. In Proc. 5th International Conference on Implementation and Application of Automata. LNCS, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Laddad. AspectJ in Action. Manning Publications Company, Greenwich, CT, 2003.]]Google ScholarGoogle Scholar
  17. P. Lam, V. Kuncak, and M. Rinard. On modular pluggable analyses using set interfaces. Technical Report 933, MIT CSAIL, December 2003.]]Google ScholarGoogle Scholar
  18. P. Lam, V. Kuncak, and M. Rinard. On our experience with modular pluggable analyses. Technical Report 965, MIT CSAIL, September 2004.]]Google ScholarGoogle Scholar
  19. P. Lam, V. Kuncak, and M. Rinard. Generalized typestate checking for data structure consistency. In 6th International Conference on Verification, Model Checking and Abstract Interpretation, 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. P. Lam, V. Kuncak, and M. Rinard. Hob: A tool for verifying data structure consistency. In 14th International Conference on Compiler Construction (tool demo), April 2005.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. P. Lam, V. Kuncak, K. Zee, and M. Rinard. The Hob project web page. http://catfish.csail.mit.edu/~plam/hob/, 2004.]]Google ScholarGoogle Scholar
  22. K. Lieberherr, D. Lorenz, and M. Mezini. Programming with aspectual components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, Mar. 1999.]]Google ScholarGoogle Scholar
  23. B. Liskov and J. Guttag. Program Development in Java: Abstraction, Specification, and Object-Oriented Design. Addison-Wesley, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Møller and M. I. Schwartzbach. The Pointer Assertion Logic Engine. In Proc. ACM PLDI, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Moon. Object-oriented programming with flavors. In OOPSLA, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. H. Ossher and P. Tarr. Multi-dimensional separation of concerns using hyperspaces. Technical Report Research Report 21452, IBM, 1999.]]Google ScholarGoogle Scholar
  27. H. Ossher and P. Tarr. Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM, Oct. 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Popovici, T. Gross, and G. Alonso. Dynamic weaving for aspect-oriented programming. In Proceedings of the 1st International Conference on Aspect-Oriented Software Development, pages 141--147, Enschede, The Netherlands, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. Reiter. A logic for default reasoning. Artificial Intelligence, pages 81--132, 1980.]]Google ScholarGoogle Scholar
  30. M. Rinard, A. Sǎlcianu, and S. Bugrara. A classification system and analysis for aspect-oriented programs. In Proc. 12th Symposium on the Foundations of Software Engineering, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. C. Rinard. The Design, Implementation and Evaluation of Jade, a Portable, Implicitly Parallel Programming Language. PhD thesis, Stanford University, 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. A. Silberschatz and Z. Kedem. Consistency in hierarchical database systems. Journal of the ACM, 27(1):72--80, January 1980.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. G. Snelting and F. Tip. Semantics-based composition of class hierarchies. In ECOOP, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. M. Störzer and J. Krinke. Interference analysis for AspectJ. In Workshop on Foundations of Aspect-Oriented Languages, Mar. 2003.]]Google ScholarGoogle Scholar
  35. P. L. Tarr, H. Ossher, W. H. Harrison, and S. M. S. Jr. N degrees of separation: Multi-dimensional separation of concerns. In ICSE, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. M. Wand, G. Kiczales, and C. Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. Transactions on Programming Languages and Systems, 26(5), 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. K. Zee, P. Lam, V. Kuncak, and M. Rinard. Combining theorem proving with static analysis for data structure consistency. In International Workshop on Software Verification and Validation (SVV 2004), Seattle, November 2004.]]Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development
    March 2005
    210 pages
    ISBN:1595930426
    DOI:10.1145/1052898
    • General Chair:
    • Mira Mezini,
    • Program Chair:
    • Peri Tarr

    Copyright © 2005 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 14 March 2005

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    Overall Acceptance Rate41of139submissions,29%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader