The case-based decision support system in the field of IT-consulting

In the present paper, we propose an approach to facilitation of decision-making in the field of IT-consulting. The approach is based on knowledge representation in the form of cases containing past history about decision making. We also proposed an ontology to store the cases as instances of classes. Classification of cases in the ontology is executed by means of fuzzy inference. The method of classification is based on the original algorithm of transformation of cases (precedents) sample to the set of linguistic rules allowing one to make relevant decisions. Research of the method has shown good accuracy of the decisions classification according to test data.


Introduction
The emergence of Decision Support Systems (DSS) in the mid-1960s was associated with a modeldriven approach [1]. The first DSS were limited by the types of these models, mostly deterministic, which hardly ever used operational information about the circumstances under which one needs to make decisions. The situation has changed dramatically since the 1990s, when the DSS began to integrate first with operational databases, and then with the specialized data warehouses built on OLAP technology.
In the modern era of the Internet, when the environment in which the decisions are made, is very dynamic, the concept of DSS is undergoing dramatic changes. We have so much information (even there a stable phrase "big data"appeared) that the data on their own is no longer of great value. What is really valuable is the knowledge that can be extracted from the data to solve the urgent problem in a particular application domain. The problem of preparing the knowledge of such quality and organizing it into a specially-designed knowledge base, becomes now, in the era of big data, more relevant than ever.
Methods of knowledge representation and organization are traditionally developed within the discipline of artificial intelligence [2]. In the development of this scientific area, three alternative methods of knowledge representation have been formed: model-based, rule-based and case-based approaches. However, neither approach in itself is not able to provide a sustainable basis for the modern dynamic intelligence system based on knowledge, capable of self-organization and selfdevelopment based on extracting information from the environment. And, though there were attempts to create hybrid knowledge models, based on different variants of integration, the problem of constructing an integrated model of knowledge representation, allowing the transformation of knowledge from one form to another and on the basis of machine learning, is still far from final decision, in spite of its relevance. We believe that such a self-developing integrated knowledge representation system can be constructed on the basis of a combination of basic approaches to knowledge representation. In [3], we have obtained encouraging results of improving the efficiency of cases classification by integrating case-based and a rule-based models with the use of fuzzy logic. In this paper, we propose a hybrid model of knowledge representation in the field of IT consulting.

The problems of knowledge management in the software maintenance
One of the stages of the software engineering process is a software support subprocess. Therefore, the IT-departments (or IT-companies) consisting of analysts, programmers, consultants began to appear in the organizations. The important part of their work is to organize the support of IT-users. A typical IT-company is engaged in introduction, development and maintenance of information systems and other software.
Consult-analysts plays the main role in providing the high-quality IT-support. Tasks that the consultant receives from the users can be divided into the following groups: 1. Simple questions -questions that consultant can respond immediately if there is a certain experience with the system (about a year). The time spent on the task is from 15 to 25 minutes.
2. Average complexity tasks -tasks that require analyzing the situation, recoveringthe action sequences. The time spent on the average complexity task is from 25 to 60 minutes.
3. Difficult tasks -tasks that require detailed study, careful analysis of the situation. It is not excluded that the task will require reworking the system by the programmers. The time spent on the difficult tasks is from 60 minutes to 120 minutes. 4. Specifications (simple) to develop the system. Due to legislative changes there is a need to refine certain modules from time to time. In this case, the time required depends on the complexity of the system improvement. This may be both 24 hours and a few days, or even a month.
During the consulting process a consultant needs to identify the users question, then to analyze the accumulated knowledge base proceeding from the experience, and, finally, to offer a certain variant of the solution to the user.
First, when the knowledge of the base is not enough, the consultants used to recordthe cases on paper. Then, after accumulating sufficiently large volumes of cases, their use has been a difficult task because of search difficulties. So the next step was to use the software MicrosoftWord products to store the cases that sufficiently decreased the time required to find the relevant case. Table 1 shows the time required from the consultants to processvarious types of questions. With the increase of branch offices, which are supported by the IT-department, the load on the consultants significantly increases. The time to solve the tasks is greatly reduced. In this connection,we can highlight the problem of resources lack for the processing of all available information. Another problem is adaptation of new consultants and analysts. In any IT-company, training new staff is a long process (from 5 months to one year). The company hires specialists taking into account that they do not have much experience, and it will take a lot of time and money before the effective work of the new employee begins.
To solve the above-mentioned problems, it seems appropriate to create a knowledge management system based on the use of artificial intelligence methods. Since the tasks faced by the consultants are largely repeated, it is reasonable to create a knowledge base of cases (problems with appropriate solutions) containing the past consulting experience. Using the knowledge base for solving the next task, will consist in extracting the relevant case and adapting it to the current situation.
Case-based reasoning (CBR) solves new problems by adapting previously successful solutions to similar problems. The work of Shank [4] in 1977 is widely known to be the origin of CBR. In this work the author has proposed generalizingthe knowledge about previous situations and store it in the form of scripts that can be used to make conclusions in the similar situations. Later, Shank continued to explore the role that memory about previous situations (cases), represented as a knowledge container, plays both in the process of decision making and in the process of learning [5].
There are different ways of formulating the cases [6], from simple (linear) to complex hierarchical ones. A case could generally include a description of the problem and a solution to the problem. If the cases are used to solve practical problems, the additional component may be the result of case application (positive or negative).It should be emphasized that already in work [7], one can find references that natural domain concepts often cannot be classified according to a simple set of properties (features), and could be described by a more complex structure. This work was subsequently referred to as the philosophical basis of the case-based approach.
The case-based reasoning approach allowed one to overcome a number of restrictions inherent to the systems based on rules [8]. First, CBR does not require the explicit model of the knowledge domain, so the extraction of knowledge is transformed into a simple task of collecting stories (cases). Second, implementation of CBR-systems is reduced to the identification of essential features, describing the case, which is much an easier task than building an explicit knowledge model of the application domain. Third, it is possible to use database technology for storing large volumes of cases. Forth, CBR-systems can be self-learning from the case base, thus, it is possible to obtain new cases.
At the same time, there are some shortcomings of CBR. First, it should be noted that the description of the cases does not usually take into account the deeper knowledge of the application domain. Second, the large case base results in the reduced system performance. Moreover, it is difficult to determine good criteria for indexing and comparison of cases. Very often the search dictionaries and algorithms for determining similarity are needed to debug manually. It can neutralize the benefits of the case approach. In the next sections, wewill consider how to organize cases in the case base into classes of the ontology and propose an algorithm of cases classification based on fuzzy linguistic rules.

