0% found this document useful (0 votes)
158 views

Software Quality Management Notes

The document discusses software quality management and describes three aspects of software quality - functional quality, structural quality, and process quality. It states that functional quality means the software performs its intended tasks correctly, structural quality means the code is well structured, and process quality significantly affects the value received by users if the development process is repeatable and reliably delivers quality software.

Uploaded by

Faria Zohora
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
158 views

Software Quality Management Notes

The document discusses software quality management and describes three aspects of software quality - functional quality, structural quality, and process quality. It states that functional quality means the software performs its intended tasks correctly, structural quality means the code is well structured, and process quality significantly affects the value received by users if the development process is repeatable and reliably delivers quality software.

Uploaded by

Faria Zohora
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Software Quality Management - Mid prep

David Chappell

1. See all types of functional, structural and process quality descriptions

Functional quality means that the software correctly performs the tasks it’s intended to
do for its users. Among the attributes of functional quality are: Manual; Unit; Load;
Performance testing

1. Meeting the specific requirements


2. Creating software that has few defects
3. Good enough performance
4. Ease of learning and ease of use

The second aspect of software quality, structural quality, means that the code itself is
well structured. The attributes of this type of quality include: Refactoring; Static code
analysis; Dynamic code analysis

1. Code Testability
2. Code Maintainability
3. Code Understandability
4. Code Efficiency
5. Code Security

The quality of the development process significantly affects the value received by users,
development teams, and sponsors, and so all three groups have a stake in improving
this aspect of software quality. Monitor and manage development process

1. Meeting delivery dates


2. Meeting budgets
3. A repeatable development process that reliably delivers quality software.
4. Improving process quality with agile development methods increases the odds of
getting the project’s requirements right, which also improves functional quality.
Boehm
1. What are the initial software characteristics? Define.

1. ACCESSIBILITY: Code possesses the characteristic accessibility to the extent that it


facilitates selective use of its parts. (Examples: variable dimensioned arrays, or not
using absolute constants.)
2. ACCOUNTABILITY: Code possesses the characteristic accountability to the extent that
its usage can be measured. This means that critical segments of code can be
instrumented with probes to measure timing, whether specified branches are
exercised, etc.
3. ACCURACY: Code possesses the characteristic accuracy to the extent that its outputs
are sufficiently precise to satisfy their intended use.
4. AUGMENTABILITY: Code possesses the characteristic augmentability to the extent that
it can easily accommodate expansion in component computational functions or
data storage requirements.
5. COMMUNICATIVENESS: Code possesses the characteristic communicativeness to the
extent that it facilitates the specification of inputs and provides outputs whose
form and content are easy to understand and useful.
6. COMPLETENESS: Code possesses the characteristic completeness to the extent that
all its parts are present and each part is fully developed. This implies that external
references are available and required functions are coded and present as designed, etc.
7. CONCISENESS: Code possesses the characteristic conciseness to the extent that
excessive information is not present. This implies that programs are not excessively
fragmented into modules, overlays, functions and sub-routines, nor that the same
sequence of code is repeated in numerous places, rather than defining a subroutine or
macro; etc.
8. CONSISTENCY: Code possesses the characteristic internal consistency to the extent
that it contains uniform notation, terminology and symbology within itself, and
external consistency to the extent that the content is traceable to the
requirements.
9. DEVICE-INDEPENDENCE: Code possesses the characteristic device-independence to
the extent it can be executed on computer hardware configurations other than its
current one.
10. EFFICIENCY: Code possesses the characteristic efficiency to the extent that it fulfills
its purpose without waste of resources.
A framework for the measurement of software quality - McCall
1. Why has a framework been suggested by McCALL? What is the name of this
framework?

To measure software quality by measuring in a quantitative manner & to incorporate a


measurement from early stages of development like requirements and design phase
rather than during delivery.

A framework for the measurement of software quality.

2. What are the quality factors?

● Maintainability - Can I fix it?

● Reliability - Is it accurate?

