  A new approach to software design based on an agent-oriented architecture is
presented. Unlike current research, we consider software to be designed and
implemented with this methodology in mind. In this approach agents are
considered adaptively communicating concurrent modules which are divided into a
white box module responsible for the communications and learning, and a black
box which is the independent specialized processes of the agent. A distributed
Learning policy is also introduced for adaptability.
