1 chapter 26 quality management software engineering: a practitioner’s approach, 6th edition by...

49
1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

Post on 21-Dec-2015

275 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

1

Chapter 26 Quality Management

Chapter 26 Quality Management

Software Engineering: A Practitioner’s Approach, 6th editionby Roger S. Pressman

Page 2: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

2

QualityQuality The American Heritage Dictionary defines quality as

“a characteristic or attribute of something.” For software, two kinds of quality may be encountered:

Quality of design encompasses requirements, specifications, and the design of the system.

Quality of conformance is an issue focused primarily on implementation.

user satisfaction = compliant product + good quality + delivery within budget and schedule

The American Heritage Dictionary defines quality as “a characteristic or attribute of something.”

For software, two kinds of quality may be encountered: Quality of design encompasses requirements,

specifications, and the design of the system. Quality of conformance is an issue focused primarily

on implementation. user satisfaction = compliant product + good quality

+ delivery within budget and schedule

Page 3: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

3

Software QualitySoftware Quality

Conformance to explicitly stated functional Conformance to explicitly stated functional and performance requirements, explicitly and performance requirements, explicitly documented development standards, and documented development standards, and implicit characteristics that are expected of implicit characteristics that are expected of all professionally developed software. all professionally developed software.

Page 4: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

4

Cost of QualityCost of Quality Prevention costs include

quality planning formal technical reviews test equipment Training

Internal failure costs include rework repair failure mode analysis

External failure costs are complaint resolution product return and replacement help line support warranty work

Prevention costs include quality planning formal technical reviews test equipment Training

Internal failure costs include rework repair failure mode analysis

External failure costs are complaint resolution product return and replacement help line support warranty work

Page 5: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

5

Software Quality Assurance

FormalTechnicalReviews

Test Planning& ReviewMeasurement

Analysis&

Reporting

ProcessDefinition &Standards

Page 6: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

6

Role of the SQA Group-IRole of the SQA Group-I Prepares an SQA plan for a project.

The plan identifies evaluations to be performed audits and reviews to be performed standards that are applicable to the project procedures for error reporting and tracking documents to be produced by the SQA group amount of feedback provided to the software project team

Participates in the development of the project’s software process description. The SQA group reviews the process description for compliance

with organizational policy, internal software standards, externally imposed standards (e.g., ISO-9001), and other parts of the software project plan.

Prepares an SQA plan for a project. The plan identifies

evaluations to be performed audits and reviews to be performed standards that are applicable to the project procedures for error reporting and tracking documents to be produced by the SQA group amount of feedback provided to the software project team

Participates in the development of the project’s software process description. The SQA group reviews the process description for compliance

with organizational policy, internal software standards, externally imposed standards (e.g., ISO-9001), and other parts of the software project plan.

Page 7: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

7

Role of the SQA Group-IIRole of the SQA Group-II Reviews software engineering activities to verify compliance with the defined

software process. identifies, documents, and tracks deviations from the process and verifies

that corrections have been made. Audits designated software work products to verify compliance with those

defined as part of the software process. reviews selected work products; identifies, documents, and tracks

deviations; verifies that corrections have been made periodically reports the results of its work to the project manager.

Ensures that deviations in software work and work products are documented and handled according to a documented procedure.

Records any noncompliance and reports to senior management. Noncompliance items are tracked until they are resolved.

Reviews software engineering activities to verify compliance with the defined software process. identifies, documents, and tracks deviations from the process and verifies

that corrections have been made. Audits designated software work products to verify compliance with those

defined as part of the software process. reviews selected work products; identifies, documents, and tracks

deviations; verifies that corrections have been made periodically reports the results of its work to the project manager.

Ensures that deviations in software work and work products are documented and handled according to a documented procedure.

Records any noncompliance and reports to senior management. Noncompliance items are tracked until they are resolved.

Page 8: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

8

Why SQA Activities Pay Off?cost to findcost to findand fix a defectand fix a defect

100100

1010

loglogscalescale

11

Req.Req.DesignDesign

codecodetesttest

systemsystemtesttest

fieldfielduseuse

0.750.75 1.001.001.501.50

3.003.00

10.0010.00

60.00-100.0060.00-100.00

Page 9: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

9

Reviews & Inspections

... ... there is no particular reasonthere is no particular reasonwhy your friend and colleaguewhy your friend and colleaguecannot also be your sternest critic.cannot also be your sternest critic.

