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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
The Bandera Project, Kansas State University, http://www.cis.ksu.edu/santos/bandera/
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)
Detlefs, D., Leino, K.R., Nelson, G., Saxe, J.: Extended static checking. Technical Report 159, Compaq Systems Research Center (1998)
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)
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)
Havelund, K., Pressburger, T.: Model Checking Java Programs Using Java PathFinder. International Journal on Software Tools for Technology Transfer, Springer, Heidelberg (to appear)
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)
Jackson, D., Wing, J.: Lightweight Formal Methods, April 1996. IEEE Computer, Los Alamitos (1996)
Jackson, D.: Alloy: A Lightweight Object Modelling Notation. Technical Report 797, MIT Laboratory for Computer Science, Cambridge, MA (February 2000)
Jackson, D., Chapin, J.: Simplifying Air-traffic Control: A Case Study in Software Design. IEEE Software, Los Alamitos (2000)
Jackson, D., Schechter, I., Shlyakhter, I.: Alcoa: the Alloy Constraint Analyzer. In: Proc. International Conference on Software Engineering, Limerick, Ireland (June 2000)
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
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
Jackson, D.: Automating First Order Logic (submitted for publication), Available at: http://sdg.lcs.mit.edu/~dnj/publications
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
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)
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)
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)
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/
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.
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)
Michael Spivey, J.: The Z Notation: A Reference Manual, 2nd edn. Prentice Hall, Englewood Cliffs (1992)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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