0% found this document useful (0 votes)
2 views41 pages

Software Engineering and Project Management Module 4 & 5

Module 4 covers Software Project Management, detailing the importance of project management, characteristics of projects, and the project management life cycle. It discusses the differences between software projects and other engineering projects, contract management, and activities involved in software project management, including planning, execution, and testing. Additionally, it emphasizes the significance of setting objectives, stakeholder involvement, and the factors contributing to project success or failure.

Uploaded by

praveenm365
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views41 pages

Software Engineering and Project Management Module 4 & 5

Module 4 covers Software Project Management, detailing the importance of project management, characteristics of projects, and the project management life cycle. It discusses the differences between software projects and other engineering projects, contract management, and activities involved in software project management, including planning, execution, and testing. Additionally, it emphasizes the significance of setting objectives, stakeholder involvement, and the factors contributing to project success or failure.

Uploaded by

praveenm365
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Module 4

Software Project Management


Introduction to Project Management: Introduction, Project and Importance
of Project Management, Contract Management, Activities Covered by
Software Project Management, Plans, Methods and Methodologies, some
ways of categorizing Software Projects, Stakeholders, Setting Objectives,
Business Case, Project Success and Failure, Management and Management
Control, Project Management life cycle, Traditional versus Modern Project
Management Practices. Textbook 2: Chapter 1: 1.1 to 1.17
Project:
Some dictionary definitions:
“A specific plan or design”
“A planned undertaking”
“A large undertaking e.g. a public works scheme”
A project is a temporary endeavor undertaken to create a unique product, service or result.
A project is defined as a temporary organization that is created for the purpose of delivering
one or more business products according to an agreed business case.
Characteristics of Projects
➢ Non-routine tasks are involved
➢ Planning is required
➢ Specific objectives are to be met or specified product is to be created
➢ The project has a predetermined time span
➢ Work is carried out for someone other than yourself
➢ Work involves several specialisms
➢ People are formed into a temporary work group to carry out the task
➢ Work is carried out in several phases
➢ The resources that are available for use on the project are constrained
➢ The project is large or complex
Project Parameters
1. Scope: What is included?
What is not included?
2. Quality: Product, Process, People
3. Cost: Project cost
Customer budget
4. Time
5. Resources: People
Equipment
Physical facilities

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Software Projects V/S Other Engineering Projects
➢ Invisibility: When a physical artifact such as a bridge or road is being constructed
the progress being made can actually be seen.
With software, progress is not immediately visible.
➢ Complexity: Software products contain more complexity than other engineered
artefacts.
➢ Conformity: Software developers have to confirm to the requirements of human
clients.
➢ Flexibility: Software project has the characteristics of changing its code at any time
and can produce the expected result.
Software systems are particularly subject to change.
Contract management:
➢ Normally in the project the users and developers of new software work for the same
organization.
➢ However, increasingly organizations contract out ICT development to outside
developers.
➢ Here the client organization will often appoint a ‘Project Manager’ to supervise the
contract who will delegate many technically oriented decisions to the contractor.
➢ Thus, the project manager will not worry about estimating the effort needed to write
individual software components as long as the overall project is within budget and on
time.
Activities Covered by Software Project Management:
1. Feasibility Study:
➢ Is project technically feasible and worthwhile from a business point of view?
➢ Investigation to decide whether a prospective project is worth starting
2. Planning:
➢ Only done if project is feasible
➢ In short it is defined as ‘deciding what is to be done’?
➢ However, for a large project, we should not do all our detailed planning right at
the beginning
➢ More detailed planning of the later stages would be done as they approached.
3. Project Execution:
➢ This is the final stage of project, which meant to put the build system to work
or operate under the suitable environment.
➢ Implement the plan but it may be changed as we go along with the project.
➢ The execution of a project often contains design and implementation of sub
phases.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Software Development Life Cycle/ Stages of Project Life Cycle

Requirement Analysis:
➢ Requirements gathering which establishes what the potential users and their managers
require of the new system.
➢ It could be relating to a function that the system should do something.
Architecture Design:
➢ Diagrammatic representation of the project which we going to do
➢ The components of the new system that fulfill each requirement have to be identified.
➢ Existing components may be able to satisfy some requirements and new components
will have to be made.
➢ These components are not only software; they could be new hardware or work
processes. Although software developers are primarily concerned with software
components
Detailed Design:
➢ Each software component is made up of a number of software units which can be
separately coded and tested.
➢ The detailed design of these units are carried out separately.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Code and Test:
➢ refers to writing the code for each software unit. Initial testing to debug individual
software units would be carried out at this stage.
Integration:
➢ The components are tested together to see if they meet the overall requirements.
➢ It involves combining the different software components or testing the software
elements of the system in conjunction with the hardware platforms and user interaction.
Qualification Testing:
➢ The system, including the software components has to be tested carefully to ensure that
all the requirements have been fulfilled.
Installation:
➢ This is the process of making the new system operational.
➢ It includes activates such as setting up data, setting up system parameters, installing on
operational hardware platforms, user training etc.
Acceptance Support:
Resolves the problems of newly installed system, includes correction of any errors, implement
the agreed extensions and improvements.

Plans, Methods and Methodologies:

Plan:
➢ The controlling document for the software project.
➢ Specifies the technical and managerial approaches to develop software project.
Method:
➢ It is a procedure or process for attaining an object.
➢ Such as a systematic procedure, technique or mode of inquiry employed by or proper
to a particular discipline or a systematic plan followed in presenting material for
instruction.
➢ In other words, a method refers to a single action, tool, technique, process or way of
doing something.
Methodology:
➢ It is a body of methods, rules, and postulates employed by a discipline, a particular
procedure or set of procedures.
➢ Essentially a methodology is a collection of methods, practices, processes, techniques,
procedures and rules.
➢ Examples: Waterfall Methodology, Agile Methodology, Scrum Methodology, Kanban
Methodology, Scrum ban Methodology. etc.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Some Ways of Categorizing Software Projects:
It is important to distinguish between the main types of software project because what is
appropriate in one context might not be so in another.

1. Compulsory versus voluntary users: Point of Sales software has different


requirement and user than Games.

2. Information System versus Embedded Systems: Information Systems helps in


office day to day processes and embedded system are used to control machines. Examples of
Information system are A stock control system, transaction processing system, knowledge
management system, learning management system, database system etc. While Embedded
systems control Microwave oven, AC, Mp3 Player, Digital Camera, Washing Machine etc.