Jerry WeinbergJerry Weinberg

Page 10: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

10

What Are Reviews?What Are Reviews?

a meeting conducted by technical people for technical people

a technical assessment of a work product created during the software engineering process

a software quality assurance mechanism a training ground

a meeting conducted by technical people for technical people

a technical assessment of a work product created during the software engineering process

a software quality assurance mechanism a training ground

Page 11: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

11

What Reviews Are NotWhat Reviews Are Not

A project summary or progress assessment A meeting intended solely to impart information A mechanism for political or personal reprisal!

A project summary or progress assessment A meeting intended solely to impart information A mechanism for political or personal reprisal!

Page 12: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

12

The Playersreviewreviewleaderleader

producerproducer

recorderrecorder reviewerreviewer

standards bearer (SQA)standards bearer (SQA)

maintenance maintenance oracleoracle

user repuser rep

Page 13: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

13

Conducting the Review be prepared—evaluate be prepared—evaluate

product before the reviewproduct before the review

review the product, not review the product, not the producerthe producer

keep your tone mild, ask keep your tone mild, ask questions instead of questions instead of making accusationsmaking accusations

stick to the review agendastick to the review agenda

raise issues, don't resolve themraise issues, don't resolve them

avoid discussions of style—stick to technical avoid discussions of style—stick to technical correctnesscorrectness

schedule reviews as project tasksschedule reviews as project tasks

record and report all review resultsrecord and report all review results

1.1.

2.2.

3.3.

4.4.

5.5.

6.6.

7.7.

8.8.

Page 14: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

14

Review Options Matrix

trained leadertrained leaderagenda establishedagenda establishedreviewers prepare in advancereviewers prepare in advanceproducer presents productproducer presents product““reader” presents productreader” presents productrecorder takes notesrecorder takes noteschecklists used to find errorschecklists used to find errorserrors categorized as founderrors categorized as foundissues list createdissues list createdteam must sign-off on resultteam must sign-off on result

IPR—informal peer review WT—WalkthroughIPR—informal peer review WT—WalkthroughIN—Inspection RRR—round robin reviewIN—Inspection RRR—round robin review

IPRIPR WTWT ININ RRRRRR

nonomaybemaybemaybemaybemaybemaybenonomaybemaybenononononononono

yesyesyesyesyesyesyesyesnonoyesyesnonononoyesyesyesyes

yesyesyesyesyesyesnonoyesyesyesyesyesyesyesyesyesyesyesyes

yesyesyesyesyesyesnonononoyesyesnonononoyesyesmaybemaybe

**

*

Page 15: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

15

Sample-Driven Reviews (SDRs)Sample-Driven Reviews (SDRs) SDRs attempt to quantify those work products that are primary

targets for full FTRs.To accomplish this … Inspect a fraction ai of each software work product, i. Record the

number of faults, fi found within ai. Develop a gross estimate of the number of faults within work

product i by multiplying fi by 1/ai.

Sort the work products in descending order according to the gross estimate of the number of faults in each.

Focus available review resources on those work products that have the highest estimated number of faults.

SDRs attempt to quantify those work products that are primary targets for full FTRs.

To accomplish this … Inspect a fraction ai of each software work product, i. Record the

number of faults, fi found within ai. Develop a gross estimate of the number of faults within work

product i by multiplying fi by 1/ai.

Sort the work products in descending order according to the gross estimate of the number of faults in each.

Focus available review resources on those work products that have the highest estimated number of faults.

Page 16: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

16

Metrics Derived from Reviews

inspection time per page of documentationinspection time per page of documentationinspection time per KLOC or FPinspection time per KLOC or FP

errors uncovered per reviewer hourerrors uncovered per reviewer hourerrors uncovered per preparation hourerrors uncovered per preparation hourerrors uncovered per SE task (e.g., design)errors uncovered per SE task (e.g., design)number of minor errors (e.g., typos)number of minor errors (e.g., typos)

number of errors found during preparationnumber of errors found during preparation

number of major errorsnumber of major errors (e.g., nonconformance to req.) (e.g., nonconformance to req.)

inspection effort per KLOC or FPinspection effort per KLOC or FP

Page 17: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

17

Statistical SQA

ProductProduct& Process& Process

measurement

... an understanding of how to improve quality ...

Collect information on all defectsFind the causes of the defectsMove to provide fixes for the process

Page 18: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

18

Six-Sigma for Software EngineeringSix-Sigma for Software Engineering The term “six sigma” is derived from six standard deviations—3.4

