Department of Computer Science and Engineering
Department of Computer Science and Engineering
Unit I
The Role of SQA – SQA Plan – SQA considerations – SQA people – Quality Management –
Software Configuration Management
Textbook:
T2. Watts S Humphrey, “ Managing the Software Process”, Pearson Education Inc.( UNIT I and II )
R2. Nina S Godbole, “Software Quality Assurance: Principles and Practice”, Alpha Science
International, Ltd, 2004
6. Evocation: (5 Minutes)
Overview
SQA Questions
SQA Goals
Requirements quality
o Ambiguity
o Completeness
o Volatility
o Traceability
o Model clarity
Design quality
o Architectural integrity
o Component completeness
o Interface complexity
o Patterns
Code quality
o Complexity
o Maintainability
o Understandability
o Reusability
o Documentation
Quality control effectiveness
o Resource allocation
o Completion rate
o Review effectiveness
o Testing effectiveness
Formal SQA
Assumes that a rigorous syntax and semantics can be defined for every
programming language
Allows the use of a rigorous approach to the specification of software requirements
Applies mathematical proof of correctness techniques to demonstrate that a program
conforms to its specification
Software Reliability
Software Safety
SQA Plan
QUALITY MANAGEMENT
• A Key Management‟s Axiom says that
– What is not tracked is not done
• In s/w, there are so many things that need to be done that the manager can‟t possibly
track them all.
• Manager & effective management is needed for tracking. This is the role of SQA.
• Before establishing an SQA organization, it is essential to first decide how important
software quality is to the organization.
Benefits of SQA
• MAIN BENEFIT
– Assurance to management that the officially established process is being
implemented
– Compliance with the plan developed initially.
• An Appropriate development methodology is in place.
• The projects use Standards & procedures in their work.
• Independent reviews & audits are conducted
• Documentation during development (not after).
• Documentation to support maintenance & enhancement
• Mechanisms are in place & used to control change
• Testing emphasizes all the high-risk product areas
• Deviations from standards and procedures are exposed as soon as possible
• The project is auditable by external professionals.
• The quality control work is itself performed against established standards.
• SQA plan & S/w development plan are compatible.
Need for SQA
• In Small organizations – manager is enough to monitor the work.
• With increase in number of employees, the manager with his tight schedule he should
– Find some way to handle for monitoring
– Hire someone to do audit work
– Motivate people to monitor each other(buddy systems)
• Need for SQA arises
Goals of SQA
• Monitor – To improve s/w quality by appropriately monitoring both the s/w and
development process that produces it.
• Ensure compliance – To ensure full compliance with the established standards and
procedures for the s/w and the s/w process.
• Report to management about inadequacies – To ensure that any inadequacies in the
product, the process, or the standards are brought to management‟s attention so these
inadequacies can be fixed.
Example
2. Referenced Documents
• Complete list of documents referenced for this
plan
4.Documentation
• SRS – s/w Requirements Specification
• SDD – S/w Deign Description
• SVP – S/w Verification Plan
• SVR – S/w Verification Report
• Reference to S/w standards
• User guides, operators & programmer’s manual
• Configuration Management Plan
• Software quality 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
2. Project Interfaces
• How does the new software interface with existing software?
– (major consideration in large corporation)
• How does the software affect other parts of a larger system or similar systems??
• Often requires „escalation.‟
– Any hardware considerations for interfacing? Special hardware?
3. Project methodology and development tools for various phases during development,
maintenance.
• Heuristic: never use untested tool / methodology on a new project with high visibility!!
• Methodology must be decided upon.
– Usually organizations have „established‟ ways of proceeding…
–
4.Software Development Standards and Procedures
Must be conventions!! Standards and Integration!!
6. Project Milestones
completion dates, products clearly define.
Must synchronize with Overall Plan.
More detailed than Overall Plan
More detailed than iteration plans
7. Development Facilities
How to control the monitoring process / reporting process with respect to plans, test
reports, reviews, how goes it, and more
QA does not only involve the SQA managers and team members. There are also people who are
not part of the team that also has an important role in SQA:
Top Management – In every step of the way, the upper management is always involved
in any movements of the software development team.
That does not leave out the SQA team as well. They provide support, general and
managerial functions to ensure that the SQA team will focus on their functions.
The relay their findings instead to the software configuration manager. As the name
suggests, they work on the possible changes that were done in an application.
SCMs do not only concern themselves with the available updates but right from the start,
SCM are aware of the minor changes or errors that were found in the application.
Software control is not only about testing but ensuring that the process of software
development is according the industry standard.
To put it clearly, SQA is not part of the development team since they are the overseeing
group that ensures every step in software development is according to plan and nothing is left out
SQA Group
Who involves quality assurance activities?
Software engineers
Project managers
Customers
Sale people
SQA group
Quality planning
A quality plan sets out the desired product qualities and how these are assessed and
defines the most significant quality attributes.
The quality plan should define the quality assessment process.
It should set out which organisational standards should be applied and, where necessary, define
new standards to be used
Software standards
Standards define the required attributes of a product or process. They play an important
role in quality management.
Standards may be international, national, organizational or project standards.
Product standards define characteristics that all software components should exhibit e.g. a
common programming style.
Process standards define how the software process should be enacted.
Importance of standards
Encapsulation of best practice- avoids repetition of past mistakes.
Program inspections
These are peer reviews where engineers examine the source of a system with the aim of
discovering anomalies and defects.
Inspections do not require execution of a system so may be used before implementation.
They may be applied to any representation of the system (requirements, design,
configuration data, test data, etc.).
They have been shown to be an effective technique for discovering program errors.
Agile methods and inspections
Agile processes rarely use formal inspection or peer review processes.
Rather, they rely on team members cooperating to check each other‟s code, and informal
guidelines, such as „check before check-in‟, which suggest that programmers should
check their own code.
Without Control
• Simultaneous update
• Shared code
• Common code Problems
• Versions
System
Subsystems
Products
Components
Modules
Establish/ Approve
Update change
Baseline
Baselines
Changes
1. Configuration Control
• Task revolves around one official copy of the code
• To protect every system revision – to keep a
separate official copy of each revision level.
– Lot of storage
– Code divergence
– Coordination
• Solution – keep only one official copy with one
common library
• Approved changes can be permitted – common
library be the official source for all common code
3. Derivations
• Ability to determine what has changed
Module Module
101 101
>512
MEM
5. Deltas
>512
>512
MEM
Plan
• First step in SCM system
• Includes
– Objectives
– Responsibilities
– Approaches
– Methods to be used
• Contents & checklist
Cont..
4. SCM procedures
– Procedures manual
– Forms & records
5. SCM implementation
– Personal plan
– System support plan
– Budget
– Key implementation checkpoints
Requirements phase
• Requirements changes
• Requirements baseline & change control
• External specifications
Implementation phase
• Functions
– Source code charge out & charge-in facilities
– Read-only access to specifications & object code
– Ability to compile modules
– Procedure for making approved changes
– Any new source code is consistent with module
specifications
Change
approved? yes
No
Design
Get change
approval / needed?
stop work No yes
Specification
Fix
change
implement
needed? yes
ation No
Adjust
Fix design
specification
To SCM
SCM audit
• Checks for
– Requirements
– Functional
– High-level design
– Design
– Product
– Operational