3. Outsourced Project: Most of the companies outsource parts of its work to other
companies. There can be several reasons to outsource project, e.g. company does not have
sufficient expertise, or project is to be completed in limited period in that case it can be
outsourced to company with their development centre.

Outsourced project fetches one-time revenue in good amount while product based company
project earns over period of time.

4. Object-Driven Development: Project also vary depending on the aim of the project.
If aim of the project is to create product, then client has the responsibility for justifying the
product. In that case Service level agreements are important as organisations contract out
functions to external service suppliers.

Stakeholders: These are the people who have a stake or interest in the project.
Stakeholders can be categorised as:

1. Internal to project team: These will be under the direct managerial control of the project
leader.

2. External to project team but within the same organization: For example, the project
leader might need the assistance of the users to carry out systems and testing.

3. External to both project team and the organisation: External stakeholders may be
customers (or users) who will benefit from the system that the project implements. They may
be contractors who will carry out work for the project.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Setting Objectives:

➢ The objectives should define what the project team must achieve for project success.
➢ Although, different stakeholders have different motivations, the project objectives
identify the shared intensions for the project.
➢ The objectives focus on the desired outcomes of the project rather than the tasks within
it.
➢ Informally the objectives could be written as a set of statements following the opening
words ‘the project will be a success if…’
➢ Thus one statement in a set of objectives might be ‘customers can order our products
online’ rather than ‘to build an e-commerce website’.
➢ There may be several stakeholders, including users in different business areas, who
might have some claim to project ownership.
➢ In such a case, a project authority needs to be explicitly identified with overall authority
over the project.
➢ The authority is a project steering committee with overall responsibility for setting,
monitoring and modifying the objects.
➢ The project manager runs the project on a day-to-day basis, but regularly reports to the
steering committee.

Sub-objectives and goals:

The mnemonic SMART is sometimes used to describe well defined objectives.

S-Specific:

➢ These are concrete and well defined.


➢ Ambiguous aspirations such as ‘to improve customer relations’ are unsatisfactory.
➢ Objectives should be defined so that it is obvious to all whether the project has been
successful.

M-Measurable:

➢ There should be a measures of effectiveness which tell us how successful the project
has been.
➢ For example: ‘to reduce customer complaints’ would be more satisfactory than ‘to
improve customer relations’
➢ In some cases, be an answer to simple yes/no question. Ex: did we install new software
by July 1?

A-Achievable:

➢ It must be within the power of the individual or group to achieve the objectives.

R-Relevant:

➢ The objective must be relevant to the true purpose of the project.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


T-Time constrained:

➢ There should be a defined point in time by which the objective should have been
achieved.

The Business Case:

➢ It is a document that allows decision-makers to determine whether the project is worth


the investment.
➢ It presents a current business problem and suggests ways to solve it by implementing a
certain initiative.
➢ It will quantify the project’s cost and benefits.
➢ The benefits will be affected by the completion date. The sooner the project is
completed; the sooner the benefits can be experienced.

Example: A new web-based application might allow customers from all over the world to
order a firm’s products via the internet, increasing sales and thus increasing revenue and
profits.

Any project plan must ensure that the business case is kept intact(un-touched).

➢ That development costs are not allowed to rise to a level which threatens to exceed
the value of benefits.
➢ That the features of the system are not reduced to a level where the expected benefits
cannot be realised.
➢ That the delivery date is not delayed so that there is an unaccepted loss of benefits.

Project Success and Failure:

Why Project is Success or Failure?

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Project Success:

➢ Achievement of something desired, planned or attempted.


➢ It is also said that success is an event that accomplishes its intended purpose.

Criteria of a successful project:

• Clearly defined goals


• Sufficient resource allocation
• Adequate communication channels.
• Senior management support
• Client consultation.
• Technical tasks.
• Competent project manager and team members.

Factors that increase Success:

➢ Top Management Support: Lack of executive support can lead project failure so
Positive Executive Support positively influence project outcome.
➢ Client Involvement
➢ Experienced Project Manager
➢ Setting clear objectives
➢ Defined scope

To summarize Success Criteria:

➢ You must define what success looks like for your project or else you won’t know if you
have achieved it.
➢ Document the success criteria and get everyone to agree to them.
➢ Use continuous measurements where possible.
➢ Baseline today’s performance so you know where you are starting from
➢ Track as appropriate and report on your progress

Project Failure: A project that fails to perform a duty or an expected action, on-occurrence
or non-performance.

Causes for Project Failures:

➢ Lack of senior Management Support: It happens when ‘Junior’ or Candidate PMs


are allotted into Project and left unattended.
➢ Poor Communication: It causes delay or even failure since team members do not have
the information they needed.
➢ Inadequate resources: Some tasks take longer than expected to complete, deadlines
and milestones get missed.
➢ No One is in control: Not even the project manager, who is assigned to the project but
not given the free hand to manage the project.
➢ Poor definition of scope: Project changes from its original objectives and goals. This
can occur due to additional requirement from the client.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Poor Risk Management: The project planning stages are not properly planned.
➢ Incompetent project management skill: Procedures and policies are not adhered to
from inception.

Management: defines all activities and tasks undertaken by one or more persons for the
purpose of planning and controlling the activities of others in order to achieve objectives or
completes an activity that could not be achieved by others acting independently.
Management Activities:
➢ Planning: deciding what is to be done
➢ Organizing: Making the arrangements
➢ Staffing: Selecting the right people for the job
➢ Directing: Giving instructions
➢ Monitoring: Checking on the progress
➢ Controlling: Taking actions to remedy hold-ups
➢ Innovating: Come up with solution when any problems emerge
➢ Representing: Liaising with clients, users, developers and other stakeholders.

Management Control:
It involves setting objectives for a system and then monitoring the performance of the
system.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Data Collection will be done by local manager.
➢ Data processing will be needed to transform raw data collected into useful
information.
➢ To achieve the objectives, appropriate procedures have to be followed, this can be
done by making decision plans.
➢ If there are any issues, solution has to be found out with the help of modelling.
➢ Having implemented the decision, the situation needs to be kept under review by
collecting and processing further progress details.
➢ The project plan is dynamic and it will need constant adjustment during the project
execution, hence action has to be performed continuously to make a good plan.

Project Management Process Life Cycle:

