Database Reference
In-Depth Information
DM has been used in detecting error-patterns linked to a certain software
component(s). The error patterns in combination with the associated component(s)
can give an overview of the problem, and whether this problem in the component is
associated with other failures elsewhere in the component hierarchy. [9] used the
classification and regression trees algorithm to predict which software modules likely
to have faults discovered during operations. They derived the variables from various
SDLC repositories and used them as useful predictors of software quality. Software
developers need such predictions early in development to enhance software quality.
[16] successfully used regression tree analysis to determine the project size based
on the size of individual software components. The size estimation helps in resource
planning. [5] used the classification and association data mining to model the complex
behaviour of the software development process and created different scenarios for the
same project. The generated management rules make the decision-taking process easy
for project managers in a similar situation.
Researchers have also used DM in automatic testing of systems. [10] used info-
fuzzy network based method to recover the system requirements, to automatically
design a minimal set of test cases and to evaluate the correctness of outputs.
2.2 Software Reuse and Maintenance
The use of object oriented analysis and design has skyrocketed in the last decade and
contributes greatly to both organizational and commercially available software
components. However finding the right component at the right time can be a complex
task. Choosing the right library or (module) component can result in an efficient
project, but selecting the wrong components can cause unnecessary project delays due
to possible software failure and debugging.
Nakkrasae et al. [15] used a neural network technique to classify software
components for effective archival and retrieval purposes. This work enables software
components details to be stored, classified, and subsequently retrieved for reuse. In
the same line, Miller et al [12] utilised DM techniques to discover structural
information about legacy programs and constructed a warehouse of program-analysis
data to provide support in software reuse and maintenance.
Morisio et al. [14] identified success or failure factors in components by using
predictive DM which is aimed at two factors namely human factors and product type.
This leads to recommending possible successful components for reuse. Michail [11]
used link analysis to find association between library classes and program functions
that are typically reused in combination with application classes. Specific rules of
how components are associated with library functions through usage are created.
Many software projects fail because components fail and huge resources is wasted
in debugging and fixing faulty code. This becomes worse when changes in one part of
the program code make other components faulty and unusable based on relationships
between the components. Ying et al. [20] applied association mining to determine
change patterns - set of files that were changed together frequently in the past - from
the change history of the programming codes. The mined change patterns (a set of
files) are used as recommendation (to check for correctness) whenever a developer
modifies the linked existing code. Shirabad et al [17] investigated decision tree
learning to find out the relevant files that are affected by the changes applied to a
Search WWH ::




Custom Search