Events, messages and methods are concepts supported by most object-oriented analysis and design techniques. The interrelation between these concepts is however not yet fully understood and guidelines and techniques for method specification remain unprecise and incomplete. In this paper we provide a simple object model which we use both to clarify the above interrelation and to devise a method for specifying the dynamic behavior of objects. In a two layered approach, this method integrates the description of the object's life-cycles with the specification of the object's methods. Our object model is characterized by two important assumptions, namely that methods are virtual objects and that messages sent to inexistent objects are returned back as an error. Both assumptions are supported by practical evidence and allow us to model internal concurrency, multiple threads and attribute sharing in a very simple and elegant way. Our ideas are illustrated on a simple banking example.
Journal of Object-Oriented Programming (JOOP), vol. 12(8), pp. 8-14, SIGS Publications, 2000.