Lecture 04

Download as pdf or txt
Download as pdf or txt
You are on page 1of 58

THE COMPONENTS OF THE SOFTWARE

QUALITY ASSURANCE SYSTEM - OVERVIEW

OSHADHI MUNASINGHE
OUTLINE
•4.1 The SQA system – an SQA architecture
•4.2 Pre-project components
•4.3 Software project life cycle components
•4.4 Infrastructure components for error prevention
•4.5 Management SQA components
•4.6 SQA standards, system certification, and assessment
•4.7 Organizing for SQA – the human components
•4.8 The considerations guiding construction of an organization’s SQA system
THE SQA SYSTEM – AN SQA ARCHITECTURE

•Software is…
➢ High complexity.
➢ Invisible product.
➢ Hard to search and fix defect(bug).
THE SQA SYSTEM – AN SQA ARCHITECTURE…

• SQA system components can be classified into six classes;


➢Pre-Project components
➢Project life cycle activities assessment
➢Infrastructure error prevention and improvement
➢Software quality management
➢Standardization, certification and SQA assessments
components
➢Organizing for SQA – the human components
PRE-PROJECT COMPONENTS

•To assure that


a)the project commitments have been adequately defined considering the
resources required, the schedule and budget; and

a)the development and quality plans have been correctly determined.


•The Major components are,
➢Contract review
➢Development and quality plans.
CONTRACT REVIEW

• Contract review activities must include a detailed examination of,


(a)the project proposal draft and
(b)the contract drafts.
• Specifically, contract review activities include:
➢ Clarification of the customer’s requirements
➢ Review of the project’s schedule and resource requirement
estimates
➢ Evaluation of the professional staff’s capacity to carry out the
proposed project
➢ Evaluation of the customer’s capacity to fulfill his obligations
➢ Evaluation of development risks.
DEVELOPMENT AND QUALITY PLANS

•Once a software development contract has been singed or


commitments made to undertake an internal project for the benefit
of another department of the organization, a plan is prepared of the
project (“Development plan”) and its integrated quality assurance
activities (“quality plan”).
•These plans include additional details and needed revisions based on
prior plans that provided the basis of the current proposal and
contract.
THE MAIN ISSUES TREATED IN THE PROJECT DEVELOPMENT
PLAN

•Schedules
•Required manpower and hardware resources
•Risk evaluations
•Organizational issues; team members, subcontracts and partnerships
•Project methodology, development tools etc..
•Software reuse plans
THE MAIN ISSUES TREATED IN THE PROJECT’S QUALITY
PLAN

• Quality goals, expressed in the appropriate measurable terms


• Criteria for starting and ending each project stage
• Lists of reviews, tests and other scheduled verifications and validations
activities
SOFTWARE PROJECT LIFE CYCLE
COMPONENTS
Integrating quality activities in the project life cycle

•SQA activities conducted throughout the project life cycle,


need to be integrated into the development process.
•Most QA activities take place in conjunction with the
completion or examination of activity milestones, which
require review of the product development activities
previously completed.

•Therefore SQA professionals should be acquainted with the


various software engineering models in order to be able to
prepare a quality plan that is properly integrated into the
project plan.
CLASSIC AND OTHER SOFTWARE DEVELOPMENT
METHODOLOGIES

• The Software Development


. Life Cycle (SDLC) model
➢The classic model (still applicable today) (Waterfall)
• The prototyping model
➢is based on replacement of one or more SDLC model phases by
an evolutionary process, where software prototypes are used
for communication between the developer and the users and
customers
CLASSIC AND OTHER SOFTWARE DEVELOPMENT
METHODOLOGIES
•The spiral model

➢provides a methodology for ensuring effective performance at


each of the SDLC model phases.
➢It involves an iterative process that integrates customer comments
and change requirements, risk analysis and resolution, and software
system planning and engineering activities.

• The object-oriented model

➢incorporates large-scale reuse of software by integrating reusable


modules into new software systems.
Verification, validation and qualification

Three aspects of quality assurance of the software product (a report, code, etc.)

Verification – The process of evaluating a system or component to determine whether the products
of a given development phase satisfy the conditions imposed at the start of that phase.

➢examines the consistency of current development activities with the products


from previous phases.
➢Doing so enables the examiner to confirm whether the developer has fulfilled his
requirements while disregarding deviations from the original requirements that
may have arisen during development.
"Are you building it right?“
(checks that the specifications are correctly implemented by the system)
•Validation – The process of evaluating a system or component
during or at the end of the development process to determine
whether it satisfies specified requirements.
➢represents the customer’s interests by examining the extent to
which the customer’s original requirements have been fulfilled.
"Are you building the right thing?” (refers back to the user's
needs)
VALIDATION AND VERIFICATION

Validation is concerned with checking that the


system will meet the customer’s actual needs.

