The term `state' has many different meanings, depending on the context
in which it is used. In the implementation phase, it refers to the va
lues 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 co
nventional object-oriented model provides no means to change the inter
face of an object dynamically on the basis its state or the type of cl
ient accessing it, (3) finite state machine approaches are not uniform
ly integrated in the object-oriented model nor do they provide suffici
ent complexity reduction for modelling the dynamic behaviour, and (4)
no support is provided for defining active states. In this paper we in
troduce the concept of abstract object state as a solution to these pr
oblems. This concept provides a systematic technique to explicitly def
ine an abstraction of the object state which is placed at the interfac
e of the object. The abstract object state consists of static states,
but also of active states which can be seen as time derivatives of sta
tic states. We show that the abstract object state provides a more uni
form approach to object behaviour specification than do finite state m
odels. The concepts discussed have been implemented in the layered obj
ect model ((LOM)-O-AY), an extended object-oriented model which is sup
ported by a translator to C++, an execution environment and an integra
ted development environment.