● Flexibility - Can I change it?

● Correctness - Does it do what I want?

● Testability - Can I test it?

● Portability - Can it be used in other machines?

● Reusability - Can parts of it be reused in other systems/projects?

● Efficiency - Does it use the hardware how it can be used?

● Usability - Can I run it?

● Integrity - Is it secure?

● Interoperability - Can it be interfaced with other systems?

3. What is the difference between quality measurement and software testing?

Software testing gives an indication of error frequency that can be expected whereas
quality measurement gives a representation of the quality of a software system if it is a
good software.

4. What are the classifications of quality factors in the McCall framework?

● Product revision - maintainability testing flexibility


● Product operation - correctness reliability efficiency integrity usability
● Product transition - portability reusability interoperability
5. What is the software quality metric?

A software quality metric is something used to measure software quality attributes.


McCall: Rf ~ CiMi (f:factor, C:regression coefficient, M:measurement)

6. Is it possible to have multiple measurements for one quality factor?

Yes. Rf ~ C1M1 + C2M2 + C3M3 ….. M are measurements for Quality factor.

7. How is the framework (McCall) evaluated?

● Definition - Provides relevance to both management & software developers

○ What is the model measuring?

○ Is it detailed enough?

● Fidelity - Metrics utilize objective quantitative measures

○ Will different QA people get the same results?

○ Are the actuals close to the prediction?

● Constructiveness - Metrics relate to characteristics/factors

○ Does it help in understanding software quality?

○ Are the measures derived explainable?

● Stability - Testing

○ Can the model be manipulated to obtain desired results?

● Usability - Automation

○ Can the methodology be cost effectively implemented in the QA program?

8. Define the quality factors of McCALL.

● Maintainability - Effort required to locate and fix an error in an operational


program.

● Reliability - Extent to which a program can be expected to perform its intended


function with required precision.

● Flexibility - Effort required to modify an operational program.

● Correctness - Extent to which a program satisfies its specifications and fulfills the
user's mission objectives.
● Testability - Effort required to test a program to ensure it performs its intended
function.

● Portability - Effort required to transfer a program from one hardware configuration


and/or software system environment to another.

● Reusability - Extent to which a program can be used in other applications -


related to the packaging and scope of the functions that programs perform.

● Efficiency - The amount of computing resources and code required by a program


to perform a function.

● Usability - Effort required to learn, operate, prepare input, and interpret output of
a program.

● Integrity - Extent to which access to software or data by unauthorized persons


can be controlled.

● Interoperability - Effort required to couple one system with another.

9. Describe Software Quality Framework with diagram

Software quality factor related and required by the product is selected wic provides a
management oriented view of the product quality. Attributes or characteristics of the
selected software quality factor are then selected to use for measurement or the
software quality. This is done by using a regression coefficient for and with each
measurement. Te metric calculated for each quality factor is Rf ~ CiMi
Metrics in Software Quality Assurance

1. Define the quality factors of Myers.

● Coupling - The degree of interconnectedness of modules

● Strength - The degree of cohesiveness of modules

2. Define the 4 metrics of Halstead.

● Potential Volume or Intelligence


The minimum amount of "information" an algorithm; function of conceptually unique
number of inputs and outputs to a software procedure or module. Its unit is "bits" or
"binary digits".

● Volume
The actual amount of information in a program; a function of the unique number of
operators (instructions) and a unique number of operands (data labels) used. Its unit is
"bits".

● Difficulty
Volume/Intelligence; the "size" of the program relative to its minimum "size", a measure
of redundancy.

● Effort
Volume times difficulty; relates to the difficulty a person finds in under- standing a
program; relates to the degree of difficulty one may find in modifying a program; also
relates to error proneness of a program.

3. main()

int a, b, c, avg;

scanf("%d %d %d", &a, &b, &c);

avg = (a+b+c)/3;

printf("avg = %d", avg);

}
Calculate the Halstead complexity measure for the given code.

You might also like