Software Risk Identification
1
Project Risks
2
What can go wrong?
What is the likelihood?
What will the damage be?
What can we do about it?
Reactive Risk Management
3
Proactive Risk Management
4
Seven Principles
5
Risk Management Paradigm
6
RISK
control
identify
analyze
plan
track
Risk Identification
7
Assessing Project Risk-I
8
Assessing Project Risk-II
9
Risk Components
10
Risk Projection
11
Building a Risk Table
12
Risk
Probability
Impact
RMMM
Risk
Mitigation
Monitoring
&
Management
Building the Risk Table
13
Risk Exposure (Impact)
14
The overall risk exposure, RE, is determined using the following relationship [Hal98]:
RE = P x C
where
P is the probability of occurrence for a risk, and
C is the cost to the project should the risk occur.
Risk Exposure Example
15
Risk Mitigation, Monitoring,�and Management
16
Risk Due to Product Size
17
• estimated size of the product in LOC or FP?
• estimated size of product in number of programs,
files, transactions?
• percentage deviation in size of product from
average for previous products?
• size of database created or used by the product?
• number of users of the product?
• number of projected changes to the requirements
for the product? before delivery? after delivery?
• amount of reused software?
Attributes that affect risk:
Risk Due to Business Impact
18
• affect of this product on company revenue?
• visibility of this product by senior management?
• reasonableness of delivery deadline?
• number of customers who will use this product
• interoperability constraints
• sophistication of end users?
• amount and quality of product documentation that
must be produced and delivered to the customer?
• governmental constraints
• costs associated with late delivery?
• costs associated with a defective product?
Attributes that affect risk:
Risks Due to the Customer
19
• Have you worked with the customer in the past?
• Does the customer have a solid idea of requirements?
• Has the customer agreed to spend time with you?
• Is the customer willing to participate in reviews?
• Is the customer technically sophisticated?
• Is the customer willing to let your people do their
job—that is, will the customer resist looking over your
shoulder during technically detailed work?
• Does the customer understand the software
engineering process?
Questions that must be answered:
Risks Due to Process Maturity
20
• Have you established a common process framework?
• Is it followed by project teams?
• Do you have management support for
software engineering
• Do you have a proactive approach to SQA?
• Do you conduct formal technical reviews?
• Are CASE tools used for analysis, design and
testing?
• Are the tools integrated with one another?
• Have document formats been established?
Questions that must be answered:
Technology Risks
21
• Is the technology new to your organization?
• Are new algorithms, I/O technology required?
• Is new or unproven hardware involved?
• Does the application interface with new software?
• Is a specialized user interface required?
• Is the application radically different?
• Are you using new software engineering methods?
• Are you using unconventional software development
methods, such as formal methods, AI-based approaches,
artificial neural networks?
• Are there significant performance constraints?
• Is there doubt the functionality requested is "do-able?"
Questions that must be answered:
Staff/People Risks
22
• Are the best people available?
• Does staff have the right skills?
• Are enough people available?
• Are staff committed for entire duration?
• Will some people work part time?
• Do staff have the right expectations?
• Have staff received necessary training?
• Will turnover among staff be low?
Questions that must be answered:
Recording Risk Information
23
Project: Embedded software for XYZ system
Risk type: schedule risk
Priority (1 low ... 5 critical): 4
Risk factor: Project completion will depend on tests which require
hardware component under development. Hardware component
delivery may be delayed
Probability: 60 %
Impact: Project completion will be delayed for each day that
hardware is unavailable for use in software testing
Monitoring approach:
Scheduled milestone reviews with hardware group
Contingency plan:
Modification of testing strategy to accommodate delay using
software simulation
Estimated resources: 6 additional person months beginning in July
Software Configuration Management
24
The “First Law”
25
No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle.
Bersoff, et al, 1980
What Are These Changes?
26
data
other
documents
code
Test
Project
Plan
changes in
technical requirements
changes in
business requirements
changes in
user requirements
software models
The Software Configuration
27
programs
documents
data
The pieces
Baselines
28
Baselines
29
Software Configuration Objects
30
SCM Repository
31
Repository Content
32
Repository Features
33
SCM Elements
34
The SCM Process
35
Addresses the following questions …
The SCM Process
36
Version Control
37
Change Control
38
STOP
Change Control Process—I
39
change request from user
developer evaluates
change report is generated
change control authority decides
request is queued for action
change request is denied
user is informed
need for change is recognized
change control process—II
Change Control Process-II
40
assign people to SCIs
check-out SCIs
make the change
review/audit the change
establish a “baseline” for testing
change control process—III
Change Control Process-III
41
perform SQA and testing activities
promote SCI for inclusion in next release
rebuild appropriate version
review/audit the change
include all changes in release
check-in the changed SCIs
Auditing
42
SCIs
Change
Requests
SQA
Plan
SCM Audit
Status Accounting
43
SCIs
Change
Requests
Change
Reports
ECOs
Status Accounting
Reporting
SCM for Web and Mobile Engineering-I
44
SCM for Web and Mobile Engineering-II
45
Content Management-I
46
Content Management-II
47
Content Management - III
48
Change Management for Web and Mobile Apps-I
49
Change Management for Web and Mobile Apps-II
50
Software Quality Assurance
51
Comment on Quality
52
Elements of SQA
53
Role of the SQA Group-I
54
Role of the SQA Group-II
55
SQA Goals
56
Formal SQA
57
Statistical SQA
58
Product
& Process
measurement
... an understanding of how
to improve quality ...
Collect information on all defects
Find the causes of the defects
Move to provide fixes for the process
Statistical SQA
59
Six-Sigma for Software Engineering
60
Software Reliability
MTBF = MTTF + MTTR
Availability = [MTTF/(MTTF + MTTR)] x 100%
61
Software Safety
62
ISO 9001:2008 Standard
63
Review Techniques
64
Reviews
65
... there is no particular reason
why your friend and colleague
cannot also be your sternest critic.
Jerry Weinberg
What Are Reviews?
66
What Reviews Are Not
67
What Do We Look For?
68
Defect Amplification
69
Errors passed through
Amplified errors 1:x
Newly generated errors
Development step
Errors from
Previous step
Errors passed
To next step
Defects
Detection
Percent
Efficiency
Defect Amplification
70
Metrics
71
Metrics
72
An Example—I
73
An Example—II
74
Overall
75
with reviews
Reference Model
76
Informal Reviews
77
Formal Technical Reviews
78
The Review Meeting
79
The Players
80
review
leader
producer
recorder
reviewer
standards bearer (SQA)
maintenance
oracle
user rep
The Players
81
Conducting the Review
82
Review Options Matrix
83
trained leader
agenda established
reviewers prepare in advance
producer presents product
“reader” presents product
recorder takes notes
checklists used to find errors
errors categorized as found
issues list created
team must sign-off on result
IPR—informal peer review WT—Walkthrough
IN—Inspection RRR—round robin review
IPR
WT
IN
RRR
no
maybe
maybe
maybe
no
maybe
no
no
no
no
yes
yes
yes
yes
no
yes
no
no
yes
yes
yes
yes
yes
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
yes
no
no
yes
maybe
*
*
Sample-Driven Reviews (SDRs)
To accomplish this …
84
Metrics Derived from Reviews
85
inspection time per page of documentation
inspection time per KLOC or FP
errors uncovered per reviewer hour
errors uncovered per preparation hour
errors uncovered per SE task (e.g., design)
number of minor errors (e.g., typos)
number of errors found during preparation
number of major errors
(e.g., nonconformance to req.)
inspection effort per KLOC or FP