A Multi-Agent System for Knowledge Management in Software Maintenance Aurora Vizcaíno 1 , Francisco Ruiz 1 , Mario Piattini 1 , Jesús Favela 2 1 Grupo Alarcos, Escuela Superior de Informática, Ciudad Real (Spain) 2 CICESE, Ensenada (México) Abstract. Knowledge management has become an important topic as organisations wish to take advantage of the information that they produce and that can be brought to bear on present decisions. This work describes a system to manage the information (and knowledge) generated during the software maintenance process, which consumes a large part of the software lifecycle costs. The architecture of the system is formed of a set of agent communities. The agents can learn from previous experience and share their knowledge with other agents, or communities. Different scenarios showing the system's functionality and the convenience of using it during the maintenance process are also described in this paper. 1. Introduction Knowledge is a crucial resource for organizations [16]. Knowledge allows people and organizations to obtain power, money, and to become more competitive. For this reason, companies are currently researching techniques and methods to manage their knowledge systematically. Organizations have different types of knowledge that are often related to each other and which must be managed in a consistent way. For instance, software engineering involves the integration of various knowledge sources that are constantly changing. The management of this knowledge and how it can be applied to software development and maintenance efforts has received little attention from the software engineering research community so far [9]. Tools and techniques are necessary to capture and process knowledge in order to facilitate subsequent development and maintenance efforts. This is particularly true for software maintenance, a knowledge intensive activity that depends on information generated during long periods of time and by large numbers of people, many of whom may no longer be in the organisation. This paper presents a multi-agent system in charge of managing the knowledge that is produced during software maintenance. The contents of this article are organized as follows: section 2 describes the different types of knowledge that are generated during the software Maintenance Process (MP) and presents the advantages of using a Knowledge Management (KM) system in maintenance. Section 3 proposes a multi- agent architecture and describes the roles played by these agents. The ontology that conceptualises the types of information in maintenance is also outlined in this section. Section 4 illustrates the functionality of the system when used in different types of maintenance scenarios. Finally conclusions are presented in section 5.