in Software Maintenance

plantcityorangeΔιαχείριση

6 Νοε 2013 (πριν από 4 χρόνια και 7 μέρες)

63 εμφανίσεις

Aurora Vizcaíno

Alarcos Research Group

Universidad Castilla
-
La Mancha (Spain)

Applying Knowledge Management

in 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



Combination



Internalization

Externalization

Socialization

to Explicit
Knowledge


Tacit Knowledge

Tacit

Knowledge

Explicit

Knowledge

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 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

Give me information about this tax

Knowledge Manager Agent

Staff Agent

This tax should be applied...

KM
-
MANTIS Architecture: Product Agents

I am the Product Agent, I have all the information

related to a product such as which person has


modified something, why, etc.

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.

18

Knowledge Manager Agent


Is this activity

appropriate for

a corrective


maintenance?

Knowledge Sources Manager Agent


Who is the

expert in Java?

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

KMA

This information

was 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 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

Saskatoon July 2004

21

I am the Directory Agent, I have information

about 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 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

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 Management

in Software Maintenance

through Agents

Aurora Vizcaíno,

Alarcos Research Group

Universidad Castilla
-
La Mancha (Spain)

Saskatoon July 2004

28





The Experience Factory Approach