instances (defects) per million occurrences—implying an extremely high quality standard.

The Six Sigma methodology defines three core steps: Define customer requirements and deliverables and project goals

via well-defined methods of customer communication Measure the existing process and its output to determine current

quality performance (collect defect metrics) Analyze defect metrics and determine the vital few causes. Improve the process by eliminating the root causes of defects. Control the process to ensure that future work does not reintroduce

the causes of defects.

The term “six sigma” is derived from six standard deviations—3.4 instances (defects) per million occurrences—implying an extremely high quality standard.

The Six Sigma methodology defines three core steps: Define customer requirements and deliverables and project goals

via well-defined methods of customer communication Measure the existing process and its output to determine current

quality performance (collect defect metrics) Analyze defect metrics and determine the vital few causes. Improve the process by eliminating the root causes of defects. Control the process to ensure that future work does not reintroduce

the causes of defects.

Page 19: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

19

Software ReliabilitySoftware Reliability A simple measure of reliability is mean-time-between-

failure (MTBF), where

MTBF = MTTF + MTTR

The acronyms MTTF and MTTR are mean-time-to-failure and mean-time-to-repair, respectively.

Software availability is the probability that a program is operating according to requirements at a given point in time and is defined as

Availability = [MTTF/(MTTF + MTTR)] x 100%

A simple measure of reliability is mean-time-between-failure (MTBF), where

MTBF = MTTF + MTTR

The acronyms MTTF and MTTR are mean-time-to-failure and mean-time-to-repair, respectively.

Software availability is the probability that a program is operating according to requirements at a given point in time and is defined as

Availability = [MTTF/(MTTF + MTTR)] x 100%

Page 20: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

20

Software SafetySoftware Safety

Software safety is a software quality assurance activity that focuses on the identification and assessment of potential hazards that may affect software negatively and cause an entire system to fail.

If hazards can be identified early in the software process, software design features can be specified that will either eliminate or control potential hazards.

Software safety is a software quality assurance activity that focuses on the identification and assessment of potential hazards that may affect software negatively and cause an entire system to fail.

If hazards can be identified early in the software process, software design features can be specified that will either eliminate or control potential hazards.

Page 21: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

21

Mistake-ProofingMistake-Proofing Poka-yoke (mistake-proofing) devices—mechanisms

that lead to the prevention of a potential quality problem before it occurs or the rapid detection of quality problems if they are introduced.

An effective poka-yoke device exhibits a set of common characteristics: It is simple and cheap. If a device is too complicated or

expensive, it will not be cost effective. It is part of the process. That is, the poka-yoke device is

integrated into an engineering activity. It is located near the process task where the mistakes occur.

Thus, it provides rapid feedback and error correction.

Poka-yoke (mistake-proofing) devices—mechanisms that lead to the prevention of a potential quality problem before it occurs or the rapid detection of quality problems if they are introduced.

An effective poka-yoke device exhibits a set of common characteristics: It is simple and cheap. If a device is too complicated or

expensive, it will not be cost effective. It is part of the process. That is, the poka-yoke device is

integrated into an engineering activity. It is located near the process task where the mistakes occur.

Thus, it provides rapid feedback and error correction.

Page 22: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

22

ISO 9001:2000 StandardISO 9001:2000 Standard ISO 9001:2000 is the quality assurance standard that

applies to software engineering. The standard contains 20 requirements that must be

present for an effective quality assurance system. The requirements delineated by ISO 9001:2000

address topics such as management responsibility, quality system, contract review,

design control, document and data control, product identification and traceability, process control, inspection and testing, corrective and preventive action, control of quality records, internal quality audits, training, servicing, and statistical techniques.

ISO 9001:2000 is the quality assurance standard that applies to software engineering.

The standard contains 20 requirements that must be present for an effective quality assurance system.

The requirements delineated by ISO 9001:2000 address topics such as management responsibility, quality system, contract review,

design control, document and data control, product identification and traceability, process control, inspection and testing, corrective and preventive action, control of quality records, internal quality audits, training, servicing, and statistical techniques.

Page 23: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

23

Chapter 27Change Management

Chapter 27Change Management

Software Engineering: A Practitioner’s Approach, 6th editionby Roger S. Pressman

Page 24: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

24

The “First Law”

No matter where you are in the system No matter where you are in the system life cycle, the system will change, and the life cycle, the system will change, and the desire to change it will persist throughout desire to change it will persist throughout the life cycle.the life cycle.

