Se Unit - 5
Se Unit - 5
Software Measurement:
Defect Density
It measures the defects relative to the software size expressed as lines of code or
function point, etc. i.e., it measures code quality per unit. This metric is used in many
commercial software systems.
Customer Problems
It measures the problems that customers encounter when using the product. It
contains the customer’s perspective towards the problem space of the software, which
includes the non-defect oriented problems together with the defect problems.
The problems metric is usually expressed in terms of Problems per User-Month (PUM).
PUM = Total Problems that customers reported (true defect and non-defect oriented
problems) for a time period + Total number of license months of the software during the
period.
Customer Satisfaction:
Customer satisfaction is often measured by customer survey data through the five-point
scale:
Very satisfied
Satisfied
Neutral
Dissatisfied
Very dissatisfied
Satisfaction with the overall quality of the product and its specific dimensions is usually
obtained through various methods of customer surveys. Based on the five-point-scale
data, several metrics with slight variations can be constructed and used, depending on
the purpose of analysis. For example:
In-process quality metrics deals with the tracking of defect arrival during formal
machine testing for some organizations. This metric includes:
Defect rate during formal machine testing (testing after code is integrated into the
system library) is correlated with the defect rate in the field. Higher defect rates found
during testing is an indicator that the software has experienced higher error injection
during its development process, unless the higher testing defect rate is due to an
extraordinary testing effort.
This simple metric of defects per KLOC or function point is a good indicator of quality,
while the software is still being tested. It is especially useful to monitor subsequent
releases of a product in the same development organization.
Defect arrival pattern during machine testing
The overall defect density during testing will provide only the summary of the defects.
The pattern of defect arrivals gives more information about different quality levels in
the field. It includes the following:
The defect arrivals or defects reported during the testing phase by time interval
(e.g., week). Here all of which will not be valid defects.
The pattern of valid defect arrivals when problem determination is done on the
reported problems. This is the true defect pattern.
The pattern of defect backlog overtime. This metric is needed because
development organizations cannot investigate and fix all the reported problems
immediately. This is a workload statement as well as a quality statement. If the
defect backlog is large at the end of the development cycle and a lot of fixes
have yet to be integrated into the system, the stability of the system (hence its
quality) will be affected. Retesting (regression test) is needed to ensure that
targeted product quality levels are reached.
This is an extension of the defect density metric during testing. In addition to testing, it
tracks the defects at all phases of the development cycle, including the design reviews,
code inspections, and formal verifications before testing.
Because a large percentage of programming defects is related to design problems,
conducting formal reviews, or functional verifications to enhance the defect removal
capability of the process at the front-end reduces error in the software. The pattern of
phase-based defect removal reflects the overall defect removal ability of the
development process.
With regard to the metrics for the design and coding phases, in addition to defect
rates, many development organizations use metrics such as inspection coverage and
inspection effort for in-process quality management.
Although much cannot be done to alter the quality of the product during this phase,
following are the fixes that can be carried out to eliminate the defects as soon as
possible with excellent fix quality.
Fix backlog is related to the rate of defect arrivals and the rate at which fixes for
reported problems become available. It is a simple count of reported problems that
remain at the end of each month or each week. Using it in the format of a trend chart,
this metric can provide meaningful information for managing the maintenance process.
Backlog Management Index (BMI) is used to manage the backlog of open and
unresolved problems.
BMI=NumberofproblemsclosedduringthemonthNumberofproblemsarrivedduringthemonth×100%
If BMI is larger than 100, it means the backlog is reduced. If BMI is less than 100, then
the backlog increased.
The fix response time metric is usually calculated as the mean time of all problems
from open to close. Short fix response time leads to customer satisfaction.
The important elements of fix responsiveness are customer expectations, the agreed-to
fix time, and the ability to meet one's commitment to the customer.
Percent delinquent fixes
It is calculated as follows:
PercentDelinquentFixes=PercentDelinquentFixes=
NumberoffixesthatexceededtheresponsetimecriteriabyceveritylevelNumberoffixesdel
iveredinaspecifiedtime×100%Numberoffixesthatexceededtheresponsetimecriteriabyc
everitylevelNumberoffixesdeliveredinaspecifiedtime×100%
Fix Quality
Fix quality or the number of defective fixes is another important quality metric for the
maintenance phase. A fix is defective if it did not fix the reported problem, or if it fixed
the original problem but injected a new defect. For mission-critical software, defective
fixes are detrimental to customer satisfaction. The metric of percent defective fixes is
the percentage of all fixes in a time interval that is defective.
A defective fix can be recorded in two ways: Record it in the month it was discovered or
record it in the month the fix was delivered. The first is a customer measure; the
second is a process measure. The difference between the two dates is the latent period
of the defective fix.
Usually the longer the latency, the more will be the customers that get affected. If the
number of defects is large, then the small value of the percentage metric will show an
optimistic picture. The quality goal for the maintenance process, of course, is zero
defective fixes without delinquency.
Each strategy has its own activities, metrics, and behaviors that are useful in risk
analysis.
Reactive Risk Management
One fundamental point about reactive risk management is that the disaster or threat
must occur before management responds. Proactive risk management is all about taking
preventative measures before the event to decrease its severity, and that’s a good thing
to do.
At the same time, however, organizations should develop reactive risk management
plans that can be deployed after the event. Otherwise management is making decisions
about how to respond as the event happens, which can be a costly and stressful ordeal.
There’s an obvious catch-22 with reactive risk management. Although this approach
gives you time to understand the risk before acting, you’re still always one step behind
the unfolding threat. Other projects will lag as you attend to the problem at hand.
A truly proactive approach, however, does imply that each risk is constantly monitored.
It also entails regular risk reviews to update the current risk and new risks affecting the
company. This approach drives management to be always aware of the direction of
those risks.
Software Risk:
Risk is uncertain events associated with future events which have a probability of
occurrence but it may or may not occur and if occurs it brings loss to the project. Risk
identification and management are very important task during software project
development because success and failure of any software project depends on it.
Types of Risk:
1. Schedule Risk :
Schedule related risks refers to time related risks or project delivery related
planning risks. The wrong schedule affects the project development and delivery.
These risks are mainly indicates to running behind time as a result project
development doesn’t progress timely and it directly impacts to delivery of project.
Finally if schedule risks are not managed properly it gives rise to project failure and
at last it affect to organization/company economy very badly.
Some reasons for Schedule risks –
Time is not estimated perfectly
Improper resource allocation
Tracking of resources like system, skill, staff etc
Frequent project scope expansion
Failure in function identification and its’ completion
2. Budget Risk :
Budget related risks refers to the monetary risks mainly it occurs due to budget
overruns. Always the financial aspect for the project should be managed as per
decided but if financial aspect of project mismanaged then there budget concerns
will arise by giving rise to budget risks. So proper finance distribution and
management are required for the success of project otherwise it may lead to
project failure.
Some reasons for Budget risks:
Wrong/Improper budget estimation
Unexpected Project Scope expansion
Mismanagement in budget handling
Cost overruns
Improper tracking of Budget
3. Operational Risks :
Operational risk refers to the procedural risks means these are the risks which
happen in day-to-day operational activities during project development due to
improper process implementation or some external operational risks.
Some reasons for Operational risks:
Insufficient resources
Conflict between tasks and employees
Improper management of tasks
No proper planning about project
Less number of skilled people
Lack of communication and cooperation
Lack of clarity in roles and responsibilities
Insufficient training
4. Technical Risks :
Technical risks refers to the functional risk or performance risk which means this
technical risk mainly associated with functionality of product or performance part
of the software product.
Some reasons for Technical risks:
Frequent changes in requirement
Less use of future technologies
Less number of skilled employee
High complexity in implementation
Improper integration of modules
5. Programmatic Risks :
Programmatic risks refers to the external risk or other unavoidable risks. These are
the external risks which are unavoidable in nature. These risks come from outside
and it is out of control of programs.
Some reasons for Programmatic risks:
Rapid development of market
Running out of fund / Limited fund for project development
Changes in Government rules/policy
Loss of contracts due to any reason
Identifying risk is one of most important or essential and initial steps in risk
management process. By chance, if failure occurs in identifying any specific or particular
risk, then all other steps that are involved in risk management will not be implemented
for that particular risk. For identifying risk, project team should review scope of
program, estimate cost, schedule, technical maturity, parameters of key performance,
etc.
To manage risk, project team or organization are needed to know about what risks it
faces, and then to evaluate them. Generally, identification of risk is an iterative process.
It basically includes generating or creating comprehensive list of threats and
opportunities that are based on events that can enhance, prevent, degrade, accelerate,
or might delay successful achievement of objectives. In simple words, if you don’t find
or identify risk, you won’t be able to manage it.
Methods for Identifying Risks :
Earlier, there were no easy methods available that will surely identify all risks. But
nowadays, there are some additional approaches available for identifying risks. Some of
approaches for risk identification are given below:
1. Checklist Analysis:
Checklist Analysis is type of technique generally used to identify or find risks and
manage it. The checklist is basically developed by listing items, steps, or even tasks
and is then further analyzed against criteria to just identify and determine if
procedure is completed correctly or not. It is list of risk that is just found to occur
regularly in development of software project.
Below is the list of software development risk by Barry Boehm- modified version.
Risk Risk Reduction Technique
Development of
the wrong user Various techniques include user
interface involvement, prototyping, etc.
2. Brainstorming:
This technique provides and gives free and open approach that usually encourages
each and everyone on project team to participate. It also results in greater sense of
ownership of project risk, and team generally committed to managing risk for given
time period of project. It is creative and unique technique to gather risks
spontaneously by team members. The team members identify and determine risks
in ‘no wrong answer’ environment. This technique also provides opportunity for
team members to always develop on each other’s ideas. This technique is also used
to determine best possible solution to problems and issue that arises and emerge.
3. Casual Mapping:
Causal mapping is method that builds or develops on reflection and review of
failure factors in cause and effect of the diagrams. It is very useful for facilitating
learning with an organization or system simply as method of project-post
evaluation. It is also key tool for risk assessment.
4. SWOT Analysis:
Strengths-Weaknesses-Opportunities-Threat (SWOT) is very technique and helpful
for identifying risks within greater organization context. It is generally used as
planning tool for analyzing business, its resources, and also its environment simply
by looking at internal strengths and weaknesses and opportunities and threats in
external environment. It is technique often used in formulation of strategy. The
appropriate time and effort should be spent on thinking seriously about
weaknesses and threats of organization for SWOT analysis to more effective and
successful in risk identification.
5. Flowchart Method:
This method allows for dynamic process to be diagrammatically represented in
paper. This method is generally used to represent activities of process graphically
and sequentially to simply identify the risk.
Risk Projection:
Risk projection, also called risk estimation, attempts to rate each risk in two ways—the
likelihood or probability that the risk is real and the consequences of the problems
associated with the risk, should it occur.
The project planner, along with other managers and technical staff, performs four risk
projection activities:
(1) Establish a scale that reflects the perceived likelihood of a risk.
(2) Delineate the consequences of the risk.
(3) Estimate the impact of the risk on the project and the product.
(4) Note the overall accuracy of the risk projection so that there will be no
misunderstandings.
Developing a Risk Table
Risk table provides a project manager with a simple technique for risk projection.
Steps in Setting up Risk Table
(1) Project team begins by listing all risks in the first column of the table.
Accomplished with the help of the risk item checklists.
(2) Each risk is categorized in the second column.
(e.g. PS implies a project size risk, BU implies a business risk).
(3) The probability of occurrence of each risk is entered in the next column of the table.
The probability value for each risk can be estimated by team members individually.
(4) Individual team members are polled in round-robin fashion until their assessment of
risk probability begins to converge.
Risk Refinement:
During early stages of project planning, a risk may be stated quite generally. As time
passes and more is learned about the project and the risk, it may be possible to refine
the risk into a set of more detailed risks, each somewhat easier to mitigate, monitor,
and manage.
One way to do this is to represent the risk in condition-transition-consequence (CTC)
format . That is, the risk is stated in the following form: Given that <condition> then
there is concern that (possibly) <consequence>.
Using the CTC format for the reuse risk noted in Section 6.4.2, we can write:
Given that all reusable software components must conform to specific design standards
and that some do not conform, then there is concern that (possibly) only 70 percent of
the planned reusable modules may actually be integrated into the as-built system,
resulting in the need to custom engineer the remaining 30 percent of components.
Subcondition 2. The design standard for component interfaces has not been solidified
and may not conform to certain existing reusable components.
The consequences associated with these refined sub conditions remains the same (i.e.,
30 percent of software components must be customer engineered), but the refinement
helps to isolate the underlying risks and might lead to easier analysis and response.
RMMM:
A risk management strategy can be defined as a software project plan or the risk
management steps. It can be organized into a separate Risk Mitigation, Monitoring and
Management Plan. The RMMM plan documents all work performed as part of risk
analysis and is used by the project manager as part of the overall project plan.
Teams do not develop a formal RMMM document. Rather, each risk is documented
individually using a risk information sheet . In most cases, the RIS is maintained using a
database system, so that creation and information entry, priority ordering, searches,
and other analysis may be accomplished easily.
Once RMMM has been documented and the project has begun, risk mitigation and
monitoring steps commence. As we have already discussed, risk mitigation is a problem
avoidance activity. Risk monitoring is a project tracking activity with three primary
objectives:
(1) to assess whether predicted risks occur.
(2) to ensure that risk aversion steps defined for the risk are being properly
applied; and
(3) to collect information that can be used for future risk analysis.
Effective strategy must consider three issues:
risk avoidance
risk monitoring
risk management and contingency planning.
RMMM Plan:
A risk management technique is usually seen in the software Project plan. This
can be divided into Risk Mitigation( the action of reducing the severity, seriousness, or
painfulness of something), Monitoring, and Management Plan (RMMM). In this plan,
all works are done as part of risk analysis. As part of the overall project plan
project manager generally uses this RMMM plan.
In some software teams, risk is documented with the help of a Risk Information
Sheet (RIS). This RIS is controlled by using a database system for easier
management of information i.e creation, priority ordering, searching, and other
analysis. After documentation of RMMM and start of a project, risk mitigation
and monitoring steps will start.
Risk Mitigation :
It is an activity used to avoid problems (Risk Avoidance).
Steps for mitigating the risks as follows.
Example:
Let us understand RMMM with the help of an example of high staff turnover.
Risk Mitigation:
To mitigate this risk, project management must develop a strategy for reducing
turnover. The possible steps to be taken are:
Meet the current staff to determine causes for turnover (e.g., poor working
conditions, low pay, competitive job market).
Mitigate those causes that are under our control before the project starts.
Once the project commences, assume turnover will occur and develop
techniques to ensure continuity when people leave.
Organize project teams so that information about each development activity
is widely dispersed.
Define documentation standards and establish mechanisms to ensure that
documents are developed in a timely manner.
Assign a backup staff member for every critical technologist.
Risk Monitoring:
As the project proceeds, risk monitoring activities commence. The project
manager monitors factors that may provide an indication of whether the risk is
becoming more or less likely. In the case of high staff turnover, the following
factors can be monitored:
General attitude of team members based on project pressures.
Interpersonal relationships among team members.
Potential problems with compensation and benefits.
The availability of jobs within the company and outside it.
Risk Management:
Risk management and contingency planning assumes that mitigation efforts
have failed and that the risk has become a reality. Continuing the example, the
project is well underway, and a number of people announce that they will be
leaving. If the mitigation strategy has been followed, backup is available,
information is documented, and knowledge has been dispersed across the
team. In addition, the project manager may temporarily refocus resources (and
readjust the project schedule) to those functions that are fully staffed, enabling
newcomers who must be added to the team to “get up to the speed“.
Drawbacks of RMMM:
It incurs additional project costs.
It takes additional time.
For larger projects, implementing an RMMM may itself turn out to be another
tedious project.
RMMM does not guarantee a risk-free project, infact, risks may also come
up after the project is delivered.
Software Quality Assurance is simply a way to assure quality in the software. It is the
set of activities which ensure processes, procedures as well as standards are suitable
for the project and implemented correctly.
Disadvantage of SQA:
There are a number of disadvantages of quality assurance. Some of them include
adding more resources, employing more workers to help maintain quality and so much
more.
Software Review:
Review guidelines:
Review the product, not the manufacture (producer).
1. Take written notes (record purpose)
2. Limit the number of participants and insists upon advance preparation.
3. Develop a checklist for each product that is likely to be reviewed.
4. Allocate resources and time schedule for FTRs in order to maintain time schedule.
5. Conduct meaningful training for all reviewers in order to make reviews effective.
6. Reviews earlier reviews which serve as the base for the current review being
conducted.
7. Set an agenda and maintain it.
8. Separate the problem areas, but do not attempt to solve every problem notes.
9. Limit debate and rebuttal.
Software Reliability: