Unit-V Software Maintenance: Subject Name: Software Engineering & Project
Unit-V Software Maintenance: Subject Name: Software Engineering & Project
BHOPAL
UNIT-V
Software Maintenance
Software Maintenance is the process of modifying a software product after it has been delivered
to the customer. The main purpose of software maintenance is to modify and update software
application after delivery to correct faults and to improve performance.
Need for Maintenance –
Software Maintenance must be performed in order to:
Correct faults.
Improve the design.
Implement enhancements.
Interface with other systems.
Accommodate programs so that different hardware, software, system features, and
telecommunications facilities can be used.
Migrate legacy software.
Retire software.
Categories of Software Maintenance –
Maintenance can be divided into the following:
1. Corrective maintenance:
Corrective maintenance of a software product may be essential either to rectify some bugs
observed while the system is in use, or to enhance the performance of the system.
2. Adaptive maintenance:
This includes modifications and updations when the customers need the product to run on
new platforms, on new operating systems, or when they need the product to interface with
new hardware and software.
3. Perfective maintenance:
A software product needs maintenance to support the new features that the users want or to
change different types of functionalities of the system according to the customer demands.
4. Preventive maintenance:
This type of maintenance includes modifications and updations to prevent future problems
of the software. It goals to attend problems, which are not significant at this moment but
may cause serious issues in future.
Reverse Engineering –
Reverse Engineering is processes of extracting knowledge or design information from anything
man-made and reproducing it based on extracted information. It is also called back Engineering.
Software Reverse Engineering –
Software Reverse Engineering is the process of recovering the design and the requirements
specification of a product from an analysis of it’s code. Reverse Engineering is becoming
important, since several existing software products, lack proper documentation, are highly
unstructured, or their structure has degraded through a series of maintenance efforts.
Why Reverse Engineering?
Providing proper system documentatiuon.
Recovery of lost information.
Assisting with maintenance.
Facility of software reuse.
Discovering unexpected flaws or faults.
Used of Software Reverse Engineering –
Software Reverse Engineering is used in software design, reverse engineering enables the
developer or programmer to add new features to the existing software with or without
knowing the source code.
Reverse engineering is also useful in software testing, it helps the testers to study the virus
and other malware code .
Cost of Maintenance
Reports suggest that the cost of maintenance is high. A study on estimating software
maintenance found that the cost of maintenance is as high as 67% of the cost of entire software
process cycle.
On an average, the cost of software maintenance is more than 50% of all SDLC phases. There
are various factors, which trigger maintenance cost go high, such as:
Real-world factors affecting Maintenance Cost
Maintenance Activities
IEEE provides a framework for sequential maintenance process activities. It can be used in
iterative manner and can be extended so that customized items and processes can be included.
System Testing - Integration testing is done among newly created modules. Integration testing is also
carried out between new modules and the system. Finally the system is tested as a whole, following
regressive testing procedures.
Acceptance Testing - After testing the system internally, it is tested for acceptance with the help of
users. If at this state, user complaints some issues they are addressed or noted to address in next
iteration.
Delivery - After acceptance test, the system is deployed all over the organization either by small
update package or fresh installation of the system. The final testing takes place at client end after the
software is delivered.
Training facility is provided if required, in addition to the hard copy of user manual.
Maintenance management - Configuration management is an essential part of system maintenance.
It is aided with version control tools to control versions, semi-version or patch management.
Software Re-engineering
When we need to update the software to keep it to the current market, without impacting its
functionality, it is called software re-engineering. It is a thorough process where the design of
software is changed and programs are re-written.
Legacy software cannot keep tuning with the latest technology available in the market. As the
hardware become obsolete, updating of software becomes a headache. Even if software grows
old with time, its functionality does not.
For example, initially Unix was developed in assembly language. When language C came into
existence, Unix was re-engineered in C, because working in assembly language was difficult.
Other than this, sometimes programmers notice that few parts of software need more
maintenance than others and they also need re-engineering.
Re-Engineering Process
Program Restructuring
It is a process to re-structure and re-construct the existing software. It is all about re-arranging
the source code, either in same programming language or from one programming language to a
different one. Restructuring can have either source code-restructuring and data-restructuring or
both.
Re-structuring does not impact the functionality of the software but enhance reliability and
maintainability. Program components, which cause errors very frequently can be changed, or
updated with re-structuring.
The dependability of software on obsolete hardware platform can be removed via re-structuring.
Forward Engineering
Forward engineering is a process of obtaining desired software from the specifications in hand
which were brought down by means of reverse engineering. It assumes that there was some
software engineering already done in the past.
Forward engineering is same as software engineering process with only one difference – it is
carried out always after reverse engineering.
Component reusability
A component is a part of software program code, which executes an independent task in the
system. It can be a small module or sub-system itself.
Example
The login procedures used on the web can be considered as components, printing system in
software can be seen as a component of the software.
Components have high cohesion of functionality and lower rate of coupling, i.e. they work
independently and can perform tasks without depending on other modules.
In OOP, the objects are designed are very specific to their concern and have fewer chances to be
used in some other software.
In modular programming, the modules are coded to perform specific tasks which can be used
across number of other software programs.
There is a whole new vertical, which is based on re-use of software component, and is known as
Component Based Software Engineering (CBSE).
Reuse Process
Two kinds of method can be adopted: either by keeping requirements same and adjusting
components or by keeping components same and modifying requirements.
Requirement Specification - The functional and non-functional requirements are specified, which a
software product must comply to, with the help of existing system, user input or both.
Design - This is also a standard SDLC process step, where requirements are defined in terms of
software parlance. Basic architecture of system as a whole and its sub-systems are created.
Specify Components - By studying the software design, the designers segregate the entire system
into smaller components or sub-systems. One complete software design turns into a collection of a
huge set of components working together.
Search Suitable Components - The software component repository is referred by designers to search
for the matching component, on the basis of functionality and intended software requirements..
Incorporate Components - All matched components are packed together to shape them as complete
software.
System Configuration Management (SCM) is an arrangement of exercises which controls
change by recognizing the items for change, setting up connections between those things,
making/characterizing instruments for overseeing diverse variants, controlling the changes being
executed in the current framework, inspecting and revealing/reporting on the changes made. It is
essential to control the changes in light of the fact that if the changes are not checked
legitimately then they may wind up undermining a well-run programming. In this way, SCM is a
fundamental piece of all project management activities.
Identification and Establishment – Identifying the configuration items from products that
compose baselines at given points in time (a baseline is a set of mutually consistent
Configuration Items, which has been formally reviewed and agreed upon, and serves as the basis
of further development). Establishing relationship among items, creating a mechanism to manage
multiple level of control and procedure for change management system.
Version control – Creating versions/specifications of the existing product to build new
products from the help of SCM system. A description of version is given below:
Suppose after some changes, the version of configuration object changes from 1.0 to 1.1. Minor
corrections and changes result in versions 1.1.1 and 1.1.2, which is followed by a major update
that is object 1.2. The development of object 1.0 continues through 1.3 and 1.4, but finally, a
noteworthy change to the object results in a new evolutionary path, version 2.0. Both versions
are currently supported.
Change control – Controlling changes to Configuration items (CI). The change control
process is explained in Figure below:
A change request (CR) is submitted and evaluated to assess technical merit, potential side
effects, overall impact on other configuration objects and system functions, and the projected
cost of the change. The results of the evaluation are presented as a change report, which is used
by a change control board (CCB) —a person or group who makes a final decision on the status
and priority of the change. An engineering change Request (ECR) is generated for each approved
change.
Also CCB notifies the developer in case the change is rejected with proper reason. The ECR
describes the change to be made, the constraints that must be respected, and the criteria for
review and audit. The object to be changed is ―checked out‖ of the project database, the change
is made, and then the object is tested again. The object is then ―checked in‖ to the database and
appropriate version control mechanisms are used to create the next version of the software.
Configuration auditing – A software configuration audit complements the formal technical
review of the process and product. It focuses on the technical correctness of the configuration
object that has been modified. The audit confirms the completeness, correctness and consistency
of items in the SCM system and track action items from the audit to closure.
Reporting – Providing accurate status and current configuration data to developers, tester,
end users, customers and stakeholders through admin guides, user guides, FAQs, Release notes,
Memos, Installation Guide, Configuration guide etc .
SCM Tools –
Different tools are available in market for SCM like: CFEngine, Bcfg2 server, Vagrant,
SmartFrog, CLEAR CASETOOL (CC), SaltStack, CLEAR QUEST TOOL, Puppet, SVN-
Subversion, Perforce, TortoiseSVN, IBM Rational team concert, IBM Configuration
management version management, Razor, Ansible, etc. There are many more in the list.
It is recommended that before selecting any configuration management tool, have a proper
understanding of the features and select the tool which best suits your project needs and be clear
with the benefits and drawbacks of each before you choose one to use.
Reverse Engineering:
Reverse Engineering is also known as backward engineering, is the process of forward
engineering in reverse. In this, the information are collected from the given or exist application.
It takes less time than forward engineering to develop an application. In reverse engineering the
application are broken to extract knowledge or its architecture.
Forward Engineering takes more time to engineering takes less time to develop
Software Re-engineering
Software Re-engineering is a process of software development which is done to improve the
maintainability of a software system. Re-engineering is the examination and alteration of a
system to reconstitute it in a new form. This process encompasses a combination of sub-
processes like reverse engineering, forward engineering, reconstructing etc.
Re-engineering is the reorganizing and modifying existing software systems to make them more
maintainable.
Objectives of Re-engineering:
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.
Software Engineering:
Software engineering covers not only the technical aspects of building software systems, but also
management issues, such as directing programming teams, scheduling, and budgeting.
Software engineering is an engineering branch associated with development of software product
using well-defined scientific principles, methods and procedures. The outcome of software
engineering is an efficient and reliable software product.
Software project management has wider scope than software engineering process as it involves
communication, pre and post-delivery support etc.
The need of software engineering arises because of higher rate of change in user requirements
and environment on which the software is working.
Large software- It is easier to build a wall than to a house or building, likewise, as the
size of software become large engineering has to step to give it a scientific process.
Scalability- If the software process were not based on scientific and engineering
concepts, it would be easier to re-create new software than to scale an existing one.
Cost- As hardware industry has shown its skills and huge manufacturing has lower down
the price of computer and electronic hardware. But the cost of software remains high if
proper process is not adapted.
Dynamic Nature- The always growing and adapting nature of software hugely depends
upon the environment in which user works. If the nature of software is always changing,
new enhancements need to be done in the existing one. This is where software
engineering plays a good role.
Quality Management- Better process of software development provides better and
quality software product.
RE Engineering:
• Restructuring or rewriting part or all of a system without changing its functionality
• Applicable when some (but not all) subsystems of a larger system require frequent maintenance
• Reengineering involves putting in the effort to make it easier to maintain
• The reengineered system may also be restructured and should be re-documented
When do you decide to reengineer?
• When system changes are confined to one subsystem, the subsystem needs to be reengineered
• When hardware or software support becomes obsolete
• When tools to support restructuring are readily available
Economics of Reengineering:
• Cost of maintenance: cost annual of operation and maintenance over application lifetime
• Cost of reengineering: predicted return on investment reduced by cost of implementing
changes and engineering risk factors
• Cost benefit: Cost of re engineering - Cost of maintenance
Re-engineering advantages:
Reduced risk
There is a high risk in new software development. There may be development problems, staffing
problems and specification problems
Reduced cost
The cost of re-engineering is often significantly less than the costs of developing new software
The complete Software Re-Engineering lifecycle includes:
Product Management: Risks analysis, root cause analysis, business analysis, requirements
elicitation and management, product planning and scoping, competitive analysis
Research and Innovation: Definition of a problem, data gathering and analysis, identifying a
solution and developing best-of-breed or innovative algorithms, verification of quality for data
and results, patent preparation
Product Development: Technology analysis and selection, software architecture and design, data
architecture, deployment architecture, prototyping and production code development,
comprehensive software testing, data quality testing, and product packaging and deployment
preparation
Product Delivery and Support: Hardware/Platform analysis and selection, deployment and
release procedures definition, installations and upgrades, tracking support issues, organizing
maintenance releases.
Project Management: Brings efficiency and productivity to your software re-engineering project
by utilizing modern, practical software project management, software quality assurance, data
quality assurance, and advanced risk management techniques.
Reverse Engineering:
Reverse engineering is taking apart an object to see how it works in order to duplicate or enhance
the object. The practice, taken from older industries, is now frequently used on computer
hardware and software. Software reverse engineering involves reversing a program's machine
code (the string of 0s and 1s that are sent to the logic processor) back into the source code that it
was written in, using program language statements.
Reverse-engineering is used for many purposes: as a learning tool; as a way to make new,
compatible products that are cheaper than what's currently on the market; for making software
interoperate more effectively or to bridge data between different operating systems or databases;
and to uncover the undocumented features of commercial products.
Following are reasons for reverse engineering a part or product:
1. The original manufacturer of a product no longer produces a product
2. There is inadequate documentation of the original design
3. The original manufacturer no longer exists, but a customer needs the product
4. The original design documentation has been lost or never existed
5. Some bad features of a product need to be designed out. For example, excessive wear
might indicate where a product should be improved
6. To strengthen the good features of a product based on long-term usage of the product
2. Risk Management:
Risk management is the analysis and identification of risks that is followed by
synchronized and economical implementation of resources to minimize, operate and
control the possibility or effect of unfortunate events or to maximize the realization of
opportunities.
3. Requirement Management:
It is the process of analyzing, prioritizing, tracing and documenting on requirements and
then supervising change and communicating to pertinent stakeholders. It is a continuous
process during a project.
4. Change Management:
Change management is a systematic approach for dealing with the transition or
transformation of an organization’s goals, processes or technologies. The purpose of
change management is to execute strategies for effecting change, controlling change and
helping people to adapt to change.
6. Release Management:
Release Management is the task of planning, controlling and scheduling the build in
deploying releases. Release management ensures that organization delivers new and
enhanced services required by the customer, while protecting the integrity of existing
services.
Aspects of Software Project Management:
Types of Feasibility
Various types of feasibility that are commonly considered include technical feasibility,
operational feasibility, and economic feasibility.
Technical feasibility assesses the current resources (such as hardware and software) and
technology, which are required to accomplish user requirements in the software within the
allocated time and budget. For this, the software development team ascertains whether the
current resources and technology can be upgraded or added in the software to accomplish
specified user requirements. Technical feasibility also performs the following tasks.
• Analyzes the technical skills and capabilities of the software development team members.
• Determines whether the relevant technology is stable and established.
• Ascertains that the technology chosen for software development has a large number of users so
that they can be consulted when problems arise or improvements are required.
Operational feasibility assesses the extent to which the required software performs a series of
steps to solve business problems and user requirements. This feasibility is dependent on human
resources (software development team) and involves visualizing whether the software will
operate after it is developed and be operative once it is installed. Operational feasibility also
performs the following tasks.
• Determines whether the problems anticipated in user requirements are of high priority.
• Determines whether the solution suggested by the software development team is acceptable.
• Analyzes whether users will adapt to a new software.
• Determines whether the organization is satisfied by the alternative solutions proposed by the
software development team.
Economic feasibility determines whether the required software is capable of generating financial
gains for an organization. It involves the cost incurred on the software development team,
estimated cost of hardware and software, cost of performing feasibility study, and so on. For this,
it is essential to consider expenses made on purchases (such as hardware purchase) and activities
required to carry out software development. In addition, it is necessary to consider the benefits
that can be achieved by developing the software. Software is said to be economically feasible if
it focuses on the issues listed below.
• Cost incurred on software development to produce long-term gains for an organization.
• Cost required to conduct full software investigation (such as requirements elicitation and
requirements analysis).
• Cost of hardware, software, development team, and training.
Project Planning
Once a project is found to be possible, computer code project managers undertake project
designing. Project designing is undertaken and completed even before any development activity
starts. Project designing consists of subsequent essential activities:
Estimating the subsequent attributes of the project:
Project size:
What’s going to be downside quality in terms of the trouble and time needed to develop the
product?
Cost:
What proportion is it reaching to value to develop the project?
Duration:
However long is it reaching to want complete development?
Effort:
What proportion effort would be required?
The effectiveness of the following designing activities relies on the accuracy of those
estimations.
the software would go through. Project manager may never directly involve in producing the
end product but he controls and manages the activities involved in production.
A project manager closely monitors the development process, prepares and executes various
plans, arranges necessary and adequate resources, maintains communication among all team
members in order to address issues of cost, budget, resources, time, quality and customer
satisfaction.
Let us see few responsibilities that a project manager shoulders -
Managing People
Managing Project
Project Planning
Scope Management
Project Estimation
Project Planning
Software project planning is task, which is performed before the production of software actually
starts. It is there for the software production but involves no concrete activity that has any
direction connection with software production; rather it is a set of multiple processes, which
facilitates software production. Project planning may include the following:
Scope Management
It defines the scope of project; this includes all the activities, process need to be done in order to
make a deliverable software product. Scope management is essential because it creates
boundaries of the project by clearly defining what would be done in the project and what would
not be done. This makes project to contain limited and quantifiable tasks, which can easily be
documented and in turn avoids cost and time overrun.
During Project Scope management, it is necessary to -
Project Estimation
For an effective management accurate estimation of various measures is a must. With correct
estimation managers can manage and control the project more efficiently and effectively.
Project estimation may involve the following:
Effort estimation
The managers estimate efforts in terms of personnel requirement and man-hour required to produce
the software. For effort estimation software size should be known. This can either be derived by
managers’ experience, organization’s historical data or software size can be converted into efforts by
using some standard formulae.
Time estimation
Once size and efforts are estimated, the time required to produce the software can be estimated.
Efforts required is segregated into sub categories as per the requirement specifications and
interdependency of various components of software. Software tasks are divided into smaller tasks,
activities or events by Work Breakthrough Structure (WBS). The tasks are scheduled on day-to-day
basis or in calendar months.
The sum of time required to complete all tasks in hours or days is the total time invested to complete
the project.
Cost estimation
This might be considered as the most difficult of all because it depends on more elements than any of
the previous ones. For estimating project cost, it is required to consider -
o Size of software
o Software quality
o Hardware
o Additional software or tools, licenses etc.
o Skilled personnel with task-specific skills
o Travel involved
o Communication
o Training and support
Line of Code Estimation is done on behalf of number of line of codes in the software product.
Function Points Estimation is done on behalf of number of function points in the software product.
Putnam Model
This model is made by Lawrence H. Putnam, which is based on Norden’s frequency distribution
(Rayleigh curve). Putnam model maps time and efforts required with software size.
COCOMO
COCOMO stands for COnstructive COst MOdel, developed by Barry W. Boehm. It divides the
software product into three categories of software: organic, semi-detached and embedded.
Project Scheduling
Project Scheduling in a project refers to roadmap of all activities to be done with specified order
and within time slot allotted to each activity. Project managers tend to define various tasks, and
project milestones and arrange them keeping various factors in mind. They look for tasks lie in
critical path in the schedule, which are necessary to complete in specific manner (because of
task interdependency) and strictly within the time allocated. Arrangement of tasks which lies
out of critical path are less likely to impact over all schedule of the project.
For scheduling a project, it is necessary to -
Resource management
All elements used to develop a software product may be assumed as resource for that project.
This may include human resource, productive tools and software libraries.
The resources are available in limited quantity and stay in the organization as a pool of assets.
The shortage of resources hampers the development of project and it can lag behind the
schedule. Allocating extra resources increases development cost in the end. It is therefore
necessary to estimate and allocate adequate resources for the project.
Resource management includes -
Defining proper organization project by creating a project team and allocating responsibilities to each
team member
Determining resources required at a particular stage and their availability
Manage Resources by generating resource request when they are required and de-allocating them
when they are no more needed.
Experienced staff leaving the project and new staff coming in.
Change in organizational management.
Requirement change or misinterpreting requirement.
Under-estimation of required time and resources.
Technological changes, environmental changes, business competition.
Identification - Make note of all possible risks, which may occur in the project.
Categorize - Categorize known risks into high, medium and low risk intensity as per their possible
impact on the project.
Manage - Analyze the probability of occurrence of risks at various phases. Make plan to avoid or face
risks. Attempt to minimize their side-effects.
Monitor - Closely monitor the potential risks and their early symptoms. Also monitor the effects of
steps taken to mitigate or avoid them.
Activity Monitoring - All activities scheduled within some task can be monitored on day-to-day
basis. When all activities in a task are completed, it is considered as complete.
Status Reports - The reports contain status of activities and tasks completed within a given time
frame, generally a week. Status can be marked as finished, pending or work-in-progress etc.
Milestones Checklist - Every project is divided into multiple phases where major tasks are performed
(milestones) based on the phases of SDLC. This milestone checklist is prepared once every few weeks
and reports the status of milestones.
Communication can be oral or written. Communication management process may have the
following steps:
Planning - This step includes the identifications of all the stakeholders in the project and the mode of
communication among them. It also considers if any additional communication facilities are required.
Sharing - After determining various aspects of planning, manager focuses on sharing correct
information with the correct person on correct time. This keeps every one involved the project up to
date with project progress and its status.
Feedback - Project managers use various measures and feedback mechanism and create status and
performance reports. This mechanism ensures that input from various stakeholders is coming to the
project manager as their feedback.
Closure - At the end of each major event, end of a phase of SDLC or end of the project itself,
administrative closure is formally announced to update every stakeholder by sending email, by
distributing a hardcopy of document or by other mean of effective communication.
After closure, the team moves to next phase or project.
Configuration Management
Configuration management is a process of tracking and controlling the changes in software in
terms of the requirements, design, functions and development of the product.
IEEE defines it as ―the process of identifying and defining the items in the system, controlling
the change of these items throughout their life cycle, recording and reporting the status of items
and change requests, and verifying the completeness and correctness of items‖.
Generally, once the SRS is finalized there is less chance of requirement of changes from user. If
they occur, the changes are addressed only with prior approval of higher management, as there
is a possibility of cost and time overrun.
Baseline
A phase of SDLC is assumed over if it baselined, i.e. baseline is a measurement that defines
completeness of a phase. A phase is baselined when all activities pertaining to it are finished
and well documented. If it was not the final phase, its output would be used in next immediate
phase.
Configuration management is a discipline of organization administration, which takes care of
occurrence of any change (process, requirement, technological, strategical etc.) after a phase is
baselined. CM keeps check on any changes done in software.
Change Control
Change control is function of configuration management, which ensures that all changes made
to software system are consistent and made as per organizational rules and regulations.
PERT Chart
PERT (Program Evaluation & Review Technique) chart is a tool that depicts project as network
diagram. It is capable of graphically representing main events of project in both parallel and
consecutive way. Events, which occur one after another, show dependency of the later event
over the previous one.
Events are shown as numbered nodes. They are connected by labeled arrows depicting sequence
of tasks in the project.
Resource Histogram
This is a graphical tool that contains bar or chart representing number of resources (usually
skilled staff) required over time for a project event (or phase). Resource Histogram is an
effective tool for staff planning and coordination.
Risk Management:
A computer code project may be laid low with an outsized sort of risk. so as to be ready to
consistently establish the necessary risks which could have an effect on a computer code project,
it’s necessary to reason risks into completely different categories. The project manager will then
examine the risks from every category square measure relevant to the project.
There square measure 3 main classes of risks that may have an effect on a computer code
project:
1. Project Risks:
Project risks concern varies sorts of monetary fund, schedule, personnel, resource, and
customer-related issues. a vital project risk is schedule slippage. Since computer code is
intangible, it’s terribly tough to observe and management a computer code project. it’s
terribly tough to manage one thing that can not be seen. For any producing project, like
producing cars, the project manager will see the merchandise taking form.
For example, see that the engine is fitted, at the moment the doors area unit fitted, the
automotive is obtaining painted, etc. so he will simply assess the progress of the work and
management it. The physical property of the merchandise being developed is a vital reason
why several computer codes comes to suffer from the danger of schedule slippage.
2. Technical Risks:
Technical risks concern potential style, implementation, interfacing, testing, and
maintenance issues. Technical risks conjointly embody ambiguous specifications,
incomplete specification, dynamic specification, 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 fund or personal commitments, etc.
Mitigating options include:
Accept: Acknowledge that a risk is impacting the project. Make an explicit decision to accept
the risk without any changes to the project. Project management approval is mandatory here.
Avoid: Adjust project scope, schedule, or constraints to minimize the effects of the risk.
Control: Take action to minimize the impact or reduce the intensification of the risk.
Transfer: Implement an organizational shift in accountability, responsibility, or authority to
other stakeholders that will accept the risk.
Continue Monitoring: Often suitable for low-impact risks, monitor the project environment for
potentially increasing impact of the risk.
Prepared by : URMILA MAHOR
TRINITY INSTITUTE OF TECHNOLOGY AND RESEARCH
BHOPAL
1. Direct Measurement:
In direct measurement the product, process or thing is measured directly using standard
scale.
2. Indirect Measurement:
In indirect measurement the quantity or quality to be measured is measured using related
parameter i.e. by use of reference.
Metrics:
A metrics is a measurement of the level that any impute belongs to a system product or process.
There are 4 functions related to software metrics:
1. Planning
2. Organizing
3. Controlling
4. Improving
Classification of Software Metrics:
There are 2 types of software metrics:
1. Product Metrics:
Product metrics are used to evaluate the state of the product, tracing risks and