Introduction

The function of Impact Analysis is to estimate the outcome prior to the implementation or post-implementation of a cluster of modifications on the software [1,2]. In case the prediction is performed prior to system modification, this study aids software developers to evaluate the affected software components. This is also referred to as the estimated Change Impact Analysis. In contrast, in the case of predicting an output followed by significant changes, this analysis suggests program testing managers execute regression test analysis, by minimizing the count of executable test cases to the ones which are affected by the proposed modification.

To perform Change Impact Analysis, various methods and implementations [3] are required for diversified software stages like maintenance and development phases. In particular, Change Impact Analysis techniques [4-7] are commonly used in software maintenance level. Here, a class remains as a significant driver for analysis. On the other front, the drawback in the development stage is that “all classes are not fully developed”, as the program is yet in the development stage [4]. Thus, existing Change Impact Analysis techniques are not applicable for development phases.

Earlier Change Impact Analysis methods, which are utilized for improvement phases, include incompletely developed classes among the artefacts. This is one of the significant threats to Impact Analysis. Hence, this research work evaluates an efficient analysis of the abilities of traditional Change Impact Analysis methods. This proposed work classifies efficient and poor capabilities of existing Change Impact Analysis techniques to aid in the optimal execution process of Change Impact Analysis for the improvement stage.

This book is structured in such a way that Chapter 2 explains the nomenclature and Chapter 3 explains similar work. In Chapter 4, we elaborate on the review criterion. Chapter 5 depicts the efficiency of existing Change Impact Analysis techniques and introduces a different Change Impact Analysis method for the improvement phase of the software. In Chapter 6, the research work is concluded.

The primary aim of Change Impact Analysis is to detect unexpected or ripple effects of suggested software modifications. It determines the possible effects of the modification or predicts the software modules or components to be altered to trace out a change [8]. In particular, Change Impact Analysis plays a crucial role in executing multiple functions such as estimating development cost, project overheads, handling modifications, system strength or detecting errors in a system.

The significance of Change Impact Analysis is to recognize work products which are threatened by modification, desired time and change cost of the components which can be impacted by change [9]. Generally, the impact of modification relies on the whole volume of change; i.e., the small project faces less effect, and the impact is higher on big projects [10].

However, multiple factors impact the reason behind the change proposal. For instance, some of the most observed causes include bug removal, fault correction, feature additions, exposing the project to an unknown environment and quality enhancement. These modifications often come with associated risks such as unintended sideeffects, unforeseen errors and malfunctions. At times, choosing the best Impact Analysis remains a tough task as choosing such technique might restrict the program from making possible decisions at the right time.

In addition, few potential challenges and specific issues still exist during the implementation of Change Impact Analysis. Thus, handling modifications faces multiple threats extending from detecting the modification necessary to evaluate the possible impact of the suggested change across the project to executing the planned and related modifications. In addition, it also includes the efficient handling of the storage of previous versions of the program and obtaining all the information associated with the proposed change [8].

Hence, the research work depicts Change Impact Analysis techniques and detects the potential experiments of Change Impact Analysis techniques to aid software projects through guidelines.

Introduction 3

As such, this book explains the utilization of Change Impact Analysis techniques in developing a software project and evaluates a new method of Change Impact Analysis procedure. Accordingly, on the basis of the research work, initial data gathering has been executed with the help of a project practitioner, and the resulting analysis is summarized qualitatively.

The Nomenclature

Impact Analysis (Change Impact Analysis)

Change Impact Analysis or Impact Analysis is described as “a procedure of analyzing significant unexpected effects of a system or predicting what should be altered to realize a system change” [1]. In particular, Change Impact Analysis functions are mainly aimed at identifying various artefacts of software such as requirement component, design component, class component and test component. A system change adversely impacts these components/artefacts. Generally, a system change is caused by an effect of addition, deletion and alteration to existing or novel software artefacts. Based on data from artefacts that are likely to be impacted, an efficient strategy can be formulated on the sequences of steps involved in implementing the proposed modification.

Change Impact Analysis comprises two important approaches: dependency and traceability impact analyses. Dependency Change Impact Analysis is often referred to as program analysis. This type of Change Impact Analysis is primarily engaged in describing various associations between class artefacts by analyzing the internal source code’s structure [1]. In particular, dependency Change Impact Analysis determines distinct source code elements which are likely to be affected by a system change. Researchers introduced multiple techniques of dependency Change Impact Analysis like control and data dependency impact analyses [11]. Control dependency Change Impact Analysis employs the conditional structure of a software program for executing the procedure and variable of that program which is analyzed through data dependency Change Impact Analysis.

