290 likes | 505 Views
AOSE . Advanced Software Engineering University College Dublin Dr Rem Collier e: 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:
E N D
AOSE Advanced Software Engineering University College Dublin Dr Rem Collier e: 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
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 Software Engineering:Continually Playing Catch Up 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 inorder 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 inorder 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 inorder 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 inorder to meet its design objectives.” (Wooldridge&Jennings, 1995)
Anatomy of an Agent Generic Agent Architecture Internal Control Algorithm Decision Making Apparatus Sensors Effectors The Environment
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 of computational 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 Agent Interactions Organisational relationships Sphere of Influence Environment
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 (Herb Simon) • 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
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 Systems Subsystem Agent Organisation Subsystem Components Agent Interactions Cooperating, Coordinating, Negotiating Relationships 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