Requirements Engineering. Quality Management. Software Quality Management. What is Quality in Software ? The end product should meet the specification Issues Bad or imperfect specification Non-functional requirements What is Quality Management ?
A. Identification and classification:
C. Expected result:
D. Cleanup (when needed):
... there is no particular reason
why your friend and colleague
cannot also be your sternest critic.
standards bearer (SQA)
product before the review
review the product, not
keep your tone mild, ask
questions instead of
stick to the review agenda
raise issues, don't resolve them
avoid discussions of style—stick to technical
schedule reviews as project tasks
record and report all review results
To accomplish this …
inspection time per page of documentation
inspection time per KLOC or FP (or Use Case)
inspection effort per KLOC or FP (or Use Case)
errors uncovered per reviewer hour
errors uncovered per preparation hour
errors uncovered per SE task (e.g., requirements)
number of minor errors (e.g., typos)
number of major errors
(e.g., nonconformance to User wants/needs vision)
number of errors found during preparation
Collect information on all defects
Find the causes of the defects
Move to provide fixes for the process
... an understanding of how
to improve quality ...
are we buildingthe thing right?
are we buildingthe right thing?
Graphics reproduced with permission from Corel.
1000’s of linesThe PSP Evolution (Humphrey)
to prior stage
100’s of lines
capability at the same level
Process improvement proposal
Current personal process
(Adapted from [Hu1] )
Graphics reproduced with permission from Corel.
• Late delivery
• Last minute crunches
• Spiraling costs
• You’re always being surprised.
• Too much rework
• Functions do not work correctly.
• Customer complaints after delivery
organization may be settling for less than it is capable of
and may be a good candidate for process improvement.
“I'd rather have it wrong than have it late. We can always
fix it later.”
“The bottom line is schedule. My promotions and raises are based on meeting schedule first and foremost.”
the quality of the process used to acquire, develop,
and maintain it.
as on products.
• This is a long-established premise in manufacturing
(and is based on TQM principles as taught by Shewhart,
Juran, Deming, and Humphrey).
• Belief in this premise is visible worldwide in quality
movements in manufacturing and service industries
(e.g., ISO standards).
SEI’s Vision:To bring engineering discipline to the development and maintenance of software products
Desired Result:Higher quality -- better products for a better pricePredictability -- function/quality, on time, within budget
Methodology to Achieve that Desired Result:
2. Identify Desired State:Understand the description of the next Level
1. Identify Current State:Know your current Capability Maturity Level
3. Reduce the Gap:Plan, implement, and institutionalizethe key practices of the next Level.Repeat until continuous optimization is part of the culture.
A software process
can be defined as a set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products (e.g., project plans, design documents, code, test cases, and user manuals). As an organization matures, the software process becomes better defined and more consistently implemented throughout the organization.
Software process capability
describes the range of expected results that can be achieved by following a software process. The software process capability of an organization provides one means of predicting the most likely outcomes to be expected from the next software project the organization undertakes.
Software process performance
represents the actual results achieved by following a software process. Thus, software process performance focuses on the results achieved, while software process capability focuses on results expected.
Software process maturity
is the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective. Maturity implies a potential for growth in capability and indicates both the richness of an organization's software process and the consistency with which it is applied in projects throughout the organization.
A well-defined evolutionary plateau toward achieving a mature software process. Each maturity level comprises a set of process goals that, when satisfied, stabilize an important component of the software process. Achieving each level of the maturity framework establishes a different component in the software process, resulting in an increase in the process capability of the organization.
As a software organization gains in software process maturity, it institutionalizes it software process via policies, standards, and organizational structures. Institutionalization entails building an infrastructure and a corporate culture that supports the methods, practices, and procedures of the business so that they endure after those who originally defined them have gone.
Continuously Improving Process
Focus on process improvement
Process measured and controlled
Standard, Consistent Process
Product and Process Quality
Process characterized, fairly well understood
Integrated Engineering Process
Can repeat previously mastered tasks
Unpredictable and poorly controlled
Software Quality Assurance
Software Configuration Management
SoftwareProject Tracking and Oversight
Software Subcontract Management
Organization Process Focus
Organization Process Definition
Integrated Software Management
Software Product Engineering
Key Process Areas
Note 5. The process of going back and forth between doing changes in the design
followed by a code generation and then doing changes in the code followed
by a reverse engineering for every change, the best possible perspective,
is called Round-trip Engineering.