Bersoff, et al, 1980Bersoff, et al, 1980

Page 25: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

25

What Are These Changes?

datadata

otherotherdocumentsdocuments

codecodeTestTest

ProjectProjectPlanPlan

changes in changes in technical requirementstechnical requirements

changes in changes in business requirementsbusiness requirements

changes inchanges inuser requirementsuser requirements

software modelssoftware models

Page 26: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

26

The Software Configuration

programsprograms documentsdocuments

datadataThe piecesThe pieces

Page 27: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

27

BaselinesBaselines The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as:

A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures.

a baseline is a milestone in the development of software that is marked by the delivery of one or more software configuration items and the approval of these SCIs that is obtained through a formal technical review

The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as: A specification or product that has been formally

reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures.

a baseline is a milestone in the development of software that is marked by the delivery of one or more software configuration items and the approval of these SCIs that is obtained through a formal technical review

Page 28: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

28

BaselinesBaselines

SCIs

SCIs

modified

Softwareengineering

tasks

Formaltechnicalreviews

SCIs

approved

SCIs

extracted

SCMcontrols

SCIs

stored

Project database

System SpecificationSoftware RequirementsDesign SpecificationSource CodeTest Plans/Procedures/DataOperational System

BASELINES:

Page 29: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

29

Software Configuration ObjectsSoftware Configuration Objects

Design specification

data designarchitectural designmodule designinterface design

Component N

interface descriptionalgorithm descriptionPDL

Data model

Test specification

test plantest proceduretest cases

Source code

Page 30: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

30

SCM RepositorySCM Repository The SCM repository is the set of mechanisms and data structures

that allow a software team to manage change in an effective manner

The repository performs or precipitates the following functions [FOR89]: Data integrity Information sharing Tool integration Data integration Methodology enforcement Document standardization

The SCM repository is the set of mechanisms and data structures that allow a software team to manage change in an effective manner

The repository performs or precipitates the following functions [FOR89]: Data integrity Information sharing Tool integration Data integration Methodology enforcement Document standardization

Page 31: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

31

Repository ContentRepository Content

Business Content

Model Content

V&V Content

Project Management

Content

Construction Content

Documents

business rules business functions organization structure

information architecture

project estimates project schedule

SCM requirements change requests change reports

SQA requirements project reports/ audit reports

project metrics

Project Plan SCM/ SQA Plan

System Spec Requirements Spec

Design Document Test Plan and Procedure Support documents

User manual

use-cases analysis model

scenario-based diagrams flow-oriented diagrams class-based diagrams

behavioral diagrams design model architectural diagrams

interface diagrams component-level diagrams

technical metrics

source code

object code system build instructions

test cases test scripts

test results quality metrics

Page 32: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

32

Repository FeaturesRepository Features Versioning.

saves all of these versions to enable effective management of product releases and to permit developers to go back to previous versions

Dependency tracking and change management. The repository manages a wide variety of relationships among the data elements stored in it.

Requirements tracing. Provides the ability to track all the design and construction components and deliverables that

result from a specific requirement specification Configuration management.

Keeps track of a series of configurations representing specific project milestones or production releases. Version management provides the needed versions, and link management keeps track of interdependencies.

Audit trails. establishes additional information about when, why, and by whom changes are made.

Versioning. saves all of these versions to enable effective management of product releases and to

permit developers to go back to previous versions Dependency tracking and change management.

The repository manages a wide variety of relationships among the data elements stored in it. Requirements tracing.

Provides the ability to track all the design and construction components and deliverables that result from a specific requirement specification

Configuration management. Keeps track of a series of configurations representing specific project milestones or

production releases. Version management provides the needed versions, and link management keeps track of interdependencies.

Audit trails. establishes additional information about when, why, and by whom changes are made.

Page 33: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

33

SCM ElementsSCM Elements Component elements—a set of tools coupled within a file management

system (e.g., a database) that enables access to and management of each software configuration item.

Process elements—a collection of procedures and tasks that define an effective approach to change management (and related activities) for all constituencies involved in the management, engineering and use of computer software.

Construction elements—a set of tools that automate the construction of software by ensuring that the proper set of validated components (i.e., the correct version) have been assembled.

Human elements—to implement effective SCM, the software team uses a set of tools and process features (encompassing other CM elements)

Component elements—a set of tools coupled within a file management system (e.g., a database) that enables access to and management of each software configuration item.

