Software Engineering: Azhar Ansari
Software Engineering: Azhar Ansari
Software Engineering: Azhar Ansari
Azhar Ansari
Session # 6
•
The Ariane 501 rocket’s guidancetext format
computer software just threw an
uncaught exception.
Second Outline
•
The loss was $500,000,000 uninsured. Level
NASDAQ Third Outline
•
17 min outage due to upgrade. Level
•
Up to 1 500 000 000 trades a day.
Fourth Outline
•
Lost revenue.
Level
Y2K
Fifth
Outline
Level
Standish Group Chaos Report
•
According to Standish Group Chaos Report in 1996:
–
16.2% on time, in budget, met requirements
–
52.7% completed but over budget, time, incomplete
–
31.3% cancelled during development
•
Failures can be due to factors unrelated to testing.
•
Projects still fail
–
Things may be slightly better but still problems.
What is Quality Software?
•
Is it software that works?
•
Is it software that is error-free?
•
Is it software that is very well-documented and has help
facility for all its functions?
•
Is it software that does not ‘hang’ the machine?
•
Is it software that does not ‘bomb’/crash?
Quality in your group project
•
How do you ensure the quality of the software you are
developing?
•
Have you defined the standards and tasks to ensure the
quality of the software?
•
Will the customer say that your software is a quality product?
•
Are you fulfilling the customer’s expectations?
What is Software Quality
•
According to the IEEE, Software Quality is:
1. The degree to which a system, component, or process
meets specified requirements.
2. The degree to which a system, component, or process
meets customer or user needs or expectations.
•
According to Philip B. Crosby,
“Quality is conformance to the requirements”
Software Quality Attributes
•
Correctness •
Evolvability
Click to edit the outline
•
Reliability •
Reusability
text format
•
Robustness •
Portability
•
Performance •
Second Outline
Understandability
•
User friendliness •
Productivity
Level
•
Verifiability •
Size
•
Maintainability • Third Outline
Timeliness
•
Reparability •
VisibilityLevel
•
Safety
Fourth Outline
Level
Fifth
Select the critical attributes and plan how to achieve them
Outline
Level
Benefits of Software Quality
•
Reduced maintenance cost
•
Stable and useful product
•
Satisfied customers
•
Build corporate culture and identity
•
Better chances for software and design reuse
Software Quality Assurance (SQA)
•
QA is a system of procedures, checks, audits, and corrective
actions to ensure that all development activities are of the
highest achievable quality.
•
It determines whether products or services meet or exceed
customer expectations.
•
QA makes sure the project will be completed based on the
previously agreed specifications, standards and functionality
required without defects and possible problems.
•
It monitors and tries to improve the development process
from the beginning of the project to ensure this.
Software Quality Assurance (SQA)
•
Essential activity for any business that produce product to
used by others
–
It need to be planned and systematic
– It does not just happen
•
Assure each of the software qualities is met
– Goal set in requirements specification
–
Goal realized in the implementation
•
SQA is applied at every stage of the software process
•
Quality standard is selected to apply to the software process
Principle of SQA
•
Works on Deming’s Cycle PDCA (Plan – Do – Check – Act)
1. Set the standard and quality attributes that a software
product must meet
–
The goal to achieve
2. Measure the quality of software product
–
There is a way to determine how well the product conforms to
the standards and quality attributes
3. Track the values of the quality attributes
–
It is possible to assess how well we are doing
4. Use the information of software quality to improve the
quality of future software products
–
There is a feedback into the software development process
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.
•
Perform audits.
•
Inspections and Software Testing.
•
Enforcement of standards.
•
Identifying deviations and noncompliance, documenting
them.
•
Reporting to the senior management.
Inspection
•
Inspection in software engineering, refers to peer review of
any work product by trained individuals who look for defects
using a well defined process.
•
An inspection might also be referred to as a Fagan inspection
after Michael Fagan, the inventor of the process.
•
Inspection has two purposes:
1. Primary
2. Secondary
Formal Technical Review (FTR)
•
FTR is one of the most widely used techniques for assessing
and improving software quality.
•
The FTR is a software quality assurance activity with the
objectives to uncover errors in function, logic or
implementation for any representation of the software.
•
FTR is also a learning ground for junior developers to know
more about different approaches to software analysis, design
and implementation.
•
FTR activities include walkthroughs and inspections.
•
All major software items should be subjected to technical
review.
Software Testing
“Testing is a process of executing a program with
the aim of finding errors” Glenford Myers
•
Software testing is a fundamental component of software
quality assurance.
•
Testing is an integral part of the process used to build
software.
•
Required for building good quality software.
•
Testing is the one step in the software process that can be
seen by the developer as destructive instead of constructive.