Abstracting object state

Document type: Journal Articles
Article type: Original article
Peer reviewed: Yes
Author(s): Jan Bosch
Title: Abstracting object state
Year: 1997
Pagination: 1-&
ISSN: 0969-9767
ISI number: A1997YA02300001
Organization: Blekinge Institute of Technology
Department: Department of Software Engineering and Computer Science (Institutionen för programvaruteknik och datavetenskap)
Dept. of Software Engineering and Computer Science S-372 25 Ronneby
+46 455 38 50 00
Language: English
Abstract: The term `state' has many different meanings, depending on the context in which it is used. In the implementation phase, it refers to the values of the instance variables of the object; during design, it refers to states used in finite state models or their derivatives. For both interpretations, problems have been identified: (1) the way clients of an object access its state is defined in an ad hoc manner, (2) the conventional object-oriented model provides no means to change the interface of an object dynamically on the basis its state or the type of client accessing it, (3) finite state machine approaches are not uniformly integrated in the object-oriented model nor do they provide sufficient complexity reduction for modelling the dynamic behaviour, and (4) no support is provided for defining active states. In this paper we introduce the concept of abstract object state as a solution to these problems. This concept provides a systematic technique to explicitly define an abstraction of the object state which is placed at the interface of the object. The abstract object state consists of static states, but also of active states which can be seen as time derivatives of static states. We show that the abstract object state provides a more uniform approach to object behaviour specification than do finite state models. The concepts discussed have been implemented in the layered object model ((LOM)-O-AY), an extended object-oriented model which is supported by a translator to C++, an execution environment and an integrated development environment.
Subject: Software Engineering\General
Keywords: extended object models, finite state machines, abstract object state, active state