4/6/2010 1:30pm-3:30pm ECOT 831
|
Dynamic Behavior Management in an Entity-Oriented Software Environment
Computer Science PhD Candidate
Preserving entity identity over time while changing behavior is a problem often
encountered in software systems. The need for changes in behavior has multiple
causes: it can stem from changes to the situation of a real-world entity for
which a software entity is a proxy, from upgrades to software capabilities,
or a need to utilize new interfaces when communicating with changing or new
external entities. Strategies to permit change in behavior have ranged from
self-modifying programs to duck typing. Existing methods have drawbacks that
limit their utility.
To understand behavior, one needs to understand types. Investigation reveals a
few basic types: structure, interface, behavior, and categorization. To
implement, we use well-defined interfaces, which we call contexts, as the basis
for defining entity behavior. An entity is instantiated as a structure, which
may contain other structures as well as non-structure data. A structure's core
behavior is defined in a template. Other behavior is implemented by contained
structures, whose interfaces may be exposed as if they were the containing
structure's own.
The implementation examples display the flexibility of this approach, showing
definition of explicit behavior, dynamic behavior acquisition, and dynamic
behavior change. The ability to dynamically add or change behavior without the
necessity of a prior road map, but with well-defined interfaces, opens up
interesting possibilities for new programming paradigms.
|