Title: Presentacin de PowerPoint
1Applying Knowledge Management in Software
Maintenance through Agents
Aurora Vizcaíno Alarcos Research
Group Universidad Castilla-La Mancha (Spain)
2(No Transcript)
3(No Transcript)
4CONTENTS
- Why use Knowledge Management in Software
Maintenance?
- KM-Mantis A Multi-Agent System
4
5Knowledge Management
- The management of organizational knowledge to
create business value and generating a
competitive advantage
6Knowledge Management
- The SECI (Socialization-Externalization-Combinati
on-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
7Knowledge 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
8Knowledge Transformation
to Explicit Knowledge
Tacit Knowledge
Externalization
Socialization
Tacit Knowledge
Combination
Internalization
Explicit Knowledge
9The 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
10The 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
11The 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
12KM 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 Suns
support for Java programmers)
13The 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
- 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
14The 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
15KM-MANTIS a Multi-Agent System
A system for storing, processing and managing
information and knowledge generated during the
software maintenance process
Why agents?
- 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
16KM-MANTIS Architecture
16
17KM-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
18KM-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
19KM-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
20KM-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
21KM-MANTIS Architecture Directory Agent
I am the Directory Agent, I have
information about how many agents are active in
the system
22KM-MANTIS Architecture KMA and KSMA Agents
I am the KMA (Knowledge Manager Agent) I try to
generate new knowledge from the Maintainers
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 DesignofName or that
Mary is the expert in Java programs
22
23Mary, 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.
24(No Transcript)
25Some 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
26Conclusions
- 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
27Applying Knowledge Management in Software
Maintenance through Agents
Aurora Vizcaíno, Alarcos Research
Group Universidad Castilla-La Mancha (Spain)
28The Experience Factory Approach