Risk Assessment Techniques For Software Development
Risk Assessment Techniques For Software Development
1. Introduction
Risk is defined as Hazard, danger; exposure to mischance or peril. A simple definition of Risk is:
The possibility of loss, injury, disadvantage or destruction. Zardari et al (2009). Risk is concerned
with uncertainty. This naturally includes uncertainty about the occurrence of known events, but also
events that are not initially identified as impacting on the project. Risk management must therefore be
an evolving and learning process, adapting to new and changing knowledge as the project precedes
Hall et al (1998).
2. Risk Management
Risk Management consists of the processes, methodologies and tools that are used to deal with risks in
the Software Development Life Cycle (SDLC) process of Software Project. Risk Management is
defined as the activity that identifies a risk; assesses the risk and defines the policies or strategies to
alleviate or lessen the risk. "Risk management is simply a practice of systematically deciding cost
effective approaches for minimizing the outcome of threat realization to the organization.
630
Probability of
Risk Occurring
Risk Event
Probability
of Impact
Impact
Losses
Impact Drivers.
When a Project team responds to risks when they occur then it is called reactive risk
management. Failures are fixed; resources are found and applied once the risk strikes.
The risk assessment model, methods and techniques are widely used to control risk in a
software development. Effective decision-making required a clearly defined risk assessment and
analysis that could show any possible outcomes. The bad outcomes are risks and good outcomes are
possibilities to produce good software. One of the challenges to accurately manage risk analysis is to
use automated tools to store, organize and process data into meaningful knowledge Boehm et al
(1989). Nowadays, software communities are striving to develop commercial software in order to stay
viable. Many software projects when deployed displayed an excessive error and very low reliability.
Yet, while software industry is actively using software risk management techniques to improve their
risk management practices, only few reports on designing visualization tools are available for
managing software risks.
631
According to Gillian et al (2004), the basic problem of waterfall model is that this model
remains a high risk throughout the development lifecycle. This is because a waterfall process assumes
that each stage can be fully defined without the need for feedback from the subsequent stages.
Figure 3: Illustrates a typical waterfall
632
The X-axis showed the time and Y-axis plots the functionality and the level of project risk. As
shown in the graph above, the risk remains high until the last phase of the software development. The
risk is gradually decreasing as the coding built, integrated and been testing. In order to produce good
software, it is important to take risk into account. The basic problem is that in waterfall model the
project risk remains higher throughout the software process development.
The spiral model presented in this article is one candidate for improving the software process
model situation. The major distinguishing feature of the spiral model is that it creates a risk-driven
approach to the software process rather than a primarily document-driven or code-driven process. It
incorporates many of the strengths of other models and resolves many of their difficulties. The spiral
model of the software process (see figure-4) has been evolving for several years, based on experience
with various refinements of the waterfall model as applied to large government software projects. As
will be discussed, the spiral model can accommodate different models (like waterfall model,
evolutionary model, prototype model, transform model etc) as special cases and further provides
guidance as to which combination of these model best fits a given software situation.
A typical cycle of the Spiral: Each cycle of the spiral begins with the identification of
The objectives of the portion of the product being elaborated (performance,
functionality, ability to accommodate change, etc).
The alternative means of implementing this portion of the product (design A, design B,
reuse, buy, etc); and
The constraints imposed on the application of the alternatives (cost, schedule, interface,
etc.)
The next step is to evaluate the alternative relative to the objectives and constraints. Frequently,
this process will identify areas of uncertainty that are significant sources of project risk. If so, the next
step should involve the formulation of a cost-effective strategy for resolving the sources of risk. Once
the risks are evaluated, the next step is determined by the relative remaining risks. If performance of
633
user-interface risks strongly dominates program development or internal interface-control risks, the
next step may be an evolutionary development one: a minimal effort to specify the overall nature of the
product, a plan for the next level of prototyping, and the development of a more detailed prototype to
continue to resolve the major risk issues. On the other hand, if previous prototyping efforts have
already resolved all of the performance or user-interface risks, and program development or interfacecontrol risks dominate, the next step follows the basic waterfall approach modified as appropriate to
incorporate incremental development.
The risk driven sub setting of the spiral model steps allows the model to accommodate any
appropriate mixture of a specification oriented, prototype oriented simulation oriented, automatic
transformation-oriented or other approach to software development. In such cases, considering the
relative magnitude of the program risks and the relative effectiveness of the various techniques in
resolving the risks chooses the appropriate mixed strategy. In a similar way, risk-management
considerations can determine the amount of time and effort that should be devoted to such other project
activities as planning, configuration management, quality assurance, formal verification, and testing.
An important feature of the spiral model, as with most other models, is that each cycle is completed by
a review involving the primary people or organizations concerned with the product.
Advantage
The primary advantage of the spiral model is that its range of options accommodates the good features
of existing software process models, while its risk driven approach avoids many of their difficulties. In
appropriate situations, the spiral model becomes equivalent to one of the existing process models. In
other situations, it provides guidance on the best mix of existing approaches to a given project.
The primary conditions under which the spiral model becomes equivalent to other main process
models are summarized as follows:
If a project has a low risk in such areas as getting the wrong user interface or not meeting
stringent performance requirements, and if it has a high risk in budget and schedule
predictability and control, then these risk considerations drive the spiral model into
equivalence to the waterfall model.
If a software products requirements are very stable (implying a low risk of expensive
design and code breakage due to requirements changes during development), and if the
presence of errors in the software product constitutes a high risk to the mission it serves,
then these risk considerations drive the spiral model to resemble the two-leg model of
precise specification and formal deductive program development.
If a project has a low risk in such areas as losing budget and schedule predictability and
control, encountering large-system integration problems, or coping with information
sclerosis, and if it has a high risk in such areas as getting the wrong user interface or user
decision support requirements, then these risk considerations drive the spiral model into an
equivalence to the evolutionary development model.
If automated software generation capabilities are available, then the spiral model
accommodates them either as options for rapid prototyping or for application of the
transform model, depending on the risk considerations involved.
The spiral model has a number of additional advantages, summarized as follows:
1. It focuses early attention on options involving the reuse of existing software. The steps
involving the identification and evaluation of alternatives encourage these options.
2. It accommodates preparation for life-cycle evolution, growth, and changes of the
software product. The major sources of product change are included in the products
objective, and information hiding approaches are attractive architectural design
alternatives in that they reduce the risk of not being able to accommodate the productcharge objectives.
634
Data communications
Distributed data processing
Performance
Heavily used configuration
Transaction rate
Online data entry
End user efficiency
Each of these fourteen characteristics is assigned a degree of influence (DI) between 0(no
influence) and 5 (strong influence). The overall contingency is expressed in the Value Adjustment
Factor (VAF) which is calculated using the sum of all DIs.
14
VAF
= 0 . 65 + 0 . 01 DI
n =1
635
In case all characteristics have a DI of 5, the contingency is 35%, i.e. the number of unadjusted
function points increases by 35% to obtain the adjusted function points.
Regardless of whether such a contingency is sufficient to take project characteristics (such as
complexity) and project risks into account this approach does no tallow us to determine the effect of as
specific risk such as Change of technology as there is no known relationship between a specific
project risk and the general system characteristics. Neither the impact nor the probability of the risks
may be taken into account in any way.
6.3. Cocomo II
COCOMO II takes project risks into account by defining a risk factor characterizing each module to be
developed Boehm et al (2000). The total risk (TR) of each module is the sum of the risk levels (RL) of
six types of risk (Table 2).
Table 2:
Project risks
Project risks
Schedule Risk
TR =
RI
Product Risk
n
Platform Risk
n =1
Personnel Risk
Process Risk
Reuse Risk
In a risk analysis Coombs et al (2003) determines three characteristics of the project risks: the
probability of occurrence, the difficulty of detecting whether the risk has occurred and the impact on
the project if the risk occurs. In addition, for each risk the maximum person-days and the maximum
cost to correct the damage if the risk fires are determined.
Each characteristic is assigned a weight (Wc) recorded as Low, Medium, or High corresponding
to the values 1, 3 and 7. The sum of these three weights is the Overall Weight.
3
OverallWeight = Wc
c =1
636
The maximum value of the overall weight, the Overall Weight max, is 21, corresponding to a
maximum contingency of 75%. The actual contingency is the proportion of the maximum contingency
corresponding to the Overall Weight.
Contingency = Overallweight / Overallweight max 75[%]
The contingency then is applied to the maximum person-days and to the maximum cost of each
risk to obtain the weighted maximum person-days and the weighted maximum cost in order to
determine the project risks effect on the project. With this approach any number of project risks may
be considered. Each project risk is taken into account separately and independently. The probability is
only used to calculate a contingency. There is no analysis of the probabilities in terms of determining
the most probable increase of the project duration.
7. Conclusion
Thus one can conclude that formal risk management analysis and formal project assessment are
effective and useful approaches that are starting to add rigor to the phrase software engineering. Not
every risk factor is fully controllable, and several risk factors exceed the authority of software
managers. Nonetheless, risk analysis and assessment methods are quite effective in the identification of
significant problems. Once problems are identified and examined, solutions can often be developed.
We can say in conclusion that, like any other control, proper and timely Risk management control can
provide enormous advantages to an organization by cutting down the cost and ensuring proper delivery
as per schedule.
References
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]