280 likes | 401 Views
Applying Knowledge Management in Software Maintenance through Agents. Aurora Vizcaíno Alarcos Research Group Universidad Castilla-La Mancha (Spain). CONTENTS. Knowledge Management. Why use Knowledge Management in Software Maintenance?. KM-Mantis: A Multi-Agent System. Conclusions. 4.
E N D
Applying Knowledge Management in Software Maintenance through Agents Aurora Vizcaíno Alarcos Research Group Universidad Castilla-La Mancha (Spain)
CONTENTS • Knowledge Management • Why use Knowledge Management in Software Maintenance? • KM-Mantis: A Multi-Agent System • Conclusions 4
Knowledge Management • The management of organizational knowledge to create business value and generating a competitive advantage • Tacit Knowledge • Explicit knowledge Saskatoon July 2004
Knowledge Management • The SECI (Socialization-Externalization-Combination-Internalization) model describes the combinations of the different types of knowledge • Socialization: Sharing tacit knowledge. It becomes new tacit knowledge for the person that receives it Saskatoon July 2004
Knowledge Management • Externalization: Expressing the tacit knowledge as explicit knowledge • Combination: Mixing different explicit knowledge • Internalization: Converting explicit knowledge into tacit knowledge. The person adds her/his experience and beliefs Saskatoon July 2004
Knowledge Transformation Tacit Knowledge to Explicit Knowledge Socialization Externalization Tacit Knowledge Internalization Combination Explicit Knowledge Saskatoon July 2004
The Need for Knowledge Management in Software Engineering • Development teams do not benefit from existing experience. Instead they repeat mistakes over and over again (Basili et al., 2001; Brössler, 1999) • These problems are also linked to the problem of transferring knowledge to novices in the organization Saskatoon July 2004
The Need for Knowledge Management in Software Engineering • Software development is becoming a complex domain to master due to the constant change and trends of new technologies • Every emerging technology cannot be mastered overnight and it is extremely hard to accurately estimate the cost of a project when the technologies it will be using are new and unproven, and may even change during the project Saskatoon July 2004
The Need for Knowledge Management in Software Engineering • People in software organizations spend 40% of their time in searching for and accessing different types of information related to their projects (Henninger, 1997) • In the absence of any knowledge about other employees’ expertise, people are even found spending as many as 3-4 days locating experts • KM can establish routines for identifying knowledge, as well as the people who own the knowledge Saskatoon July 2004
KM in Software Engineering. Opportunities • While AI techniques can be intimidating to many people, this is not the case for software engineers (Schneider, 2001) • All artifacts are already in electronic form (Schneider, 2001) • Knowledge sharing between software engineers does already occur. (Knowledge sharing forum in Sun’s support for Java programmers) Saskatoon July 2004
The Need for Knowledge Management in Software Maintenance • Many studies have demonstrated that most of the overall expenses incurred during the life-cycle of a software product occur during the maintenance process • A lot of information is generated from different sources: • Products • Reasons that motivate maintenance (new requirements, user • complaints) • Professionals involved in the SM process • The various types of information are produced at different stages but seldom is it stored and processed 13
The Need for Knowledge Management in Software Maintenance • Each person has partial information that is required by other members of staff • If a person leaves the organization his/her expertise and tacit knowledge go with him/her • By using a KM system tacit knowledge can be transformed into explicit knowledge, which belongs to the organisation, and good solutions and lessons learned can be reused thus avoiding the repetition of mistakes 14
KM-MANTIS a Multi-Agent System A system for storing, processing and managing information and knowledge generated during the software maintenance process Why agents? • Agents are proactive • Agents can manage both distributed and local information • Agents may have different reasoning techniques (induction and decision tree-based algorithms, case-based reasoning) • Agents share their knowledge 15
Knowledge Manager Agent Staff Agent Give me information about this tax This tax should be applied... KM-MANTIS Architecture: Staff Agents I am the Staff Agent, I am in charge of helping maintainers to perform their work. When a person chooses a project I ask the KMA to search for knowledge that can be userful for him 17
Is this activity appropriate for a corrective maintenance? Knowledge Manager Agent Knowledge Sources Manager Agent Who is the expert in Java? KM-MANTIS Architecture: Product Agents And when a new modification is demanded a new project agent is created and I give it information about which people are the most suitable to do the work, what activities should be carried out and what documentation it could be useful to consult. Of course to know this I consult the KMA and the KSMA. I am the Product Agent, I have all the information related to a product such as which person has modified something, why, etc. 18
This information was very useful KMA KM-MANTIS Architecture: Project Agent I am the Project Agent, I control the evolution of my project. For instance the state of each task, the persons who are working in the project, what information they often consult. So I can inform the KMA what information is the most important, therefore it can recommend it in a future similar project 19
KM-MANTIS Architecture: Client Agent I am the Client Agent, I help clients when they are filling in a maintenance request and also send it to the product agent. Moreover, If a client wants I can inform him about the evolution of the request that he/she made previously. To obtain this information I consult the Project Agent 20
KM-MANTIS Architecture: Directory Agent I am the Directory Agent, I have information about how many agents are active in the system Saskatoon July 2004
KM-MANTIS Architecture: KMA and KSMA Agents I am the KMA (Knowledge Manager Agent) I try to generate new knowledge from the Maintainer’s daily work. For example, if a person is working with a project in Java I can guess that this person knows Java, and the more he works in Java projects the more expert I will think him in this language I am the KSMA (Knowledge Sources Manager Agent) I know where the knowledge sources are and how to consult them. For instance I know that the design of a particular software is in the electronic report called Designof”Name” or that Mary is the expert in Java programs 22
Mary, who is a mantainer, has consulted in the system the list of the projects she is working on, and she has selected a project. The staff agent informs her there are different knowledge sources that can help her. She chooses to see these. Saskatoon July 2004
Some Aspects of Implementation • Ingenias, a methodology based on MESSAGE (Methodology for Engineering Systems of Software Agents) • Jade Platform which provides mechanisms to define and use ontologies • Information is stored in XML documents in a XINDICE database Saskatoon July 2004
Conclusions • Knowledge Management enables companies to be more competitive • SMP generates different types of information during different stages. By using Knowledge Management this information can be processed and reused. Therefore, organizations can be independent of their employees’ knowledge • A multiagent system where different agents obtain and process the different types of information in order to help maintainers to perform their work 26
Applying Knowledge Management in Software Maintenance through Agents Aurora Vizcaíno, Alarcos Research Group Universidad Castilla-La Mancha (Spain) Saskatoon July 2004
The Experience Factory Approach Saskatoon July 2004