1. Project Initiation:

This is the starting period of your project when you should demonstrate the undertaking has
value and is feasible. This stage incorporates making a business case, to legitimize the
requirement for the undertaking, and an achievable study to show that it very well may be
executed within a sensible time and cost. This is likewise an opportunity to make a task
contract, a record that sets out precisely the thing the venture will convey.
➢ Documentation: Each project has documentation that should be finished before the
undertaking can start vigorously.
➢ Undertaking a feasibility study: Identify the essential issue your task will tackle
and whether your venture will convey an answer for that issue
➢ Recognizing extension: Define the profundity and broadness of the undertaking.
➢ Assemble of the team: You need resources to execute any project. Before you can
make a project schedule, you need to create a project team with the skill sets and
experience that the project demands.
➢ Recognizing expectations: Define the product or administration to provide.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Recognizing project partners: Figure out whom the venture influences and what
their requirements might be.
➢ Building up a business case: Use the above standards to think about the possible
expenses and advantages of the task to decide whether it pushes ahead.
➢ Building up an explanation of work: Document the undertaking’s goals,
extensions, and expectations that you have distinguished already as a working
understanding between the venture proprietor and those chipping away at the task.
2. Project Planning:

➢ In this phase, the project manager carries out several processes and creates the
following documents.

➢ Project Plan: This identifies the project tasks, and a schedule for the project tasks that
assigns project resources and time frames to the tasks.
➢ Resource Plan: It lists the resources, manpower and equipment that would be required
to execute the project
➢ Financial Plan: It documents the plan for manpower, equipment and other costs.
➢ Quality Plan: Plan of quality targets and control plans are included in this document.
➢ Risk Plan: Lists the identification of the potential risks, their prioritization and a plan
for the actions that would be taken to contain the different risks.

3. Project Execution:

The third stage is project execution, which is the place where most of the work occurs. This
is the stage where you complete the task exercises and achievements to create the
expectations for the customer’s or partner’s fulfilment by following the arrangement made in
the past stage. Enroute, the undertaking administrator will redistribute assets depending on
the situation to keep the group working. They will likewise attempt to recognize and relieve
hazards, manage issues, and fuse any changes.
➢ Assignment Management: To ensure an errand is done well, it must be dealt with
each progression in transit, from wanting to consummation. This includes observing
and answering to ensure the assignment is being executed within the period of the
arranged timetable. Venture directors and colleagues need to deal with their
undertakings. Assignment records and Kanban sheets are two mainstream apparatuses
for the task of the board.
➢ Timetable Management: Whenever you’ve arranged a timetable, you need to
screen it through the task execution to ensure it stays on target. A viable Schedule for
the executives implies more prominent efficiency. You’ve to define objectives, needs,
and cut-off times, presently as the undertaking errands are being executed, you must
ensure those dates are coordinated with your timetable.
➢ Cost Management: Similarly, as you arranged your timetable, you arranged a
financial plan. Yet, that doesn’t mean your task is finished. As anybody with a wallet
knows, cash tends to vanish. You need to control the venture expenses and keep them
inside the concurred spending plan.
➢ Quality Management: You can create your expectations on schedule and inside the
financial plan, yet if the quality is inadequate, the undertaking isn’t effective. In this
way, you need to ensure that you’re meeting whatever quality prerequisites have been
set by your partners.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Change Management: Extensively, changing the board is an interaction for
improving business measures, spending designation, and activities in an association.
In any case, when applied to protect the board, the centre is limited to the actual
undertaking and controlling changes in scope during the execution stage.
➢ Acquirement Management: Few is the undertaking that should be possible without
buying, leasing, or agreement with outside assets. This interaction is called
acquisition. Dealing with the different associations with merchants and providers is
what is the issue here.

4. Project Closure:

The fourth stage is project conclusion, in which the last expectations are introduced to the
customer or partner. When affirmed, assets are delivered, documentation is finished and
everything is approved. Now the venture supervisor and group can lead a posthumous to
assess the exercises gained from the project and gain from the experience. Contingent upon
the venture, the conclusion stage may likewise incorporate giving over control to an alternate
group, for example, the tasks supervisory crew. In this situation, it is the work of the venture
supervisor to guarantee that such a change happens easily.
➢ Move Deliverables: Your venture is tied in with creating a deliverable. That
denotes the finish of the venture execution and the start of the task close.
Subsequently, ensure you have all expectations recognized, total, and given off to the
legitimate party.
➢ Affirm Completion: An undertaking isn’t over until everybody sings. You need to
get affirmation from all partners, customers, and even the group. That implies sign-
offs so that there is no disarray and a minute ago change demands. Those close-down
archives can be added to ProjectManager.com, either in the segment of the document
or joined to the applicable assignment. Presently you have an advanced paper trail to
settle on sure that everybody is in the arrangement.
➢ Audit Documentation: Typically, the venture supervisor is answerable for going
over all agreements and documentation to ensure that all have been great and
approved. Now and then in bigger associations, there is a devoted administrator for
this work. Whoever does it, the significance of ensuring each one is spotted and t
crossed couldn’t possibly be more significant.
➢ Delivery Resources: Before a task is truly done, you need to authoritatively deliver
the group, any contractors, rentals, and so forth Have an interaction set up to advise
and ensure everybody is settled up.
Traditional versus Modern Project Management Practices:
1. Planning Incremental Delivery:
➢ In olden days’ projects were planned with sufficient details much before the
actual project execution started.
➢ After the project initiation, monitoring and control activities work is carried
out to ensure that project execution proceeded as per plan.
➢ The modern day projects are required to be completed in much shorter
duration and rapid application development is used where the delivery of the
project is done in different stages.
2. Quality Management:
➢ In olden days’ customer used to adjust with the quality of the product but the
awareness of the quality has now increased significantly.
➢ Hence the project manager has the responsibility to monitor the progress as
well as the quality of the project.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


3. Change Management:
➢ Earlier when the requirements were finalized by the customer any changes to
the requirements were rarely entertained
➢ whereas now the customer suggestions are actively entertained and
incorporated within the development process.
4. Release Management:
➢ It concerns planning, prioritizing, and controlling the different releases of a
software.
➢ For almost every software, multiple release are made during its life cycle.
➢ Starting with an initial release, releases are made each time the code changes.
➢ Modern development processes such as the agile development processes
advocate frequent and regular releases of the software to be made to the
customer during the software development.
5. Risk Management:
➢ In modern software project management practices, effective risk management
is considered very important to the success of a project.
➢ A risk is negative situation that may arise as the progresses and may threaten
the success of the project.
➢ This involves identification of risks, assessment of the impacts of various
risks, prioritization of risks and preparation of risk-containment plans.

