AOSE Advanced Software Engineering University College Dublin Dr Rem Collier e: rem.collier@ucd.ie.

Post on 11-Jan-2016

212 views 0 download

Tags:

transcript

AOSE Advanced Software Engineering

University College Dublin

Dr Rem Colliere: rem.collier@ucd.ie

Course Overview

• 5-credit Marking Scheme: – Lab work 40% – Exam 60%

• 10-credit Marking Scheme:– Lab work 20%– Exam 30%– Assignment 50%

• 10-credit Assignments:– Methodology Evaluation (team of 3/4)– Example System (team of 2/3)

Course Content

• Day 1: Introduction / Interaction / AOP– Practical: Install AF Eclipse Plugin and AF-AgentSpeak tutorial

• Day 2: Coordination and Negotiation– Practical: AF-AgentSpeak tutorial

• Day 3: Other AOP Languages– Practical: Introduction to ACRE

• Day 4: ACRE: Agent Conversation Reasoning Engine– Practical: Debugging ACRE / Non-ACRE Agents

• Day 5: Software Engineering Methodologies– Assessed Practical: Implement an agent trading system

AOSE: Key-Value Proposition

The Argument for Agents

Software Development is Difficult

• One of the most complex construction tasks humans undertake.

“Computer Science is the first engineering discipline ever in which the complexity of the objects created is limited by the skill of the creator and not limited by the strength of the raw materials. If steel beams were infinitely strong and couldn’t ever bend no matter what you did, then skyscrapers could be as complicated as computers.” Brian K. Reid

• True whatever models and techniques are applied.“the essential complexity of software” Fred Brooks

• Software engineering provides models and techniques that make it easier to handle this essential complexity.

Software Development isGetting Harder

• Shorter development lifecycles

• More ambitious requirements

• Less certain requirements– Greater scope for change

• More challenging environments– Greater dynamism– Greater openness

Software Engineering:Continually Playing Catch Up

• Better Models– Components– Design patterns– Software architectures

• Better Processes– Light (Agile) methods– Heavier methods

Software Engineering:Continually Playing Catch Up

• Better Models– Components– Design patterns– Software architectures

• Better Processes– Light (Agile) methods– Heavier methods

Agent Practitioners argue that:

“agent-oriented approaches can enhance our ability to model, design and build complex

distributed software systems.”

So, what is an agent?

“An encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in

order to meet its design objectives.” (Wooldridge&Jennings, 1995)

So, what is an agent?

• Control over internal state and own behaviour.

“An encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in

order to meet its design objectives.” (Wooldridge&Jennings, 1995)

So, what is an agent?

• Control over internal state and own behaviour.

• Experiences environment through sensors and acts through effectors.

“An encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in

order to meet its design objectives.” (Wooldridge&Jennings, 1995)

So, what is an agent?

• Control over internal state and own behaviour.

• Experiences environment through sensors and acts through effectors.

• Reactive: Respond in a timely fashion to environmental change.

• Proactive: Act in anticipation of future goals.

“An encapsulated computer system, situated in some environment, and capable of flexible autonomous action in that environment in

order to meet its design objectives.” (Wooldridge&Jennings, 1995)

Anatomy of an Agent

Generic Agent Architecture

Decision Making Apparatus

Sensors Effectors

The Environment

Internal Control Algorithm

Multiple Agents

• In most cases, a single agent is insufficient– No such thing as a single agent system (!?)

– Multiple agents are the norm, to represent:• Natural decentralisation• Multiple loci of control• Multiple perspectives• Competing interests

• AOSE is primarily concerned with the construction of complex distributed systems.

Agent Interactions

• Interaction between agents is inevitable– To achieve individual objectives, to manage inter-dependencies

• Conceptualised as taking place at the knowledge-level– Which system goals, at what time, by whom, what for

• Flexible run-time initiation and responses– cf. design time, hard-wired nature of extant approaches

Paradigm shift from previous perceptions ofcomputational interaction

Organisations

• Agents act/interact to achieve objectives:– On behalf of individuals/companies– Part of a wider problem solving initiative

• A key issue in the design of such systems:– The underlying organisational relationships between the agents.

• This organisational context:– Influences the agents’ behaviour– Relationships need to be made explicit

• Peers, teams and coalitions, authority relationships

• Currently a hot area of research in the agent community!

A Canonical View

EnvironmentSphere of Influence

Interactions

Agent

