1
Chapter 6
Development Plans
Quality Plans
Galin, SQA from theory to implementation © Pearson Education Limited 2004
2
Introduction
• Development and quality standards (ISO 9000.3
and CMM) require viable plans.
– We will discuss ISO 9000.3 and CMM and CMMi
in considerable detail later.
• We need to look at development plans and
quality plans – their objectives and elements.
• They are related but NOT the same.
• Many times quality plans simply do not occur!
• Often times, if/when they do, they are pie in the sky!
Galin, SQA from theory to implementation © Pearson Education Limited 2004
3
Development and Quality
Plans - Objectives
Planning is meant to prepare adequate foundations for successful and timely
completion of the project. The planning process includes:
1. Scheduling development activities and estimating the
required manpower resources and budget
2. Recruiting team members and allocating development resources
3. Resolving development risks
4. Implementing required SQA activities
5. Providing management with data needed for project control
Galin, SQA from theory to implementation © Pearson Education Limited 2004
4 Elements of the Development Plan
1. Project Products, specifying “Deliverables”
Must specify items to be delivered to customer
documents, operations manuals, user manuals,
Must specify specific software products (along with
completion and installation dates
programs (unless centrally controlled), files …
Address conversion dates; handover, if maintaining;
Must specify or discuss training.
Who and how does training take place?
Must specify customer support!
Galin, SQA from theory to implementation © Pearson Education Limited 2004
5 Elements of the Development Plan
2. Project Interfaces
Interfaces with existing software packages…
(A course enrollment system might interface with an
existing Billing System or Course Scheduling
System…)
Interfaces with other software / hardware development
and maintenance teams working on similar system or
extension of the system
Interface with existing or new hardware
Galin, SQA from theory to implementation © Pearson Education Limited 2004
Elements of the Development Plan
3. Project’s methodology and development tools
Process used; tools / environment needed
Requirements capture and technologies used
Design approaches – architectural; procedural;
interface; communications; database….
Programming methodology
Testing Approaches etc.
What is the testing responsibilities and who
does what? Individual testing? Separate
testing shop?
Deployment
One shot; parallel; incremental…
4. Software Development Standards and Procedures
Development standards / procedures
(AFDSDCM 3008; AFM 300-4 -Data Elements and Codes)
Galin, SQA from theory to implementation © Pearson Education Limited 2004
7 Elements of the Development Plan
5. Map of the Development Process
Detailed definition of project’s phases:
inputs, activities, outputs (artifacts), specific activities
Estimates of each activity’s duration:
design reviews (managerial and technical), tests,
design and code correction activities, ….
Sequencing and dependency of activities
List professional resources needed overall and for each activity
Can show these in GANTT charts, which shows various activities by horizontal bars and whose
lengths are proportional to the activity’s duration.
Can use PERT and CPM and other activities to communicate activities, durations,
deliverable dates, …
Some like Microsoft Project.
Can use more modern tools too, like IBM’s Rational Team Concert (RTC)
Galin, SQA from theory to implementation © Pearson Education Limited 2004
8 Elements of the Development Plan
6. Project milestones
Often part of the process – e.g. RUP, Scrum, other agile
processes or other methodologies.
Major milestones; Minor milestones (what these mean!)
Often, these are defined by the software process
used.
What are major and minor milestones in RUP?
In practice, these are often declared up front and we
work backwards!!
Galin, SQA from theory to implementation © Pearson Education Limited 2004
Elements of the Development Plan
7. Project staff organization and coordination with external participants
Organizational structure – defines teams and tasks;
Defines expertise needed (certifications, experience,
specialties), programming languages,
development tools, levels of expertise,
numbers of individuals needed and for
specific periods of time; names of team
leaders and team members (sometimes).
Often these responsibilities are ‘shredded out’ too
Long term leadership; team losses due to many factors;
Estimates of staff availability is crucial and can
cause the flag to be raised when certain levels are
not met.
Galin, SQA from theory to implementation © Pearson Education Limited 2004
10 Elements of the Development Plan
8. Required development facilities
Required hardware, software, tools, space, infrastructure, …
9. Development Risks and Risk Management Actions
Development Risk: “a state or property of a development task or environment,
which, if ignored, will increase the likelihood of project failure.
Risk Areas
Technology Risks – lack of expertise; not correct / needed
tools
Personnel / Staff Shortages – loss of people; inability to
recruit
Environmental Risk:
Where / how is application go be deployed?
Where / how is app to be developed?
Is it an app for the battlefield? Home?
Financial Risks
Social?
Interdependence of other organizational elements who
supply resources (subcontractors, specialized
hardware, etc. )
Risk: Risk Identification, Risk Evaluation, Risk Mitigation, Risk Resolution.
Implementation of Risk Management Activities (frequency, threaded…,)
Galin, SQA from theory to implementation
Monitoring of Risk Management Activities. © Pearson Education Limited 2004
11
Elements of the Development Plan
10. Control methods
Progress reports and coordination meetings are planned
to control project implementation
11. Project Cost Estimates
These are based on proposal cost estimates followed by
thorough review and continual updating.
Changes can/will occur and these can be major budget
impacts, such as subcontractors don’t fulfill their
obligations or other unplanned expenditures arise.
Some projects are ‘successes’ but way over budget
Ultimately, the approval of the development plan will take place
within the organization(s).
Galin, SQA from theory to implementation © Pearson Education Limited 2004
12
Elements of a Software Quality Plan
1. List of Quality Goals
Quality refers to how well the software performs its
intended tasks, reliability; how often it fails, mean time
between failures, etc.
But quantitative measures are usually preferred because
more objective assessments can be made during software
development and testing.
Quantitative goals can be used to imply qualitative goodness.
Availability of application? (99.5% of time)
Time to recover? (down time?)
Loading / peek loads? (No. of simultaneous transactions?)
Response time?
Quality goals are reflected in major acceptance criteria and are
often reflected in the RFP(requirements for purpose) or Software
Requirements Specifications (non-functional software
requirements)
Galin, SQA from theory to implementation © Pearson Education Limited 2004
13 Elements of a Software Quality Plan
2. Review Activities
All quality reviews must be planned:
design reviews,
code inspections,
design inspections, etc.
Also: Scope of review activity (coverage?)
Responsibilities of participants
Selection of participants
Type of review:
(technical, managerial, …)
Procedures - action lists, identify
only, follow up
Galin, SQA from theory to implementation © Pearson Education Limited 2004
14 Elements of a Software Quality Plan
3. Software Tests
Must contain comprehensive list of planned tests:
unit, integration, system, … testing
schedule (part of iteration, phase?)
specific procedures (provide software, test plans,
test procedures…Do you have test suits?)
Do you have automated test generators??
specific responsibilities (who does what?)
4. Acceptance Tests for software externally developed
Complete set of acceptance tests planned must exist within
the quality plan.
Especially true for externally developed software and
should parallel those tests used for internally
developed software too.
Galin, SQA from theory to implementation © Pearson Education Limited 2004
15
Elements of a Software Quality Plan
5.Configuration Management Plans: tools, procedures
and data for version releases
The quality plan must include tools and procedures for
configuration management and change management
and control.
Configuration and change management will thread the
entire development and quality plans
The Quality Plan may be included in the Development Plan
or separate document.
Quality Plans are often seen as design review plans, test
plans, acceptance testing plans, etc.
Galin, SQA from theory to implementation © Pearson Education Limited 2004
Causes of Software Errors
Galin, SQA from theory to implementation © Pearson Education Limited 2004
Galin, SQA from theory to implementation © Pearson Education Limited 2004
Galin, SQA from theory to implementation © Pearson Education Limited 2004
Difference between quality
assurance and quality control
Galin, SQA from theory to implementation © Pearson Education Limited 2004
20
Classes of Software Development Risks
1. Scheduling and timing risks
2. System functionality risks
3. Subcontracting risks
4. Requirement management risks
5. Resource usage and performance risks
6. Personnel management risks
Galin, SQA from theory to implementation © Pearson Education Limited 2004
21
Boehm and Ross's
Top 10 Software Risk Items
1. Developing wrong software functions *
2. Unrealistic schedules and budgets ***
3. Developing wrong user interface
4. Gold plating
5. Continuing stream of requirement changes ***
6. Shortfalls in externally furnished components
7. Shortfalls in externally performed tasks
8. Personnel shortfalls **
9. Real-time performance shortfalls
10. Straining computer science capabilities
Galin, SQA from theory to implementation © Pearson Education Limited 2004
22
The Software Risk
Management Process
New
project
Pre- Risk identification
project and assessment
Planning risk Planning and updating risk
management activities management activities
Ongoing
projects Implementing
risk management actions
Identifying and (risk resolution)
assessing new software
risks Monitoring software risk
management activities
Required results
achieved Evaluate Unsatisfactory results
monitoring
results
Galin, SQA from theory to implementation © Pearson Education Limited 2004