SE MODULE 5 ANSWER QBANK Merged
SE MODULE 5 ANSWER QBANK Merged
SE MODULE 5 ANSWER QBANK Merged
Quality will be of concern at all stages of project planning and execution, but will be
particular interest at Stepwise framework .
Step 1 : Identifying project scope and objectives Some objective could relate to the quality of the
application to be delivered.
Step 2 :Identifying project infrastructure Within this step activity 2.2 involves identifying
installation standards and procedures. Some of these will almost certainly be about quality
requirements.
Step 3 : Analyze project characteristics. In this activity the application to be implemented will be
examined to see if it has any special quality requirements.
Step 4 : Identify the product and activities of the project. It is at that point the entry, exit and
process requirement are identified for each activity.
Step 8: Review and publicize plan. At this stage the overall quality aspects of the project plan
are reviewed.
Explanation of the Figure 13.1
Ensure the project aligns with strategic goals and has clear objectives related to software
quality.
Define clear, concise, and achievable objectives with established quality criteria for
deliverables.
2. Identify Project Infrastructure
Determine the necessary tools, technologies, and resources that support quality assurance
processes.
Assess the complexity, size, and scope, identifying potential quality risks and strategies
to mitigate them.
Break down the project into smaller, manageable activities with defined quality standards
and completion criteria.
Accurately estimate the time and resources needed, including quality assurance activities
like testing and reviews.
Identify potential risks for each activity, including those affecting quality, and develop
mitigation plans.
7. Allocate Resources
Allocate appropriate resources, including skilled personnel for quality assurance and
control tasks.
Review the project plan to ensure all quality standards are included and inform
stakeholders about the quality importance.
9. Execute Plan
For detailed planning of individual activities, include quality assurance steps like detailed
testing plans, review processes, and quality checkpoints.
2. What are the Special Characteristics of Software Affecting Quality
Management? Explain.
Now a days, quality is the important aspect of all organization. Good quality software is the
requirement of all users, There are so many reasons that describe why the quality of software is
important, few among of those which are most important are.
Quality is a rather vague term and we need to define carefully what we mean by it. For any
software system there should be three specifications.
A functional specification describing what the system is to do
A quality specification concerned with how well the function are to operate
A resource specification concerned with how much is to be spent on the system.
Attempt to identify specific product qualities that are appropriate to software , for instance,
grouped software qualities into three sets. Product operation qualities, Product revision qualities
and product transition qualities.
Correctness: The extent to which a program satisfies its specification and fulfil user
objective.
Reliability: the extent to which a program can be expected to perform its intended
function with required precision.
Efficiency: The amounts of computer resource required by software.
Integrity: The extent to which access to software or data by unauthorized persons can be
controlled.
Usability: The effort required to learn, operate, prepare input and interprets output.
Maintainability: The effort required to locate and fix an error in an operational program
Testability: The effort required to test a program to ensure it performs its intended
function.
Flexibility: The effort required to modify an operational program.
Portability: The efforts require to transfer a program from one hardware configuration
and or software system environment to another.
Reusability: The extent to which a program can be used in other applications.
Interoperability: The efforts required to couple one system to another.
When there is concerned about the need for a specific quality characteristic in a software product
then a quality specification with the following minimum details should be drafted .
1. Definition/Description
The unit used to measure the quality characteristic (e.g., faults per thousand lines of code).
3. Test
Practical Test: The method or process used to test the extent to which the quality attribute exists.
4. Minimally Acceptable
Worst Acceptable Value: The lowest acceptable value, below which the product would be
rejected.
5. Target Range
Planned Range: The range of values within which it is planned that the quality measurement
value should lie.
6. Current Value
1) Garvin’s Quality Dimensions: David Gravin , a professor of Harvard Business school, defined
the quality of any product in terms of eight general attributes of the product.
2) McCall’ Model: McCall defined the quality of a software in terms of three broad parameters:
its operational characteristics, how easy it is to fix defects and how easy it is to part it to
different platforms. These three high-level quality attributes are defined based on the following
eleven attributes of the software:
Correctness: The extent to which a software product satisfies its specifications.
Reliability: The probability of the software product working satisfactorily over a given
duration.
Efficiency: The amount of computing resources required to perform the required functions.
Integrity: The extent to which the data of the software product remain valid.
Usability: The effort required to operate the software product.
Maintainability: The ease with which it is possible to locate and fix bugs in the software
product.
Flexibility: The effort required to adapt the software product to changing requirements.
Testability: The effort required to test a software product to ensure that it performs its
intended function.
Portability: The effort required to transfer the software product from one hardware or
software system environment to another.
Reusability: The extent to which software can be reused in other applications.
Interoperability: The effort required to integrate the software with other software.
3) Boehm’s Model:
Boehm’s suggested that the quality of a software can be defined based on these high-level
characteristics that are important for the users of the software. These three high-level
characteristics are the following:
As-is -utility: How well (easily, reliably and efficiently) can it be used?
Maintainability: How easy is to understand, modify and then retest the software?
Boehm’s expressed these high-level product quality attributes in terms of several measurable
product attributes. Boehm’s hierarchical quality model is shown in Fig 13.3 .
ISO 9126 standards was first introduced in 1991 to tackle the question of the definition of
software quality. The original 13-page document was designed as a foundation upon which
further more detailed standard could be built. ISO9126 documents are now very lengthy.
ISO 9126 also introduces another type of elements – quality in use- for which following
element has been identified
• Effectiveness : the ability to achieve user goals with accuracy and completeness;
• Productivity : avoiding the excessive use of resources, such as staff effort, in achieving user
goals;
• Safety: within reasonable levels of risk of harm to people and other entities such as business,
software, property and the environment
ISO 9126 is a significant standard in defining software quality attributes and providing a
framework for assessing them. Here are the key aspects and characteristics defined by ISO
9126:
1. Functionality:
Definition: The functions that a software product provides to satisfy user needs.
2. Reliability:
Definition: The capability of the software to maintain its level of performance under stated
conditions.
Maturity refers to frequency of failures due to fault in software more identification of fault more
changes to remove them. Recoverability describes the control of access to a system.
3. Usability:
Understand ability is a clear quality to grasp. Although the definition attributes that bear on the
user efforts for recognizing the logical concept and its applicability in our actually makes it less
clear. Learnability has been distinguished from operability. A software tool might be easy to
learn but time consuming to use say it uses a large number of nested menus.
This is for a package that is used only intermittently but not where the system is used or several
hours each day by the end user. In this case learnability has been incorporated at the expense of
operability
4. Efficiency:
Definition: The ability to use resources in relation to the amount of work done.
5. Maintainability:
Analysability is the quality that McCall called diagnose ability, the ease with which the cause of
failure can be determined. Changeability is the quality that others call flexibility : the latter name
implies suppliers of the software are always changing it. Stability means that there is a low risk
of a modification to software having unexpected effects.
6. Portability:
Definition: The ability of the software to be transferred from one environment to another. \
ISO 9126 provides structured guidelines for assessing and managing software quality
characteristics based on the specific needs and requirements of the software product. It
emphasizes the variation in importance of these characteristics depending on the type and
context of the software product being developed.
Steps Suggested After Establishing Requirements
Once the software product requirements are established, ISO 9126 suggests the following steps:
1. Specify Quality Characteristics: Define and prioritize the relevant quality characteristics
based on the software's intended use and stakeholder requirements.
2. Define Metrics and Measurements: Establish measurable criteria and metrics for evaluating
each quality characteristic, ensuring they align with the defined objectives and user expectations.
3. Plan Quality Assurance Activities: Develop a comprehensive plan for quality assurance
activities, including testing, verification, and validation processes to ensure adherence to quality
standards.
4. Monitor and Improve Quality: Continuously monitor software quality throughout the
development lifecycle, identifying areas for improvement and taking corrective actions as
necessary.
5. Document and Report: Document all quality-related activities, findings, and improvements,
and provide clear and transparent reports to stakeholders on software quality status and
compliance.
• Assign importance ratings to these characteristics based on their relevance to the application.
Reliability: Critical for safety-critical systems where failure can have severe consequences.
Measures like mean time between failures (MTBF) are essential.
Efficiency: Important for real-time systems where timely responses are crucial. Measures such
as response time are key indicators.
2. Select the external quality measurements within the ISO 9126 framework relevant to the
qualities prioritized above.
3. Map measurements onto ratings that reflect user satisfaction. for example, the mappings
might be as in Table 13.1 .
For response time, user satisfaction could be mapped as follows (hypothetical example):
4. ldentify the relevant internal measurements and the intermediate products in which they
appear.
• Identify and track internal measurements such as cyclomatic complexity, code coverage, defect
density, etc.
• Relate these measurements to intermediate products like source code, test cases, and
documentation.
• Focus on key quality requirements and address potential weaknesses early to avoid the need
for an overall quality rating later.
In software development, managing quality can be approached from two main perspectives:
product quality management and process quality management. Here’s a breakdown of each
approach and their key aspects:
Product quality management focuses on evaluating and ensuring the quality of the software
product itself. This approach is typically more straightforward to implement and measure after
the software has been developed Aspects:
1. Measurement Focus: Emphasizes metrics that assess the characteristics and attributes of the
final software product, such as size (LOC, function points), reliability (defects found per LOC),
performance (response time), and usability (user satisfaction ratings).
2. Evaluation Timing: Product quality metrics are often measured and evaluated after the
software product has been completed or at significant milestones during development.
3. Benefits:
Provides clear benchmarks for evaluating the success of the software development project.
Facilitates comparisons with user requirements and industry standards.
Helps in identifying areas for improvement in subsequent software versions or projects.
4. Challenges:
Predicting final product quality based on intermediate stages (like early code modules or
prototypes) can be challenging.
Metrics may not always capture the full complexity or performance of the final integrated
product.
Process quality management focuses on assessing and improving the quality of the development
processes used to create the software. This approach aims to reduce errors and improve
efficiency throughout the development lifecycle.
Aspects:
2. Evaluation Timing: Process quality metrics are monitored continuously throughout the
development lifecycle, from initial planning through to deployment and maintenance.
3. Benefits:
Helps in identifying and correcting errors early in the development process, reducing the
cost and effort of rework.
Facilitates continuous improvement of development practices, leading to higher overall
quality in software products.
Provides insights into the effectiveness of development methodologies and practices used by
the team.
4. Challenges:
While product and process quality management approaches have distinct focuses, they are
complementary.
Effective software development teams often integrate both approaches to achieve optimal
results.
By improving process quality, teams can enhance product quality metrics, leading to more
reliable, efficient, and user-friendly software products.
7. List the popular capability models to manage the quality of the Software
and Explain SEI CMM with an appropriate diagram.
❖ Developed by the Software Engineering Institute (SEI), CMM and CMMI provide a
framework for assessing and improving the maturity of processes.
❖ They define five maturity levels, from initial (ad hoc processes) to optimized (continuous
improvement).
❖ ISO/IEC 15504, also known as SPICE (Software Process Improvement and Capability
determination), is an international standard for assessing and improving process capability.
❖ It provides a framework for evaluating process maturity based on process attributes and
capabilities.
3. Six Sigma:
❖ Six Sigma focuses on reducing defects in processes to a level of 3.4 defects per million
opportunities (DPMO).
❖ Process metrics are more meaningfully measured during product development compared to
product metrics.
❖ They help in identifying process inefficiencies, bottlenecks, and areas for improvement early
in the development lifecycle.
The SEI Capability Maturity Model (CMM) is a framework developed by the Software
Engineering Institute (SEI) to assess and improve the maturity of software development
processes within organizations.
It categorizes organizations into five maturity levels based on their process capabilities and
practices:
SEI CMM Levels:
1. Level 1: Initial
Characteristics:
Outcome:
Characteristics:
❖ Basic project management practices like planning and tracking costs/schedules are in
place.
Outcome:
3. Level 3: Defined
Characteristics:
❖ Processes for both management and development activities are defined and
documented.
Outcome:
4. Level 4: Managed
Characteristics:
Outcome:
❖ Focus on managing and optimizing processes to meet quality and performance goals.
5. Level 5: Optimizing
Characteristics:
❖ Lessons learned from projects are used to refine and enhance processes.
Outcome:
1) Capability Evaluation: Used by contract awarding authorities (like the US DoD) to assess
potential contractors' capabilities to predict performance if awarded a contract.
Capaability level:
Maturity Levels: