@MISC{_modulardescription, author = {}, title = {Modular Description and Verification of Concurrent Objects}, year = {} }
Share
OpenURL
Abstract
Abstract. The design of large and complex distributed systems requires a modular approach to support reuse and verification. We propose an object-oriented programming model based on concurrently executing communicating agents (concurrent objects) and an associated proof methodology that exploits the class hierarchy to allow for modular verification. We propose to separate protocol from functionality in class definitions, and advocate separate hierarchies of protocol classes as a way to overcome the inheritance anomaly of concurrent object-oriented programming. We formalize an agent in Lamport's Temporal Logic of Actions. Modular verification is achieved by restricting inheritance in a way that ensures that subclasses refine superclasses. Interesting properties can thus be verified at an abstract level, ignoring unnecessary implementation detail. 1 Introduction The object-oriented paradigm in software construction promises modular, incremental design and has therefore become very attractive to practitioners. On the other hand, its semantical foundations are still not well-understood, and few formalisms [3, 10] have been defined that allow the verification of object-oriented programs. In particular, it is notoriously hard to exploit the modular structure of object (or class) definitions in reasoning about object-oriented systems.