Verification is concerned with whether the


system is error-free, well-engineered and so
on.

Example:
https://www.guru99.com/verification-v-s-validation-in-a-software-testing.html
•Qualification – The process used to determine whether a system
or component is suitable for operational use.
➢focuses on operational aspects, where maintenance is the main issue.
➢Qualification reviews project application of professional standards and
coding procedures, based on the assumption that applying these standards
facilitates maintenance.
SOFTWARE PROJECT LIFE CYCLE COMPONENTS

• The project life cycle is composed of two stages:


➢The development life cycle stage:
✓detect design and programming errors.
➢The operation–maintenance stage:
✓include specialized maintenance components ,
✓as well as development life cycle components(pre-maintenance, life
cycle, infrastructure, managerial components).
SOFTWARE PROJECT LIFE CYCLE COMPONENTS…

•The main components are:


➢Reviews
➢Expert opinions
➢Software testing
➢Software maintenance
➢Assurance of the quality of the subcontractor’s work and the customer supplied parts
REVIEWS

As defined by IEEE (1990), a review process is:


“A process or meeting during which a work product, or set of work products, is
presented to project personnel, managers, users, customers, or other interested
parties for comment or approval.”

As these documents are products of the project’s initial phases, reviews acquire
special importance in the SQA process because they provide early detection and
prevent the passing of design and analysis errors “downstream”, to stages where error
detection and correction are much more intricate, cumbersome, and therefore costly.
REVIEWS

• The design phase of the development produces a variety of documents:


➢Design reports
➢Software test documents
➢Software installation plans and manuals

•Reviews can be categorized as:


➢Formal design reviews (DRs) -> the DR report
➢Peer reviews (inspections and walkthroughs) -> list of detected faults, defect
summary and statistics
REVIEW METHODS

Several methodologies can be implemented when reviewing documents.


• Formal design reviews
• Peer reviews (inspections and walkthroughs)
➢Can also be used to detect defects in the coding phase, where the appropriate
document reviewed is the code printout : Code reviews
FORMAL DESIGN REVIEWS (DRS)

• Formal design reviews, variously called “design reviews”, “DRs” and “formal technical reviews (FTR)”,
differ from all other review instruments by being the only reviews that are necessary for approval of
the design product.

➢Without this approval, the development team cannot continue to the next phase of the software development
project.

• Formal design reviews may be conducted at any development milestone requiring completion of an
analysis or design document, whether that document is a requirement specification or an
installation plan.
SOME COMMON FORMAL DESIGN REVIEWS
PRESSMAN’S 13 “GOLDEN GUIDELINES” FOR A
SUCCESSFUL DESIGN REVIEW

Some include….
Design review infrastructure:
➢Develop checklists for each type of design document, or at least for the common
ones.
The design review team:
➢Review teams should be limited in size, with 3–5 members usually
being the optimum.
PRESSMAN’S 13 “GOLDEN GUIDELINES” FOR A
SUCCESSFUL DESIGN REVIEW

The design review session:


➢Discuss professional issues in a constructive way while refraining from personalizing
those issues.

Post-review activities:
➢Prepare the review report (DR Report), which summarizes the issues discussed and
the action items.
➢Establish follow-up procedures to ensure the satisfactory performance of all the
corrections included in the list of action items.
THE FORMAL DESIGN REVIEW PROCESS

UCSC - 2019
29
PEER REVIEWS

•participants in peer reviews are, as expected, the project leader’s equals,


members of his or her department and other units. (not superiors)
•main objectives lie in detecting errors and deviations from standards. (not
authorization)
• Two main methods:
➢Inspections
➢Walkthroughs
INSPECTIONS VS. WALKTHROUGHS

• Formality :
➢Inspection is the more formal of the two.
• Objective :
➢Inspection emphasizes the objective of corrective action.
➢Whereas a walkthrough’s findings are limited to comments on the document
reviewed.
• Significance :
➢An inspection’s findings are also incorporated into efforts to improve
development methods per se.
➢Inspections, as opposed to walkthroughs, are therefore considered to
contribute more significantly to the general level of SQA
SOFTWARE PROJECT LIFE CYCLE COMPONENTS…

•The main components are:


➢Reviews
➢Expert opinions
➢Software testing
➢Software maintenance
➢Assurance of the quality of the subcontractor’s work and the
customer supplied parts
EXPERT OPINIONS

•Expert opinions support quality assessment efforts by introducing


additional external capabilities into the organization’s in-house
development process.

•Turning to outside experts may be particularly useful in some


situations.
SOFTWARE PROJECT LIFE CYCLE COMPONENTS…

Reviews
Expert opinions
Software testing
Software maintenance
Assurance of the quality of the subcontractor’s work and the customer
supplied parts
Software testing

