Skip to main content

Enforcing Design Constraints with Object Logic

  • Conference paper
Static Analysis (SAS 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1824))

Included in the following conference series:

Abstract

Design constraints express essential behavioural properties of a software system. Two key elements of a scheme for enforcing design constraints are presented: a logic for describing the constraints, and an analysis that can be used both to explore the constraints in isolation (and thus gain confidence in their correctness), and to check that they are obeyed by an implementation. Examples of applications of the logic and its analysis at various levels of abstraction are given, from high-level designs to finding bugs in code. The challenge of bridging several levels, and checking code against abstract design constraints, is illustrated with a scenario from an air-traffic control system.

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. Adjie-Winoto, W., Schwartz, E., Balakrishnan, H., Lilley, J.: The Design and Implementation of an Intentional Naming System. In: Proc.17th ACM Symposium on Operating System Principles (SOSP 1999), Kiawah Island, SC (December 1999)

    Google Scholar 

  2. The Bandera Project, Kansas State University, http://www.cis.ksu.edu/santos/bandera/

  3. Cleaveland, R., Sims, S.: The NCSU Concurrency Workbench. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 394–397. Springer, Heidelberg (1996)

    Google Scholar 

  4. Detlefs, D., Leino, K.R., Nelson, G., Saxe, J.: Extended static checking. Technical Report 159, Compaq Systems Research Center (1998)

    Google Scholar 

  5. Dor, N., Rodeh, M., Sagiv, M.: Detecting Memory Errors via Static Pointer Analysis. In: Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 1998), Montreal (June 1998)

    Google Scholar 

  6. Harrison, W., Ossher, H.: Subject-Oriented Programming – A Critique of Pure Objects. In: Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 1993) (September 1993)

    Google Scholar 

  7. Havelund, K., Pressburger, T.: Model Checking Java Programs Using Java PathFinder. International Journal on Software Tools for Technology Transfer, Springer, Heidelberg (to appear)

    Google Scholar 

  8. Holzmann, G.J.: The Model Checker Spin. IEEE Transactions on Software Engineering: Special issue on Formal Methods in Software Practice 23(5), 279–295 (1997)

    MathSciNet  Google Scholar 

  9. Jackson, D., Wing, J.: Lightweight Formal Methods, April 1996. IEEE Computer, Los Alamitos (1996)

    Google Scholar 

  10. Jackson, D.: Alloy: A Lightweight Object Modelling Notation. Technical Report 797, MIT Laboratory for Computer Science, Cambridge, MA (February 2000)

    Google Scholar 

  11. Jackson, D., Chapin, J.: Simplifying Air-traffic Control: A Case Study in Software Design. IEEE Software, Los Alamitos (2000)

    Google Scholar 

  12. Jackson, D., Schechter, I., Shlyakhter, I.: Alcoa: the Alloy Constraint Analyzer. In: Proc. International Conference on Software Engineering, Limerick, Ireland (June 2000)

    Google Scholar 

  13. Jackson, D., Sullivan, K.: COM Revisited: Tool Assisted Modelling and Analysis of Software Structures. Submitted for publication. Available at: http://sdg.lcs.mit.edu/~dnj/publications

  14. Jackson, D., Vaziri, M.: Using a SAT Solver to Find Bugs in Code. Submitted for publication, Available at: http://sdg.lcs.mit.edu/~dnj/publications

  15. Jackson, D.: Automating First Order Logic (submitted for publication), Available at: http://sdg.lcs.mit.edu/~dnj/publications

  16. Khurshid, S., Jackson, D.: Exploring the Design of an Intentional Naming Scheme with an Automatic Constraint Analyzer (submitted for publication), Available at: http://sdg.lcs.mit.edu/~dnj/publications

  17. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J., Irwin, J.: Aspect- Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  18. Murphy, G.C., Notkin, D., Sullivan, K.: Software Reflexion Models: Bridging the Gap Between Source and High-Level Models. In: Proc. Third ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE 1995) (October 1995)

    Google Scholar 

  19. Naur, P., Randell, B. (eds.): Software Engineering: Report on a Conference sponsored by the NATO Science Committee, Garmisch, Germany (October 1968); Brussels, Scientific Affairs Division, NATO, p. 231 (January 1969)

    Google Scholar 

  20. President’s Information Technology Advisory Committee. Report to the President. Information Technology Research: Investing in Our Future (February 1999), Available at: http://www.ccic.gov/ac/report/

  21. Roscoe, A.W.: Model-checking CSP. In: A Classical Mind: Essays in Honour of C.A.R. Hoare, Prentice- Hall, Englewood Cliffs (1994) ISBN 0-13-294844-3.

    Google Scholar 

  22. Sagiv, M., Repsand, T., Wilhelm, R.: Parametric Shape Analysis via 3-Valued Logic. In: Proc. ACM Symposium on Principles of Programming Languages (POPL 1999), San Antonio, TX, January 1999, pp. 20–22. ACM, New York (1999)

    Google Scholar 

  23. Michael Spivey, J.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall, Englewood Cliffs (1992)

    Google Scholar 

  24. Kevin Sullivan, M., Marchukov, M., Socha, D.: Analysis of a conflict between interface negotiation and aggregation in Microsoft’s component object model. IEEE Transactions on Software Engineering (July/August 1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jackson, D. (2000). Enforcing Design Constraints with Object Logic. In: Palsberg, J. (eds) Static Analysis. SAS 2000. Lecture Notes in Computer Science, vol 1824. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45099-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-45099-3_1

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67668-3

  • Online ISBN: 978-3-540-45099-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics