CHAPTER 2 PROBLEM STATEMENT

Similar documents
Measuring the Operational Component of Catastrophic Risk: Computational Framework. Paper no.48. Abstract

SWEN 256 Software Process & Project Management

Book Outline. Software Testing and Analysis: Process, Principles, and Techniques

Empirical validation of MOOD metrics to predict Software Reuse

engineering and measurement

Automating Results Comparison Isn t Always Easy

Service-Oriented Modeling (SOA): Service Analysis, Design, and Architecture

Simulation Analytics

Abstract. Keywords. 1. Introduction. Rashmi N 1, Suma V 2. Where, i = 1 requirement phase, n = maintenance phase of software development process [9].

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

A New Approach Towards Intelligent Analysis for Competitive Intelligence *

intelligent world. GIV

Note 10: Software Process

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

BACHELOR OF SCIENCE IN ENGINEERING MANAGEMENT

Software Engineering

ANALYSIS OF FACTORS CONTRIBUTING TO EFFICIENCY OF SOFTWARE DEVELOPMENT

7. What is planning? It is an act of formulating a program for a definite course of action. Planning is to decide what is to be done.

M.E POWER ELECTRONICS AND DRIVES Course Outcome R2009 ( BATCH)

A More Intelligent Network Sharing More Intelligent Information

Quality Assessment Method for Software Development Process Document based on Software Document Characteristics Metric

Object-Oriented Software Engineering! Using UML, Patterns, and Java! Chapter 1: Introduction!

Software Metrics & Software Metrology. Alain Abran. Chapter 14 Design of Standard Etalons: The Next Frontier in Software Measurement

Chapter 11. Managing Knowledge

Data IBM. Education for our Data Scientists. Emily Plachy, Distinguished Engineer, IBM Global Chief Data Office May 1, 2017

TDWI Analytics Principles and Practices

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Chapter 3 Prescriptive Process Models

A Hierarchical Clustering Approach for Modeling of Reusability of Object Oriented Software Components

Introduction to Software Engineering

Metrics and Estimation. Metrics. Lord Kelvin

Study programme in Sustainable Energy Systems

BIOSTATISTICS AND MEDICAL INFORMATICS (B M I)

Principles of Verification, Validation, Quality Assurance, and Certification of M&S Applications

This Plan of Study Form is for a (Circle One): DECLARATION REVISION

0 Introduction Test strategy A Test Strategy for single high-level test B Combined testing strategy for high-level tests...

The Product and the Process The Product The Evolving Role of Software Software Software: A Crisis on the Horizon Software Myths Summary References

Big Data - Challenges and risks

Software Development Life Cycle (SDLC) Tata Consultancy Services ltd. 12 October

FAQ: Implementation Complete Phase

Bachelor of Science in Engineering Management

Service as a Software. From "Software as a Service" to "Service as a Software" Changing paradigms in analytics and decision science

Adapting software project estimation to the reality of changing development technologies

Software Metrics & Software Metrology. Alain Abran. Chapter 9 Use Case Points: Analysis of their Design

Managing Knowledge in the Digital Firm

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

SHRI ANGALAMMAN COLLEGE OF ENGINEERING & TECHNOLOGY (An ISO 9001:2008 Certified Institution) SIRUGANOOR,TRICHY

TechUpdate. TechUpdate is published quarterly and is available exclusively at By: Michael L. Gonzales HandsOn-BI, LLC Quarter 1, 2006

Optimization Prof. Debjani Chakraborty Department of Mathematics Indian Institute of Technology, Kharagpur

Business Information Systems. Decision Making and Problem Solving. Figure Chapters 10 & 11

Software Reliability and Testing: Know When To Say When. SSTC June 2007 Dale Brenneman McCabe Software

Defect Detection Efficiency: A Combined approach

Improvement of The Fault-Prone Class Prediction Precision by The Process Metrics Use

CHAPTER 5 SUMMARY AND CONCLUSIONS

QUESTIONS AND ANSWERS ON SOFTWARE PROCESS AND PRODUCT METRICS

APPLICATION OF MATHEMATICAL MODELING IN MANAGEMENT ACCOUNTING

Credit where Credit is Due. Lecture 2: Software Engineering (a review) Goals for this Lecture. What is Software Engineering

Implementing a Software Verification and Validation Management Framework in the Space Industry BOGDAN MARCULESCU

Software Quality Assurance: A Practical Perspective. Software Quality Assurance: A Practical Perspective. Software Measurement

Utilizing Optimization Techniques to Enhance Cost and Schedule Risk Analysis

Cambridge University Press Agile Testing: How to Succeed in an Extreme Testing Environment John Watkins Excerpt More information

Incorporating AI/ML into Your Application Architecture. Norman Sasono CTO & Co-Founder, bizzy.co.id

by Victor R. Basili, Kathleen C. Dangle, and Michele A. Shaw

The Hunt for the Data Scientist GIEWEE HAMMOND MSCAN, MSCAS LEAD DATA SCIENTIST, ARAMCO SERVICES COMPANY

Chapter 4 Software Process and Project Metrics

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

MONITORING SERVICE SYSTEMS FROM A LANGUAGE-ACTION PERSPECTIVE

The Risks of Sharing Informatics Resources in Multi-project Environment

Models in Engineering Glossary

SOFTWARE QUALITY ASSURANCE (SQA) Chapter 1

204 Part 3.3 SUMMARY INTRODUCTION

SOFTWARE QUALITY IN 2002: A SURVEY OF THE STATE OF THE ART

7. Project Management

The Validation of Climate Models: The Development of Essential Practice

9. Verification, Validation, Testing

Literature Review M.Y. Suhaila, W.K. Wan Mohd Nasir, Member, IAENG, 2011 Raed Shatnawi and Ahmad Alzu bi, IMECS 2011

A Comparative Study on the existing methods of Software Size Estimation

CHAPTER 8 APPLICATION OF CLUSTERING TO CUSTOMER RELATIONSHIP MANAGEMENT

Introduction to Software Testing

GLOBAL STRATEGY AND LEADERSHIP

R.POONKODI, ASSISTANT PROFESSOR, COMPUTER SCIENCE AND ENGINEERING, SRI ESHWAR COLLEGE OF ENGINEERING, COIMBATORE.

Chapter 24 - Quality Management. Chapter 24 Quality management

Software Engineering

Testing. Testing is the most important component of software development that must be performed throughout the life cycle

CHAPTER 3 TESTABILITY MEASUREMENT FRAMEWORK

Software Testing(TYIT) Software Testing. Who does Testing?

On the management of nonfunctional requirements

The Reuse Environment A Promise Unfulfilled A TenStep White Paper

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

A PRACTICAL APPROACH TO PRIORITIZE THE TEST CASES OF REGRESSION TESTING USING GENETIC ALGORITHM

: What are examples of data science jobs?

Process Management. Adapted from Chapter 3, Futrell

SYNOPSIS. Software design, development and testing have become very intricate with the advent of

The Mathematical Sciences in Australia A Vision for 2025

Software Engineering

Olin Business School Master of Science in Customer Analytics (MSCA) Curriculum Academic Year. List of Courses by Semester

Enterprise BPM A Systemic Perspective

BIOINFORMATICS AND SYSTEM BIOLOGY (INTERNATIONAL PROGRAM)

CMSC 435: Software Engineering Section Back to Software. Important: Team Work. More Resources

SCOPE OF FUZZY LOGIC IN PRODUCTION AND OPERATIONS MANAGEMENT: A RECENT REVIEW

Transcription:

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