SlideShare a Scribd company logo
UNIT 4
Program Maintenance
flutterjunction.com
Introduction to Program Maintenance
Program needs to be changed with time. There are always changing in reaction to new rules and regulations, new goods, new
ideas and many more things. Correcting coding and design problems, updating documentation and test data, and enhancing
user data are some actions under program maintenance.
Program maintenance is the process of updating and modifying an existing software application or system after it has been
deployed. This process can be necessary for a variety of reasons, including fixing bugs or errors, adding new features or
functionality, improving performance, enhancing security, or adapting the software to changes in the operating environment.
Program maintenance is an important part of the software development life cycle and can represent a significant portion of
the total cost of software ownership. According to some estimates, up to 70% of the total cost of a software system is spent
on maintenance, compared to just 30% for development.
Effective program maintenance requires a thorough understanding of the software and its intended use, as well as an
understanding of the underlying technologies and systems. It also requires careful planning and testing to ensure that
changes to the software do not introduce new errors or unexpected behavior. Good documentation and communication are
also important to ensure that all stakeholders understand the changes being made and their potential impact on the
software and the organization as a whole.
flutterjunction.com
Why to use Program Maintenance?
1. Fixing Bugs: One of the primary reasons for program maintenance is to fix bugs or
errors that have been discovered in the software. These bugs may be causing the
software to behave unexpectedly or to produce incorrect results. By identifying and
fixing these bugs, the software can be made more reliable and accurate.
2. Adding New Features: Another common reason for program maintenance is to
add new features or functionality to the software. This may be necessary to keep up
with changes in the business environment or to meet the evolving needs of users.
3. Improving Performance: Program maintenance may also be used to improve the
performance of the software. This may involve optimizing code, improving
algorithms, or making changes to the underlying hardware or infrastructure to
improve response times and reduce resource usage.
flutterjunction.com
Why to use Program Maintenance?
4) Enhancing Security: Program maintenance may also be used to enhance
the security of the software. This may involve fixing vulnerabilities or
weaknesses in the software, implementing new security features, or
addressing compliance requirements.
5) Adapting to Changes: Program maintenance may also be necessary to
adapt the software to changes in the operating environment, such as
changes in hardware, operating systems, or third-party software
dependencies.
flutterjunction.com
Types of Program Maintenance
1. Corrective Maintenance: This type of maintenance involves fixing bugs or errors in the
software that are discovered after it has been released. For example, if a user reports
that they are unable to save a file in an application, corrective maintenance would
involve identifying the cause of the problem and correcting it so that the user can save
files as intended.
2. Adaptive Maintenance: This type of maintenance involves modifying the software to
adapt to changes in the environment in which it operates. For example, if a software
application is designed to run on a particular operating system, adaptive maintenance
would be required if the operating system is updated or changed in some way.
flutterjunction.com
Types of Program Maintenance
3) Perfective Maintenance: This type of maintenance involves making improvements
to the software to enhance its functionality or performance. For example, adding new
features, improving response times, or optimizing code are all examples of perfective
maintenance.
4) Preventive Maintenance: This type of maintenance involves making changes to the
software to prevent potential problems from occurring in the future. For example, if a
software application is found to be vulnerable to a particular type of security threat,
preventive maintenance would involve making changes to the software to mitigate
that threat.
flutterjunction.com
Types of Program Maintenance
5) Emergency maintenance: It is a type of program maintenance that is
performed to address critical issues or problems that require immediate
attention. This type of maintenance is typically unplanned and may be
necessary due to a software failure, security breach, or other unexpected
event that is causing significant disruptions or damage to the system or the
organization. Eg. A software system failure that is causing critical business
operations to be disrupted or shut down.
flutterjunction.com
Major Problem Area
1. Inadequate Documentation: Poor documentation of the software can make it
difficult for developers to understand how the software is intended to work
and how it has been implemented. This can lead to errors, delays, and
inefficiencies in the maintenance process.
2. Legacy Code: Legacy code refers to code that has been written using
outdated programming languages or practices, making it difficult to maintain
or modify. Legacy code can be a significant problem for developers, especially
if there are no original developers available to provide guidance.
flutterjunction.com
Major Problem Area
3) Changing Requirements: Requirements for the software may change over
time, making it necessary to modify the code to meet new needs. This can
lead to added complexity and increased maintenance costs, as well as the
risk of introducing new errors or bugs into the software.
4) Integration Issues: Software applications often rely on external libraries,
frameworks, and other software components. Changes to these components
or their interfaces can create integration issues that can be difficult to
resolve.
flutterjunction.com
Major Problem Area
5) Version Control: Maintaining proper version control is essential for managing software
maintenance effectively. Without proper version control, changes to the software may be difficult to
track and manage, leading to confusion and errors.
6) Lack of Testing: Testing is a critical part of the maintenance process, but it can be challenging to
develop comprehensive and effective test cases. Lack of testing can lead to errors and bugs that can
be difficult to detect and fix.
7) Resource Constraints: Maintenance activities can require significant resources, including time,
money, and personnel. Resource constraints can limit the ability of organizations to effectively
maintain their software, leading to increased risk of failure and decreased performance.
flutterjunction.com
Cost Issues in Program Maintenance
The maintenance and operation costs in the software development process
accounts for more than 60% of the total cost of the software. About 20% of the
maintenance cost is attributable to the corrective and adaptive maintenance,
while more than 50% of the maintenance cost is attributable to the perfective
maintenance. Some of the areas of the cost in software maintenance are:
1) Staffing Costs: Hiring and retaining skilled personnel to perform maintenance
activities can be a significant cost for organizations. Developers, IT
professionals, and other staff members may require specialized training or
expertise to effectively maintain the software, adding to the cost of
maintenance.
flutterjunction.com
Cost Issues in Program Maintenance
Licensing and Subscription Costs: Many software applications require
ongoing licensing or subscription fees, adding to the cost of maintenance
over time. These costs may increase if the software is updated frequently or if
new features or modules are added.
Downtime Costs: Downtime caused by software maintenance can result in
lost productivity and revenue for organizations. This can be particularly costly
if the software is critical to business operations or customer service.
flutterjunction.com
Cost Issues in Program Maintenance
Testing and Validation Costs: Testing and validation are critical parts of the
maintenance process, but they can be time-consuming and expensive. Developing
effective test cases and conducting comprehensive testing can require significant
resources and may delay the release of new features or updates.
Technical Debt: Technical debt refers to the cost of maintaining software that has
not been designed or developed in an optimal way. Technical debt can result in
added complexity, increased maintenance costs, and decreased performance over
time.
flutterjunction.com
Impact of software errors
Software errors can have a significant impact on users and organizations. When software
contains errors or bugs, it may not function as intended, which can result in unexpected
behavior, crashes, or other issues. This can lead to frustration, lost productivity, and in
some cases, even data loss or security vulnerabilities. For example, if a user's data is not
saved properly due to a software error, the data may be lost permanently.
In addition to the impact on users, software errors can also be costly for organizations. If
a software error causes a business application to fail, this can result in lost revenue and
other negative business impacts. Therefore, it's important for developers to test software
thoroughly and address any errors or bugs that are identified as quickly as possible to
minimize the impact on users and organizations.
flutterjunction.com
Impact of software errors
Another example of a software error could be a glitch in a video game that causes the
game to crash or freeze. This can be frustrating for the player and can result in lost
progress and wasted time. If the issue persists, the player may give up on the game
entirely and not recommend it to others, which can negatively impact the game's
reputation and sales.
In summary, software errors can cause a variety of negative impacts, including
financial losses, reputational damage, lost productivity, and frustrated users. To
prevent these negative outcomes, it's important for developers to thoroughly test
their software and address any errors or bugs that are identified in a timely manner.
flutterjunction.com
Impact of software errors
For example, imagine a mobile banking app that has a software error that causes
users to be charged twice for the same transaction. If a user makes a purchase
for Rs 100, but the app charges them twice, they will be charged Rs 200 instead of
Rs 100. This can result in financial problems for the user, and they may lose trust
in the app and the bank that provides it.
Similarly, the organization that developed the app can also suffer negative
consequences. For example, they may have to refund the extra charge to the user,
which can be costly. Additionally, the negative impact on the user's experience
with the app could lead to lost customers, which can hurt the company's
reputation and bottom line.
flutterjunction.com
Program Documentation
Software documentation is like a guidebook that explains how to use a
program.
It includes written instructions, pictures, or videos to help different types of
users, like programmers, system analyst and administrator to end user.
Making these documents is important during the development of the
software because it helps everyone understand how the program works.
In modular programming documentation becomes even more important
because different modules of the software are developed by different teams.
flutterjunction.com
Documentation standard
Documentation standards are sets of guidelines or rules that define how
software documentation should be created, organized, and maintained.
These standards are important because they ensure that documentation is
consistent, accurate, and easy to understand.
They also help to ensure that software documentation is of a high quality and
meets the needs of its intended audience.
Standardised documents have a consistent appearance, structure and
quality, and should therefore be easier to read and understand.
flutterjunction.com
Documentation standard
Document quality assurance begins with document standards. Standards are
intended to cover all eventualities and are frequently perceived as overly
stringent. As a result, it is critical that the proper standards for each project
be chosen and updated to fit that projects.
Small projects with a relatively simple system and large software projects
with software that may need to maintained for longer periods of time. It has
consistent look structure, and quality when it is manufactured according to
the guidelines.
flutterjunction.com
Documentation Guidelines
● Documentation should be from the point of view of the reader
● Document should be unambiguous
● There should be no repetition
● Industry standards should be used
● Documents should always be updated
● Any outdated document should be phased out after due recording of the
phase out
flutterjunction.com
Benefits of good documentation
1. Improved communication: Good documentation ensures that everyone
involved in the project has a clear understanding of the software, its
requirements, and how it should be used.
2. Better collaboration: With good documentation, team members can
easily share information and work together more effectively.
3. Easier maintenance: Good documentation makes it easier to maintain
and update the software, as developers can refer to the documentation
to understand how the software works and how it is structured.
flutterjunction.com
Benefits of good documentation
4) Increased productivity: With clear and comprehensive documentation,
developers can work more efficiently and spend less time on troubleshooting
and problem-solving.
5) Reduced errors: Good documentation can help to reduce errors and
misunderstandings, as everyone involved in the project has access to the
same information and understands how the software works.
6) Improved quality: Well-documented software is typically of higher quality,
as it is easier to maintain, troubleshoot, and update.
flutterjunction.com
Benefits of good documentation
7) Better user experience: Good documentation ensures that users have a
clear understanding of how to use the software, which can improve their
experience and satisfaction with the product.
flutterjunction.com
Software Requirements Specifications
● SRS is a description of a software system to be developed.
● It lays out functional and non-functional requirements of the the
software to be developed.
● It may include a set of use cases that describe user interactions that the
software must provide to the user for perfect interaction.
flutterjunction.com
SRS Structure
1. Introduction
1. Purpose : Set the expectations for the outcome of the product and the problem it solves.
2. Intended Audience: Who uses the software? Either internal System or external?
3. Scope: Main Goals and objectives? Future possibilities?
4. Definitions: Overview of any definitions. Eg. HOD-> Head of Department
2. Overall description
1. User Need: Explain the need of the software for user.
2. Constraints, assumptions and dependencies: What assumptions are you making that
could cause an error in your approach? Is the project reliant on any other factors that
could affect the development of the software?eg. Assumption what if user tries to reset
password more than 3 times. Constraints like eSewa limiting KYC unverified users for
daily transaction.
flutterjunction.com
SRS Structure
3. System Features and Requirements
3.1 Functional Requirements-> How the system works?
3.2 User Interfaces -> How user sees the or interacts with the system?
3.3 External Interface Requirements-> Any system or medium you need to
add in system.
3.4 Use Cases
3.5 Nonfunctional Requirements: Are there any non-functional requirements
that you need to address (i.e. budget, team,security, availability etc.)
flutterjunction.com
SRS Structure
4. Deliver for Approval
flutterjunction.com
Types of Documentation
1. User documentation: This type of documentation is designed to help end-users
understand how to use a software program or product. User documentation may
include user manuals, online help systems, video tutorials, and other resources that
provide step-by-step guidance on how to use the product.
2. Technical documentation: Technical documentation is intended for developers and
other technical personnel who are responsible for designing, building, and maintaining
software systems. Technical documentation may include technical specifications,
design documents, test plans, and other resources that provide detailed information
on the software system's architecture, components, and functionality.
flutterjunction.com
Types of Documentation
3) Operational documentation: Operational documentation provides information on how
to install, configure, and operate a software system or product. This type of documentation
may include system administration manuals, configuration guides, and other resources
that help IT staff and other personnel manage and maintain the software system.
4) Requirements documentation: It is a critical component of software development that
outlines the specific functional and non-functional requirements of a software system. The
purpose of requirements documentation is to provide a clear and comprehensive
understanding of what the software system needs to do, how it will be used, and how it will
interact with other systems or components.
flutterjunction.com
Types of Documentation
5) API documentation
API documentation is documentation that provides information about how to use a
software library or API (Application Programming Interface) effectively. It typically includes
descriptions of the various classes, methods, method arguments, and properties that are
available in the library, along with examples of how to use them.
API documentation is usually provided in a format that is easy for developers to read and
understand, such as HTML or PDF. It may also include an interactive playground to try out
the API.
It is an important resource for developers who are working with a particular API, as it
helps them understand how the API works and how to use it effectively in their own code.
flutterjunction.com
Types of Documentation
6) Marketing documentation: Marketing documentation is used to promote
and advertise a software product or service. This type of documentation may
include product brochures, web copy, and other resources that help to
generate interest in the product or service.
flutterjunction.com
Program Specification
Program specification is a document that defines the requirements and specifications of a software
program. It serves as a blueprint for the software development process, outlining the goals and
objectives of the program, the features and functions it should provide, and the constraints and
limitations that must be taken into account during development.
It can also be viewed as a statement of agreement between producer of the service and the
consumer of a service.It is also a document that describes and defines what a program need to
accomplish.
A client uses the specification to guide his/her use of the program; a programmer uses the
specification to guide his/her construction of the program. A complex specification may engender
sub specifications, each describing a sub component of the program. The construction of these sub
components may then be delegated to other programmers so that a programmer at one level
becomes also a client at another.
flutterjunction.com
Things to include in program specification
Introduction
● Description of organization and what it does
● Summary of requirements
● Current equipment or system used
● The selection process, criteria to be used
System Requirement
● Hardware Requirements
● Software Requirements
○ Languages (C,C++, Java etc)
○ Packages used
○ Operating systems
● Support requirements
○ System Designer
○ Backup facilities
○ Test tieme and facilities
● Constraints
○ Planned delivery date
○ Time constraints on processing
flutterjunction.com
Things to include in program specification
System Requirement
● Features
● Capability of future growth
Major Application
● System Description
● System Flowchart
flutterjunction.com
Data Flow Diagram
A graphical tool, useful for communicating with users, managers and other
personnel.
Useful for analyzing existing as well as proposed systems.Focus on the
movement of data between external entities and process, and between
process and data stores.
Maps out the flow of information for any system or process.
Also called Bubble Chart.
flutterjunction.com
Why DFD?
DFD provides an overview of-
● User and analyst
● What data are stored
● What changes are performed
● What data a system processes
● Analyst and System designer
● Good communication tool due to use of graphics
flutterjunction.com
Elements of DFD
1) Processes
It represents as a process that gives us information. It is also called processing box.
A process can do this by performing computations and using logic to sort the data or
change its flow of direction.
A process receives input data and produces output with a different content or form.
Every process has a name that identifies the function it performs.
Symbol
flutterjunction.com
Elements of DFD
2) Data Flow
Data flow is the path the system’s information takes from external
entities through processes and data stores.
It is a pipeline which carries data. It marks the movement of data in the
entire system.
Connects the processes, entities and data stores.
Symbol Data Flow
flutterjunction.com
Elements of DFD
3) Data Stores
Data Stores are repository for data that are temporarily or permanently recorded within the system.
It is an "inventory" of data. These are common link between data and process models. Only
processes may connect with data stores.
There can be two or more systems that share a data store. This can occur in the case of one system
updating the data store, while the other system only accesses the data.
Data stores are named with an appropriate name, not to include the word "file", Names should
consist of plural nouns describing the collection of data. Like customers, orders, and products. These
may be duplicated. These are detailed in the data dictionary or with data description diagrams.
Symbol
flutterjunction.com
Elements of DFD
4) External entities(Source/Sink)
● Represented by a Rectangle
● Are either source or consumer of data
● Do not process data
Symbol
Source: Entity that supplies data to the system.
Sink: Entity that receives data from the system
External Entity
flutterjunction.com
Rules of Data Flow
Data Can flow from
● Eternal entity to process
● Process to external entity
● Process to store and back
● Process to process
Data Cannot flow from
● External entity to eternal entity
● External entity to store
● Store to external entity
● Store to store
flutterjunction.com
Example of DFD(School Management System)
Level 0 The 0 level dfd known as context level data flow diagram. The context
level data flow diagram (dfd) is describe the whole system. The (o) level dfd
describe the all user modules who run the system. Below context level data
flow diagram of Student management system project shows the one Admin
user can operate the system. Admin do all activities after login to system.
flutterjunction.com
Example of DFD(School Management System)
Level 1
The Admin side DFD describe the functionality of Admin. Admin is a
responsible person who run the project. After login to system admin can first
Add Course Detail and Teacher Detail and then add student detail by course
wise. and admin can manage student reports and fees payment detail.
flutterjunction.com
Level 1 Admin Side
flutterjunction.com
2nd Level DFD
– Level 4.0
flutterjunction.com
2nd Level DFD –
Level 6.0
flutterjunction.com
Example of DFD(Online Shopping System)
Level 0
flutterjunction.com
Contd..
Level 1 Admin
flutterjunction.com
2nd Level
– Admin side DFD
(3.0)
flutterjunction.com
2nd Level – Admin side DFD (4.0)
flutterjunction.com
2nd Level – Admin side DFD (5.0)
flutterjunction.com
1st level –
User side
Data flow
Diagram
flutterjunction.com
2nd level –
User side
DFD (4.0)
flutterjunction.com
2nd level –
User side
DFD (5.0)
flutterjunction.com
UNIT 4- Program Maintenance(Programming Logic & Techniques)