Project Evaluation
➢ It is a process of measuring the success of any project.
➢ Cost, scope, Return On Investment (ROI), risks etc. It is carried at Three
stages:
1.Pre-project evaluation: Covers project planning, gains confidence of all stakeholders,
important for attracting investments.
2.On-going project evaluation: Project monitoring is done when project is running so that
project proceeds as per set plans.
3.Post-project evaluation: It finds out what worked? And what went wrong?

Importance of Project Evaluation


➢ Improves project performance
➢ Enables proper utilization of resources
➢ Revenue and profits also improve
➢ Enables proper budget allocation
➢ Reduces risks
➢ Areas of improvement are identified
➢ Improves team performance

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Improves confidence of all stakeholders

Evaluation of Individual Projects


Technical Assessment:
➢ It consists of evaluating whether the required functionality can be achieved with
current affordable technologies, Organizational policy, aimed at providing a
consistent hardware/software infrastructure, is likely to limit the technical solutions
considered.
➢ The cost of the technology adopted must be taken into account in the cost-benefit
analysis.
Cost-benefit analysis:
Even where the estimated benefits will exceed the estimated costs, it is often necessary to
decide if the proposed project is the best of several options.
Cost-benefit analysis comprises two steps:
1. Identifying all of the costs and benefits of carrying out the project and operating the
delivered application: These includes the development costs, the operating costs, and the
benefits expected from the new system.
✓ Where the proposed system is a replacement, these estimates should reflect the change
in costs and benefits due to the new system.
✓ A new sales order processing system, for example, could only claim to benefit an
organization by the increase in sales due to the use of new system.
2.Expressing costs and benefits in common units: Must express each cost and benefits.
The net benefit which is the difference between the two in money.
Most direct costs are easy to quantify in monetary terms and can be categorized as:
❖ Development Costs: Including development staff costs.
❖ Setup Costs: Consist of the costs of putting the system into place, mainly of any new
hardware but also including the costs of file conversion, recruitment and staff training.
❖ Operational Costs: It relating to the system after installation.

Cash flow forecasting:

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Estimating the overall costs and benefits of a project is producing a cash flow forecast which
indicates when expenditure and income will take place.

➢ Need to spend money, such as staff wages, during a project’s development.


➢ Such expenditure cannot wait until income is received.
➢ Need to know that fund this development expenditure either from the company’s own
resources or by borrowing.
➢ A forecast is needed of when expenditure, such as payment of salaries, and any
income are to be expected.
➢ Accurate cash flow forecasting is difficult, as it is done early in the project’s life cycle
(at least before any expenditure is committed) and many items to be estimated
(particularly the benefits of using software) might be some years in the future.

Cost-benefit Evaluation Techniques or Methods of Project Evaluation


1.Net Profit
➢ It is the difference between the total costs and the total income over the life of the
project.
2.Payback period
➢ It is the time taken to break even or payback the initial investment.
➢ Normally, the project with the shortest payback period will be chosen on the basis
that an organization will wish to minimize the time that a project is ‘in debt’.
3.Return On Investment (ROI):
➢ It is also known as Accounting Rate of Return (ARR), provides a way of comparing
the net profitability to the investment required.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ High ROI means good investment opportunity.
4. Net Present Value Method (NPV): It calculates difference between cash inflows and cash
outflows.

➢ r-> Discount rate


➢ Positive NPV indicates that project will generate more revenue.
Internal Rate of Return (IRR):
➢ It is calculated as that percentage discount rate that would reduce an NPV of zero.
➢ It is most easily calculated using a spreadsheet or other computer program that
provides functions for calculating the IRR.

Risk Evaluation
➢ Project Risk: Which prevents the project from being completed successfully.
➢ Business Risk: Which prevents the project from being profitable.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


1.Risk Identification and Ranking:
Approach: Constructing project risk matrix utilizing a checklist of possible risks and classify
according to its relative importance and likelihood.
The table illustrate a basic project risk matrix listing some of the business risks for a project,
with their importance and likelihood classified as high (H), medium(M),low(L) or
exceedingly unlikely(_)
Project risk matrix for an e-commerce application:

The project risk matrix may be used as a way of evaluating projects (those with high risks
being less favored) or as a means of identifying and ranking the risks for a specific project.

2. Risk and Net Present Value:


❖ If project is relatively risks, then use higher discount rate to calculate NPV
❖ Reasonably safe project: Additional 2% risk premium
❖ Fairly risky project: additional 5% risk premium
❖ Risks are generally categorized using scoring method and risks premiums can be
designated for each category some means of considering risk.

3. Cost Benefit Analysis:


➢ It is required to consider each possible outcome
➢ Estimate the probability of its occurring and the corresponding value of the outcome
➢ Instead of single cash flow, consider set of cash flow forecasts
➢ Each with an associated probability of occurring
➢ The value of the project is then obtained by summing the cost or benefit for each
possible outcome weighted by its corresponding probability
➢ A payroll project’s cost-benefit analysis by company X

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


4. Risk Profile Analysis:
Approach: Attempts to overcome some of the objections to cost-benefit averaging is the
construction of risk profiles using sensitivity analysis.
This involves varying each of the parameters that affect the project’s cost or benefit to
ascertain how sensitive the project’s profitability is to each factor.
For example, vary one of our original estimates by plus or minus 5% and recalculate the
expected costs and benefits for the project.
By repeating this exercise for each of our estimates in turn we can evaluate the sensitivity of
the project to each factor.
By studying the results of a sensitivity analysis, we can identify those factors that are most
important to the success of the project.
We then need to decide whether we can exercise greater control over them or otherwise
mitigate their effects.
If neither is the case, then we must live with the risk or abandon the project.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


5. Using Decision Trees:

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Module- 5
Software Quality
Introduction, the place of software quality in project planning, Importance
of software quality, defining software quality, quality models, ISO 9126,
product and process metrics, product versus process quality management,
Quality Management systems, process capability models, techniques to
enhance software quality, testing, Software reliability, quality plans.
Textbook 2: Chapter 13: (13.1 to 13.14)

