SlideShare a Scribd company logo
SOFTWARE MAINTENANCE
BY,
K.RAJALAKSHMI
II-MSC(IT)
DEPARTMENT OF CS&IT
NADAR SARASWATHI COLLEGE OF ARTS AND SCIENCE,THENI
SYNOPISIS:
 Introduction
 Enhancing Maintainability during
development
 Managerial aspects of Software Maintenance
 Configuration management
 source-code metrics
 Other maintenance tools & techniques
Introduction:
 The term ”software maintenance” is used to
describe the software engineering activities that
occur following delivery of a software product to
the customer
 The development cycle for a software product
span 1 or 2 years , while the maintenance phase
span 5 to 10 years
 Maintenance activities involve making
enhancement to software product , adapting
products to new environment and correcting
problem
 It is well established that maintenance
activities consume a large potion of the total
life cycle budget(LIE80)
 It is not uncommon for software maintenance
to account for 70 % of total software life cycle
cost
 Analysis activities during software
maintenance involve understanding the
scope and effort of a desire changes as well as
the constraints on making the change
Enhancing Maintainability
during development
 Many activities performed during software
development enhance the maintenance
ability of a software products
Analysis activity:
Architectural design activities
Detailed design activities
Implementation activities
Supporting document
Analysis activities:
 Develop standard and guidelines
 Set milestone for the supporting document
 Specify quality assurance procedures
 Identify likely product enhancements
 Determine resource required for
maintenance
 Estimate maintenance costs
Architectural design
activities:
 Emphasize clarity and modularity as design
criteria
 Design to ease likely enhancement
 Use standardized notation to document data
flow
 Function ,structure , and interconnection
 Observe the principles of information hiding ,
data abstraction and top-down hierarchical
decomposition
Detailed design activities:
 Use standardized notation to specify
algorithms
 data structure and procedure interface
specifications specify side effects and
exception handling for each routine
 Provide cross-reference directories
Implementation activities:
 Use single entry, single exit constructs
 Use standard indentation of constructs
 Use simple , clear coding style
 Use symbolic constants to parameterize
routine
 Follow standard internal commenting
guidelines
Supporting document:
 There are two particular important
supporting document that should be
prepared during the software development
cycle in order to ease maintenance activities
 Develop a maintenance guide
 Develop a test suite
 Provide test suite documentation
Managerial aspects of
Software Maintenance
 One of the most important aspect of
software maintenance involves tracking and
control of maintenance activities
 Maintenance activity for a software product
usually occur in response to a change request
filed by a user of the product
Types managerial aspects of
Software maintenance
 Change control board
 Change request summaries
 Quality assurance activities
 Organizing maintenance programmers
Change control board
 The change control board reviews and
approves all change request.
 The board may deny a request , recommend
a modified version of the change or approve
the change as submitted.
 Important aspect of this structure are the
shielding of maintenance programmer from
continual interruption by users and the
guidance provided to the programmer and
analytics by the change control board .
Quality assurance activities
 In many organization , the quality assurance
group monitor change request , prepares change
request summaries , perform regression testing
of software modification , provides configuration
management
 Retrains and protest the physical media for
software products.
 The quality assurance group should be
represented on change control board and should
have sign-off authority for new releases.
Organizing maintenance
programmer
 Software maintenance can be performed by
development team or by member of a
separate organization ;there are advantages
and disadvantages to both approaches
 Organizing maintenance programming is to
periodically rotate programmer between
development and maintenance
 The primary disadvantages of this approach
is overhead cost incurred in rotating
personnel among different task.
Configuration management
 It is concerned with tracking and controlling of
the work products that constitute a software
products.
 Five laws of program evolution :
o CONTINUING CHANGE
o INCREASING COMPLEXITY
o FUNDAMENTAL LAW OF PROGRAM
EVOLUTION
o CONVERVATION OF ORGANIZATION
STABILITY
o CONVERVATION OF FAMILIARITY
Configuration management
data base
 Software tools to support configuration
management include configuration
management data base and version control
library system
 A configuration management data base can
provide information concerning product each
product structure , current revision number,
current status and change request history for
each product version
Version control libraries
 A version control library may be part of a
configuration management data base or it
may be used as a stand- alone tool.
 A configuration management data base
provide a macro view of a product family,
while a version control library controls the
various files that constitute the various
version of software products
Source – code metrics
 During the past few years , a great deal of
effort has been expended on developing
metrics to measure the complexity of source
code.
 Properties of source code , such as the
number of operation and operands , the
complexity of the control flow graphs , the
number of parameter and global variables in
routines
Two main source code metrics
 Halsted’s effort equation
 Mc Cabe’s cyclomatic complexity measure
