ISO 9126 Software Quality
ISO 9126 Software Quality
ISO 9126 Software Quality
‘Functionality compliance’ refers to the degree to which the software adheres to application-
related standards
or legal requirements. Typically these could be auditing requirements. Since the original 1999
draft, a
sub-characteristic called ‘compliance’ has been added to all six ISO external characteristics. In
each case,
this refers to any specifi c standards that might apply to the particular quality attribute.
‘Interoperability’ is a good illustration of the efforts of ISO 9126 to clarify terminology.
‘Interoperability’
refers to the ability of the software to interact with other systems. The framers of ISO 9126 have
chosen this
‘Maturity’ refers to the frequency of failure due to faults in a software product, the implication
being that the
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 1/18
more the software has been used, the more faults will have been uncovered and removed. It is
also interesting
to note that ‘recoverability’ has been clearly distinguished from ‘security’ which describes the
control of
access to a system.
Characteristic Sub-characteristics
Usability Understandability
Learnability
Operability
Attractiveness
Usability compliance
Note how ‘learnability’ is distinguished from ‘operability’. A software tool could be easy to learn
but time-
consuming to use because, say, it uses a large number of nested menus. This might be fi ne for a
package used
intermittently, but not where the system is used for many hours each day. In this case ‘learnability’
has been
incorporated at the expense of ‘operability’.
‘Attractiveness’ is a recent addition to the sub-characteristics of usability and is especially
important where
users are not compelled to use a particular software product, as in the case of games and other
entertainment
products.
Characteristic Sub-characteristics
Effi ciency Time behaviour
Resource utilization
Effi ciency compliance
Maintainability Analysability
Changeability
Stability
Testability
Maintainability compliance
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 2/18
Replaceability
Portability compliance
documents produced
by previous versions
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 3/18
and thus be able to
According to ISO 9126, measurements that might act as indicators of the fi nal quality of the
software
can be taken at different stages of the development life cycle. For products at the early stages
these
indicators might be qualitative. They could, for example, be based on checklists where compliance
with predefi ned criteria is assessed by expert judgement. As the product nears completion,
objective,
quantitative, measurements would increasingly be taken.
5. Overall assessment of product quality To what extent is it possible to combine ratings for
different
quality characteristics into a single overall rating for the software? A factor which discourages
attempts
at combining the assessments of different quality characteristics is that they can, in practice, be
measured
in very different ways, which makes comparison and combination diffi cult. Sometimes the
presence
of one quality could be to the detriment of another. For example, the effi ciency characteristics of
time
behaviour and resource utilization could be enhanced by exploiting the particular characteristics
of the
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 4/18
operating system and hardware environments within which the software will perform. This,
however,
would probably be at the expense of portability.
It was noted above that quality assessment could be carried out for a number of different
reasons: to
assist software development, acquisition or independent assessment.
During the development of a software product, the assessment would be driven by the need to
focus the
minds of the developers on key quality requirements. The aim would be to identify possible
weaknesses
early on and there would be no need for an overall quality rating.
TABLE 13.2 Mapping response mes onto user sa sfac on
Response time (seconds) Quality score
<2 5
2–3 4
(Contd)
4–5 3
6–7 2
8–9 1
>9 0
Where potential users are assessing a number of different software products in order to choose
the best one,
the outcome will be along the lines that product A is more satisfactory than product B or C. Here
some idea
of relative satisfaction exists and there is a justifi cation in trying to model how this satisfaction
might be
formed. One approach recognizes some mandatory quality rating levels which a product must
reach or be
rejected, regardless of how good it is otherwise. Other characteristics might be desirable but not
essential.
For these a user satisfaction rating could be allocated in the range, say, 0–5. This could be based
on having
an objective measurement of some function and then relating different measurement values to
different levels
of user satisfaction – see Table 13.2.
Along with the rating for satisfaction, a rating in the range 1–5, say, could be assigned to refl ect
how important
each quality characteristic was. The scores for each quality could be given due weight by
multiplying it by its
importance weighting. These weighted scores can then be summed to obtain an overall score for
the product.
The scores for various products are then put in the order of preference. For example, two
products might be
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 5/18
compared as to usability, effi ciency and maintainability. The importance of each of these qualities
might be
rated as 3, 4 and 2, respectively, out of a possible maximum of 5. Quality tests might result in the
situation
shown in Table 13.3.
ISO 9126 is an international standard for software quality that identifies six major characteristics that
contribute to the quality of a software product. These characteristics, along with their sub-
characteristics, provide a comprehensive framework for evaluating software quality. Here’s a summary
of the key points:
1. Functionality
2. Reliability
3. Usability
4. Efficiency
5. Maintainability
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 6/18
Maintainability Compliance: Adherence to maintainability standards.
6. Portability
ISO 9126 provides a structured approach to evaluating software quality, allowing for both qualitative
and quantitative assessments at different stages of the development lifecycle. The standard
emphasizes the importance of considering the context and specific requirements of the software
when evaluating quality.
The system development process comprises a number of activities linked so that the
output from one activity is the input to the next (Figure 13.2). Errors can enter the
process at any stage. They can be caused either by defects in a process, as when
software developers make mistakes in the logic of their software, or by information
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 7/18
not passing clearly and accurately between development stages.
Errors not removed at early stages become more expensive to correct at later stages.
Each development step that passes before the error is found increases the amount of
rework needed. An error in the specifi cation found in testing will mean rework at all
the stages between specifi cation and testing. Each successive step of development is also more
detailed and
less able to absorb change.
Errors should therefore be eradicated by careful examination of the deliverables of each step
before they are
passed on. One way of doing this is by having the following process requirements for each step.
● Entry requirements, which have to be in place before an activity can start. An example would be
that a
comprehensive set of test data and expected results be prepared and approved before program
testing
can commence.
● Implementation requirements, which defi ne how the process is to be conducted. In the testing
phase,
for example, it could be laid down that whenever an error is found and corrected, all test runs
must be
repeated, even those that have previously been found to run correctly.
Note that Extreme
Programming advo-
cates suggest that the
the software.
● Exit requirements, which have to be fulfi lled before an activity is deemed to have
been completed. For example, for the testing phase to be recognized as being
completed, all tests will have to have been run successfully with no outstanding
errors.
EXERCISE 13.4
In what cases might the entry conditions for one activity be different from the exit conditions for
another activity that immediately precedes it?
EXERCISE 13.5
What might be the entry and exit requirements for the process code program shown in Figure
13.2?
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 8/18
Exercise 13.4: Differences Between Entry and Exit Conditions
The entry conditions for one activity might differ from the exit conditions for the preceding activity
due to various factors, including:
Exercise 13.5: Entry and Exit Requirements for the Process Code Program
For the "process code" activity shown in Figure 13.2, which involves coding a software program, the
entry and exit requirements might be as follows:
Entry Requirements:
Approved Design Documentation: Before coding begins, the design documents (such as
UML diagrams, flowcharts, and detailed specifications) must be completed and approved.
Development Environment Setup: The coding environment, including necessary software
tools (e.g., IDE, compilers), libraries, and frameworks, must be installed and configured.
Test Data Prepared: A comprehensive set of test data and expected outcomes should be
prepared and available to the developers to use during the coding process.
Exit Requirements:
Code Reviews Completed: The code must pass peer reviews or code inspections, ensuring
it adheres to coding standards and is free from obvious errors.
Unit Testing Passed: All units of the code should pass the predefined unit tests, confirming
that individual components function correctly.
Documentation Updated: The code must be accompanied by updated documentation,
including inline comments and possibly external documents describing how the code
works.
No Critical Bugs: There should be no critical or high-severity bugs outstanding in the code
before it can be considered ready for the next phase (e.g., integration testing).
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 9/18
These entry and exit requirements help ensure that each step of the software development process is
completed to a high standard, reducing the risk of errors propagating through the later stages of
development.
vtucode.in
25
3. Level 3: Defined
Characteristics:
❖ Processes for both management and development activities are defined and documented.
❖ Roles and responsibilities are clear across the organization.
❖ Training programs are implemented to build employee capabilities.
❖ Systematic reviews are conducted to identify and fix errors early.
Outcome:
❖ Consistent and standardized processes across the organization.
❖ Better management of project risks and quality.
4. Level 4: Managed
Characteristics:
❖ Processes are quantitatively managed using metrics.
❖ Quality goals are set and measured against project outcomes.
❖ Process metrics are used to improve project performance.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 10/18
Outcome:
❖ Focus on managing and optimizing processes to meet quality and performance goals.
❖ Continuous monitoring and improvement of project execution.
5. Level 5: Optimizing
Characteristics:
❖ Continuous process improvement is ingrained in the organization's culture.
❖ Process metrics are analyzed to identify areas for improvement.
❖ Lessons learned from projects are used to refine and enhance processes.
❖ Innovation and adoption of new technologies are actively pursued.
Outcome:
❖ Continuous innovation and improvement in processes.
❖ High adaptability to change and efficiency in handling new challenges.
❖ Leading edge in technology adoption and process optimization.
vtucode.in
26
It encourages organizations to move from chaotic and unpredictable processes (Level 1) to
optimized
and continuously improving processes (Level 5), thereby fostering better quality, efficiency, and
predictability in software development efforts.
Key process areas
The Capability Maturity Model Integration (CMMI) is an evolutionary improvement over its
predecessor,
the Capability Maturity Model (CMM). Here's an overview of CMMI and its structure:
The SEI Capability Maturity Model (SEI CMM) is a widely recognized framework developed by the
Software Engineering Institute (SEI) to evaluate and enhance the maturity of software development
processes within organizations. This model provides a structured approach to process improvement
and helps organizations progress through five levels of maturity. Here’s a breakdown of the SEI CMM
levels:
1. Level 1: Initial
Characteristics:
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 11/18
Development processes are chaotic and ad hoc.
There are no standardized processes or management practices in place.
Projects rely heavily on individual efforts and heroics.
Outcome:
Success largely depends on individual team members.
Projects are at high risk of failure or delays due to lack of consistency.
2. Level 2: Repeatable
Characteristics:
Basic project management practices, such as planning and tracking, are established.
Processes are documented to some extent and understood by the team.
Outcome:
Organizations can replicate successful practices on similar projects.
There is improved consistency and predictability in project outcomes.
3. Level 3: Defined
Characteristics:
Processes for both management and development activities are well-defined and
documented.
Roles and responsibilities are clearly outlined across the organization.
Training programs are in place to build team capabilities.
Systematic reviews are conducted to identify and address errors early.
Outcome:
Processes are consistent and standardized across the organization.
Project risks and quality are better managed.
4. Level 4: Managed
Characteristics:
Processes are quantitatively managed using metrics.
Quality goals are set and measured against project outcomes.
Process metrics are leveraged to improve performance.
Outcome:
There is a focus on managing and optimizing processes to meet quality and
performance goals.
Continuous monitoring and improvement of project execution are emphasized.
5. Level 5: Optimizing
Characteristics:
Continuous process improvement is embedded in the organization's culture.
Process metrics are analyzed to identify areas for enhancement.
Lessons learned from projects are used to refine and improve processes.
Innovation and the adoption of new technologies are actively pursued.
Outcome:
The organization experiences continuous innovation and process improvement.
High adaptability to change and efficiency in handling new challenges.
The organization leads in technology adoption and process optimization.
1. Capability Evaluation:
The model is used by contract awarding authorities (e.g., the US Department of Defense) to
assess potential contractors' capabilities, helping to predict their performance if awarded a
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 12/18
contract.
2. Process Assessment:
Internally, organizations use SEI CMM to assess and improve their own process capabilities
through evaluation and recommendations for improvement. The model has significantly
contributed to enhancing software development practices and establishing industry
benchmarks.
Evolution to CMMI:
The Capability Maturity Model Integration (CMMI) is an evolutionary improvement over the original
SEI CMM. It builds upon the foundation of CMM by integrating various models and providing a more
comprehensive approach to process improvement across multiple disciplines, not just software
development. CMMI focuses on refining the processes, ensuring quality, and fostering continuous
improvement at an organizational level.
By encouraging organizations to progress from chaotic, unpredictable processes (Level 1) to
optimized, continuously improving processes (Level 5), SEI CMM fosters better quality, efficiency, and
predictability in software development efforts.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 13/18
• It enhances team spirit.
▪ Techniques like Fagan inspections, pioneered by IBM, formalize the review process with trained
moderators leading discussions to identify defects and improve quality.
Japanese Quality Techniques:
▪ Learnings from Japanese quality practices, such as quality circles and continuous improvement,
have influenced global software quality standards, emphasizing rigorous inspection and feedback
loops.
vtucode.in
39
Benefits of Inspections:
▪ Inspections are noted for their effectiveness in eliminating superficial errors, motivating
developers to write better-structured code, and fostering team collaboration and spirit.
▪ They also facilitate the dissemination of good programming practices and improve overall
software quality by involving stakeholders from different stages of development.
The general principles behind Fagan method
• Inspections are carried out on all major deliverables.
• All types of defects are noted.
• Inspection can be carried out by colleagues at all levels except the very top.
• Inspection can be carried using a predefined set of steps.
• Inspection meeting do not last for more than two hours.
• The inspection is led by a moderator who has had specific training in the techniques.
• The participants have define rules.
• Checklist are used to assist the fault-finding process.
• Material is inspected at an optimal rate of about 100 lines an hour.
• Statistics are maintained so that the effectiveness of the inspection process can be monitored.
Over time, software quality improvement has become a critical focus in the industry. The evolution of
practices and methodologies has brought about various techniques aimed at enhancing software
quality. These techniques revolve around three main themes: increasing visibility, procedural
structure, and checking intermediate stages.
1. Increasing Visibility:
A pivotal movement towards making the software development process more transparent was
the concept of egoless programming advocated by Gerald Weinberg, an American software
expert. Egoless programming encourages developers to review each other's code, fostering an
environment where quality is a shared responsibility rather than an individual task.
2. Procedural Structure:
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 14/18
Initially, software development lacked structured methodologies, leading to inconsistent and
often chaotic processes. However, over time, methodologies with clearly defined processes, such
as Agile and Waterfall, have become prevalent.
Structured programming techniques and methods like clean-room development enforce
procedural rigor, ensuring that each stage of development adheres to best practices, thereby
enhancing overall software quality.
Traditional approaches often involved waiting until a complete version of the software was ready
before beginning the debugging process. However, contemporary practices emphasize checking
and validating software components early in the development cycle. This shift reduces the
dependency on predicting the final software quality based solely on early design documents and
allows for early detection and correction of errors.
Inspections:
Inspections are crucial for ensuring quality at various stages of development, not just during
coding. They also play a significant role in reviewing documentation and test cases.
Inspections help eliminate superficial errors and motivate developers to write better-structured
and self-explanatory code.
They promote good programming practices, encourage discussion about the pros and cons of
specific code segments, and foster team spirit.
Fagan Inspections:
Techniques like Fagan inspections, pioneered by IBM, formalize the review process by involving
trained moderators to lead discussions aimed at identifying defects and improving quality.
Fagan inspections are structured, with predefined steps and rules for participants. The process
involves maintaining statistics to monitor the effectiveness of the inspections.
Global software quality standards have been influenced by Japanese quality practices, such as
quality circles and the concept of continuous improvement. These practices emphasize
rigorous inspections and feedback loops, contributing to the enhancement of software quality.
Benefits of Inspections:
Inspections are highly effective in eliminating superficial errors and motivating developers to
produce well-structured code.
They enhance team collaboration, foster the spread of good programming practices, and involve
stakeholders from different stages of development, leading to an overall improvement in
software quality.
The principles behind the Fagan method emphasize the importance of inspections across all
major deliverables, the inclusion of all types of defects, and the participation of colleagues at
various levels. Meetings are structured and limited to two hours, with the process led by a
trained moderator and supported by checklists to assist in fault-finding.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 15/18
By integrating these techniques into the software development process, organizations can
significantly enhance the quality of their software products, leading to more reliable and efficient
outcomes.
Improving software quality means making sure the software we build works well and doesn't have
errors. Over time, different techniques have been developed to help with this, and they focus on a few
main ideas:
Imagine if everyone on a team could look at each other's work and give feedback. This is what
egoless programming is about. It helps catch mistakes early because more eyes are checking
the work, and everyone helps each other improve.
In the past, making software was often unorganized. Now, we use specific methods like Agile or
Waterfall that guide us on what to do at each step. These methods help us follow a clear path,
so we don't miss important steps and reduce the chances of making mistakes.
Instead of waiting until the entire software is done to find and fix problems, we now check and
test parts of it as we go. This way, we can find and fix issues early, which saves time and effort
later on.
Inspections:
Inspections are like formal reviews where team members look at each other's work carefully to
spot any errors. This isn't just about finding problems in the code but also in the planning and
testing stages. Inspections help make sure everything is done right from the start.
Fagan inspections are a specific type of review where a trained person leads the discussion to
make sure the review is thorough and helpful.
Japanese Techniques:
Japanese practices like quality circles focus on constantly improving the way things are done.
This means regularly looking at what can be done better and making small changes to keep
improving the software.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 16/18
Why These Techniques Are Helpful:
These methods help catch mistakes early, which makes it easier to fix them.
They encourage teamwork and sharing of good practices.
They make the whole process of building software smoother, so the final product is better and
more reliable.
In short, by following these steps, software teams can build better, more reliable software that meets
everyone's needs.
Both verification and validation are techniques used to find and fix errors in software, but they focus
on different parts of the development process:
1. Verification:
This is like checking your work as you go along. It makes sure that each step of the
software development process is done correctly and matches what was planned in the
previous step.
For example, after designing a software feature, verification checks if the design matches
the initial requirements.
It’s done throughout the development process to ensure everything is on track.
2. Validation:
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 17/18
This happens after the software is fully built. Validation checks if the final product meets the
customer’s needs and requirements.
It's like asking, "Did we build the right thing?" to make sure the software does what it’s
supposed to do for the user.
Validation happens towards the end of the development process.
In summary:
In the V-process model (a diagram used in software development), most of the steps on the right side
are about verification, except for the last step, which is about validation (system testing).
ChatGPT can make mistakes. Check important info.
Printed using Save ChatGPT as PDF, powered by PDFCrowd HTML to PDF API. 18/18