Introduction:
➢ The quality of software can be defined as the ability of the software to function as per
user requirement.
➢ When it comes to software products it must satisfy all the functionalities written in the
SRS document.

Software Quality Includes:


➢ Good Design: Good visualization design to attract users.
➢ Durability: The software work without any issue for a long period of time.
➢ Consistency: Software perform consistently different platform and other devices.
➢ Maintainability: Capture and fix the bugs quickly. New features are added easily.
➢ Value for money: Customer and companies who make this gap should feel that the
money spent on this application has not to waste.

Software Quality Dimensions/Parameters:


➢ Maintainability: The ease with which software can be modified (adding features,
enhancing features, fixing bugs etc.)
➢ Portability: The ability of software to be transferred easily from one location to
another.
➢ Functionality: The ability of software to carry out the functions as per specified or
desired.
➢ Performance: The speed at which software performs under a particular load.
➢ Compatibility: The suitability of software for use in different environments like
different devices, operating systems and browsers.
➢ Usability: The degree of software’s ease of use
➢ Reliability: The ability of software to perform a required function under stated
conditions without any errors.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Security: The extent of protection of software against unauthorized access, invasion of
privacy, theft, loss of data etc. Example: OTP

Factors affect On Software Quality:


➢ Product Operation Factors: Correctness, reliability, Efficiency, Integrity and
Usability.
➢ Product Revision Factors: Maintainability, Flexibility, Testability.
➢ Product Transition Factors: Portability, Reusability and Interoperability.

Place of Software Quality in Project Management:


Quality will be of concern at all stages of project planning and execution, but will be of
particular interest at the following points in the step wise framework.

1.Identify Project Scope and Objective: Some objectives could relate to the qualities of the
application to be delivered.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


2. Identify Project Infrastructure: Identify the installation standard and procedures. Some of
these almost certainly be about the quality.
3. Analyze Project Characteristics: To identify the other qualities based on the requirements.
4. Identify the products and activities of the project: It is at this point the entry, exit and
process requirements are identified for each activity.
5. Review and Publicize the Plan: At this stage the overall quality aspects of the project plan
are reviewed.

Importance of Software Quality:


We would expect quality to be concern off all procedures of goods and services.
Increasing criticality of software: The end user of a software generally anxious about the
quality of software especially about the reliability.
They are concern about the safety because of their dependency on the software system such as
aircraft control system are more safety critical systems.
The intangibility of software: This make it difficult to know that a particular task in project
has been completed satisfactory.
The results of these tasks can be made tangible by demanding that the developer produce
deliverables that can be examined for the quality.
Accumulating errors during software development: As computer systems developed in
made up of a number of steps where the output from one step is the input to the next, the error
in the earlier deliverables will be added to those in the later steps leading to an accumulating
determined effects. In general, the later in a project that an error is found the more expensive
it will be to fix.
In addition, because the number of errors in the system is unknown, the debugging phases of a
project are particularly difficult to control.

Defining the Software Quality:


➢ Quality is a functional specification describing what the system is to do?
➢ A quality specification concerned with how well the functions are to operate.
➢ A resource specification concerned with how much in to be spent on the system attempt
to identify specific product qualities that are appropriate to software.

Factors affect On Software Quality:


1.Product Operation Qualities
2.Products Revision Qualities
3.Product Transition Qualities.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


1. Product Operation Qualities:
1.1 Correctness: The extent to which a program satisfies its specification and fulfill the
user objectives.
1.2 Reliability: The extent to which a program can be expected to perform its intended
function with required precision.
1.3 Efficiency: The amounts of computer resource required by the software
1.4 Integrity: The extent to which access to software or data by unauthorized persons can
be controlled.
1.5 Usability: The effort required to learn, operate, prepare input and interprets output.

2. Products Revision Qualities:


2.1 Maintainability: The effort required to locate and fix the error in an operational
program.
2.2 testability: The effort required to test a program to ensure it performs its intended
function.
2.3 Flexibility: The effort required to modify an operational program.

3. Product Transition Qualities:


3.1 Portability: The efforts required to transfer a program from on hardware configuration
and or software system environment to another.
3.2 Reusability: The extent to which a program can be used in other applications.
3.3 Interoperability: The efforts required to couple one system to another.

Software Quality Models:


➢ Software products are measured using standardized models, Nowadays, new
applications are in planning and development on a daily basis.
➢ It is therefore essential to have a method that proves the product built at least meets
with standards expected.
➢ The models used can have different criteria for evaluating software quality. Some might
focus upon external aspects such as functionality, whilst others may evaluate internal
aspects like code quality.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


MeCall’ Model:
MeCall 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 port it to different platforms.
These three high level quality attributes are defined based on the following attributes of the
software:
1.Correctness: The extent to which a software product satisfies its specifications.
2.Reliability: The probability of the software product working satisfactorily over a given
duration.
3.Efficiency: The amount of computing resources required to perform the required functions.
4.Integrity: The extent to which the data of the software product remains valid.
5.Usability: The effort required to operate the software product.
6.Maintainability: The ease with each it is possible to locate and fix bugs in the software
product.
7.Flexibility: The effort required to adapt the software product to changing the requirements.
8.Testability: the effort required to test a software product to ensure that it performs its
intended function.
9.Portability: The effort required to transfer the software product from one hardware or
software system environment to another.
10.Resusabilty: The extent to which a software can be reused in other applications.
11.Interoperability: The effort required to integrate the software with other software.

Dromey’s Model:
The Dromey proposed that software product quality depends on four major high level
properties of the software: Correctness, internal characteristics, contextual characteristics and
certain descriptive properties. Each of these high level properties of a software product, in turn
depends on several lower level quality attributes of the software, Dromey’s hierarchical quality
model is show in figure.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Boehm’s Model:
Boehm proposed that the quantity of a software can be defined based on three high-level
characteristics that are important for the users of the software. 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/
➢ Portability: How difficult would it be to make the software in a changed environment?
As compared to McCall’s and Dromey’s quality model, Boehm’s quality model is based on a
wider range of software attributes and with greater focus on software maintainability. Boehm’s
hierarchical quality model is shown in figure.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


ISO 9126:
ISO 9126 standard was published in 1991 to tackle the question of the definition of software
quality

Characteristics of ISO 9126:


1.Functionality: Which covers the functions that software product provides to satisfy user
needs.
2.Reliability: Which relates to the capability of the software to maintain its level of
performance.
3.Usability: Efforts needed to use a software.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