Process elements—a collection of procedures and tasks that define an effective approach to change management (and related activities) for all constituencies involved in the management, engineering and use of computer software.

Construction elements—a set of tools that automate the construction of software by ensuring that the proper set of validated components (i.e., the correct version) have been assembled.

Human elements—to implement effective SCM, the software team uses a set of tools and process features (encompassing other CM elements)

Page 34: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

34

The SCM ProcessThe SCM Process How does a software team identify the discrete elements of a

software configuration? How does an organization manage the many existing versions

of a program (and its documentation) in a manner that will enable change to be accommodated efficiently?

How does an organization control changes before and after software is released to a customer?

Who has responsibility for approving and ranking changes? How can we ensure that changes have been made properly? What mechanism is used to appraise others of changes that are

made?

How does a software team identify the discrete elements of a software configuration?

How does an organization manage the many existing versions of a program (and its documentation) in a manner that will enable change to be accommodated efficiently?

How does an organization control changes before and after software is released to a customer?

Who has responsibility for approving and ranking changes? How can we ensure that changes have been made properly? What mechanism is used to appraise others of changes that are

made?

Addresses the following questions …Addresses the following questions …

Page 35: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

35

The SCM ProcessThe SCM Process

identification

change control

version control

configuration auditing

reporting

SCIs

Software Vm.n

Page 36: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

36

Version ControlVersion Control Version control combines procedures and tools to manage different

versions of configuration objects that are created during the software process

A version control system implements or is directly integrated with four major capabilities: a project database (repository) that stores all relevant configuration objects a version management capability that stores all versions of a configuration

object (or enables any version to be constructed using differences from past versions);

a make facility that enables the software engineer to collect all relevant configuration objects and construct a specific version of the software.

an issues tracking (also called bug tracking) capability that enables the team to record and track the status of all outstanding issues associated with each configuration object.

Version control combines procedures and tools to manage different versions of configuration objects that are created during the software process

A version control system implements or is directly integrated with four major capabilities: a project database (repository) that stores all relevant configuration objects a version management capability that stores all versions of a configuration

object (or enables any version to be constructed using differences from past versions);

a make facility that enables the software engineer to collect all relevant configuration objects and construct a specific version of the software.

an issues tracking (also called bug tracking) capability that enables the team to record and track the status of all outstanding issues associated with each configuration object.

Page 37: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

37

Change Control

STOPSTOP

Page 38: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

38

Change Control Process—I

change request from userchange request from user

developer evaluatesdeveloper evaluates

change report is generatedchange report is generated

change control authority decideschange control authority decides

request is queued for actionrequest is queued for actionchange request is deniedchange request is denied

user is informeduser is informed

need for change is recognizedneed for change is recognized

change control process—IIchange control process—IIchange control process—IIchange control process—II

Page 39: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

39

Change Control Process-II

assign people to SCIsassign people to SCIs

check-out SCIscheck-out SCIs

make the changemake the change

review/audit the changereview/audit the change

establish a “baseline” for testingestablish a “baseline” for testing

change control process—IIIchange control process—IIIchange control process—IIIchange control process—III

Page 40: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

40

Change Control Process-III

perform SQA and testing activitiesperform SQA and testing activities

promote SCI for inclusion in next releasepromote SCI for inclusion in next release

rebuild appropriate versionrebuild appropriate version

review/audit the changereview/audit the change

include all changes in releaseinclude all changes in release

check-in the changed SCIscheck-in the changed SCIs

Page 41: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

41

Auditing

SCIsSCIs

ChangeChangeRequestsRequests SQASQA

PlanPlan

SCM AuditSCM Audit

Page 42: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

42

Status Accounting

SCIsSCIs

ChangeChangeRequestsRequests

ChangeChange ReportsReports ECOsECOs

Status AccountingStatus Accounting

ReportingReporting

Page 43: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

43

SCM for Web Engineering-ISCM for Web Engineering-I Content.

A typical WebApp contains a vast array of content—text, graphics, applets, scripts, audio/video files, forms, active page elements, tables, streaming data, and many others.

The challenge is to organize this sea of content into a rational set of configuration objects (Section 27.1.4) and then establish appropriate configuration control mechanisms for these objects.

People. Because a significant percentage of WebApp development

continues to be conducted in an ad hoc manner, any person involved in the WebApp can (and often does) create content.

Content. A typical WebApp contains a vast array of content—text,

