Darshan Institute of Engineering & Technology Unit: 7
Darshan Institute of Engineering & Technology Unit: 7
Darshan Institute of Engineering & Technology Unit: 7
Quality Control
Quality control involves the series of inspections, reviews, and tests used throughout the software
process to ensure each work product meets the requirements placed upon it.
Quality control includes a feedback loop to the process that created the work product.
The combination of measurement and feedback allows us to tune the process when the work
products created fail to meet their specifications.
This approach views quality control as part of the manufacturing process.
Quality control activities may be fully automated, entirely manual, or a combination of automated
tools and human interaction.
A key concept of quality control is that all work products have defined, measurable specifications to
which we may compare the output of each process.
The feedback loop is essential to minimize the defects produced.
Cost of Quality
The cost of quality includes all costs incurred in the pursuit of quality or in performing quality-related
activities.
Cost of quality studies are conducted to provide a baseline for the current cost of quality, identify
opportunities for reducing the cost of quality, and provide a normalized basis of comparison.
Quality costs may be divided into costs associated with prevention, appraisal, and failure.
Prevention costs include
Quality Planning
Formal Technical Reviews
Test Equipment
Training
Appraisal costs include activities to gain insight into product condition the “first time through” each
process. Examples of appraisal costs include
in-process and inter process inspection
equipment calibration and maintenance
testing
Failure costs are those that would disappear if no defects appeared before shipping a product to
customers. Failure costs may be subdivided into internal failure costs and external failure costs.
Internal failure costs are incurred when we detect a defect in product prior to shipment. Internal
failure costs include
Rework
Repair
Failure mode analysis
External failure costs are associated with defects found after the product has been shipped to the
customer. Examples of external failure costs are
Complaint resolution
Product return and replacement
help line support
warranty work
2) Define quality for software. List and explain SQA activities. (importance of SQA activities)
Software Quality
Software quality can be defined as “the conformance to explicitly stated functional and performance
requirements, explicitly documented development standards, and implicit characteristics that are
expected of all professionally developed software ”
SQA Activities
Software engineers address quality by applying solid technical methods and measures, conducting formal
technical reviews, and performing well-planned software testing.
The charter of the SQA group is to assist the software team in achieving a high-quality end product.
The Software Engineering Institute recommends a set of SQA activities that address quality assurance
planning, oversight, record keeping, analysis, and reporting.
These activities are performed (or facilitated) by an independent SQA group that:
Reviews software engineering activities to verify compliance with the defined software process.
The SQA group 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.
The SQA group reviews elected work products; identifies, documents, and tracks deviations; verifies that
corrections have been made; and 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.
Deviations may be encountered in the project plan, process description, applicable standards, or software
engineering work products.
4. Enunciate problem areas, but don't attempt to solve every problem noted.
A review is not a problem-solving session. The solution of a problem can often be accomplished by the
producer alone or with the help of only one other individual. Problem solving should be postponed until
after the review meeting.
Level 1: Initial.
The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined,
and success depends on individual effort.
Level 2: Repeatable.
Basic project management processes are established to track cost, schedule, and functionality. The
necessary process discipline is in place to repeat earlier successes on projects with similar applications.
Level 3: Defined.
The software process for both management and engineering activities is documented, standardized, and
integrated into an organization wide software process. All projects use a documented and approved
version of the organization's process for developing and supporting software. This level includes all
characteristics defined for level 2.
Level 4: Managed.
A detailed measure of the software process and product quality is collected. Both the software process
and products are quantitatively understood and controlled using detailed measures. This level
includes all characteristics defined for level 3.
Level 5: Optimizing.
Continuous process improvement is enabled by quantitative feedback from the process and from testing
innovative ideas and technologies.
This level includes all characteristics defined for level 4.
The SEI has associated key process areas (KPAs) with each of the maturity levels.
The KPAs describe those software engineering functions (e.g., software project planning, requirements
management) that must be present to satisfy good practice at a particular level.
6) What is software reliability? What is the role of software maintenance in software product?
Software reliability can be defined it as probability of failure free operations of a computer program in a
specified environment for a specified time.
Software Safety
Before software was used in safety critical systems, they were often controlled by conventional (non
programmable) mechanical and electronic devices.
System safety techniques are designed to cope with random failures in these [nonprogrammable]
systems.
Human design errors are not considered since it is assumed that all faults caused by human errors can be
avoided completely or removed prior to delivery and operation.
A modeling and analysis process is conducted as part of software safety.
Initially, hazards are identified and categorized by criticality and risk.
For example, some of the hazards associated with a computer-based cruise control for an automobile
might be
The maintenance of existing software can account for over 60 percent of all effort expended by a
development organization, and the percentage continues to rise as more software is produced.
Change is inevitable when computer-based systems are built; therefore, we must develop mechanisms for
evaluating, controlling, and making modifications.
7) What do you mean by software configuration? Or what is meant by software configuration management?
Software configuration management (SCM) is an umbrella activity that is applied throughout the software
process.
The output of the software process is information that may be divided into three broad
Categories:
1) Computer programs
2) Documents that describe the computer programs
3) Data
The items that contain all information produced as part of the software process are collectively called a
software configuration.
When you build computer software, change happens. And because it happens, you need to control it
effectively.
It is a set of activities designed to control change by identifying the work products that are likely to
change, establishing relationships among them, defining mechanisms for managing different versions of
these work products.
Everyone involved in the software engineering process is involved with SCM to some extent, but
specialized support positions are sometimes created to manage the SCM process.
If you don’t control change, it controls you. And that’s never good.
There are four fundamental sources of change:
New business or market conditions dictate changes in product requirements or business rules.
New customer needs demand modification of data produced by information systems, functionality
delivered by products, or services delivered by a computer based system.
Reorganization or business growth/downsizing causes changes in project priorities or software
engineering team structure.
Budgetary or scheduling constraints cause a redefinition of the system or product.
Software configuration management is a set of activities that have been developed to manage change
throughout the life cycle of computer software.
SCM can be viewed as a software quality assurance activity that is applied throughout the software
process.
8) What do you mean by quality assurance? Explain various factors that affect software quality.
The factors that affect software quality can be categorized in two broad groups:
Factors that can be directly measured
Factors that can be measured only indirectly
In each case measurement must occur.
McCall, Richards, and Walters propose a useful categorization of fac-tors that affect software quality.
1) Correctness: -
The extent to which a program satisfies its specification and fulfils the customer's mission objectives.
2) Reliability:-
The extent to which a program can be expected to perform its intended function with required
precision.
3) Efficiency.
The amount of computing resources and code required by a program to perform its function.
4) Integrity: -
Extent to which access to software or data by unauthorized persons can be controlled.
5) Usability: -
Effort required to learn, operate, prepare input, and interpret output of a program.
6) Maintainability: -
Effort required to locate and fix an error in a program.
7) Flexibility: -
Effort required to modify an operational program.
8) Testability: -
Effort required testing a program to ensure that it performs its intended function.
9) Portability
Effort required to transfer the program from one hardware and/or software sys-tem environment to
another.
10) Reusability.
Extent to which a program can be reused in other.
Applications—related to the packaging and scope of the functions that the program performs.
11) Interoperability:-
Effort required to couple one system to another.
10) What is software measurement? How to calculate cost of software? Explain software metrics used for s/w
cost estimation.
Measurements in the physical world can be categorized in two ways: direct measures and indirect
measures.
Software metrics can be categorized similarly. Direct measures of the software engineering process
include cost and effort applied.
Direct measures of the product include lines of code (LOC) produced, execution speed, memory size, and
defects reported over some set period of time.
Indirect measures of the product include functionality, quality, complexity, efficiency, reliability,
maintainability.
The cost and effort required building software, the number of lines of code produced, and other direct
measures are relatively easy to collect, as long as specific conventions for measurement are established in
advance.
Size-Oriented Metrics
Size-oriented software metrics are derived by normalizing quality and/or productivity measures by
considering the size of the software that has been produced.
If a software organization maintains simple records, a table of size-oriented measures can be created.
The table lists each software development project that has been completed over the past few years and
corresponding measures for that project.
In order to develop metrics that can be assimilated with similar metrics from other projects, we choose
lines of code as our normalization value.
From the rudimentary data contained in the table, a set of simple size-oriented metrics can be developed
For each project:
Errors per KLOC (thousand lines of code).
Defects per KLOC.
$ per LOC.
Page of documentation per KLOC.
In addition, other interesting metrics can be computed:
Errors per person-month.
LOC per person-month.
$ per page of documentation.