Software Design
Software Design
Serge Stinckwich
[email protected]
“We coud take advantage of
advanced software engineering
concepts to built more elaborate
agent systems.”
Agents Architecture
• to predict what an agent in its current state will do in its current environment
•Design time
•Compilation time
•Deployement time
• Definition : adaptation where the program carries out itself it own adaptation
• Many unsolved problems associated with symbolic AI, have led some researchers to question the viability of the
whole paradigm and to the development of reactive architectures :
•Simplicity
•Economy
•Computational tractability
•Elegance
Limitations of Reactive Agents
• Short-term view
• Horizontal layering : layers are directly connected to the sensory input and
action output. Each layer work concurrently and act as an agent producing
suggestions as to what action to perform.
• Vertical layering : Sensory input and action output dealt with by at most one
layer each.
TouringMachines
• Three layers:
unidirectional
Communication procedure call protocol
(events) or bidirectional
synchronous or
Synchronization synchronous protocol
asynchronous
Evolution of programming on 3 axis (III)
3rd axis : abstraction level
• ontology
• protocol
(Software) Components
• Objective : ease
Objects Components
implicit, internal
explicit, external
structure (object
(connectors)
references)
bidirectional unidirectional
communication (procedure call, (events) or
return value) bidirectionnal
synchronous or
synchronization synchronous
asynchronous
What agents can bring to components based
systems ?
object
Examples of components architecture
• Protocol components
=> AgentTalk, SCD
Data Control
Activation exit
Output port Data production
point
Activation
Connexion Data transfer
transfer
MALEVA components can be sequentially
composed
MALEVA components can be concurrently
composed
Control structure are reified as control components
• behavior meta-component :
• reorganize connexions
Advantages of explicit control flow
• genericity
Reactor
Anticipation
ticks
Ticker
Modifications
World
Reactor
State Current Predicted
Undesirable
Sensed Data
Builder World World
State
State State Modification
Predictor Analyzer
Builder
Modifications
Trigger
Caption
Passive Control flow output interface
Component Control flow input interface
Active Data flow output interface
Component Data flow input interface
Conclusion
• Reuse is difficult
• Dual movement :
• interpreter, compiler
• pretty-printer
• ...
Metaprogramming vs reflection (for P. Maes)
Color
TranslucentColor Then look in
the superclass.
TranslucentColor
Key
First look in the instance-of
class of the object. message send
translucentBlue reply
class lookup
Object class
Object
Color class
Color
TranslucentColor class
TranslucentColor
translucentBlue
Key
instance-of
Object class
Object
Then look in the
Color class superclass, and so on,until
Color you find the method.
Color blue
TranslucentColor class
TranslucentColor
Key
First look in the instance-of
class of the object. message send
reply
blue lookup
Behavior
ClassDescription
Class
Object class
Object
Color class Metaclass
Color
TranslucentColor class
TranslucentColor
Key
ntBlue instance-of
Behavior
aTranslucentColor
ClassDescription
Class
Object class
Object
Color class
Color
TranslucentColor class
TranslucentColor
Key
instance-of
message send
reply
new lookup
Behavior class
Behavior
ClassDescription class
ClassDescription
Class class
Class
Metaclass class
Object class
Object
Color class Metaclass
Color
TranslucentColor class
TranslucentColor
Key
translucentBlue instance-of
Agent applications for reflection
Observes
and
Acts Upon
Communication
Interfaces
Local Planning Layer
Mental Other
Model Adaptation
Local
Plans
Plans
Reactive Layer
Actuators
World
Model Other Adaptation
Reflexes Reflex
Sensors
Adaptations dimensions
• What is adapted ?