Halsted’s effort equation:
 Halsted developed a number of metrics that
are computed from easily obtained properties
of the source code
 These properties including the total number
of operation in a program , N1; the total
number of operand , N2 ; the number of
unique operator ,n1 ; and the number of
unique operand ,n2
 FORTRAN routine & associated values of
N1,N2,n1,and n2
 Halsted defines several quantities using these
number. For example , program length N is
defined as N1+N2;(N1+N2=50)
 Halsted’s estimator of program length is :
N=n1 log2 n1 + n2 log2 n2
For example :
N= 10(3.2) + 7(2.8)=52.9
Program volume is define as
V= (N1+ N2) log2 (n1+n2)
 And language level ( the level of language
abstraction ) is
L=(2*n2)/(n1+N2)
Program effort is defined asVL:
E=(n1*N2*(N1+N2)*log2(n1+n2))/(2*n2)
Mc Cabe’s cyclomatic metric:
 Mc Cabe has observed that the difficulty of
understanding a program is largely
determined by the complexity of the control
flow graph for that program
 The cyclomatic numberV of a connected
graph G is the number of linearly independent
path in graph .
 V(G) is computed as follow:
V(G) =E-n+2p
 Where E is the number of edges
n is the number of nodes
p is the number of connected
components
V(G) is 5 for e.g. , the dashed line connecting
output node f to input node a is added to
produce a connected graph
 Mc Cabe observes that for a structured
program with every single entry l single exit
construct ,V equals the number of predicate
plus one
 Also provided G is planar ,V is equal to the
number of region inG.
Other maintenance tools &
techniques
 Software maintenance is a microcosm of
software development, the activities that a
software maintainer may become involved in
span the entire spectrum of software
engineering
 Automated tools for software maintenance:
text editor
Debugging aids
cross reference generator
linkage editor
comparator etc.,.
Software maintenance

More Related Content

What's hot

Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
janani thirupathi
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
Santhi thi
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
kirupasuchi1996
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
KarthigaGunasekaran1
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
kavitha muneeshwaran
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
NancyBeaulah_R
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
Umaselvi_R
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
lavanya marichamy
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
NancyBeaulah_R
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
akiara
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
lalithambiga kamaraj
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
Siva Priya
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
Mohammad Faizan
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
Rajeev Sharan
 
software maintenance
software maintenancesoftware maintenance
software maintenance
rajshreemuthiah
 
Software Engineering.pptx
Software Engineering.pptxSoftware Engineering.pptx
Software Engineering.pptx
Aishwarya SenthilNathan
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
Stephennancy
 
Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compiler
Iffat Anjum
 
Walkthroughs
WalkthroughsWalkthroughs
Walkthroughs
NancyBeaulah_R
 

What's hot (20)

Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Designing Techniques in Software Engineering
Designing Techniques in Software EngineeringDesigning Techniques in Software Engineering
Designing Techniques in Software Engineering
 
unit testing and debugging
unit testing and debuggingunit testing and debugging
unit testing and debugging
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
 
Chapter 1 2 - some size factors
Chapter 1   2 - some size factorsChapter 1   2 - some size factors
Chapter 1 2 - some size factors
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 
Software requirements specification
Software requirements specificationSoftware requirements specification
Software requirements specification
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
 
Estimating Software Maintenance Costs
Estimating Software Maintenance CostsEstimating Software Maintenance Costs
Estimating Software Maintenance Costs
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
software maintenance
software maintenancesoftware maintenance
software maintenance
 
Software Engineering.pptx
Software Engineering.pptxSoftware Engineering.pptx
Software Engineering.pptx
 
Defining the Problem - Goals and requirements
Defining the Problem - Goals and requirementsDefining the Problem - Goals and requirements
Defining the Problem - Goals and requirements
 
Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compiler
 
Walkthroughs
WalkthroughsWalkthroughs
Walkthroughs
 

Similar to Software maintenance

Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
NancyBeaulah_R
 
Software engineer
Software engineerSoftware engineer
Software engineer
Social Development Club
 
Software engineering
Software engineeringSoftware engineering
Software engineering
GowriLatha1
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
kumari36
 
Software metrics
Software metricsSoftware metrics
Software metrics
Prachi Sasankar
 
SDLC
SDLCSDLC
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
Bijay Bhandari
 
software engineering
 software engineering software engineering
software engineering
Ahmed Elshahat Mohamed
 
M017548895
M017548895M017548895
M017548895
IOSR Journals
 
CH. 4.pdf
CH. 4.pdfCH. 4.pdf
CH. 4.pdf
RajniSavaliya
 
software process
software process software process
software process
Muhammad Sikandar Mustafa
 