Accordingly, the traceability Change Impact Analysis is used to analyse the associations between various artefacts across distinct phases of software. Due to this reason, traceability Change Impact Analysis approach is highly employed by researchers to execute Change Impact Analysis function in the development stage of software [12,13]. The only thing which differentiates it from dependency Change Impact Analysis is that traceability Change Impact Analysis techniques focus on interdependence of specified software artefacts in numerous software phases rather than on a single artefact.

Traceability Impact Analysis is categorized into two types: pretraceability and post-traceability Change Impact Analyses [14]. The pre-traceability analysis caters an efficient mechanism to check whether all requirements are depicted in a recognized need specification format or not. On the other hand, the post-traceability Change Impact Analysis offers an effective mechanism for analyzing the execution procedure of all such requirements present in the specification document. It depicts the step-by-step execution process of requirements in the project.

Most of the research work on Change Impact Analysis is restricted to source code analysis [3-6] by utilizing the dependency Change Impact Analysis method. However, the analysis through source code is unable to detect all affected artefacts in the project.

Software artefacts including test and design need to be updated as per the system change. This ultimately depicts that these artefacts form an integral portion of those affected by the proposed modification. Hence, to analyze the frequent effects of a system change in a project, an efficient grouping of traceability and dependency impact analysis is required.

Impact Analysis (Change Impact Analysis) Process

According to recently proposed works, the impact is defined as an effect of one object on another. It is often described as the possibility of a system change [15]. The Change Impact Analysis determines the scope of modification demands as a source to achieve accurate resource development and scheduling and also verifies cost rationalization [15]. This process predicts a change in a specified project and also maintains relevant documentation if any change to that project is observed.

Change Impact Analysis techniques are mostly utilized for planning, implementing and accommodating specific project modifications, and observing the post-implementation impacts [16]. However, when a particular modification is observed in a project, it is significant to employ the suitable Change Impact Analysis method for analyzing the effect of a change. Selection of appropriate Change Impact

Analysis process allows a developer to detect the possible effects of an observed change in a system before the execution of those alterations. Thus, a suitable Change Impact Analysis method enables to perform an optimal detection process of changes.

Accordingly, in a few cases, Change Impact Analysis plays a significant role in planning software release and maintenance procedure so as to switch proposed modification into a system modification specification. In addition, in [17], Pfleeger proposed a study on computing numerous threats which are linked to a system change. In particular, this proposed work predicts specific consequences on resources, execution plan and efforts [17]. Accordingly, the underlying concept of all the definitions is that Change Impact Analysis enables further insights into the suggested change and does not alter any part of the project [18].

In [19], the three significant steps in a Change Impact Analysis procedure are explained:

  • • Evaluation of modification requirements and specific artefacts
  • • Determination of potential consequences
  • • Execution of necessary system modifications

The initial step of Change Impact Analysis is engaged in analyzing the affected software artefacts set assumed to be first impacted through the modification specification. The principal set of affected software artefacts is referred to as SIS set. In the second step, the Change Impact Analysis process determines the possible effects across SIS by eliminating the false software artefacts to extract unique artefacts. The resulting set is called CIS set or often called EIS set. The final step of Change Impact Analysis selects a group of affected software artefacts which is already altered while executing the actual system change. The resulting set of affected artefacts is represented as AIS set.

The procedural structure of a Change Impact Analysis is an iterative method. Through the execution of actual system change, newly affected software artefacts are identified along with the procedure. These newly explored artefacts are often referred to as DIS set. The DIS is a lower-estimate set of CIS.

As not each and every software artefacts in CIS is in the actual set, certain false software artefacts in CIS are referred to as the false positive impact set (FPIS). The FPIS is represented as an impact set which is over-predicted in CIS. The amalgamation of both CIS and

DIS artefacts and the removal of FPIS artefacts depict the results of AIS. That is, AIS = CIS + (DIS) - FPIS.

There are numerous parameters employed for evaluating CIS accuracy. This CIS accuracy is generated by the Change Impact Analysis procedures [20]. These parameters are primarily aimed at computing the extreme proximity between the results of AIS and CIS. If the results among CIS and AIS are closer, then a high rate of accuracy will be observed. For instance, in [20], the authors utilize three significant prediction parameters to estimate the efficiency of CIS results generated by Change Impact Analysis techniques. The three core metrics include comprehensiveness, accuracy and the value of Kappa (KV) [21].

The parameter correctness includes the ratio of estimated to total original impacted classes. The completeness parameter is used to determine the proportion of actual to total evaluated impacted classes. Finally, KV is employed for representing the agreement level between CIS and AIS.

 
Source
< Prev   CONTENTS   Source   Next >