Uploaded by ARCHANA MANNE

Software Engineering: Risk & Quality Management (UNIT-V)

advertisement
Software Engineering
2
UNIT-V
Risk Management: Reactive vs Proactive Risk Strategies, software risks, Risk
Identification, Risk Projection, Risk Refinement, RMMM, RMMM Plan.
Quality Management: Quality Concepts, Software Quality assurance, Software
Reviews, Formal Technical Reviews, Statistical Software Quality assurance,
Software Reliability, The ISO 9000 Quality standards.
Risk is an undesired event or circumstance that occur while a project is underway It
is necessary for the project manager to anticipate and identify different risks
that a project may be susceptible to.
Risk Management aims at reducing the impact of all kinds of risk that may
affect a project by identifying, analyzing and managing them
Reactive Vs. Proactive test strategies
 Reactive Risks:
 Project team reacts to risks when they occur.
 The team flies into action in an attempt to correct the problem rapidly.
This is often called a fire fighting mode.
 When this fails, ―crisis management‖ takes over and the project is in real
jeopardy.
 Proactive Risks
 Potential risks are identified, their probability and impact are assessed,
and they are ranked by importance.
 The software team establishes a plan for managing risk.
 The primary objective is to avoid risk, but because not all risks can be
avoided, the team works to develop a contingency plan that will enable
it to respond in a controlled and effective manner.
Software Risks
Characteristics
Risk always involves two characteristics
 Uncertainty the risk may or may not happen;
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering

3
Loss if the risk becomes a reality, unwanted consequences or losses will
occur.
When risks are analyzed, it is important to quantify the level of
uncertainty and the degree of loss associated with each risk
Types of Risks
 Project risk: Threaten the project plan and affect schedule and resultant cost
 Technical risk: Threaten the quality and timeliness of software to be
produced
 Business risk: Threaten the viability of software to be built
 Known risk: These risks can be recovered from careful evaluation
 Predictable risk: Risks are identified by past project experience
 Unpredictable risk: Risks that occur and may be difficult to identify
Risks Identification
 Risk identification is a systematic attempt to specify threats to the project
plan.
By identifying known and predictable risks, the project manager takes a
first step toward avoiding them when possible and controlling them when necessary.
 Two distinct types of risks for each category of risks specified above
 Generic risks are a potential threat to every software project.
 Product-specific risks can be identified only by those with a clear
understanding of the technology, the people, and the environment that
is specific to the project at hand.
One method for identifying risks is to create a risk item checklist.
The checklist can be used for risk identification
 Product size
 Business impact .
 Customer characteristics
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
4
 Process definition
 Development environment

Technology to be built
 Staff size and experience
Assessing Overall Project Risk:
The following questions have been derived from risk data obtained by surveying
experienced software project managers in different parts of the world. The questions are
ordered by their relative importance to the success of a project.
 Have top software and customer managers formally committed to
support the project?
 Are end-users enthusiastically committed to the project and the
system/product to be built?
 Are requirements fully understood by the software engineering team
and their customers?
 Have customers been involved fully in the definition of requirements?
 Do end-users have realistic expectations?
 Is project scope stable?
 Does the software engineering team have the right mix of skills?
 Are project requirements stable?
 Does the project team have experience with the technology to be
implemented?
 Is the number of people on the project team adequate to do the job?
 Do all customer/user constituencies agree on the importance of the
project and on the requirements for the system/product to be built?
 Is project scope stable?
 Does the software engineering team have the right mix of skills?
 Are project requirements stable?
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
5
 Does the project team have experience with the technology to be
implemented?
 Is the number of people on the project team adequate to do the job?
 Do all customer/user constituencies agree on the importance of the
project and on the requirements for the system/product to be built?
The degree to which the project is at risk is directly proportional to the
number of negative responses to these questions.
Risk Components and Drivers:
 The U.S. Air Force has written a pamphlet that contains excellent guidelines
for software risk identification and abatement.
 The Air Force approach requires that project manager identify the risk drivers
that affect software risk components.
 The risk components are defined in the following manner.
 Performance risk - the degree of uncertainty that the product will meet
its requirements and be fit for its intended use.
 Cost risk - the degree of uncertainty that the project budget will be
maintained.
 Support risk - the degree of uncertainty that the resultant software will
be easy to correct, adapt, and enhance.
 Schedule risk - the degree of uncertainty that the project schedule will
