The aim of this work is to present a data-mining application to software engineering. Particularly, we describe the use of data mining in different parts of the design process of an agent-based architecture for a dynamic decision-support system.
The work is organized as follows: An introduction section defines the characteristics of a dynamic decision-support system and gives a brief background about the use of data mining and case-based reasoning in software engineering. A second section describes the use of data mining in designing the system knowledge bases. A third section presents the use of data mining in designing the learning process of the dynamic decision-support system. Finally, a fourth section describes the agent-based architecture we propose for the dynamic decision support system. It implements the mechanisms designed by using data mining to satisfy the system functionality.
Enterprise management involves making many different decisions. An enterprise can be generally considered as being organized in several domains in which different types of activities are performed and decisions are made. These decisions are associated to their corresponding activities but are usually closely related to decisions already made in other domains of the enterprise; that is, the different decision points of an organization often need information to be available in other enterprise domains. The enterprise integration systems provide the automatic communication among these points by transferring previously specified data (Shen & Norrie, 1999). These systems are designed based on the habitual requirements of each domain. But there exist non-foreseen situations that require information exchange. This occurs whenever new or non-habitual decisions must be made. In these cases, it is necessary to use a dynamic Decision-Support System (DSS) (Cabral et al., 2000).
A dynamic Decision Support System is a system able to look for information, analyzing where it is available or can be generated.
A dynamic DSS establishes contact among domains for the acquisition of necessary information for decision making. This implies that the information to be transferred and the domains to be communicated with are not specified on the system design time. The DSS itself should interpret the information requirement and infer which domain can answer it on the run time.
A dynamic DSS must operate in the following way: When a user of the system needs some information, he/she makes a query in natural language, and the dynamic DSS transfers that information requirement to a domain that can satisfy it. For that purpose, the system determines the sites that offer a greater possibility of providing the required information and those are targeted first. This defines the main functionality of this information system. Then, when it gets the answer from a domain, it takes this information to the domain that asked for it.
To develop a system with the aforementioned functionality, it must be provided with: (1) knowledge about the information that can be provided by domains; and (2) the capacity for updating that knowledge, learning from the cases that result from its operation. This chapter will present a description of how data-mining techniques have been used for designing a system with the aforementioned characteristics.
Dingsoyr (1998) presents several possible uses of data mining and case-based reasoning. He classifies these uses into two groups: data mining in case-based reasoning, and case-based reasoning in data mining. He sketches the following six possible uses:
Ruiz, Fisler, and Cole (2001) describe a project of data-mining application on software engineering. Specifically, they propose to simulate the designed system to generate cases. Such cases are mined to detect possible behavioral patterns of the design.
It is necessary to highlight that data mining and case-based reasoning applications on system design offer a still little developed potential. On the other hand, in designing an information system, it is possible that several of the alternatives sketched by Dingsoyr (1998) are simultaneously used. In this work, we describe the use of data mining in different parts of the design process of a dynamic decision-support system architecture. By using data mining, we could define the structure of the system knowledge base, the data structure of the system cases base, and the rules of relationships among cases that were used to design the system learning mechanism.