More Related Content

PPTX
Air flow validation
PPT
Software maintenance
PPTX
Software maintaince.pptx
DOCX
Software maintenance service strategies
PPTX
Why Software Maintenance is Essential for Business?
PPTX
Software maintenance
PPTX
Programming maintenance - Programming methodology
PDF
Software maintenance and Re-Engineering concepts
Air flow validation
Software maintenance
Software maintaince.pptx
Software maintenance service strategies
Why Software Maintenance is Essential for Business?
Software maintenance
Programming maintenance - Programming methodology
Software maintenance and Re-Engineering concepts

Similar to UNIT 4- Program Maintenance(Programming Logic & Techniques) (20)

PPT
10 software maintenance
DOCX
Software product process and characteristics of SE
PDF
Software maintenance
PPT
Sdd Maintenance Of Software Solutions
DOCX
Week 7 - Choices in Systems Acquisition and Risks, Security,.docx
PDF
Intro softwareeng
PPTX
Types of Maintenance.pptx
PDF
Guide to Flutter App Maintenance Importance, Types, and Top Practices.pdf
PPTX
Software engineering (Unit-1 Introduction)
PDF
Software Engineering Basics.pdf
PDF
How to save on software maintenance costs
PPTX
Programming Engineering Lecture 10 Alaa.ppt
PDF
Software quality and maintainance pdf
PDF
SWE-401 - 11. Software maintenance overview
PDF
The Crucial Role of Application Maintenance and Support Ensuring Smooth Opera...
PDF
The Crucial Role of Application Maintenance and Support Ensuring Smooth Opera...
PPTX
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
PDF
SWE-401 - 1. Introduction to Software Engineering
PDF
Navigating Software Maintenance Challenges-Expert Insights and Solutions.pdf
PPTX
Ch1 introduction
10 software maintenance
Software product process and characteristics of SE
Software maintenance
Sdd Maintenance Of Software Solutions
Week 7 - Choices in Systems Acquisition and Risks, Security,.docx
Intro softwareeng
Types of Maintenance.pptx
Guide to Flutter App Maintenance Importance, Types, and Top Practices.pdf
Software engineering (Unit-1 Introduction)
Software Engineering Basics.pdf
How to save on software maintenance costs
Programming Engineering Lecture 10 Alaa.ppt
Software quality and maintainance pdf
SWE-401 - 11. Software maintenance overview
The Crucial Role of Application Maintenance and Support Ensuring Smooth Opera...
The Crucial Role of Application Maintenance and Support Ensuring Smooth Opera...
Unit i FUNDAMENTALS OF SOFTWARE ENGINEERING
SWE-401 - 1. Introduction to Software Engineering
Navigating Software Maintenance Challenges-Expert Insights and Solutions.pdf
Ch1 introduction
Ad