4.Efficiency: Physical resources used when a software is executed.
5.Maintainability: Effort needed to the make changes to the software.
6.Portability: Availability of software to be transferred to a different environment.

Characteristics Sub-Characteristics
Functionality Suitability, Accuracy, Security,
Functionality Compliance, Interoperability
Reliability Maturity, Fault tolerance, reliability,
Compliance ,recoverability
Usability Understandability, Operability,
Usability compliance, Learnability,
Attractiveness
Efficiency Time behavior, resource utilization,
Efficiency compliance
Maintainability Analyzability, Stability, Changeability,
Testability, Maintainability compliance
Portability Adaptability, install ability, Replace ability,
Coexistence,
Portability Compliance

1.Functionality: Which covers the functions that software product provides to satisfy user
needs.
Compliance: Refers to degree to which the software adheres to application-related standards or
legal agreements. Typically, these could be auditing requirements.
Interoperability: refers to ability software to interact with others.
2.Reliability: Which relates to the capability of the software to maintain its level of
performance.
Maturity: refers to frequency of failures due to fault in software more identification of fault
more chances to remove them.
Recoverability: describes the control of access to a system.
3.Usability: Efforts needed to use a software.
Understandability: It 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 view actually
makes it less clear.
Learnability: It is 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.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Attractiveness: Where the users are not compelled to use a particular software product, as in
the case of games and other entertainment products.
4.Efficiency: Physical resources used when a software is executed.
5.Maintainability: Effort needed to the make changes to the software.
Analyzability: It is the quality that ease with which the cause of failure can be determined.
Changeability: It is the quality that supplier the suppliers of the software are always changing
it.
Stability: The software never changes; it means that there is a low risk of a modification to the
software having unexpected effects.
6.Portability: Availability of software to be transferred to a different environment.
Replace ability: refers to the factors that give ‘upward compatibility’ between old software
components and the new ones.
Coexistence: Refers to the ability of the software to share resources with other software
components.

Product and Process Metrics:


Product Metrics:
➢ Helps to measure the characteristics of a product being developed.
➢ Example: the LOC and function point metrics are used to measure size, the PM (Person-
Month) metric is used to measure the effort required to develop a product, and the time
required to develop the product is measured in months.

Process Metrics:
➢ Helps to measure how a development process is performing.
➢ Example: review effectiveness, average number of defects found per hour of inspection,
average defect correction time, productivity, average number of failures detected during
testing per LOC, and the number of latent defects per line of code in the developed
product.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Product Versus Process Quality Management:
➢ It is easier to measure product qualities in a completed computer application rather than
during its development.
➢ Trying to use the attributes of intermediate products created at earlier stages to predict
the quality of the final application is difficult.
➢ An alternative approach is to scrutinize the quality of the processes used to develop the
software product.
➢ The system development process is made up of a number of activities that are linked
together so that the output from one activity is the input to next step.as shown in the
fig.
➢ 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 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 specification found in testing will mean rework at all the stages between
specification and testing.
➢ Errors should therefore be eradicated by careful examination of the products of each
stage before they are passed on the next.
The following process requirement should be specified for each activity.
➢ 1.Entry Requirement: Which has to be in place before an activity can start.
➢ Example, a comprehensive set of test data and expected results be prepared and
approved before program testing can commence.
➢ 2.Implementation Requirement: Which define how the process is to be conducted.
➢ In testing phase, for example, whenever an error is found and corrected, all test runs
must be repeated, even those that have previously been found to run correctly.
➢ 3.Exit requirement: Which has to be fulfilled before an activity is deemed to have been
completed.
➢ For example, for testing phase to be recognized as being completed, all tests will have
to have been run successfully with no outstanding errors.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Quality Management Systems:
➢ Various national and international standards bodies including the British Standard
Institution (BSI) in United Kingdom have become involved in the creation of standards
or quality management system.
➢ The British standard is now called BS EN ISO 9001:1994.
➢ Standards such as the ISO 9000 such as the ISO 9000 series aim to ensure that a
monitoring and control system to check quality is in place.

External Standard (BS EN ISO 9001):


In order to Quality Management System to meet the standard it has to confirm certain
requirement which are summarized below.
➢ The management must define and document the policy concerning quality and must
ensure that this policy is communicated to all levels of the organization.
➢ All quality control procedures must be documented.
➢ All contract to supply, goods or services must contain mutually agreed requirements
that the developer is capable for delivering.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ There must be procedures to control and verify the design of the system to be supplied
so that it meets the requirements agreed with customers.
➢ There must be procedures to approve design and other documentation.
➢ Where components of the system to be supplied to the clients are obtained from third
parties, there must be procedures to ensure check and maintain the quality of these
components.
➢ Individual product must be identifiable as should their components.
➢ The process by which the final product is created must be planned and monitored.
➢ Inspection and testing must take place during the development phase at its completion
and before delivery. Test and inspection must also be carried out on the component
obtained from the third parties.
➢ The equipment used in the production process itself must be properly controlled with
respect to the quality.
➢ The testing status of all components and system must be clearly recorded at all times.
➢ Care must be taken to ensure that items that are known to be defective or not in
carelessly used.
➢ When a defect is detected, measures must be undertaken to remove the defective part
and to ensure that the defect does not occur again.
➢ Satisfactory procedures must be in place to details with correct handling storage,
packaging and delivery of the products.
➢ Sufficient records must be maintained to demonstrate that the quality system is working
satisfactory.
➢ The software quality management system must be audited on a regular basis.
➢ Servicing and support activities must be subject to the quality management system.
➢ The developers must establish appropriate statistical techniques to verify the
acceptability of the final product.

TickIT:
The ISO 9000 standard refer to Quality Management System is general but in the UK, The
Department OF Trade and Industry (DTI) have formulated the TickIT standard which give an
interpretation of these standards and includes the following requirements.
➢ A detailed development plan is required before development is embarked upon.
➢ Change control procedures should be used at all stages of development
➢ Design reviews must be taken place.
➢ The suitability of the design methodology must have reviewed.
➢ Progress must be reviewed on a systematic basis.
➢ It must be possible to trace back the features of the software design to specification and
requirements.
➢ Design must be properly documented.
➢ Suitable test plans, specifications and records must be produced.
➢ A code of practice must be in place which governs the way the software is developed.
➢ The code of practice must include the requirements that the design must be broken
down into levels each with identifiable input and outputs.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Software must be organized into modules.
➢ A module must normally perform a single function or a set of related functions.
➢ A plan language description must exist for each module.

