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

Software maintenance

  • 1.
    SOFTWARE MAINTENANCE BY, K.RAJALAKSHMI II-MSC(IT) DEPARTMENT OFCS&IT NADAR SARASWATHI COLLEGE OF ARTS AND SCIENCE,THENI
  • 2.
    SYNOPISIS:  Introduction  EnhancingMaintainability 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 iswell 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:  Developstandard 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:  Emphasizeclarity 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:  Usesingle 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:  Thereare 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 SoftwareMaintenance  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 aspectsof 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  Softwaremaintenance 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  Itis 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 – codemetrics  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 sourcecode 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 definesseveral 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 languagelevel ( 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 cyclomaticmetric:  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  WhereE 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 Cabeobserves 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.,.