Multiagent System for Supporting the Knowledge Management in the Software Process

Multiagent System for Supporting the Knowledge Management in the Software Process

Francisco Milton Mendes Neto (Rural Federal University of Semi-Arid, Brazil) and Marçal José de Oliveira Morais (State University of the Ceará, Brazil)
DOI: 10.4018/978-1-60960-509-4.ch006
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

The software process consists of knowledge-intensive procedures, involving various profiles, which handle a wide range of information. The adoption of a solution that satisfies the knowledge demands related to software engineering is not a trivial task. Despite all the investment made by research institutions and software development organizations in automated environments to support the software process, the quality levels and the productivity rates they need has not been reached. In software engineering, the experience, which helps avoid mistakes of the past and improve decision making, still lies mainly in the organization collaborators. This chapter intends to contribute to software engineering by proposing a new approach to support the capture, packaging, storage, mapping, maintenance and retrieval of the knowledge related to the software process. The approach will support the software process through the creation of a knowledge management model to assist the development of intelligent agents that can (i) realize the knowledge needs, (ii) interact with the Information Systems and (iii) support executing the software developers’ tasks. In other words, the chapter proposes creating a multiagent system to manage knowledge related to the execution of software development processes. This system will be the result of implementing the knowledge management models for supporting software process that will also be proposed in this chapter. It will consist of an Information System integrated with a knowledge base related to the implementation of software development processes.
Chapter Preview
Top

Introduction

Software Engineering (SE) involves managing a variety of knowledge about the various activities related to the software process. Moreover, each of these activities involves a set of macro actions that also involves a large number of specific knowledge themselves. Furthermore, the wide range of different knowledge assets necessary for the different collaborators involved in the software process may play, in the tasks of the process, different roles, demanding the knowledge required by each of these roles.

The amount and variety of the knowledge involved in the software process of a Software Development Organization (SDO) can grow exponentially, depending on (i) the software process model (for example, RUP – Rational Unified Process), (ii) the project management model (for example, PMBOK), (iii) the software development model, and (iv) the capacity evaluation model, like CMMI (Capability Maturity Model Integration), adopted by the SDO. Although some capacity evaluation models are proven to be efficient to improve the quality of the software process, they involve a wide range of extra information about it, many times specific to the model, which shall also be internalized and, thus, assimilated by all the people involved in the software process.

Knowledge Management (KM) solutions can be used to allow the effective use of the knowledge involved in the software process. The KM can be understood as a deliberate and explicit systematic of constructing, renovating and applying knowledge to maximize the effectiveness of the organization's business processes, producing results and ensuring the competitiveness of the organization.

However, the effective implementation of KM is not a trivial task. This is due, mainly, to the fact that most KM initiatives adopt traditional approaches, transferring to the user a large part of the responsibility to collect, pack, store, map and recover knowledge. Inserting this extra step in the user's work process is inefficient.

In this chapter, we propose constructing an intelligent environment to support KM under the SE, that will help those involved in the software process, in a proactive way, to capture, pack, store and retrieve knowledge related to all software process activities. To achieve it, the environment will have a multiagent system, where intelligent agents are going to learn with the users' activities and suggest knowledge that can be useful to the several phases of the software process, depending on the profile of the user involved in the activity.

Among the direct benefits of the effective integration of intelligent agents with knowledge management (KM) in the software process, we can list: reach, objectivity, speed and effectiveness. How these benefits are attained is discussed in what follows.

Reach

Generally, knowledge transfer is local and fragmented. Larger the Software Development Organization (SDO), greater the demand for some required knowledge, but lesser the chance of a worker (which needs it) to know how and where find it (Davenport & Prusak, 1998; Kock, 2000). A solution to this problem is offering knowledge automatically to workers when they need it, i. e., without the need of explicit requisition of knowledge. This is important because most workers do not know which knowledge is available and, thus, they never search for it (Maurer & Tochtermann, 2002).

The effective integration of intelligent agents into KM allows releasing knowledge to software workers without the need of explicit requisition. The use of intelligent agents allows identifying and releasing automatically the proper knowledge. Automatic identification of software worker demand on particular knowledge allows greater reach in knowledge transfer.

Objectivity

It is possible to release specific knowledge for a particular demander after identifying the necessary topics for some software function or worker, as discussed before. Personalized knowledge allows more objectivity in knowledge transfer, because it avoids time and resource wasting with knowledge transfer to software workers that do not need it. Knowledge will be transferred objectively to software workers that can use it for executing their activities (right knowledge to the right person on the right time). This increases the possibility of knowledge use and adds more value to the organizational intellectual capital, which increases when knowledge is used.

Complete Chapter List

Search this Book:
Reset