Aurora Vizcaíno Alarcos Research Group Universidad Castilla-La Mancha (Spain)

Post on 30-Dec-2015

31 views 2 download

Tags:

description

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. - PowerPoint PPT Presentation

Transcript of Aurora Vizcaíno Alarcos Research Group Universidad Castilla-La Mancha (Spain)

Aurora Vizcaíno

Alarcos Research Group

Universidad Castilla-La Mancha (Spain)

Applying Knowledge Managementin Software Maintenance

through Agents

Saskatoon July 2004 2

Saskatoon July 2004 3

• 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

16

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)

Saskatoon July 2004 28

The Experience Factory Approach