Software tests are formal SQA components that are targeted toward review of the
actual running of the software. -> Test report
•The tests are based on a prepared list of test cases that represent a variety of
expected scenarios.
•Examines software modules, software integration or entire software packages
(systems).
•Recurrent tests (“regression tests”) are carried out after correction of previous test
findings, and continued till satisfactory results are obtained.
SOFTWARE PROJECT LIFE CYCLE COMPONENTS…

• Reviews
• Expert opinions
• Software testing
• Software maintenance
• Assurance of the quality of the subcontractor’s work
and the customer supplied parts.
Software maintenance components

❑s/w maintenance falls into 3 categories


➢ Corrective maintenance - User’s support services and correction of software code
and documentation failures.
➢Adaptive maintenance - Adaptation of current software to new circumstances and
customers without changing the basic software product.

➢Functionality improvement maintenance – The functional and performance-related


improvement of existing software, carried out with respect to limited Issues.
SOFTWARE PROJECT LIFE CYCLE COMPONENTS…

• Reviews
• Expert opinions
• Software testing
• Software maintenance
• Assurance of the quality of the subcontractor’s work and the customer supplied parts.
ASSURANCE OF THE QUALITY OF THE EXTERNAL
PARTICIPANT’S WORK

•Subcontractors and customers are usually involved in s/w development


projects.
•The contribution of external participants may vary: programming or testing,
etc.
•If an external participant’s work is below those of the supplier’s, risks of not
meeting schedule or other requirements are introduced into the project.
INFRASTRUCTURE COMPONENTS FOR ERROR
PREVENTION
INFRASTRUCTURE COMPONENTS FOR ERROR
PREVENTION
•The main objectives of these components, which are applied
throughout the entire organization, are to eliminate or at least reduce
the rate of errors, based on the organization’s accumulated SQA
experience.
INFRASTRUCTURE COMPONENTS FOR ERROR
PREVENTION

•Procedures and work instructions


• Supporting quality devices: templates and checklists
• Staff training, retraining, and certification
• Preventive and corrective actions
• Configuration management
• Control of documentation and quality records
MANAGEMENT SQA COMPONENTS
MANAGEMENT SQA COMPONENTS

• This class of components is geared toward several goals, the major


ones being
➢the control of development and maintenance activities and,
➢the introduction of early managerial support actions that mainly
prevent or minimize schedule and budget failures and their outcomes
MANAGERIAL SQA COMPONENTS

•Managerial SQA components support the managerial control


of software development projects and maintenance services.
•Control components include:

➢Project progress control (including maintenance contract


control)
➢Software quality metrics
➢Software quality costs.
SQA standards, system certification, and
assessment
SQA STANDARDS, SYSTEM CERTIFICATION, AND
ASSESSMENT

•These components implement international professional and


managerial standards within the organization.
•The main objectives of this class are
➢utilization of international professional knowledge,
➢Improvement of coordination of the organizational quality systems with
other organizations,
➢Assessment of the achievements of quality systems according to a
common scale.
SQA STANDARDS, SYSTEM CERTIFICATION, AND
ASSESSMENT….

•The various standards may be classified into two main groups:


➢ quality management standards -
✓SEI CMM assessment standard
✓ISO 9001 and ISO 9000-3 standards.
➢project process standards
✓IEEE 1012 standard
✓ISO/IEC 12207 standard.
ORGANIZING FOR SQA – THE HUMAN COMPONENTS
ORGANIZING FOR SQA – THE HUMAN COMPONENTS

•The SQA organizational base includes

➢managers
➢testing personnel
➢the SQA unit and practitioners interested in software quality (SQA
trustees, SQA committee members and SQA forum members)

•All these actors contribute to software quality;


ORGANIZING FOR SQA – THE HUMAN COMPONENTS…

•Their main objectives are

➢to initiate and support the implementation of SQA components,


➢detect deviations from SQA procedures and methodology,
➢and suggest improvements.
THE MAIN CONSIDERATIONS AFFECTING THE USE OF
THE SQA COMPONENTS
Different organizations employ different SQA systems.
❑ Organizational considerations
➢Type of software development clientele,
➢Type of software maintenance clientele
➢Range of software products
➢Size of the organization
➢Degree and nature of cooperation with other organizations carrying out related
projects
➢Optimization objectives
THE MAIN CONSIDERATIONS AFFECTING THE USE OF
THE SQA COMPONENTS…

•Project and maintenance service considerations


➢Level of complexity and difficulty
➢ Degrees of experience with the project technology
➢ Extent of software reuse in the new projects

• Professional staff considerations


➢Professional qualifications
➢ Level of acquaintance with team members
SUMMARY & QUESTIONS?

•Pre-project quality components


•Project life cycle quality components
• Infrastructure error preventive and improvement components
•Software quality management components
•Standardization, certification and SQA assessment components
•Organizing for SQA – the human components

You might also like