The main objective of this course is to provide students with methodological guidelines to the analysis, design and implementation of distributed software systems. The course presents several Artificial Intelligence methods, techniques and technologies which are applied already in the engineering of distributed systems in order to make them more flexible, adaptable and reconfigurable.
The first half of the course introduces a new design paradigm, Agent-Oriented Software Engineering (AOSE), where the analysis and design of distributed systems uses concepts from human societies and organizations (actor, role, responsibility, delegation of tasks) to model, in a flexible way, the interactions within the distributed components in system and ways to recover from failures.
The second half of the course will present several social mechanisms (Trust&Reputation, Organisational Structures, Organizational Theory, Normative Systems), inspired in human and animal societies, which can be implemented in a computational way to handle the equilibrium between individual component flexibility and overal system control.
Person in charge
Javier Vazquez Salceda (
Generic Technical Competences
CG3 - Capacity for modeling, calculation, simulation, development and implementation in technology and company engineering centers, particularly in research, development and innovation in all areas related to Artificial Intelligence.
Technical Competences of each Specialization
CEP3 - Capacity for applying Artificial Intelligence techniques in technological and industrial environments to improve quality and productivity.
CEP7 - Capability to respect the legal rules and deontology in professional practice.
CT3 - Ability to work as a member of an interdisciplinary team, as a normal member or performing direction tasks, in order to develop projects with pragmatism and sense of responsibility, making commitments taking into account the available resources.
CT4 - Capacity for managing the acquisition, the structuring, analysis and visualization of data and information in the field of specialisation, and for critically assessing the results of this management.
Analisis y sintesis
CT7 - Capability to analyze and solve complex technical problems.
CB6 - Ability to apply the acquired knowledge and capacity for solving problems in new or unknown environments within broader (or multidisciplinary) contexts related to their area of study.
CB8 - Capability to communicate their conclusions, and the knowledge and rationale underpinning these, to both skilled and unskilled public in a clear and unambiguous way.
CB9 - Possession of the learning skills that enable the students to continue studying in a way that will be mainly self-directed or autonomous.
Understand the origins and foundations of distributed computing on the Internet
Knowing the possible applications of artificial intelligence for distributed systems on the Internet
Understanding the basics of Agent Orientation
To analyze a problem distributed in nature to identify the different actors and their functionalities
Designing distributed systems using an agent-oriented methodology
Extract and represent knowledge about the context necessary to build a distributed application on the Internet that is flexible and robust.
Designing context ontologies by applying a methodology properly
Introduction to Agent Orientation
Trends in modern (distributed) computing. Origins of Multiagent design. Agent Design and Society Design. Approaches to Agent-Oriented Design. Agent properties. Environment properties. Agent types and architectures.
Agent Design: Reasoning in Agents
Definition of Reasoning. Automated Reasoning. Reasoning Paradigms. Symbolic Reasoning Agents. Deductive Reasoning Agents. Agent-Oriented Programming. MetateM. Practical Reasoning. BDI Agents. BDI Agent Control Loop
Current trends in Software engineering. Agent-Oriented Software Engineering. Agent-Oriented Methodologies. The GAIA Methodology. The Prometheus Methodology
Social Design: Coordination and Social Models
Coordination in MAS. Coordination Structures. Social Models for Coordination. Trust and Reputation Models. Organizational Models. Institutional Models.
Applications of Agent-Oriented Design.
Agent-Oriented Design for 1) Electronic Negotiation Support, 2) Flexible Dynamic Web services, 3) Multi-robotic environments. Case studies for the practical assignments.
Introduction to Agent Orientation
Students will learn the origins and foundations of Agent Orientation and some of the application areas. To reinforce learning, the student must read chapter 1 of the book of Russell & Norvig (available online) and the book "Agent Technology: Computing as interaction. A Roadmap to Agent Based Computing" (also available online).
Students not only should attend the teacher lectures, but also participate in discussions with the teacher and other students on when is best to use each of the algorithms. During the first assignment students should identify the kind of reasoning supported by the chosen agent programming framework. During the presentation of the first assignment students will present at the classroom the results on this analysis to the rest of the class.
Students not only should attend the teacher lectures, but also participate in discussions with the teacher and other students on how to model distributed systems using the proposed methodologies. During the second assignment students should apply one of the methodologies to a real-like scenario to make an agent oriented design. During the presentation of the second assignment students will describe at the classroom their proposed design to the rest of the class.
Students not only should attend the teacher lectures, but also participate in discussions with the teacher and other students on the different social structures and abstractions presented and how to model more flexible distributed systems. During the second assignment students should apply one or some of the social structures to their design. During the presentation of the second assignment students will describe at the classroom the social abstrations they included into thier design to the rest of the class.
Students not only should attend the teacher lectures, but also participate in discussions with the teacher and other students on the discussion bout the different application examples. Furthermore, during the second assignment students should propose a real-like scenario where agent-oriented solutions are appropriate and apply the abstractions, mechanisms and social structures seen in the course. During the presentation of the second assignment students will describe at the classroom the chosen real-like scenario and motivate the suitability of an agent-oriented solution for it.
The classroom sessions are divided into theory and problem sessions.
Theory sessions introduce the knowledge of the course concepts, switching between the exhibition of new material with examples and discussion with students on concepts and examples.
Problem sessions deepen the knowledge on techniques and methodologies, explained in the Theory sessions. The participation of students will be stimulated to discuss possible alternatives.
Apart of the classroom sessions, students will work in groups on small practical assignments by using Agent-Oriented Software Engineering tools and languages in order to practice and enhance the students' knowledge on the concepts, techniques and methodologies presented in the course. Students will present the results of their practical assignments to their peers in dedicated classroom sessions.
The student assessment will consist of a final exam mark and the practical assignments' reports and presentations.
The calculation of the final mark will be as follows:
FPA = first practical assignment
SPA = second practical assignment
FM = final exam mark
MARK = FPA*0.3 + SPA*0.5 + FM*0.2
The competences assigned to this course will be avaluated through the practical assignments and the final exam.
Moral Origins: The Evolution of Virtue, Altruism, and Shame -
Boehm, C, Basic Books ,
Agent Technology: Computing as interaction. A Roadmap to Agent Based Computing -
Luck, M., McBurney, P., Shehory, O., Willmott, S., ,
ISBN: 085432 845 9
Rules of Encounter. Designing Conventions for Automated Negotiation among Computers -
Rosenschein, J., Zlotkin, G., MIT Press ,
Prior skills on Logics:
- Knowledge of the basic concepts: logical propositions and predicates
- Ability to formulate a problem in logical terms.
- Knowledge of logical inference and decision. Understanding resolution strategies.
Prior skills on Algorithmics and Programming:
- Knowledge on tree and graph structures,
- Knowledge pn tree and graph search algorithms.
- Basic notions in algorithmic complexity.
Prior Skills on Agent Programming adquired in the previous course "Introduction to Multi-Agent Systems"*:
- Knowledge of the basic concepts: agent, multiagent system, environment, perception, actuation.
- Knowledge of the basic coordination mechanisms.
- Knowledge of the agent communication mechanisms
- Basic notions on programming multiagent suystems composed by reactive agents.
*Those students which have not passed the previous course ("Introduction to Multi-Agent Systems") will receive some extra material in order to get the basic level needed for the proper understanding of this course.
Where we are
B6 Building Campus Nord
C/Jordi Girona Salgado,1-3
08034 BARCELONA Spain
Tel: (+34) 93 401 70 00