Sie sind auf Seite 1von 5

CHAPTER 2

PROBLEM STATEMENT

Software metrics based heuristics support software quality engineering through


improved scheduling and project control. It can be a key step towards steering the
software testing and improving the effectiveness of the whole process. It enables
effective discovery and identification of defects and enables the verification and
validation activities focused on critical software components. Software metrics are used
to improve software process control and achieve high software reliability. These are
used to direct cost-effective quality enhancement efforts to modules that are likely to
have a high number of faults. The research investigates ways to help designers with the
task of understanding, evaluating and improving their products.

Problem Statement Page 27


CHAPTER 2
PROBLEM STATEMENT

Quality of a software product is the most important consideration of software developers.


Software metrics and heuristics based on them help to improve effectiveness of software
product thereby predicting the quality of a product.

2.1 Problem Formulation


Science begins with quantification. Physics is impossible without a notion of length and
time and thermodynamics is not possible without measuring temperature. All engineering
disciplines have metrics, such as metrics for temperature, wavelength, density, pressure
and weight to quantify various characteristics of their products (Harrison et al., 1998).
The most important question is to measure “How big is the program?” Without defining
what big means, it is obvious that it makes no sense to say, “This program will need more
testing than that program” unless it is known how big they are relative to one another.
Planning for software begins much before technical work starts, continues as the software
product evolves from concept to reality and culminates only when the software is retired.
So, measurement is used throughout a software project to assist in estimation and project
control.
The aim of Object Oriented (OO) Metrics is to predict the quality of the object oriented
software products (Basili et al., 1996). Various attributes which determine the quality of
the software include normalized rework, maintainability, fault proneness, defect density,
understandability, reusability etc. These are required because in Object Oriented code,
complexity lies in interaction between objects and a large portion of code is declarative.
Object orientation models real life objects and makes use of important features like
classes, objects, inheritance, encapsulation and message passing.
Software design and development involves a range of practices with varying levels of
formality. Some of the examples include formal methods, test-driven development,
design patterns and coding styles. The common goal is to produce high quality software.

Problem Statement Page 28


However, quality is a concept that cannot be measured directly. In order to measure and
understand quality, it is necessary to relate it to measurable quantities. The field of
software metrics deals with the identification of meaningful quantitative measures of
specific properties of software.
Heuristics methods allow exploiting uncertain and imprecise data in a natural way.
Heuristics techniques are very effective if applied correctly on right kind of tasks.
Heuristics are based on past experience and in the light of these metrics observations,
heuristics provide a more clear and subjective view of software quality.
The research investigates ways to help designers with the task of understanding,
evaluating and improving their products. While the art of design and the judgment of
applying heuristics in a particular way is being viewed as beyond the reach of current
technology and it is argued that tools can provide valuable information to assist the
designer with these judgments.
In the last chapter, an overview of software quality, software metrics and use of heuristics
in software engineering was given. The factors motivating to carry out the research in the
domain of heuristics, metrics and quality are:
1. Complexity of the software is increasing day by day.
2. Our life is dependent upon the software and its quality. Therefore, in case of failure
the consequences are hazardous and catastrophic as evident from the case study of
Therac 25, Y2K and Marine I etc.
3. To ensure software quality, software metrics are required.
4. To tackle with the complexity, heuristics are required.
Hence, the researchers were motivated to carry out the research in the field of metrics
based heuristics in software engineering.

2.2 Objectives
The main objectives of the research work are described as follows:
1. To identify the various heuristic approaches used in software engineering specifically
in object-oriented engineering.
2. Identification of metric-based heuristics.
3. Developing the metrics and heuristics based models in software engineering.

Problem Statement Page 29


4. Providing a framework, in which the metric-based heuristics may be postulated,
explored and managed.

2.3 Methodology
The methodology consists of the following steps:
1. First of all, find the structural code and design attributes of software systems i.e.
software metrics by carrying out the literature survey in the relevant field.
2. To identify the various heuristic approaches used in software engineering specifically
in object-oriented engineering.
3. Identification of various heuristics based on metrics.
4. Developing the heuristic-based models and implementing them for validation.
5. Implementing the models and finding the result.
6. Compare the result and give conclusions.

2.4 Implementation Software - MATLAB


MATLAB stands for MATrix LABoratory and was developed by Dr. Cleve Moler, Chief
Scientist at the MathWorks Inc. MATLAB is a high-level language and provides an
interactive environment for numerical computation, visualization, iterative exploration,
design, problem solving and programming. MATLAB is used for a wide range of
applications including image and video processing, digital signal processing and
communications, control systems, neural networks, test and measurement, computational
finance, fuzzy logic and computational biology (weblink 2). Mathematical functions for
Fourier analysis, linear algebra, statistics, filtering, optimization, numerical integration
and solving ordinary differential equations are the key features of using MATLAB. It is
used as a language of technical computing by millions of engineers and scientists in
industry and academia.
MATLAB is also used to analyze data, develop algorithms and create models (weblink
2). The language, tools and built-in math functions enable a developer to explore multiple
approaches and reach a solution faster as compared to any other programming languages
such as C, Java, .NET and Microsoft Excel.

Problem Statement Page 30


In this research, Genetic Algorithms have been implemented to generate test cases using
boundary value analysis and equivalence class partioning using MATLAB. Different
modules have been developed in MATLAB for various operations of genetic algorithms.
The code is general, modular, structural and easy to use. Necessary documentation has
been done to make the code readable and understandable.

2.5 Summary
Quality of software is increasingly important and testing related issues are becoming
crucial for software. Although there is diversity in the definition of software quality, it is
widely accepted that a project with many defects lacks quality. Techniques and
methodologies which are used for predicting the testing effort, measuring results and
monitoring process costs can help in increasing efficiency of software testing.
Prediction of fault-prone modules supports software quality engineering through
improved scheduling and project control. It is a key step towards steering the software
testing process and therefore, helps in improving the effectiveness of the whole process.
In order to measure and understand quality, it is necessary to relate it to measurable
quantities. Heuristics provide a link between sets of abstract design principles and
quantitative software metrics. They are an important part of software design and are
becoming more widely used. Effective visualization of heuristics includes quantitative,
qualitative and ambient aspects. Visualization of heuristics provides many challenges.
Heuristics are likely to be studied both individually and in comparison with others.
The research is not primarily concerned with the relevance or validity of individual
heuristics, the main focus is on their evaluation and interpretation. The work is intended
to provide the basis for an exploratory framework in which heuristics may be postulated,
explored and managed.

Problem Statement Page 31

Das könnte Ihnen auch gefallen