Post on 30-Dec-2015
description
Aurora Vizcaíno
Alarcos Research Group
Universidad Castilla-La Mancha (Spain)
Applying Knowledge Managementin Software Maintenance
through Agents
• Knowledge Management
CONTENTS
• KM-Mantis: A Multi-Agent System
• Conclusions
• Why use Knowledge Management in Software Maintenance?
4
Saskatoon July 2004 5
Knowledge Management
• The management of organizational knowledge to create business value and generating a competitive advantage
• Tacit Knowledge
• Explicit knowledge
Saskatoon July 2004 6
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 7
Knowledge Management
• Externalization: Expressing the tacit knowledge as explicit knowledge
• Internalization: Converting explicit knowledge into tacit knowledge. The person adds her/his experience and beliefs
• Combination: Mixing different explicit knowledge
Saskatoon July 2004 8
CombinationInternalization
ExternalizationSocialization
to Explicit Knowledge
Tacit Knowledge
TacitTacit
KnowledgeKnowledge
ExplicitExplicit
KnowledgeKnowledge
Knowledge Transformation
Saskatoon July 2004 9
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 10
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
The Need for Knowledge Management in Software Engineering
Saskatoon July 2004 11
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
The Need for Knowledge Management in Software Engineering
Saskatoon July 2004 12
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)
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
• 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
•A lot of information is generated from different sources:
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
Why agents?
• Agents can manage both distributed and local information
• Agents share their knowledge
• Agents may have different reasoning techniques (induction and decision tree-based algorithms, case-based reasoning)
A system for storing, processing and managing information and knowledge generated during the software maintenance process
• Agents are proactive
15
KM-MANTIS Architecture: Staff Agents
I am the Staff Agent, I am in charge ofhelping maintainers to perform theirwork. When a person chooses a projectI ask the KMA to search for knowledgethat can be userful for him
17
Give me information about this tax
Knowledge Manager AgentStaff Agent
This tax should be applied...
KM-MANTIS Architecture: Product Agents
I am the Product Agent, I have all the informationrelated to a product such as which person has modified something, why, etc.
And when a new modification is demanded anew project agent is created and I give it information about which people are the mostsuitable to do the work, what activities should becarried out and what documentation it could be useful to consult.
Of course to know this I consult the KMA and the KSMA.
18
Knowledge Manager Agent Is this activityappropriate fora corrective maintenance?
Knowledge Sources Manager Agent
Who is theexpert in Java?
KM-MANTIS Architecture: Project Agent
I am the Project Agent, I control the evolution ofmy project. For instance the state of each task, thepersons who are working in the project, whatinformation they often consult. So I can informthe KMA what information is the most important, therefore it can recommend it in a future similar project
19
KMAThis informationwas very useful
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 wantsI can inform him about the evolution of the request that he/she made previously. To obtain thisinformation I consult the Project Agent
20
Saskatoon July 2004 21
I am the Directory Agent, I have informationabout how many agents are active in the system
KM-MANTIS Architecture: Directory Agent
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 andhow to consult them. For instance I know that the designof a particular software is in the electronic report called Designof”Name” or that Mary is the expert in Java programs
22
Saskatoon July 2004 23
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 24
General data about the source
Shows the diferent locations of the source
Shows the kind of knowledge that the source has
List of sources found
General data about the source
Shows the diferent locations of the source
Shows the kind of knowledge that the source has
List of sources found
Saskatoon July 2004 25
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
Conclusions
•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
• Knowledge Management enables companies to be more competitive
26
Saskatoon July 2004 27
Applying Knowledge Managementin Software Maintenance
through Agents
Aurora Vizcaíno,
Alarcos Research Group
Universidad Castilla-La Mancha (Spain)