Software
SoftwareSoftware
Software
SangeethaSasi1
 
Software development life cycle (sdlc) part1
Software development life cycle (sdlc) part1Software development life cycle (sdlc) part1
Software development life cycle (sdlc) part1
Ramandeep Singh
 
SIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdfSIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdf
JanreiDevillaTe
 
GCP DevOps Training in Hyderabad | Visualpath
GCP DevOps Training in Hyderabad   |   VisualpathGCP DevOps Training in Hyderabad   |   Visualpath
GCP DevOps Training in Hyderabad | Visualpath
TalluriRenuka
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-ppt
atish90
 
Understanding the Software Development Life Cycle
Understanding the Software Development Life CycleUnderstanding the Software Development Life Cycle
Understanding the Software Development Life Cycle
Tyrion Lannister
 
Chapter 11 Metrics for process and projects.ppt
Chapter 11  Metrics for process and projects.pptChapter 11  Metrics for process and projects.ppt
Chapter 11 Metrics for process and projects.ppt
ssuser3f82c9
 
CHAPTER 1.docx
CHAPTER 1.docxCHAPTER 1.docx
CHAPTER 1.docx
johncainodeladia11
 
Testing material (1).docx
Testing material (1).docxTesting material (1).docx
Testing material (1).docx
KVamshiKrishna5
 

Similar to Software maintenance (20)

Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Software engineer
Software engineerSoftware engineer
Software engineer
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
SDLC
SDLCSDLC
SDLC
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
software engineering
 software engineering software engineering
software engineering
 
M017548895
M017548895M017548895
M017548895
 
CH. 4.pdf
CH. 4.pdfCH. 4.pdf
CH. 4.pdf
 
software process
software process software process
software process
 
Software
SoftwareSoftware
Software
 
Software development life cycle (sdlc) part1
Software development life cycle (sdlc) part1Software development life cycle (sdlc) part1
Software development life cycle (sdlc) part1
 
SIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdfSIA-101-Final-_SDLC.pdf
SIA-101-Final-_SDLC.pdf
 
GCP DevOps Training in Hyderabad | Visualpath
GCP DevOps Training in Hyderabad   |   VisualpathGCP DevOps Training in Hyderabad   |   Visualpath
GCP DevOps Training in Hyderabad | Visualpath
 
16103271 software-testing-ppt
16103271 software-testing-ppt16103271 software-testing-ppt
16103271 software-testing-ppt
 
Understanding the Software Development Life Cycle
Understanding the Software Development Life CycleUnderstanding the Software Development Life Cycle
Understanding the Software Development Life Cycle
 
Chapter 11 Metrics for process and projects.ppt
Chapter 11  Metrics for process and projects.pptChapter 11  Metrics for process and projects.ppt
Chapter 11 Metrics for process and projects.ppt
 
CHAPTER 1.docx
CHAPTER 1.docxCHAPTER 1.docx
CHAPTER 1.docx
 
Testing material (1).docx
Testing material (1).docxTesting material (1).docx
Testing material (1).docx
 

Recently uploaded

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