More from Nabin Dhakal (15)

PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
PDF
GridView,Recycler view, API, SQLITE& NetworkRequest.pdf
PPTX
Broadcast receiver- How Android apps listen to system-wide or app-specific ev...
PPTX
Android Notifications-A Guide to User-Facing Alerts in Android .pptx
PPTX
Menu in Android (Define,Create,Inflate and Click Handler)
PPTX
Unit Two - Java Architecture and OOPS
PPTX
Chapter One - Introduction to Mobile Oses
PPTX
Unit 1 -Programming Languages(Programming Logic and Techniques)
PPTX
UNIT 3- Programming Technique(Programming Logic and Technique)
PPTX
UNIT 5- Standalone and Client Server Programming Concept
PPTX
Unit 2 -Software-Development (Programming Logic and Techniques)
PPTX
ListView.pptx
PPTX
SQLite in Flutter.pptx
PPTX
Hive in Flutter.pptx
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
GridView,Recycler view, API, SQLITE& NetworkRequest.pdf
Broadcast receiver- How Android apps listen to system-wide or app-specific ev...
Android Notifications-A Guide to User-Facing Alerts in Android .pptx
Menu in Android (Define,Create,Inflate and Click Handler)
Unit Two - Java Architecture and OOPS
Chapter One - Introduction to Mobile Oses
Unit 1 -Programming Languages(Programming Logic and Techniques)
UNIT 3- Programming Technique(Programming Logic and Technique)
UNIT 5- Standalone and Client Server Programming Concept
Unit 2 -Software-Development (Programming Logic and Techniques)
ListView.pptx
SQLite in Flutter.pptx
Hive in Flutter.pptx
Ad