be maintained and that the product will be delivered on time.
The impact of each risk driver on the risk component is divided into one
of four impact categories—negligible, marginal, critical, or catastrophic.
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
6
Impact Assessment
Risks Projection:
Risk Estimation
 It estimates the impact of risk on the project and the product
 It attempts to rate each risk in two ways
 the likelihood or probability that the risk is real
 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 steps:
 establish a scale that reflects the perceived likelihood of a risk.
 delineate the consequences of the risk.
 estimate the impact of the risk on the project and the product.
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
7
 note the overall accuracy of the risk projection so that there will be no
misunderstandings.
 The intent of these steps is to consider risks in a manner that leads to
prioritization.
 No software team has the resources to address every possible risk with the
same degree of rigor.
 By prioritizing risks, you can allocate resources where they will have the most
impact.
Developing a Risk Table:
 A risk table provides a project manager with a simple technique for risk
projection
 Once the first four columns of the risk table have been completed, the table is
sorted by probability and by impact.
High-probability, high-impact risks percolate to the top of the table, and
low-probability risks drop to the bottom. This accomplishes first-order risk
prioritization.
 The project manager studies the resultant sorted table and defines a cutoff
line.
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
8
The cutoff line (drawn horizontally at some point in the table) implies
that only risks that lie above the line will be given further attention. Risks that fall
below the line are re-evaluated to accomplish second-order prioritization.
 The column labeled RMMM contains a pointer into a Risk Mitigation,
Monitoring and Management Plan or alternatively, a collection of risk
information sheets developed for all risks that lie above the cutoff.
Assessing Risk Impact:
 The overall risk exposure, RE, is determined using the following relationship
RE = P x C
P is the probability of occurrence for a risk, and
C is the cost to the project should the risk occur
 For example, assume that the software team defines a project risk in the
following manner:
Risk identification.
Only 70 percent of the software components scheduled for reuse will, in fact,
be integrated into the application. The remaining functionality will have to be
custom developed.
Risk probability. 80% (likely).
Risk impact.
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
9
60 reusable software components were planned. If only 70 percent can be used,
18 components would have to be developed from scratch (in addition to other
custom software that has been scheduled for development). Since the average
component is 100 LOC and local data indicate that the software engineering cost
for each LOC is $14.00, The overall cost (impact) to developthe components
would be 18 x 100 x 14 = $25,200.
Risk exposure. RE = 0.80 x 25,200 ~=$20,200.
Risks Refinement:
 One way to do this is to represent the risk in
condition-transition-consequence (CTC).
i.e., the risk is stated in the following form:
Given that <condition> then there is concern that (possibly) <consequence>.
Risk Mitigation Monitoring and Management(RMMM)
 An effective strategy must consider three issues:
 Risk avoidance,
 Risk monitoring, and
 Risk management and contingency planning.
 If a software team adopts a proactive approach to risk, avoidance is always
the best strategy. This is achieved by developing a plan for risk mitigation.
 There are three issues of RMMM
 Actions to be taken in the event that mitigation steps have failed and
the risk has become a live problem
 Devise RMMP(Risk Mitigation Monitoring And Management Plan)
RMMM Plan:
 Risk Avoidance(mitigation) Proactive planning for risk avoidance. This is
achieved by developing a plan for risk mitigation.
 Risk Monitoring what factors can we track that will enable us to determine
if the risk is becoming more or less likely?
 Assessing whether predicted risk occur or not
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
10
 Ensuring risk aversion steps are being properly applied
 Collection of information for future risk analysis
 Determine which risks caused which problems
 Risk Management what contingency plans do we have if the risk becomes a
reality?
 Contingency planning
 A risk management strategy can be included in the software project plan or the
risk management steps can be organized into a separate Risk Mitigation,
Monitoring and Management Plan. The RMMM plan documents all work
performed as part of risk.
 Each risk is documented individually by using a Risk Information Sheet.
 RIS is maintained using a database system.
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
11
Quality Management: Quality Concepts, Software Quality assurance, Software
Reviews, Formal Technical Reviews, Statistical Software Quality assurance,
Software Reliability, The ISO 9000 Quality standards.
 Quality management often called software quality assurance is an umbrella