Software maintenance

  • 1. SOFTWARE MAINTENANCE BY, K.RAJALAKSHMI II-MSC(IT) DEPARTMENT OF CS&IT NADAR SARASWATHI COLLEGE OF ARTS AND SCIENCE,THENI
  • 2. SYNOPISIS:  Introduction  Enhancing Maintainability during development  Managerial aspects of Software Maintenance  Configuration management  source-code metrics  Other maintenance tools & techniques
  • 3. Introduction:  The term ”software maintenance” is used to describe the software engineering activities that occur following delivery of a software product to the customer  The development cycle for a software product span 1 or 2 years , while the maintenance phase span 5 to 10 years  Maintenance activities involve making enhancement to software product , adapting products to new environment and correcting problem
  • 4.  It is well established that maintenance activities consume a large potion of the total life cycle budget(LIE80)  It is not uncommon for software maintenance to account for 70 % of total software life cycle cost  Analysis activities during software maintenance involve understanding the scope and effort of a desire changes as well as the constraints on making the change
  • 5. Enhancing Maintainability during development  Many activities performed during software development enhance the maintenance ability of a software products Analysis activity: Architectural design activities Detailed design activities Implementation activities Supporting document
  • 6. Analysis activities:  Develop standard and guidelines  Set milestone for the supporting document  Specify quality assurance procedures  Identify likely product enhancements  Determine resource required for maintenance  Estimate maintenance costs
  • 7. Architectural design activities:  Emphasize clarity and modularity as design criteria  Design to ease likely enhancement  Use standardized notation to document data flow  Function ,structure , and interconnection  Observe the principles of information hiding , data abstraction and top-down hierarchical decomposition
  • 8. Detailed design activities:  Use standardized notation to specify algorithms  data structure and procedure interface specifications specify side effects and exception handling for each routine  Provide cross-reference directories
  • 9. Implementation activities:  Use single entry, single exit constructs  Use standard indentation of constructs  Use simple , clear coding style  Use symbolic constants to parameterize routine  Follow standard internal commenting guidelines
  • 10. Supporting document:  There are two particular important supporting document that should be prepared during the software development cycle in order to ease maintenance activities  Develop a maintenance guide  Develop a test suite  Provide test suite documentation
  • 11. Managerial aspects of Software Maintenance  One of the most important aspect of software maintenance involves tracking and control of maintenance activities  Maintenance activity for a software product usually occur in response to a change request filed by a user of the product
  • 12. Types managerial aspects of Software maintenance  Change control board  Change request summaries  Quality assurance activities  Organizing maintenance programmers
  • 13. Change control board  The change control board reviews and approves all change request.  The board may deny a request , recommend a modified version of the change or approve the change as submitted.  Important aspect of this structure are the shielding of maintenance programmer from continual interruption by users and the guidance provided to the programmer and analytics by the change control board .
  • 14. Quality assurance activities  In many organization , the quality assurance group monitor change request , prepares change request summaries , perform regression testing of software modification , provides configuration management  Retrains and protest the physical media for software products.  The quality assurance group should be represented on change control board and should have sign-off authority for new releases.
  • 15. Organizing maintenance programmer  Software maintenance can be performed by development team or by member of a separate organization ;there are advantages and disadvantages to both approaches  Organizing maintenance programming is to periodically rotate programmer between development and maintenance  The primary disadvantages of this approach is overhead cost incurred in rotating personnel among different task.
  • 16. Configuration management  It is concerned with tracking and controlling of the work products that constitute a software products.  Five laws of program evolution : o CONTINUING CHANGE o INCREASING COMPLEXITY o FUNDAMENTAL LAW OF PROGRAM EVOLUTION o CONVERVATION OF ORGANIZATION STABILITY o CONVERVATION OF FAMILIARITY
  • 17. Configuration management data base  Software tools to support configuration management include configuration management data base and version control library system  A configuration management data base can provide information concerning product each product structure , current revision number, current status and change request history for each product version
  • 18. Version control libraries  A version control library may be part of a configuration management data base or it may be used as a stand- alone tool.  A configuration management data base provide a macro view of a product family, while a version control library controls the various files that constitute the various version of software products
  • 19. Source – code metrics  During the past few years , a great deal of effort has been expended on developing metrics to measure the complexity of source code.  Properties of source code , such as the number of operation and operands , the complexity of the control flow graphs , the number of parameter and global variables in routines
  • 20. Two main source code metrics  Halsted’s effort equation  Mc Cabe’s cyclomatic complexity measure
  • 21. Halsted’s effort equation:  Halsted developed a number of metrics that are computed from easily obtained properties of the source code  These properties including the total number of operation in a program , N1; the total number of operand , N2 ; the number of unique operator ,n1 ; and the number of unique operand ,n2  FORTRAN routine & associated values of N1,N2,n1,and n2
  • 22.  Halsted defines several quantities using these number. For example , program length N is defined as N1+N2;(N1+N2=50)  Halsted’s estimator of program length is : N=n1 log2 n1 + n2 log2 n2 For example : N= 10(3.2) + 7(2.8)=52.9 Program volume is define as V= (N1+ N2) log2 (n1+n2)
  • 23.  And language level ( the level of language abstraction ) is L=(2*n2)/(n1+N2) Program effort is defined asVL: E=(n1*N2*(N1+N2)*log2(n1+n2))/(2*n2)
  • 24. Mc Cabe’s cyclomatic metric:  Mc Cabe has observed that the difficulty of understanding a program is largely determined by the complexity of the control flow graph for that program  The cyclomatic numberV of a connected graph G is the number of linearly independent path in graph .  V(G) is computed as follow:
  • 25. V(G) =E-n+2p  Where E is the number of edges n is the number of nodes p is the number of connected components V(G) is 5 for e.g. , the dashed line connecting output node f to input node a is added to produce a connected graph
  • 26.  Mc Cabe observes that for a structured program with every single entry l single exit construct ,V equals the number of predicate plus one  Also provided G is planar ,V is equal to the number of region inG.
  • 27. Other maintenance tools & techniques  Software maintenance is a microcosm of software development, the activities that a software maintainer may become involved in span the entire spectrum of software engineering  Automated tools for software maintenance: text editor Debugging aids cross reference generator linkage editor comparator etc.,.