Process Capability Models:


➢ Rather than just checking that a system is in place to detect faults, a customer might
wish to check that a supplier is using a software development methods and tools
that are like to produce good quality software.

Capability Maturity Model (CMM):


➢ It has developed at the Software Engineering Institute (SEI), a research and
development center.
➢ It is not a software process model; it is used as a benchmark to measure the maturity
of an organization’s software process.
➢ The model describes a Five-level evolutionary path of increasingly organized and
systematically more mature processes.

Level 1 - Initial: Work is performed informally


➢ A software development organization at this level is characterized by ad hoc
activities (the organization is not planned in advance.)
➢ Processes are unpredictable, poorly controlled and reactive.

Level 2 – Repeatable: Work is planned and tracked


➢ This level of Software Development Organization has a basic and consistent project
management processes to track cost, schedule and functionality

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ The process is in place to repeat the earlier successes on projects with similar
applications.
➢ Processes are characterized for projects and is often reactive.

Level 3 – Defined: Work is well defined


➢ At this level the software process for management and engineering activities are
defined and documented.
➢ The organization have the way in which each task in the software development
life cycle is to be done.
➢ Processes are characterized for organization and are proactive

Level 4 – Managed: Work is quantitatively controlled


➢ The product and processes involved in software development are subject to
measurement and control.
➢ Software Quality Management: Management can effectively control the
software development effort using precise measurements. At this level, the
organization set a quantitative quality goals for both software process and
maintenance.
➢ Quantitative Process Management: At this level, the performance of
processes is controlled using statistical and other quantitative techniques and is
quantitatively predictable.

Level 5- Optimizing: Work is based on continuous improvement


➢ This level is focus on continuously improving the process performance. The key
features are: Process Change Management, Technology Change Management,
Defect Prevention
➢ Improvement in procedure are designed and implemented using data gather
from the measurement process.

Techniques to Help Enhance Software Quality:


Three main themes emerge:
1.Increasing Visibility
2.Procedural Structure
3.Checking Intermediate Stage

1.Increasing Visibility: A landmark in this movement towards a focus on software


quality was Gerald Weinberg’s advocacy of ‘egoless programming’. Weinberg
encouraged the simple practice of programmer looking at each other’s code.

2.Procedural Structure: At first, programmers were left to get on with writing


programs as best they could, Over the years there has been the growth of methodologies
where every process in the software development cycle has carefully laid down steps.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


3.Checking Intermediate Stages: It seem inherent in human nature to push
forward quickly with the development of any engineered object until a working model,
however imperfect has been produced that can then be debugged. One of the element
of the move towards quality practices has been put emphasis on checking the
correctness of work at its earlier conceptual stages.

Inspection:
When a piece of work is completed the copies of the work are distributed to co-worker
to identifies the defects. The involved colleagues must the experience in the similar area
such as a programmer always inspect the work of programmers.
➢ It is very effective way of removing superficial error from a piece of work.
➢ It motivates the programmer to produce a better structure and self-explanatory
program because they know that other peoples will criticizing it.
➢ It helps spread good programming practice because the participants discuss the
advantages and dis-advantages of specific pieces of code.
➢ It can enhance team spirit.

General Principal behind the Fagan Method:


➢ Inspections are carried out on all major deliverables.
➢ All types of defects are noted-not just logic or function errors
➢ Inspection can be carried out using a predefined set of steps.
➢ Inspection meeting do not lost 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.

Structured programming and clean-room software development:


➢ The way to deal with complex system, it was contended to break them down
into components that were of a size for the human mind to comprehend.
➢ For a large system there would be a hierarchy of components and sub-
components.
➢ For this decomposition to work properly each component would have to be self-
contained with only one entry and exit point.
➢ The idea of structured programming has been further developed into the ideas
of clean room software development by the people.
➢ A specification team, which obtains the user requirements and also a usage
profile estimating the volume of use for each feature in the system.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ A development team, which develop the code but does no machine testing of
the program code produced.
➢ A system is produced in increments each of which should be capable of actual
operation by the end user.
➢ The development team does no debugging instead all software has to be verified
by them using mathematical techniques.

Formal Methods:
➢ In the clean room development, the sue of mathematical verification techniques
was mentioned.
➢ These techniques used un-ambiguous.
➢ Mathematically-based, specification is used to define pre-conditions and post
conditions for each procedure.
➢ Pre-conditions define the allowable states, before processing or the various
items of data that a procedure is to work upon.
➢ The post-conditions define the state of these data items after the procedure has
been executed.

Software Quality Circles:


➢ Much interest has been shown in Japanese software quality practices.
➢ The aim of Japanese approach is to examine and modify the activities in the
development process in order to reduce the number of errors that they have in
their end-products.
➢ Testing and Fagan inspections can assist the removal of errors-but the same
types of errors could occur repeatedly in successive products created by a
faculty process. By uncovering the source of errors, this repetition can be
eliminated.
➢ Staffs are involved in the identification of sources of errors through the
formation of quality circle. These can be set up in all departments of an
organization, including those producing software where they are known as
Software Quality Circles(SWQC).
➢ A quality circle is a group of four to ten volunteers working in the same area
who meet for, say an hour a week to identify, analyze and solve their work-
related problems.
➢ One of their number is the group leader and there could be an outsider, a
facilitator, who can advise on procedural matters. In order to make the quality
circle work effectively, training needs to be given.
➢ Together a quality group select a pressing problem that affects their work.
➢ They identify what they think are the causes of the problem and decide on a
course of action to remove these causes.
➢ Often, because of resource or possible organizational constraints, they will have
to present their ideas to management to obtain approval before implementing
the process improvement.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ The project team could be assembled and spend some time producing a list of
the most common types of error that occur in requirements specifications.
➢ This is then used to identify measures which can reduce the occurrence of each
type of error.
➢ Test cases be produced at the same time as the requirements specification and
that these test cases should be dry run at an inspection.
➢ The result is a checklist for use when conducting inspections of requirement
specifications.