The method of case-based support for the software maintenance with fuzzy linguistic rules for cases classification
Let us consider an IT-support system based on knowledge. An important component of such system is a capability of accumulating knowledge and using itsubsequently in decision-making.
At the initial stages of creating a knowledge base, when there is no insight into the application domain, it is reasonable to use a case-based representation in which knowledge is formulated in the form of precedents (cases) of decision-making. The simplest form of case representation is linear in which it is necessary to determine the final set of features that uniquely determine the situation and a specific decision made in this situation. Let us consider a simple linear formulation of the case to be used for decision making as ,..., , , Cases of form (1) can be accumulated in the case base for the future use in decision making. Thus, already at the earliest stages of the development of DSS, it is possible to extract similar cases, adapt and reuse them to solve the current problems of decision-making.
Cases of form (1) can be considered as a data table. And we can apply, for example, a decision tree method [9] (1), which in this aspect is considered as a classifying attribute. Another method of forming a set of rules from cases uses the transformation of the cases sample into the system of fuzzy rules, whichis considered in the present paper.
Here, we consider a method of cases classification based on obtaining fuzzy rules from cases. The idea of the method is as follows.Let us consider an arbitrary case of form (1). We shell define linguistic variables i V corresponding to features i x , Then rule Rule, corresponding to case (1), could be formulated as follows: (2) where R is a variable which nominal values are the names of decision classes in the decision making problem, is a fuzzy term-value which accepts linguistic variable i V as a result of fuzzification of feature value i x : ( Thus, the knowledge base consisting of a set of rules from the initial case base is formed in accordance with the following algorithm: An algorithm of obtaining fuzzy rules from the case base for cases classification Step 1. Define the number and the type of membership functions and universal sets i X for each linguistic variable i V corresponding to feature i x . Step 2. Determine fuzzy rule Rule ,of form (2) for each case of form (1).
Step 3. Assign (2). The result is obtained in the following way: Step 4. Resolve conflicts between the rules. After stage 2, we have the set of rules uniquely corresponding to the set of cases. But this set can contain subsets of the rules with the same premises. These rules can have the same or different conclusions (solutions D d ∈ ). If for all rules in such subset we have the same conclusion, we simply remove all duplicate rules from the set except one. For the rules with conflicting conclusions, we propose two different strategies forthe classification problem. In each case, we leave only one rule in the subset with conflicted conclusions in the rule base. Let us have rules 1 Rule , 2 Rule , ..., m Rule with the same premise. We will divide a set of indexes The first strategy of resolving conflicts is to obtain the optimal rule: ) ( max arg then to choose solution d corresponding to the conclusion part of this optimal rule. The second strategy of resolving conflicts is more complex. Optimal solution * k d that is assigned to the conflicting set of rules could be obtained as follows: The experiments on test data have shown high accuracy of cases classification with the use of the above-mentioned algorithm. The second strategy of resolving conflicts between the rules showed better results.

The ontology for case base organization
The variety of software modules, for which we create a support system, as well as possible problems with the software, necessitated indexing in the knowledge base. An effective way to organize data is an ontological approach [10]. To organize a case base for the IT-consulting sphere,the ontology that includes a hierarchy of classes in the application domain has been created. In fig. 1,we presented a part of Protege ontology with classes "Staff" and "Accounting".In fig. 2,we see the ontological graph for the same classes. Cases are the instances of the ontology classes. To retrieve a relevant caseat the first stage, we determine its class in the ontology from the keywordsas the features,provided thatthere is the degree of conformity of each keywordwith the current problem. At the second stage, we browse all the instances of the ontology class and choose the one, similar to the current problem. Figure2. The ontological graph of the ontology with classes "Staff" and "Accounting

Conclusion
It is worth noting the shortcoming of the considered approach. Despite the achieved high accuracy of classification, we could find relevant rules from the fuzzy rule base not for all cases in the control sample. We considered such cases as incorrectly classified, which led to a loss of classification accuracy that was particularly revealed while increasing the number of membership functions. Therefore, for further development,we could offer a combination of this method with methods based on cases similarity. Also, the use of evolutionary methods for adapting the cases to the current situationseems promising [11].