activity that is applied throughout the software process.
 Quality management emcompasses
 A software quality assurance process
 Specific quality assurance and quality control tasks (including formal
technical reviews and a multi-tiered testing strategy)
 Effective software engineering practices (methods and tools)
 Control of all software work products and the changes made to them
 A procedure
standards
to
ensure
compliance
with
software
development
 Measurement and reporting mechanisms
Quality Concepts
 Defined as a characteristic or attribute of something
Refers to measurable characteristics that we can compare to known
standards
 In software it involves such measures as cyclomatic complexity, cohesion,
coupling, function points, and source lines of code
 Includes variation control
 A software development organization should strive to minimize the
variation between the predicted and the actual values for cost, schedule,
and resources
 They should make sure their testing program covers a known percentage
of the software from one release to another
 One goal is to ensure that the variance in the number of bugs is also
minimized from one release to another
 Two kinds of quality are sought out
 Quality of design
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
12
 Quality of conformance (i.e., implementation)
 Quality also can be looked at in terms of user satisfaction User
satisfaction = compliant product + good quality + delivery within budget and
schedule.
Quality Control
 Involves a series of inspections, reviews, and tests used throughout the
software process
 Ensures that each work product meets the requirements placed on it
 Includes a feedback loop to the process that created the work product
This is essential in minimizing the errors produced
 Combines measurement and feedback in order to adjust the process when
product specifications are not met
 Requires all work products to have defined, measurable specifications to
which practitioners may compare to the output of each process
Quality Assurance
 Consists of a set of auditing and reporting functions that assess the
effectiveness and completeness of quality control activities
 Provides management personnel with data that provides insight into the
quality of the products
 Alerts management personnel to quality problems so that they can apply the
necessary resources to resolve quality issues
Cost of Quality
 Includes all costs incurred in the pursuit of quality or in performing qualityrelated activities
 Is studied to
 Provide a baseline for the current cost of quality
 Identify opportunities for reducing the cost of quality
 Provide a normalized basis of comparison (which is usually dollars)
 Involves various kinds of quality costs
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
13
 Increases dramatically as the activities progress from
Prevention  Detection  Internal failure  External failure
Kinds of Quality Costs
 Prevention costs
 Quality planning, formal technical reviews, test equipment, training
 Appraisal costs
 Inspections, equipment calibration and maintenance, testing
 Failure costs – subdivided into internal failure costs and external failure
costs
 Internal failure costs
 Incurred when an error is detected in a product prior to shipment
 Include rework, repair, and failure mode analysis
 External failure costs
 Involves defects found after the product has been shipped
 Include complaint resolution, product return and replacement,
help line support, and warranty work
Software Quality Assurance:
"Conformance to explicitly stated functional and performance
requirements, explicitly documented development standards, and implicit
characteristics that are expected of all professionally developed software―
 Software quality is no longer the sole responsibility of the programmer
 It extends to software engineers, project managers, customers,
salespeople, and the SQA group
 Software engineers apply solid technical methods and measures, conduct
formal technical reviews, and perform well-planned software testing
The SQA Group:
 Serves as the customer's in-house representative
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
14
 Assists the software team in achieving a high-quality product
 Views the software from the customer's point of view
 Does the software adequately meet quality factors?
 Has software development been conducted according to pre-established
standards?
 Have technical disciplines properly performed their roles as part of the
SQA activity?
 Performs a set of of activities that address quality assurance planning,
oversight, record keeping, analysis, and reporting
SQA Activities:
•
Prepares an SQA plan for a project
•
Participates in the development of the project's software process description
•
Reviews software engineering activities to verify compliance with the defined
software process
•
Audits designated software work products to verify compliance with those
defined as part of the software process
•
Ensures that deviations in software work and work products are documented
and handled according to a documented procedure
•
Records any noncompliance and reports to senior management
•
Coordinates the control and management of change
•
Helps to collect and analyze software metrics
Software Reviews:
Purpose of Reviews
 Serve as a filter for the software process

Are applied at various points during the software process
 Uncover errors that can then be removed
 Purify the software analysis, design, coding, and testing activities
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
15
 Catch large classes of errors that escape the originator more than other
practitioners
 Include the formal technical review (also called a walkthrough or inspection)
 Acts as the most effective SQA filter
 Conducted by software engineers for software engineers
 Effectively uncovers errors and improves software quality
 Has been shown to be up to 75% effective in uncovering design flaws(which
constitute 50-65% of all errors in software)
 Require the software engineers to expend time and