Organisationalrelationships

Software Complexity & AOSE

• AOSE practitioners argue that:– Agent-oriented approaches are suited to the development of

complex distributed systems.

• Software complexity is tackled through:– Decomposition– Abstraction– Organisation

• Remember the move from Structured Programming to Object-Oriented Programming– OOP decompositions are more natural– Increased abstraction and organisation made it possible to build

more complex systems.

Complex Systems

• Complexity in software takes the form of a hierarchy– Collection of related sub-systems at different levels of

abstraction

• Can distinguish between interactions among sub-systems and interactions within sub-systems.– Latter is more frequent and predictive.

• Arbitrary choice about which components are primitive.

• Systems that support evolutionary growth develop more quickly than those that do not.– Stable intermediate forms

(Herb Simon)

Software Complexity & AOSE

• Complex systems can be naturally decomposed into (agent) sub-systems that have:– Their own thread of control (active: “say go”)– Control over their own destiny (autonomous: “say no”)

• This makes the engineering of complex systems easier:– Natural representation of multiple loci of control as “real systems

have no top” (Meyer)– Allows competing objectives to be represented and reconciled in

context sensitive fashion

Software Complexity & AOSE

• Interactions occur both among sub-systems and within sub-systems.– Agents make decisions about the nature and scope of interactions at

run-time.

• This makes the engineering of complex systems easier:– Unexpected interaction is expected and not all interactions need

be set at design time– Simplifies management of control relationships between

components as coordination occurs on an as-needed basis between continuously active entities.

Software Complexity & AOSE

• Relationship between Abstractions:

Complex Systems Agent-Based SystemsSubsystem Agent OrganisationSubsystem Components AgentInteractions Cooperating, Coordinating,

NegotiatingRelationships Mechanisms for representing

and managing organisational structures

Summary

• Key Value Proposition:– Agent-based computing can provide powerful metaphors,

concepts and techniques for conceptualising, designing and implementing complex distributed systems.

• The Argument:– Agents are a natural metaphor for developing systems in which

control and data are decentralised, and computation is asynchronous.

– Multi-Agent Systems offer flexible interaction patterns that can adapt at run-time to meet changing system requirements.

– AOSE does not replace existing approaches - it offers another level of abstraction that can be used to manage the design and implementation of complex distributed systems.

Realising the Promise

• Practical methodologies– For analysing and designing agent-based systems– Should be usable by practitioners

• Industrial strength toolkits– So that we don’t have to start from scratch– Full range of support: IDEs, debuggers, profilers, verifiers,

metrics, …

• Reusable know-how and technologies– Libraries of interaction protocols– Organisational patterns– Consistency of Approach

Existing Applications of Agents

• Agents are used in many different application domains:– Military Simulations

• US Army uses agents to train combat pilots, control UAVs (Cybelle)

– Supply Chain Management• Proctor and Gamble have an agent-based supply chain that saves

them around $300 million per year.

– eProcurement• Deutshe Post use agents to match shipping needs with 6,000 German

Freight Carriers and saves around $17M per annum.

– Manufacturing• Daimler Chrysler used agents to automate a factory producing Cylinder

heads and has seen a 10% increase in the plants productivity.

Existing Applications of Agents

• Agents are used in many different application domains:– Transportation

• Southwest Airlines cut overnight transfer weight by 71% and saved $10M per annum in labour costs.

– Games & Movies• Agents were used to model the soldiers in war scenes from Lord of

the Rings.

– Space Systems• The ESA recently committed to using agent technologies to

implement next generation space systems - multi-satellite constellations, mars rover teams, …

Agent Technology Companies

• Whitestein Technologies / Living Systems Platform– Domains:

• Telecommunications• Logistics and Supply Chain Management• Insurance and Banking• Engineering and Manufacturing

• Agent Oriented Software / JACK Agent Platform– Domains:

• Aerospace and Air Traffic Control• Oil Trading and Operations• Defence• Virtual Actors and Serious Games

Agent Technology Companies

• Magenta Technology / Maxoptra Platform– Domains:

• Retail Distribution• Oil and Gas• Asset Rental• Medical Services• Taxi and Chauffeur Operations• Home Delivery

Key Reading

• Jennings, N., On Agent-Oriented Software Engineering, Artificial Intelligence, 2000

• Jennings, N., Wooldridge M., Agent-Oriented Software Engineering: Pitfalls and Pratfalls, ???, 2002