graphics, applets, scripts, audio/video files, forms, active page elements, tables, streaming data, and many others.

The challenge is to organize this sea of content into a rational set of configuration objects (Section 27.1.4) and then establish appropriate configuration control mechanisms for these objects.

People. Because a significant percentage of WebApp development

continues to be conducted in an ad hoc manner, any person involved in the WebApp can (and often does) create content.

Page 44: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

44

SCM for Web Engineering-IISCM for Web Engineering-II Scalability.

As size and complexity grow, small changes can have far-reaching and unintended affects that can be problematic. Therefore, the rigor of configuration control mechanisms should be directly proportional to application scale.

Politics.

Who ‘owns’ a WebApp?

Who assumes responsibility for the accuracy of the information on the Web site?

Who assures that quality control processes have been followed before information is published to the site?

Who is responsible for making changes? Who assumes the cost of change?

Scalability.

As size and complexity grow, small changes can have far-reaching and unintended affects that can be problematic. Therefore, the rigor of configuration control mechanisms should be directly proportional to application scale.

Politics.

Who ‘owns’ a WebApp?

Who assumes responsibility for the accuracy of the information on the Web site?

Who assures that quality control processes have been followed before information is published to the site?

Who is responsible for making changes? Who assumes the cost of change?

Page 45: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

45

Content Management-IContent Management-I The collection subsystem encompasses all actions required to create and/or acquire

content, and the technical functions that are necessary to

convert content into a form that can be represented by a mark-up language (e.g., HTML, XML

organize content into packets that can be displayed effectively on the client-side.

The management subsystem implements a repository that encompasses the following elements: Content database—the information structure that has been established to store all

content objects Database capabilities—functions that enable the CMS to search for specific content

objects (or categories of objects), store and retrieve objects, and manage the file structure that has been established for the content

Configuration management functions—the functional elements and associated workflow that support content object identification, version control, change management, change auditing, and reporting.

The collection subsystem encompasses all actions required to create and/or acquire content, and the technical functions that are necessary to

convert content into a form that can be represented by a mark-up language (e.g., HTML, XML

organize content into packets that can be displayed effectively on the client-side.

The management subsystem implements a repository that encompasses the following elements: Content database—the information structure that has been established to store all

content objects Database capabilities—functions that enable the CMS to search for specific content

objects (or categories of objects), store and retrieve objects, and manage the file structure that has been established for the content

Configuration management functions—the functional elements and associated workflow that support content object identification, version control, change management, change auditing, and reporting.

Page 46: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

46

Content Management-IIContent Management-II The publishing subsystem extracts from the repository, converts it to a

form that is amenable to publication, and formats it so that it can be transmitted to client-side browsers. The publishing subsystem accomplishes these tasks using a series of templates.

Each template is a function that builds a publication using one of three different components [BOI02]:

Static elements—text, graphics, media, and scripts that require no further processing are transmitted directly to the client-side

Publication services—function calls to specific retrieval and formatting services that personalize content (using predefined rules), perform data conversion, and build appropriate navigation links.

External services—provide access to external corporate information infrastructure such as enterprise data or “back-room” applications.

The publishing subsystem extracts from the repository, converts it to a form that is amenable to publication, and formats it so that it can be transmitted to client-side browsers. The publishing subsystem accomplishes these tasks using a series of templates.

Each template is a function that builds a publication using one of three different components [BOI02]:

Static elements—text, graphics, media, and scripts that require no further processing are transmitted directly to the client-side

Publication services—function calls to specific retrieval and formatting services that personalize content (using predefined rules), perform data conversion, and build appropriate navigation links.

External services—provide access to external corporate information infrastructure such as enterprise data or “back-room” applications.

Page 47: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

47

Content ManagementContent Management

database

configuration objects

templates

Content Management

System

HTML code + scripts

server-side

client-side browser

Page 48: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

48

Change Management for WebApps-IChange Management for WebApps-I

classify the requested change

acquire related objects assess impact of change

OK to make

class 1 change

class 2 change

develop brief written description of change

develop brief written description of change

transmit to all team members for review

changes required in related objects

class 3 change

further evaluation is required

class 4 change

OK to make

transmit to all stake- holders for review

further evaluation is required

Page 49: 1 Chapter 26 Quality Management Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

49

Change Management for WebApps-IIChange Management for WebApps-II

check out object(s) to be changed

make changes design, construct, test

check in object(s) that were changed

publish to WebApp