Recently uploaded (20)

PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
System and Network Administraation Chapter 3
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
ai tools demonstartion for schools and inter college
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
top salesforce developer skills in 2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
L1 - Introduction to python Backend.pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Upgrade and Innovation Strategies for SAP ERP Customers
Odoo POS Development Services by CandidRoot Solutions
Odoo Companies in India – Driving Business Transformation.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
VVF-Customer-Presentation2025-Ver1.9.pptx
System and Network Administraation Chapter 3
Internet Downloader Manager (IDM) Crack 6.42 Build 41
ai tools demonstartion for schools and inter college
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
top salesforce developer skills in 2025.pdf
Understanding Forklifts - TECH EHS Solution
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Softaken Excel to vCard Converter Software.pdf
L1 - Introduction to python Backend.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
How to Choose the Right IT Partner for Your Business in Malaysia

UNIT 4- Program Maintenance(Programming Logic & Techniques)

  • 2. Introduction to Program Maintenance Program needs to be changed with time. There are always changing in reaction to new rules and regulations, new goods, new ideas and many more things. Correcting coding and design problems, updating documentation and test data, and enhancing user data are some actions under program maintenance. Program maintenance is the process of updating and modifying an existing software application or system after it has been deployed. This process can be necessary for a variety of reasons, including fixing bugs or errors, adding new features or functionality, improving performance, enhancing security, or adapting the software to changes in the operating environment. Program maintenance is an important part of the software development life cycle and can represent a significant portion of the total cost of software ownership. According to some estimates, up to 70% of the total cost of a software system is spent on maintenance, compared to just 30% for development. Effective program maintenance requires a thorough understanding of the software and its intended use, as well as an understanding of the underlying technologies and systems. It also requires careful planning and testing to ensure that changes to the software do not introduce new errors or unexpected behavior. Good documentation and communication are also important to ensure that all stakeholders understand the changes being made and their potential impact on the software and the organization as a whole. flutterjunction.com
  • 3. Why to use Program Maintenance? 1. Fixing Bugs: One of the primary reasons for program maintenance is to fix bugs or errors that have been discovered in the software. These bugs may be causing the software to behave unexpectedly or to produce incorrect results. By identifying and fixing these bugs, the software can be made more reliable and accurate. 2. Adding New Features: Another common reason for program maintenance is to add new features or functionality to the software. This may be necessary to keep up with changes in the business environment or to meet the evolving needs of users. 3. Improving Performance: Program maintenance may also be used to improve the performance of the software. This may involve optimizing code, improving algorithms, or making changes to the underlying hardware or infrastructure to improve response times and reduce resource usage. flutterjunction.com
  • 4. Why to use Program Maintenance? 4) Enhancing Security: Program maintenance may also be used to enhance the security of the software. This may involve fixing vulnerabilities or weaknesses in the software, implementing new security features, or addressing compliance requirements. 5) Adapting to Changes: Program maintenance may also be necessary to adapt the software to changes in the operating environment, such as changes in hardware, operating systems, or third-party software dependencies. flutterjunction.com
  • 5. Types of Program Maintenance 1. Corrective Maintenance: This type of maintenance involves fixing bugs or errors in the software that are discovered after it has been released. For example, if a user reports that they are unable to save a file in an application, corrective maintenance would involve identifying the cause of the problem and correcting it so that the user can save files as intended. 2. Adaptive Maintenance: This type of maintenance involves modifying the software to adapt to changes in the environment in which it operates. For example, if a software application is designed to run on a particular operating system, adaptive maintenance would be required if the operating system is updated or changed in some way. flutterjunction.com
  • 6. Types of Program Maintenance 3) Perfective Maintenance: This type of maintenance involves making improvements to the software to enhance its functionality or performance. For example, adding new features, improving response times, or optimizing code are all examples of perfective maintenance. 4) Preventive Maintenance: This type of maintenance involves making changes to the software to prevent potential problems from occurring in the future. For example, if a software application is found to be vulnerable to a particular type of security threat, preventive maintenance would involve making changes to the software to mitigate that threat. flutterjunction.com
  • 7. Types of Program Maintenance 5) Emergency maintenance: It is a type of program maintenance that is performed to address critical issues or problems that require immediate attention. This type of maintenance is typically unplanned and may be necessary due to a software failure, security breach, or other unexpected event that is causing significant disruptions or damage to the system or the organization. Eg. A software system failure that is causing critical business operations to be disrupted or shut down. flutterjunction.com
  • 8. Major Problem Area 1. Inadequate Documentation: Poor documentation of the software can make it difficult for developers to understand how the software is intended to work and how it has been implemented. This can lead to errors, delays, and inefficiencies in the maintenance process. 2. Legacy Code: Legacy code refers to code that has been written using outdated programming languages or practices, making it difficult to maintain or modify. Legacy code can be a significant problem for developers, especially if there are no original developers available to provide guidance. flutterjunction.com
  • 9. Major Problem Area 3) Changing Requirements: Requirements for the software may change over time, making it necessary to modify the code to meet new needs. This can lead to added complexity and increased maintenance costs, as well as the risk of introducing new errors or bugs into the software. 4) Integration Issues: Software applications often rely on external libraries, frameworks, and other software components. Changes to these components or their interfaces can create integration issues that can be difficult to resolve. flutterjunction.com
  • 10. Major Problem Area 5) Version Control: Maintaining proper version control is essential for managing software maintenance effectively. Without proper version control, changes to the software may be difficult to track and manage, leading to confusion and errors. 6) Lack of Testing: Testing is a critical part of the maintenance process, but it can be challenging to develop comprehensive and effective test cases. Lack of testing can lead to errors and bugs that can be difficult to detect and fix. 7) Resource Constraints: Maintenance activities can require significant resources, including time, money, and personnel. Resource constraints can limit the ability of organizations to effectively maintain their software, leading to increased risk of failure and decreased performance. flutterjunction.com
  • 11. Cost Issues in Program Maintenance The maintenance and operation costs in the software development process accounts for more than 60% of the total cost of the software. About 20% of the maintenance cost is attributable to the corrective and adaptive maintenance, while more than 50% of the maintenance cost is attributable to the perfective maintenance. Some of the areas of the cost in software maintenance are: 1) Staffing Costs: Hiring and retaining skilled personnel to perform maintenance activities can be a significant cost for organizations. Developers, IT professionals, and other staff members may require specialized training or expertise to effectively maintain the software, adding to the cost of maintenance. flutterjunction.com
  • 12. Cost Issues in Program Maintenance Licensing and Subscription Costs: Many software applications require ongoing licensing or subscription fees, adding to the cost of maintenance over time. These costs may increase if the software is updated frequently or if new features or modules are added. Downtime Costs: Downtime caused by software maintenance can result in lost productivity and revenue for organizations. This can be particularly costly if the software is critical to business operations or customer service. flutterjunction.com
  • 13. Cost Issues in Program Maintenance Testing and Validation Costs: Testing and validation are critical parts of the maintenance process, but they can be time-consuming and expensive. Developing effective test cases and conducting comprehensive testing can require significant resources and may delay the release of new features or updates. Technical Debt: Technical debt refers to the cost of maintaining software that has not been designed or developed in an optimal way. Technical debt can result in added complexity, increased maintenance costs, and decreased performance over time. flutterjunction.com
  • 14. Impact of software errors Software errors can have a significant impact on users and organizations. When software contains errors or bugs, it may not function as intended, which can result in unexpected behavior, crashes, or other issues. This can lead to frustration, lost productivity, and in some cases, even data loss or security vulnerabilities. For example, if a user's data is not saved properly due to a software error, the data may be lost permanently. In addition to the impact on users, software errors can also be costly for organizations. If a software error causes a business application to fail, this can result in lost revenue and other negative business impacts. Therefore, it's important for developers to test software thoroughly and address any errors or bugs that are identified as quickly as possible to minimize the impact on users and organizations. flutterjunction.com
  • 15. Impact of software errors Another example of a software error could be a glitch in a video game that causes the game to crash or freeze. This can be frustrating for the player and can result in lost progress and wasted time. If the issue persists, the player may give up on the game entirely and not recommend it to others, which can negatively impact the game's reputation and sales. In summary, software errors can cause a variety of negative impacts, including financial losses, reputational damage, lost productivity, and frustrated users. To prevent these negative outcomes, it's important for developers to thoroughly test their software and address any errors or bugs that are identified in a timely manner. flutterjunction.com
  • 16. Impact of software errors For example, imagine a mobile banking app that has a software error that causes users to be charged twice for the same transaction. If a user makes a purchase for Rs 100, but the app charges them twice, they will be charged Rs 200 instead of Rs 100. This can result in financial problems for the user, and they may lose trust in the app and the bank that provides it. Similarly, the organization that developed the app can also suffer negative consequences. For example, they may have to refund the extra charge to the user, which can be costly. Additionally, the negative impact on the user's experience with the app could lead to lost customers, which can hurt the company's reputation and bottom line. flutterjunction.com
  • 17. Program Documentation Software documentation is like a guidebook that explains how to use a program. It includes written instructions, pictures, or videos to help different types of users, like programmers, system analyst and administrator to end user. Making these documents is important during the development of the software because it helps everyone understand how the program works. In modular programming documentation becomes even more important because different modules of the software are developed by different teams. flutterjunction.com
  • 18. Documentation standard Documentation standards are sets of guidelines or rules that define how software documentation should be created, organized, and maintained. These standards are important because they ensure that documentation is consistent, accurate, and easy to understand. They also help to ensure that software documentation is of a high quality and meets the needs of its intended audience. Standardised documents have a consistent appearance, structure and quality, and should therefore be easier to read and understand. flutterjunction.com
  • 19. Documentation standard Document quality assurance begins with document standards. Standards are intended to cover all eventualities and are frequently perceived as overly stringent. As a result, it is critical that the proper standards for each project be chosen and updated to fit that projects. Small projects with a relatively simple system and large software projects with software that may need to maintained for longer periods of time. It has consistent look structure, and quality when it is manufactured according to the guidelines. flutterjunction.com
  • 20. Documentation Guidelines ● Documentation should be from the point of view of the reader ● Document should be unambiguous ● There should be no repetition ● Industry standards should be used ● Documents should always be updated ● Any outdated document should be phased out after due recording of the phase out flutterjunction.com
  • 21. Benefits of good documentation 1. Improved communication: Good documentation ensures that everyone involved in the project has a clear understanding of the software, its requirements, and how it should be used. 2. Better collaboration: With good documentation, team members can easily share information and work together more effectively. 3. Easier maintenance: Good documentation makes it easier to maintain and update the software, as developers can refer to the documentation to understand how the software works and how it is structured. flutterjunction.com
  • 22. Benefits of good documentation 4) Increased productivity: With clear and comprehensive documentation, developers can work more efficiently and spend less time on troubleshooting and problem-solving. 5) Reduced errors: Good documentation can help to reduce errors and misunderstandings, as everyone involved in the project has access to the same information and understands how the software works. 6) Improved quality: Well-documented software is typically of higher quality, as it is easier to maintain, troubleshoot, and update. flutterjunction.com
  • 23. Benefits of good documentation 7) Better user experience: Good documentation ensures that users have a clear understanding of how to use the software, which can improve their experience and satisfaction with the product. flutterjunction.com
  • 24. Software Requirements Specifications ● SRS is a description of a software system to be developed. ● It lays out functional and non-functional requirements of the the software to be developed. ● It may include a set of use cases that describe user interactions that the software must provide to the user for perfect interaction. flutterjunction.com
  • 25. SRS Structure 1. Introduction 1. Purpose : Set the expectations for the outcome of the product and the problem it solves. 2. Intended Audience: Who uses the software? Either internal System or external? 3. Scope: Main Goals and objectives? Future possibilities? 4. Definitions: Overview of any definitions. Eg. HOD-> Head of Department 2. Overall description 1. User Need: Explain the need of the software for user. 2. Constraints, assumptions and dependencies: What assumptions are you making that could cause an error in your approach? Is the project reliant on any other factors that could affect the development of the software?eg. Assumption what if user tries to reset password more than 3 times. Constraints like eSewa limiting KYC unverified users for daily transaction. flutterjunction.com
  • 26. SRS Structure 3. System Features and Requirements 3.1 Functional Requirements-> How the system works? 3.2 User Interfaces -> How user sees the or interacts with the system? 3.3 External Interface Requirements-> Any system or medium you need to add in system. 3.4 Use Cases 3.5 Nonfunctional Requirements: Are there any non-functional requirements that you need to address (i.e. budget, team,security, availability etc.) flutterjunction.com
  • 27. SRS Structure 4. Deliver for Approval flutterjunction.com
  • 28. Types of Documentation 1. User documentation: This type of documentation is designed to help end-users understand how to use a software program or product. User documentation may include user manuals, online help systems, video tutorials, and other resources that provide step-by-step guidance on how to use the product. 2. Technical documentation: Technical documentation is intended for developers and other technical personnel who are responsible for designing, building, and maintaining software systems. Technical documentation may include technical specifications, design documents, test plans, and other resources that provide detailed information on the software system's architecture, components, and functionality. flutterjunction.com
  • 29. Types of Documentation 3) Operational documentation: Operational documentation provides information on how to install, configure, and operate a software system or product. This type of documentation may include system administration manuals, configuration guides, and other resources that help IT staff and other personnel manage and maintain the software system. 4) Requirements documentation: It is a critical component of software development that outlines the specific functional and non-functional requirements of a software system. The purpose of requirements documentation is to provide a clear and comprehensive understanding of what the software system needs to do, how it will be used, and how it will interact with other systems or components. flutterjunction.com
  • 30. Types of Documentation 5) API documentation API documentation is documentation that provides information about how to use a software library or API (Application Programming Interface) effectively. It typically includes descriptions of the various classes, methods, method arguments, and properties that are available in the library, along with examples of how to use them. API documentation is usually provided in a format that is easy for developers to read and understand, such as HTML or PDF. It may also include an interactive playground to try out the API. It is an important resource for developers who are working with a particular API, as it helps them understand how the API works and how to use it effectively in their own code. flutterjunction.com
  • 31. Types of Documentation 6) Marketing documentation: Marketing documentation is used to promote and advertise a software product or service. This type of documentation may include product brochures, web copy, and other resources that help to generate interest in the product or service. flutterjunction.com
  • 32. Program Specification Program specification is a document that defines the requirements and specifications of a software program. It serves as a blueprint for the software development process, outlining the goals and objectives of the program, the features and functions it should provide, and the constraints and limitations that must be taken into account during development. It can also be viewed as a statement of agreement between producer of the service and the consumer of a service.It is also a document that describes and defines what a program need to accomplish. A client uses the specification to guide his/her use of the program; a programmer uses the specification to guide his/her construction of the program. A complex specification may engender sub specifications, each describing a sub component of the program. The construction of these sub components may then be delegated to other programmers so that a programmer at one level becomes also a client at another. flutterjunction.com
  • 33. Things to include in program specification Introduction ● Description of organization and what it does ● Summary of requirements ● Current equipment or system used ● The selection process, criteria to be used System Requirement ● Hardware Requirements ● Software Requirements ○ Languages (C,C++, Java etc) ○ Packages used ○ Operating systems ● Support requirements ○ System Designer ○ Backup facilities ○ Test tieme and facilities ● Constraints ○ Planned delivery date ○ Time constraints on processing flutterjunction.com
  • 34. Things to include in program specification System Requirement ● Features ● Capability of future growth Major Application ● System Description ● System Flowchart flutterjunction.com
  • 35. Data Flow Diagram A graphical tool, useful for communicating with users, managers and other personnel. Useful for analyzing existing as well as proposed systems.Focus on the movement of data between external entities and process, and between process and data stores. Maps out the flow of information for any system or process. Also called Bubble Chart. flutterjunction.com
  • 36. Why DFD? DFD provides an overview of- ● User and analyst ● What data are stored ● What changes are performed ● What data a system processes ● Analyst and System designer ● Good communication tool due to use of graphics flutterjunction.com
  • 37. Elements of DFD 1) Processes It represents as a process that gives us information. It is also called processing box. A process can do this by performing computations and using logic to sort the data or change its flow of direction. A process receives input data and produces output with a different content or form. Every process has a name that identifies the function it performs. Symbol flutterjunction.com
  • 38. Elements of DFD 2) Data Flow Data flow is the path the system’s information takes from external entities through processes and data stores. It is a pipeline which carries data. It marks the movement of data in the entire system. Connects the processes, entities and data stores. Symbol Data Flow flutterjunction.com
  • 39. Elements of DFD 3) Data Stores Data Stores are repository for data that are temporarily or permanently recorded within the system. It is an "inventory" of data. These are common link between data and process models. Only processes may connect with data stores. There can be two or more systems that share a data store. This can occur in the case of one system updating the data store, while the other system only accesses the data. Data stores are named with an appropriate name, not to include the word "file", Names should consist of plural nouns describing the collection of data. Like customers, orders, and products. These may be duplicated. These are detailed in the data dictionary or with data description diagrams. Symbol flutterjunction.com
  • 40. Elements of DFD 4) External entities(Source/Sink) ● Represented by a Rectangle ● Are either source or consumer of data ● Do not process data Symbol Source: Entity that supplies data to the system. Sink: Entity that receives data from the system External Entity flutterjunction.com
  • 41. Rules of Data Flow Data Can flow from ● Eternal entity to process ● Process to external entity ● Process to store and back ● Process to process Data Cannot flow from ● External entity to eternal entity ● External entity to store ● Store to external entity ● Store to store flutterjunction.com
  • 42. Example of DFD(School Management System) Level 0 The 0 level dfd known as context level data flow diagram. The context level data flow diagram (dfd) is describe the whole system. The (o) level dfd describe the all user modules who run the system. Below context level data flow diagram of Student management system project shows the one Admin user can operate the system. Admin do all activities after login to system. flutterjunction.com
  • 43. Example of DFD(School Management System) Level 1 The Admin side DFD describe the functionality of Admin. Admin is a responsible person who run the project. After login to system admin can first Add Course Detail and Teacher Detail and then add student detail by course wise. and admin can manage student reports and fees payment detail. flutterjunction.com
  • 44. Level 1 Admin Side flutterjunction.com
  • 45. 2nd Level DFD – Level 4.0 flutterjunction.com
  • 46. 2nd Level DFD – Level 6.0 flutterjunction.com
  • 47. Example of DFD(Online Shopping System) Level 0 flutterjunction.com
  • 49. 2nd Level – Admin side DFD (3.0) flutterjunction.com
  • 50. 2nd Level – Admin side DFD (4.0) flutterjunction.com
  • 51. 2nd Level – Admin side DFD (5.0) flutterjunction.com
  • 52. 1st level – User side Data flow Diagram flutterjunction.com
  • 53. 2nd level – User side DFD (4.0) flutterjunction.com
  • 54. 2nd level – User side DFD (5.0) flutterjunction.com