Testing:
➢ The final judgement of the quality of a software application is whether it
actually works correctly when executed. This looks at aspects of the planning
and management of testing.
➢ This estimate of the work still to be done depends on an unknown, the number
of bugs left in the code. We will briefly discuss how we can deal with this
problem.
➢ It is the process used to identify the correctness, completeness and quality of
developed software.
➢ It is the process of executing a program/application under positive and negative
conditions by manual or automated means. It checks for the Specification,
Functionality, Performance.

Objectives:
➢ Uncover as many as errors(bugs) as possible in a given product
➢ Demonstrate a given software product matching its requirement specifications.
➢ Validate the quality of a software testing using the minimum cost and efforts.
➢ Generate high quality test cases, perform effective tests and issue correct and
helpful problem reports.

Error, Bug, Fault and Failure:


Error: It is a human action that produces the incorrect result which produces a fault.
Bug: The presence of error at the time of execution of the software.
Fault: State of software caused by an error.
Failure: deviation of the software from its expected result.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ The V-process model can be seen as expanding the activity box ‘testing’ in the
waterfall model.
➢ Each step has a matching validation process which can, where defects are found,
cause a loop back to the corresponding development stage and a reworking of the
following steps.
➢ Ideally this feeding back should occur only where a discrepancy has been found
between was specified by a particular activity and what was actually implemented
in the next lower activity on the descent of the V loop.
➢ For example, the system designer might have written that a calculation be carried
out in a certain way.
➢ A developer building code to meet this design might have misunderstood what was
required.
➢ At the system testing stage, the original designer would be responsible for checking
that the software is doing what was specified and this would discover the coder’s
misreading of the document.
➢ Using the V-process model as a framework, planning decisions can be made at the
outset as to the types and amounts of testing to be done.
➢ Example, If the software were acquired ‘off-the-shelf’, the program design and code
stages would not be relevant and so program testing would not be needed. User
requirements would still be produced so user acceptance tests would still be valid.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


Verification Versus Validation:
➢ The objectives of both verification and validation techniques are very similar. Both
these techniques have been designed to help remove errors in the software.
➢ Verification is the process of determining whether the output of one phase of software
development conforms to that of its previous phase (Are we building the product right?)
➢ Objective of verification is to check if the artifact produced after a phase conforms to
that of the previous phase.
➢ For example, a verification step can be to check if the design documents produced after
the design step conform to the requirements specification.
➢ The primary techniques used for verification includes review, simulation and formal
verification.
➢ Verification is carried out during the development process to check if the development
activities are being carried out correctly,
➢ Verification techniques can be viewed as an attempt to achieve phase containment of
errors.
➢ Validation is the process of determining whether the fully developed software conforms
to its requirement specification. (Are we building the right product?)
➢ Validation is applied to the fully developed and integrated software to check if it
satisfies the customer’s requirements.
➢ Validation techniques are primary based on product testing.
➢ Validation is carried out towards the end of the development process to check if the
right product as required by the customer has been developed.

Testing Methodologies:
Black box testing:
➢ No knowledge of internal program design or code required.
➢ Tests are based on the requirements and functionality

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


White box Testing:
➢ Knowledge of the internal program design and code required.
➢ Tests are based on coverage of code statements, branches, paths, conditions.

Test Case:
It is a specific procedure of testing a particular requirement.
It will Include:
➢ Identification of specific requirement tested.
➢ Test case success/failure criteria
➢ Specific steps to execute test
➢ Test the data.

Testing Levels:
1.Unit Testing
2.Integration Testing
3.System testing
1.Unit Testing:
➢ Tests each module individually
➢ Follows a white box Testing (Logic of the program)
➢ Done by the developers.
2.Integration Testing:
➢ Once all the modules have been unit tested, integration testing is performed.
➢ It is a systematic Testing.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


➢ Produce tests to identify the errors associated with interfacing.
Types:
a. top Down Integration testing
b. Bottom Up Integration Testing
c. Mixed Integration Testing
3. System Testing:
➢ The system as a whole is tested to uncover requirement errors.
➢ Verifies that all system elements work properly and that overall system function
and performance has been achieved.
Types:
a. Alpha Testing
b. Beta Testing
c. Acceptance Testing
d. Performance Testing

Testing Activities:
Testing involves performing the following main activities:
1.Test Planning:
➢ It consists of determining the relevant test strategies and planning for any test bed that
may be required.
➢ A suitable test bed is an especially important concern while testing embedded
applications. A test bed is usually includes setting up the hardware or simulator.
2.Test Suite Design:
➢ Planned testing strategies are used to design the set of test cases (called test suite) using
which a program is to be tested.
3.Test Case Execution and Result Checking:
➢ Each test case is run and the results are compared with the expected results.
➢ A mismatch between the actual result and expected results indicates a failure.
➢ The test cases for which the system fails are noted down for test reporting.
4. Test Reporting:
➢ When the test cases are run, the tester may raise issues, that is, report discrepancies
between the expected and actual findings.
➢ A means of formally recording these issues and their history is needed.
➢ A review body adjudicates these issues. The outcome of this scrutiny would be one of
the following:

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore


• The issue is dismissed on the grounds that there has been a misunderstanding of
a requirement by the tester.
• The issue is identified as a fault which the developers need to correct-where
development is being done by contractors, they would be expected to cover the
cost of the correction.
• It is recognizing that the software is behaving as specified, but the requirement
originally agreed is in fact incorrect-remedying this means adding a new
requirement and a contractor could expect to receive payment for the additional
work.
• The issue is identified as a fault but is treated as an off-specification-it is decided
that the application can be made operational with the error still in place.
5. Debugging:
➢ For each failure observed during testing, debugging is carried out to identify the
statements that are in error. There are several debugging strategies, but essentially in
each the failure symptoms are analyzed to locate the errors.
6. Error Correction:
➢ After an error is located through a debugging activity; the code is appropriately changed
to correct the error.
7. Defect Retesting:
➢ Once a defect has been dealt with by the development team; the corrected code is
retested by the testing team to check whether the defect has successfully been
addressed.
➢ Defect retest is also popularly called resolution testing.
8. Regression Testing:
➢ It checks whether the unmodified functionalities still continue to work correctly.
➢ As a result, after a bug-fixing session, both the resolution and regression test cases need
to be run.
9.Test Closure:
➢ Once the system successfully passes all the tests, documents related to lessons learned,
test results, logs etc. are achieved for use as a reference in future projects.

By Praveenkumar Mandoli Dept of AI & ML ICEAS, Bangalore

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy