Unit - V SEPM
Unit - V SEPM
Unit - V SEPM
Project managers have a wide variety of metrics to choose from. We can classify
the most commonly used metrics into the following groups:
Process Metrics
These are metrics that pertain to Process Quality. They are used to measure the
efficiency and effectiveness of various processes.
Project Metrics
These are metrics that relate to Project Quality. They are used to quantify defects,
cost, schedule, productivity and estimation of various project resources and
deliverables.
Product Metrics
These are metrics that pertain to Product Quality. They are used to measure cost,
quality, and the product’s time-to-market.
Organizational Metrics
These metrics enable management to understand the quality of the software, the
productivity of the development team, code complexity, customer satisfaction, agile
process, and operational metrics.
We’ll now take a closer look at the various types of the two most important
categories of metrics – Project Metrics, and Process Metrics.
Effort Variance: Difference between the planned outlined effort and the effort
required to actually undertake the task is called Effort variance.
Size Variance: Difference between the estimated size of the project and the actual
size of the project (normally in KLOC or FP).
Project Productivity = Actual Project Size / Actual effort expended in the project.
Productivity (for test case preparation) = Actual number of test cases/ Actual
effort expended in test case preparation.
Productivity (for test case execution) = Actual number of test cases / actual effort
expended in testing.
Productivity (defect detection) = Actual number of defects (review + testing) /
actual effort spent on (review + testing).
Schedule variance for a phase: The deviation between planned and actual
schedules for the phases within a project
Schedule variance for a phase = (Actual Calendar days for a phase – Planned
calendar days for a phase + Start variance for a phase)/ (Planned calendar days for a
phase) x 100
Effort variance for a phase: The deviation between a planned and actual effort for
various phases within the project.
Effort variance for a phase = (Actual effort for a phase – a planned effort for a
phase)/ (planned effort for a phase) x 100.
Process Metrics:
Defect density for a project = Total number of defects/ project size in KLOC or
FP
Defect removal efficiency: Quantifies the efficiency with which defects were
detected and prevented from reaching the customer.
2. Software Measurement
Software is measured to: Create the quality of the current product or process.
Indirect Measurement:
Metrics:
A metrics is a measurement of the level that any impute belongs to a system product
or process.
Planning
Organizing
Controlling
Improving
Quantitative:
Understandable:
Applicability:
Repeatable:
The metric values should be same when measured repeatedly and consistent in
nature.
Economical:
Language Independent:
Product metrics are used to evaluate the state of the product, tracing risks and
undercovering prospective problem areas. The ability of team to control quality is
evaluated.
Process Metrics:
Process metrics pay particular attention on enhancing the long term process of the
team or organisation.
Project Metrics:
Number of software developer Staffing pattern over the life cycle of software
Productivity
Software quality metrics are a subset of software metrics that focus on the quality
aspects of the product, process, and project.
These are more closely associated with process and product metrics than with
project metrics.
Defect Density
Customer Problems
Customer Satisfaction
It is the time between failures. This metric is mostly used with safety critical
systems such as the airline traffic control systems, avionics, and weapons.
Defect Density
It measures the defects relative to the software size expressed as lines of code or
function point, etc. i.e., it measures code quality per unit.
Customer Problems
It measures the problems that customers encounter when using the product.
It contains the customer’s perspective towards the problem space of the software,
which includes the non-defect oriented problems together with the defect problems.
But to establish goals for improvement, the current status of software development
must be understood.
The day-to-day rigors of software project work leave little time for strategic
thinking.
Software project managers are concerned with more mundane (but equally
important)
We have already noted that the baseline serves as a basis for estimation.
At the project and technical levels (in the trenches), software metrics provide
immediate benefit.
• How many errors (of specific types) can I expect when testing commences?
Establishing a Baseline
different.
application.
Sadly, this is rarely the case. Therefore, data collection requires a historical
investigation of past projects to reconstruct required data. Once measures have been
collected
Depending on the breadth of measures collected, metrics can span a broad range
of LOC or FP metrics as well as other quality- and project-oriented metrics.
Finally, metrics must be evaluated and applied during estimation, technical work,
project control, and process improvement.
Metrics evaluation focuses on the underlying reasons for the results obtained and
produces a set of indicators that guide the project or process.
Quality Management:
Quality assurance is the definition of processes and standards that should lead to
high-quality products and the introduction of quality processes into the
manufacturing process.
Quality control is the application of these quality processes to weed out products that
are not of the required level of quality.
Both quality assurance and quality control are part of quality management.
The QM team in large companies is usually responsible for managing the release
testing process. They are also responsible for checking that the system tests provide
coverage of the requirements and that proper records of the testing process are
maintained.
The QM team should be independent and not part of the software development group
so that they can take an objective view of the quality of the software. They can report
on software quality without being influenced by software development issues.
Fig. 1 Quality management and software development
Software quality is not just about whether the software functionality has been
correctly implemented, but also depends on non-functional system attributes as
shown in Figure 2. These attributes reflect the software dependability, usability,
efficiency, and maintainability. It is not possible for any system to be optimized for
all of these attributes. For example, improving security may lead to loss of
performance. The quality plan should therefore define the most important quality
attributes for the software that is being developed. The plan should also include a
definition of the quality assessment process.
One may measure the quality of the product and change the process until you achieve
the quality level that is required. Figure. 3 illustrates this process-based approach to
achieving product quality.
Software Review:
Risk Mitigation: To stop risks from getting worse, proactively identify and manage
possible threats.
Consistency and Compliance: Verify that all procedures, coding standards, and
policies are followed.
Learning and Training: Give team members the chance to improve their abilities
through learning opportunities.
In addition, the purpose of FTR is to enable junior engineers to observe the analysis,
design, coding, and testing approach more closely. FTR also works to promote
backup and continuity to become familiar with parts of the software they might not
have seen otherwise. FTR is a class of reviews that include walkthroughs,
inspections, round-robin reviews, and other small-group technical assessments of
software. Each FTR is conducted as a meeting and is considered successful only if
it is properly planned, controlled, and attended.
Example
Suppose during the development of the software without FTR design cost 10 units,
coding cost 15 units and testing cost 10 units then the total cost till now is 35 units
without maintenance but there was a quality issue because of bad design so to fix it
we have to redesign the software and final cost will become 70 units. that is why
FTR is so helpful while developing the software.
Software Quality simply means to measure how well software is designed i.e. the
quality of design, and how well software conforms to that design i.e. quality of
conformance. Software quality describes degree at which component of software
meets specified requirement and user or customers’ needs and expectations.
Software Quality Assurance (SQA) is a planned and systematic pattern of activities
that are necessary to provide a high degree of confidence regarding quality of a
product. It actually provides or gives a quality assessment of quality control
activities and helps in determining validity of data or procedures for determining
quality. It generally monitors software processes and methods that are used in a
project to ensure or assure and maintain quality of software.
These functions are useful for assessing and controlling effectiveness and
completeness of quality control activities.
It also ensures that software which is developed, does it meet and compiles with
standard quality assurance.
It ensures that end result or product meets and satisfies user and business
requirements.
It simply finds or identify defects or bugs, and reduces effect of these defects.
There are various measures of software quality. These are given below:
Reliability–
It includes aspects such as availability, accuracy, and recoverability of system to
continue functioning under specific use over a given period of time. For example,
recoverability of system from shut-down failure is a reliability measure.
Performance –
It means to measure throughput of system using system response time, recovery
time, and start up time. It is a type of testing done to measure performance of system
under a heavy workload in terms of responsiveness and stability.
Functionality –
It represents that system is satisfying main functional requirements. It simply refers
to required and specified capabilities of a system.
Supportability –
There are a number of other requirements or attributes that software system must
satisfy. These include- testability, adaptability, maintainability, scalability, and so
on. These requirements generally enhance capability to support software.
Usability –
It is capability or degree to which a software system is easy to understand and used
by its specified users or customers to achieve specified goals with effectiveness,
efficiency, and satisfaction. It includes aesthetics, consistency, documentation, and
responsiveness.
The ISO 9001 standard is a framework for developing software standards. with
general quality principles, describes quality processes and lays out the organizational
standards and procedures that should be defined. These should be documented in an
organizational quality manual. A major revision of the ISO 9001 standard in 2000
reoriented the standard around nine core processes (Figure. 5). If an organization is
to be ISO 9001 conformant, it must document how its processes relate to these core
processes.
Fig. 5 ISO 9001 core processes
Reactive and proactive risk strategies are different ways of dealing with potential
threats and opportunities in the market.
Reactive risk strategies try to reduce the damage of threats and speed up the recovery
from them but assume that they will happen eventually.
Proactive risk strategies identify possible threats and aim to prevent them from
happening in the first place. Proactive strategies are used for future events, while
reactive strategies are used for current events.
Risk Identification
The first step is to identify the risks that might threaten business model or business
continuity. Some of the treats are :-
• Operational risk
• Financial risk
• Reputational risk
• Compliance, legal, or regulatory risk
Risk Monitoring
Risks evolve over time. Risks must monitor become better, worse, or gone away
entirely. There is a blend of internal controls and external providers to enable active
threat monitoring from all risk factors, especially when launching new products or
new markets.
Continuous Improvement
Companies should continuously improve their resilience to risk. Those efforts
gradually reduce risk profile, which assures company stakeholders and customers of
the company’s long-term prospects. As companies improve at risk management,
customer loyalty and retention improve.
All that said, each company needs to find its one approach to risk management. One
of the most fundamental issues is whether to take a proactive or reactive approach
to risk management.
Organizations should develop reactive risk management plans that can be deployed
after the event – because many times, the unwanted event will happen. If
management hasn’t developed reactive risk management plans, then executives end
up making decisions about how to respond as the event happens; that can be costly
and stressful.
This strategy assumes that a breach will happen at some point. But once that breach
does occur, the business might understand more about how to avoid future violations
and perhaps could even tailor its insurance policies accordingly.
2. Risk isolation
Companies can isolate potential threats to their business model by separating
specific parts of their infrastructure to protect them from external threats.
For example, some companies might restrict access to critical parts of their
software ecosystem by requiring engineers to work at a specific location
instead of working remotely (which opens the door to potential cyber threats).
3. Risk-reward analysis
Companies may undertake specific initiatives to understand the opportunity
cost of entering a new market or the risk of possibly gaining market share in
a saturated market. Before taking the initiatives at a broader level, the analysis
would help them understand the market forces and their ability to induce or
reduce risks with what-if scenarios.
For example, a direct-to-consumer delivery company might want to project
the anticipated demand for entering the market with faster medical supply
delivery.
4. Data projection
Companies can analyze data with the help of machine learning techniques to
understand specific behavioral or threat patterns in their ways of working.
These data analysis efforts might also help them understand what second-
order effects are lurking because of inefficient processes or lax attention on
certain parts of the business.
For example, a large retailer might use data analysis to find inefficiencies in
its supply chain to reduce last-mile delivery times and get an edge over the
competition.
5. Certification
To stay relevant and retain customer trust, companies could also obtain safety
and security certifications to prove they are a resilient brand that can sustain
and mitigate significant operational risks.
For example, a new fintech company might get certified for PCI-DSS security
standards before scaling in a new market to build trust with its customers.
A risk management technique is usually seen in the software Project plan. This can
be divided into Risk Mitigation, Monitoring, and Management Plan (RMMM). In
this plan, all works are done as part of risk analysis. As part of the overall project
plan project manager generally uses this RMMM plan.
In some software teams, risk is documented with the help of a Risk Information
Sheet (RIS). This RIS is controlled by using a database system for easier
management of information i.e. creation, priority ordering, searching, and other
analysis. After documentation of RMMM and start of a project, risk mitigation and
monitoring steps will start.
Risk Mitigation:
Risk Monitoring:
To allocate what problems are caused by which risks throughout the project.
It assumes that the mitigation activity failed, and the risk is a reality. This task
is done by the Project manager when risk becomes reality and causes severe
problems. If the project manager effectively uses project mitigation to remove
risks successfully then it is easier to manage the risks. This shows the response
that will be taken for each risk by a manager. The main objective of the risk
management plan is the risk register. This risk register describes and focuses
on the predicted threats to a software project.
Example:
Let us understand RMMM with the help of an example of high staff turnover.
Risk Mitigation:
Meet the current staff to determine causes for turnover (e.g., poor working
conditions, low pay, competitive job market).
Mitigate those causes that are under our control before the project starts.
Once the project commences, assume turnover will occur and develop
techniques to ensure continuity when people leave.
Risk Monitoring:
Risk Management:
Drawbacks of RMMM:
For larger projects, implementing an RMMM may itself turn out to be another
tedious project.
RMMM does not guarantee a risk-free project, risks may also come up after
the project is delivered.
Software Maintenance:
1. Market Conditions: Policies, which changes over the time, such as taxation
and newly introduced constraints like, how to maintain bookkeeping, may
trigger need for modification.
2. Client Requirements: Over the time, customer may ask for new features or
functions in the software.
3. Host Modifications: If any of the hardware and/or platform (such as
operating system) of the target host changes, software changes are needed to
keep adaptability.
4. Organization Changes: If there is any business level change at client end,
such as reduction of organization strength, acquiring another company,
organization venturing into new business, need to modify in the original
software may arise.
Types of Maintenance:
Reengineering
✓ Inventory Analysis
✓ Document Reconstruction
✓ Reverse Engineering
✓ Code Reconstruction
✓ Data Reconstruction
✓ Forward Engineering
Re-engineering Cost Factors:
❑ Advantages of Re-engineering
✓ Reduced Risk: As the software is already existing, the risk is less as compared
to new software development. Development problems, staffing problems and
specification problems are the lots of problems which may arise in new
software development.
✓ Reduced Cost: The cost of re-engineering is less than the costs of developing
new software.
✓ Revelation of Business Rules: As a system is re-engineered , business rules
that are embedded in the system are rediscovered.
✓ Better use of Existing Staff: Existing staff expertise can be maintained and
extended accommodate new skills during re-engineering.
❑ Disadvantages of Re-engineering:
✓ Source code translation: In this phase code is converted into new language.
✓ Reverse Engineering: Under this activity the program is analyzed and
understood thoroughly.
✓ Program structure improvement: Restructure automatically for
understandability.
✓ Program modularization: The program structure is reorganized.
✓ Data re-engineering: Finally, clean-up and restructure system data.
BPR requires a fundamental shift in the way an organization thinks about its
business processes, emphasizing a customer-centric approach to process
design and management. It involves a collaborative and cross-functional
approach, involving stakeholders from across the organization to ensure that
process improvements are aligned with the organization’s strategic objectives.
Reverse Engineering
Data Flow Recording: The information extracted in the third step and fourth
step are used to derive the data flow diagrams from showing the flow of data
through the processes.
Reverse engineering if done manually would consume lot of time and human
labor and hence must be supported by automated tools. Some of tools are
given below:
CIAO and CIA: A graphical navigator for software and web repositories
along with a collection of Reverse Engineering tools.
PBS: Software Bookshelf tools for extracting and visualizing the architecture
of programs.
Forward Engineering
c. Quality Assurance: Ensuring the quality of the generated code is crucial for
the success of forward engineering. Implementing effective testing strategies
and employing continuous integration practices are necessary to identify and
fix potential defects early in the development cycle.