Unit-5 SEPM
Unit-5 SEPM
Software Quality
For software products, the fitness of use is generally explained in terms of
satisfaction of the requirements laid down in the SRS document.
Example: Consider a functionally correct software product. That is, it
performs all tasks as specified in the SRS document. But, has an almost unusable
user interface. Even though it may be functionally right, we cannot consider it to
be a quality product.
The modern view of a quality associated with a software product
several quality methods such as the following:
1. Portability: This refers to the ease with which software can be adapted
to run in different environments. A portable software can function
seamlessly on various operating systems, hardware platforms, and with
different software configurations. This adaptability is crucial for
widespread deployment and user accessibility.
2. Usability: Usability focuses on how easy it is for users to interact with
and understand the software. A user-friendly interface, clear instructions,
and intuitive navigation contribute to high usability. This characteristic is
essential for user adoption and satisfaction.
3. Reusability: Reusability refers to the ability to reuse software
components or modules in other projects. This can significantly reduce
development time and effort by leveraging existing code and design
patterns. Well-designed software with high reusability promotes
modularity and efficiency.
4. Correctness: Correctness ensures that the software functions as
intended and meets all the specified requirements. It involves thorough
testing and validation to identify and rectify any errors or discrepancies.
A correct software provides reliable and accurate results, which is critical
for its credibility and user trust.
5. Maintainability: Maintainability refers to the ease with which software
can be modified, updated, or fixed. This includes the ability to add new
features, correct bugs, and adapt to changing requirements. A
maintainable software has a well-structured design, clear documentation,
and modular architecture, making it easier to manage and evolve over
time.
6. Reliability: Reliability refers to the consistency and dependability of the
software. A reliable software performs its intended functions without
failures or unexpected errors. This is achieved through robust design,
rigorous testing, and effective error handling mechanisms.
7. Efficiency: Efficiency refers to the optimal use of system resources, such
as CPU, memory, and storage. An efficient software minimizes resource
consumption, leading to faster execution, improved performance, and
reduced costs.
8. Functionality: The capability to provide function which meet stated and
implied needs when the software is used.
In this Approach:
• The quality goal is set in terms of delivered defect density.
• Intermediate goals are set by estimating the number of defects that may
be identified by various defect detection activities.
• Then the actual number of defects are compared to the estimated defect
levels.
The effectiveness of this approach depends on how well can we predict the
defect levels at different stages of the project. At Infosys, defect patterns
observed in past projects are used for predicting defect levels.
Risk:
• A risk is an uncertain event or condition that if it occurs has a positive or
negative effect on a project’s objective.
• A "risk" is a problem that could cause some loss or threaten the progress
of the project, but which has not happened yet.
• These potential issues might harm cost, schedule or technical success of
the project and the quality of our software device, or project team morale.
• A risk is a probable problem; it might happen, or it might not. There are
main two characteristics of risk.
o Uncertainty
o Loss
• A risk is a probabilistic event—it may or may not occur. In software
development process the risk items are:
o Personnel Shortfalls
o Unrealistic Schedules and Budgets
o Developing the Wrong Software Functions
o Developing the Wrong User Interface
o Continuing Stream of Requirement Changes
Risk Management:
Risk Management is the system of identifying addressing and eliminating these
problems before they can damage the project.
Risk management is an attempt to minimize the chances of failure caused by
unplanned events. The aim of risk management is not to avoid getting into
projects that have risks but to minimize the impact of risks in the projects that
are undertaken.
Risk Management is a systematic process of recognizing, evaluating, and handling
threats or risks that have an effect on the finances, capital, and overall operations
of an organization. These risks can come from different areas, such as financial
instability, legal issues, errors in strategic planning, accidents, and natural
disasters.
Risk Management Concepts
• Risk is defined as an exposure to the chance of injury or loss. That is, risk
implies that there is a possibility that something negative may happen.
• In the context of software projects, negative implies that there is an
adverse effect on cost, quality, or schedule.
• Risk management is the area that tries to ensure that the impact of risks
on cost, quality, and schedule is minimal.
Following important point have been observed about the risk assessment:
1. Risk identification
• Risk identification is the first step in risk assessment, which identifies
all the different risks for a particular project.
• These risks are project-dependent and identifying them is an
exercise in envisioning what can go wrong.
• Methods that can aid risk identification include checklists of possible
risks, surveys, meetings and brainstorming, and reviews of plans,
processes, and work products.
• Based on surveys of experienced project managers, Boehm has
produced a list of the top 5 risk items likely to compromise the
success of a software project are :
1. Personnel Shortfalls
2. Unrealistic Schedules and Budgets
3. Developing the Wrong Software Functions
4. Developing the Wrong User Interface
5. Continuing Stream of Requirement Changes
2. Risk Analysis
Risk identification merely identifies the undesirable events that might take
place during the project, i.e., detail the "unforeseen" events that might
occur. It does not specify the probabilities of these risks appearance nor
the impact on the project if the risks really appear. Hence the next tasks
are risk analysis and prioritization.
3. Risk Prioritization
Once the probabilities of risks appear and losses due to appearance of
different risks have been analyzed, they can be prioritized. One approach
for prioritization is through the concept of risk exposure (RE), which is
sometimes called risk impact. RE is defined by the relationship
RE = Prob{UO) * Loss{UO)
Risk Control
Risk control activity consists of risk resolution (management plan) and
monitoring management as discussed as follows:
1. Risk Resolution (Risk Management Plan):
The main objective of risk management is to identify the top few risk items
and then focus on them. Once a project manager has identified and
prioritized the risks, the top risks can be easily identified and may
determine (resolute) which risk event has high risk and have to control
first.
Risk Mitigation Steps: For most risks, the strategy is to perform the
actions that will either reduce the probability of the risk appearing or
reduce the loss due to the risk appearing. These are called risk mitigation
steps.
With these ratings, the following simple method for risk prioritization can
be specified:
o For each risk, rate the probability of its happening as low, medium,
or high.
o For each risk, assess its impact on the project as low, medium, or
high.
o Rank the risks based on the probability and effects on the project;
for example, a high-probability, high-impact item will have higher
rank than a risk item with a medium probability and high impact. In
case of conflict, use judgment.
o Select the top few risk items for mitigation and tracking.
2. Risk Monitoring
Risk monitoring involves continuously tracking and overseeing identified
risks to assess their status, changes, and effectiveness of mitigation
strategies. It ensures that risks are regularly reviewed and managed to
maintain alignment with organizational objectives and adapt to new
developments or challenges.
TYPES OF RISK
There are mainly 3 classes of risks that may affect a computer code project:
1. Project Risks:
• Project risks concern various sorts of monetary funds, schedules,
personnel, resources, and customer-related issues.
• A vital project risk is schedule slippage. Since computer code is
intangible, it’s tough to observe and manage a computer code
project.
• It’s tough to manage one thing that cannot be seen.
2. Technical Risks:
• Technical risks concern potential style, implementation, interfacing,
testing, and maintenance issues.
• Technical risks conjointly embody ambiguous specifications,
incomplete specifications, dynamic specifications, technical
uncertainty, and technical degeneration.
• Most technical risks occur thanks to the event team’s lean
information concerning the project.
3. Business Risks:
• This type of risk embodies the risks of building a superb product
that nobody needs, losing monetary funds or personal
commitments, etc.