organization to cover the costs
effort, and
the
Formal Technical Review:
 To uncover errors in function, logic, or implementation for any representation
of the software
 To verify that the software under review meets its requirements
 To ensure that the software has been represented according to predefined
standards
 To achieve software that is developed in a uniform manner
 To make projects more manageable
The Review Meeting
 Has the following constraints
 From 3-5 people should be involved
 Advance preparation (i.e., reading) should occur for each participant but
should require no more than two hours a piece and involve only a small
subset of components
 The duration of the meeting should be less than two hours
 Focuses on a specific work product (a software requirements specification, a
detailed design, a source code listing)
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
16
Activities before the meeting
 The producer informs the project manager that a work product is complete
and ready for review
 The project manager contacts a review leader, who evaluates the product
for readiness, generates copies of product materials, and distributes them
to the reviewers for advance preparation
 Each reviewer spends one to two hours reviewing the product and making
notes before the actual review meeting
 The review leader establishes an agenda for the review meeting and
schedules the time and location
Activities during the meeting
 The meeting is attended by the review leader, all reviewers, and the
producer
 One of the reviewers also serves as the recorder for all issues and
decisions concerning the product
 After a brief introduction by the review leader, the producer proceeds to
"walk through" the work product while reviewers ask questions and raise
issues
 The recorder notes any valid problems or errors that are discovered; no
time or effort is spent in this meeting to solve any of these problems or
errors
Activities at the conclusion of the meeting
 All attendees must decide whether to
 Accept the product without further modification
 Reject the product due to severe errors (After these errors are
corrected, another review will then occur)
 Accept the product provisionally (Minor errors need to be
corrected but no additional review is required)
 All attendees then complete a sign-off in which they indicate that they
took part in the review and that they concur with the findings
Activities following the meeting
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering

17
The recorder produces a list of review issues that
 Identifies problem areas within the product
 Serves as an action item checklist to guide the producer in
making corrections
 The recorder includes the list in an FTR summary report
 This one to two-page report describes what was reviewed, who
reviewed it, and what were the findings and conclusions
 The review leader follows up on the findings to ensure that the
producer makes the requested corrections
Review Guidelines:
 Review the product, not the producer
 Set an agenda and maintain it
 Limit debate and rebuttal; conduct in-depth discussions off-line
 Enunciate problem areas, but don't attempt to solve the problem noted
 Take written notes; utilize a wall board to capture comments
 Limit the number of participants and insist upon advance preparation
 Develop a checklist for each product in order to structure and focus the review
 Allocate resources and schedule time for FTRs
 Conduct meaningful training for all reviewers
 Review your earlier reviews to improve the overall review process
Statistical Software Quality Assurance:
Process Steps:
1. Collect and categorize information (i.e., causes) about software defects that
occur
2. Attempt to trace each defect to its underlying cause (e.g., nonconformance to
specifications, design error, violation of standards, poor communication with
the customer)
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
18
3. Using the Pareto principle (80% of defects can be traced to 20% of all causes),
isolate the 20% (the ―vital few‖).
4. Once the vital few causes have been identified, move to correct the problems
that have caused the defects.
This relatively simple concept represents an important step toward the
creation of an adaptive software process in which changes are made to improve those
elements of the process that introduce error.
A Sample of Possible Causes for Defects
 Incomplete or erroneous specifications (IES).
 Misinterpretation of customer communication (MCC).
 Intentional deviation from specifications (IDS).
 Violation of programming standards (VPS).
 Errors in data representation (EDR).
 Inconsistent component interface (ICI).
 Errors in design logic (EDL).
 Incomplete or erroneous testing (IET).
 Inaccurate or incomplete documentation (IID).
 Errors in programming language translation of design (PLT).
 Ambiguous or inconsistent human/computer interface (HCI).
 Miscellaneous (MIS).
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
19
Data Collection for Statistical SQA
Six Sigma
 Popularized by Motorola in the 1980s
 Is the most widely used strategy for statistical quality assurance
 Uses data and statistical analysis to measure and improve a company's
operational performance
 Identifies and eliminates defects in manufacturing and service-related
processes
 The "Six Sigma" refers to six standard deviations (3.4 defects per a million
occurrences) implying an extremely high quality standard.
 The Six Sigma methodology defines three core steps:
 Define customer requirements and deliverables and project goals via
well-defined methods of customer communication.
 Measure the existing process and its output to determine current
quality performance (collect defect metrics).
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
20
 Analyze defect metrics and determine the vital few causes.
 If an existing software process requires an improvement, Six Sigma suggests
two additional steps:
 Improve the process by eliminating the root causes of defects.
 Control the process to ensure that future work does not reintroduce
the causes of defects.
 Sometimes referred to as the DMAIC (define, measure, analyze, improve, and
control) method.
 If an organization is developing a software process (rather than improving an
existing process), the core steps are augmented as follows:
 Design the process to
 avoid the root causes of defects and
 to meet customer requirements.
 Verify that the process model will, in fact, avoid defects and meet
customer requirements.
 This variation is sometimes called the DMADV (define, measure, analyze,
design, and verify) method.
Software reliability:
Software Failure:
 Software failure is defined as “nonconformance to software requirements”.
 Given a set of valid requirements, all software failures can be traced to design
or implementation problems (i.e., nothing wears out like it does in hardware)
Software Reliability
 Software reliability is defined as “the probability of failure-free operation of
a software application in a specified environment for a specified time”.
 A simple measure of reliability is mean-time-between-failure (MTBF):
MTBF = MTTF + MTTR
where the acronyms MTTF and MTTR are mean-time-to-failure and
mean-time-to-repair, respectively.
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
Ex:
21
MTBF = 68 days + 3 days = 71 days
Failures per 100 days = (1/71) * 100 = 1.4
Software Availability
 In addition to a reliability measure, we should also develop a measure of availability.
 Software availability is “the probability that a program is operating according
to requirements at a given point in time”. and is defined as
Availability = [MTTF/ (MTTF + MTTR)] * 100%
Ex : Availability = [68 days / (68 days + 3 days)] * 100 % = 96%
 The MTBF reliability measure is equally sensitive to MTTF and MTTR.
The availability measure is somewhat more sensitive to MTTR, an
indirect measure of the maintainability of software.
Software Safety
 Focuses on identification and assessment of potential hazards to software
operation
 It differs from software reliability
 Software reliability uses statistical analysis to determine the likelihood
that a software failure will occur; however, the failure may not
necessarily result in a hazard or mishap
 Software safety examines the ways in which failures result in
conditions that can lead to a hazard or mishap; it identifies faults that
may lead to failures
 Software failures are evaluated in the context of an entire computer-based
system and its environment through the process of fault tree analysis or hazard
analysis
The ISO 9000 Quality Standards:
ISO 9000 Quality Standard
 A quality assurance system may be defined as the organizational structure,
responsibilities, procedures, processes, and resources for implementing
quality management
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
22
 Quality assurance systems are created to help organizations ensure their
products and services satisfy customer expectations by meeting their
specifications.
 ISO 9000 describes quality assurance elements in generic terms that can be
applied to any business regardless of the products or services offered
 IS0 9001:200 Is the quality assurance standard that applies to software
engineering.
 The standard contains 20 requirements that must be present for an effective
quality assurance system.
 Because the ISO 9001:2000 standard is applicable to all engineering
disciplines a special set of ISO guidelines have been developed.
 The requirements delineated by ISO 9001:2000 address topics such as
management responsibility, quality system, contract review, design control,
document and data control, product identification and traceability, process
control, inspection and testing, corrective and preventive action, control of
quality standards, internal quality audits, training, servicing and statistical
techniques.
 For a software organization to become registered to IS0 9001:200,it must establish
policies and procedures to address each of the requirements notedand then able
to demonstrate that these policies and procedures are being followed.
The SQA Plan:
SQA Plan Provides a road map for instituting software quality assurance in an
organization
 Developed by the SQA group to serve as a template for SQA activities that are
instituted for each software project in an organization
 A standard for SQA plans has been published by the IEEE.
 Structured as follows:
 The purpose and scope of the plan
 A description of all software engineering work products that fall within
the purview of SQA
Dept of Computer Science & Engineering
K.PRAVEENA
Software Engineering
23
 All applicable standards and practices that are applied during the
software process
 SQA actions and tasks (including reviews and audits) and their
placement throughout the software process
 The tools and methods that support SQA actions and tasks
 Methods for assembling, safeguarding, and maintaining all SQA-related
records
 Organizational roles and responsibilities relative to product quality
Dept of Computer Science & Engineering
K.PRAVEENA
Download