SlideShare a Scribd company logo
1 of 33
Software change 
 Managing the processes of 
software system change 
1
Objectives 
 To explain different strategies for 
changing software systems 
 Software maintenance 
 Architectural evolution 
 Software re-engineering 
 To explain the principles of software 
maintenance 
2
Software change 
 Software change is inevitable 
 New requirements emerge when the software is 
used 
 The business environment changes 
 Errors must be repaired 
 New equipment must be accommodated 
 The performance or reliability may have to be 
improved 
 A key problem for organisations is implementing and 
managing change to their legacy systems 
3
Software change strategies 
 Software maintenance 
 Changes are made in response to changed requirements 
but the fundamental software structure is stable 
 Architectural transformation 
 The architecture of the system is modified generally from a 
centralized architecture to a distributed architecture 
 Software re-engineering 
 No new functionality is added to the system but it is 
restructured and reorganized to facilitate future changes 
 These strategies may be applied separately or together 
4
Program evolution 
dynamics 
 Program evolution dynamics is the study of the 
processes of system change 
 After major empirical study, Lehman and Belady 
proposed that there were a number of ‘laws’ which 
applied to all systems as they evolved 
 There are sensible observations rather than laws. 
They are applicable to large systems developed by 
large organisations. Perhaps less applicable in other 
cases 
5
Lehman’s laws of Software 
Evolution 
 Lehman suggested eight laws of S/w evolution[Draw 
graphs for laws 1 and 2]. 
 Continuing change: A program that is used in a real-world 
environment necessarily must change or become 
progressively less useful in that environment. 
 Increasing complexity: As an evolving program changes, its 
structure tends to become more complex. Extra resources 
must be devoted to preserving and simplifying the structure. 
 Large program evolution: Program evolution is a self-regulating 
process. System attributes such as size, time 
between releases and the number of reported errors is 
approximately invariant for each system release. 
 Organizational stability: Over a program’s lifetime, its rate of 
development is approximately constant and independent of 
the resources devoted to system development. 
6
Lehman’s laws of Software 
Evolution-Cont’d 
• Conservation of familiarity: Over the lifetime of a system, the 
incremental change in each releases is approximately constant. 
• Continuing growth: The functionality offered by systems has to 
continually increase to maintain user satisfaction 
• Declining quality: The quality of systems will appear to be declining 
unless they are adapted to changes in their operational environment. 
• Feedback system: Evolution processes incorporate multi-agent, multi-loop 
feedback systems and you have to treat them as feedback 
systems to achieve significant product improvement. 
7
Applicability of Lehman’s 
laws 
 This has not yet been established 
 They are generally applicable to large, tailored 
systems developed by large organisations 
 It is not clear how they should be modified for 
 Shrink-wrapped software products 
 Systems that incorporate a significant number of 
COTS components 
 Small organizations 
 Medium sized systems 
8
Software maintenance 
 Modifying a program after it has been 
put into use 
 Maintenance does not normally involve 
major changes to the system’s 
architecture 
 Changes are implemented by modifying 
existing components and adding new 
components to the system 
9
Maintenance is Expensive … 
but is it necessary? 
The solution to the problem of software maintenance is to build systems properly 
in the first place, right? 
 Perfection seems to be unattainable 
 Even if perfection were attainable, software is affected by other changes like; 
• Technological changes 
– E.g. tapes vs. hard disks 
• Changes to laws and government regulations 
– E.g. data protection act, taxation ... 
• Changes to the business environment 
– E.g. need to deal with new, or much larger numbers of, 
customers/sales/products/... 
– E.g. e-commerce 
• Changes to organizational structure 
– E.g. company mergers[case of Airtel and Warid] 10
Maintenance is inevitable 
 The system requirements are likely to change 
while the system is being developed because 
the environment is changing. Therefore a 
delivered system won't meet its requirements! 
 Systems are tightly coupled with their environment. 
When a system is installed in an 
environment it changes that environment and 
therefore changes the system requirements. 
 Systems MUST be maintained therefore if they 
are to remain useful in an environment 
11
When is S/W maintenance 
needed? 
Maintenance to repair software faults 
– Coding errors are usually relatively cheap to correct 
– Design errors are more expensive as they may involve rewriting several program components 
– Requirements errors are the most expensive to repair because of the extensive system 
redesign that may be necessary 
Maintenance to adapt the software to a new operating environment 
– This type of maintenance is required when some aspect of the system’s environment such as 
the hardware, the platform operating systems or other support software changes 
– The application system must be modified to adapt it to cope with these environmental changes 
Maintenance to add to or modify the system's functionality 
– This type of maintenance is necessary when the system requirements change in response to 
organizational or business change 
– The scale of the changes required to the software is often much grater that the other types of 
maintenance 
12
Types of Software Changes 
done in Maintenance 
• Studies reveal 4 types of change 
• Corrective change 
– correcting faults in system behavior 
– caused by errors in coding, design or requirements 
• Adaptive change 
– due to changes in operating environment 
– e.g., different hardware or Operating System 
• Perfective change 
– due to changes in requirements 
– Often triggered by organizational, business or user learning 
• Preventive change 
– e.g., dealing with legacy systems (legacy systems are these 
older systems that remain vital to the organization) 
• Exercise: define each of the above, and find at least two cases of software projects for 
each of them where it has been used. Also find out which of the 4 is common. 13
Managing S/W Maintenance 
• 
• Corrective: 
– Requires maintenance strategy preferably negotiated contract 
between supplier and customer(s) 
– Policies for reporting and fixing errors; auditing of process 
• Perfective: 
– Should be treated as development (e.g., requirements, 
specification, design, testing, etc.) 
– Iterative (or evolutionary) development approach best suited 
– Risks: drift, shift, creep, ooze, bloat, etc. 
– When does design or development stop? 
• Adaptive and Preventive: 
– Can anticipate, schedule, monitor and manage, etc. 14
Distribution of maintenance 
effort 
Question: What are the reasons behind the percentages? 
15
Spiral maintenance model 
16
Maintenance costs 
 Usually greater than development costs (2% to 
100% depending on the application) 
 Affected by both technical and non-technical 
factors 
 Increases as software is maintained. 
Maintenance corrupts the software structure so 
makes further maintenance more difficult. 
 Ageing software can have high support costs 
(e.g. old languages, compilers etc.) 
17
Development/maintenance 
costs 
18
Maintenance cost factors 
 Team stability 
 Maintenance costs are reduced if the same staff are involved 
with them for some time 
 Contractual responsibility 
 The developers of a system may have no contractual 
responsibility for maintenance so there is no incentive to 
design for future change 
 Staff skills 
 Maintenance staff are often inexperienced and have limited 
domain knowledge 
 Program age and structure 
 As programs age, their structure is degraded and they become 
harder to understand and change 
19
Evolutionary software 
 Rather than think of separate 
development and maintenance phases, 
evolutionary software is software that is 
designed so that it can continuously 
evolve throughout its lifetime 
20
The maintenance process 
NB: The arrow from “system release” to “change request” means that a change 
can cause a new change request. 
21
Change requests 
 Change requests are requests for system changes 
from users, customers or management 
 In principle, all change requests should be carefully 
analyzed as part of the maintenance process and 
then implemented 
 In practice, some change requests must be 
implemented urgently 
 Fault repair 
 Changes to the system’s environment 
 Urgently required business changes 
22
Change implementation 
23
Emergency repair 
24
Maintenance prediction 
 Maintenance prediction is concerned with assessing 
which parts of the system may cause problems and 
have high maintenance costs 
 Change acceptance depends on the 
maintainability of the components affected by the 
change 
 Implementing changes degrades the system and 
reduces its maintainability 
 Maintenance costs depend on the number of 
changes and costs of change depend on 
maintainability 
25
Maintenance prediction 
26
Change prediction 
 Predicting the number of changes requires 
understanding of the relationships between a system and 
its environment 
 Tightly coupled systems require changes whenever the 
environment is changed. Recall that in tightly coupled systems, one 
module can heavily rely on another module such that a change in one module means 
a change in the other module. For example if they are sharing external variables. 
 Factors influencing this relationship are 
 Number and complexity of system interfaces. Like how 
many modules will need to be changed when one module is changed? 
 Number of inherently volatile system requirements 
 The business processes where the system is used 
27
Complexity metrics 
 Predictions of maintainability can be made by 
assessing the complexity of system components 
 Studies have shown that most maintenance effort is 
spent on a relatively small number of system 
components[possibly due to the maintainability of 
those few components] 
 Complexity depends on 
 Complexity of control structures 
 Complexity of data structures 
 Procedure and module size 
28
Process metrics 
 Process measurements may be used to assess 
maintainability 
 Number of requests for corrective maintenance. 
E.g. How many errors have been reported? 
 Average time required for impact analysis 
 Average time taken to implement a change 
request 
 Number of outstanding change requests 
 If any or all of these is increasing, this may indicate a 
decline in maintainability 
29
Architectural evolution 
 There is a need to convert many legacy systems 
from a centralized architecture to a client-server 
architecture 
 Change drivers 
 Hardware costs. Servers are cheaper than 
mainframes 
 User interface expectations. Users expect 
graphical user interfaces[not just black and white 
screens] 
 Distributed access to systems. Users wish to 
access the system from different, geographically 
separated, computers 30
Distribution factors (i.e factors that affect the shift 
from centralized to distributed architecture) 
31
Key points 
 Software change strategies include software 
maintenance, architectural evolution and software re-engineering 
 Lehman’s Laws are invariant [or true] relationships 
that affect the evolution of a software system 
 Maintenance types are 
 Maintenance for repair 
 Maintenance for a new operating environment 
 Maintenance to implement new requirements 
32
Key points 
 The costs of software change usually exceed the costs 
of software development 
 Factors influencing maintenance costs include staff 
stability, the nature of the development contract, skill 
shortages and degraded system structure 
 Architectural evolution is concerned with evolving 
centralised to distributed architectures 
33

More Related Content

What's hot

Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEObject Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEVipin Kumar
 
Legacy Systems: The Forgotten Risk
Legacy Systems: The Forgotten RiskLegacy Systems: The Forgotten Risk
Legacy Systems: The Forgotten Riskbrittniinicole
 
Information system implementation, change management and control
Information system implementation, change management and controlInformation system implementation, change management and control
Information system implementation, change management and controlShruti Pendharkar
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9Ian Sommerville
 
L10 system implementation
L10 system implementationL10 system implementation
L10 system implementationOMWOMA JACKSON
 
Chapter17 system implementation
Chapter17 system implementationChapter17 system implementation
Chapter17 system implementationDhani Ahmad
 
Software enginnering
Software enginneringSoftware enginnering
Software enginneringashish kumar
 
7. The Software Development Process - Maintenance
7. The Software Development Process - Maintenance7. The Software Development Process - Maintenance
7. The Software Development Process - MaintenanceForrester High School
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenanceFeliciano Colella
 
Software maintenance
Software  maintenanceSoftware  maintenance
Software maintenancePiyush Dua
 
Software Evolution and Maintenance Models
Software Evolution and Maintenance ModelsSoftware Evolution and Maintenance Models
Software Evolution and Maintenance ModelsMoutasm Tamimi
 
Software Change in Software Engineering SE27
Software Change in Software Engineering SE27Software Change in Software Engineering SE27
Software Change in Software Engineering SE27koolkampus
 
Legacy Software Maintenance And Management
Legacy Software Maintenance And ManagementLegacy Software Maintenance And Management
Legacy Software Maintenance And ManagementValueCoders
 
RELIABILITY CENTERED MAINTAINANCE
RELIABILITY CENTERED MAINTAINANCERELIABILITY CENTERED MAINTAINANCE
RELIABILITY CENTERED MAINTAINANCEkifayat ullah
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 

What's hot (18)

Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEObject Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
 
Legacy Systems: The Forgotten Risk
Legacy Systems: The Forgotten RiskLegacy Systems: The Forgotten Risk
Legacy Systems: The Forgotten Risk
 
Information system implementation, change management and control
Information system implementation, change management and controlInformation system implementation, change management and control
Information system implementation, change management and control
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9
 
L10 system implementation
L10 system implementationL10 system implementation
L10 system implementation
 
Chapter17 system implementation
Chapter17 system implementationChapter17 system implementation
Chapter17 system implementation
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
Software enginnering
Software enginneringSoftware enginnering
Software enginnering
 
7. The Software Development Process - Maintenance
7. The Software Development Process - Maintenance7. The Software Development Process - Maintenance
7. The Software Development Process - Maintenance
 
Software evolution and maintenance
Software evolution and maintenanceSoftware evolution and maintenance
Software evolution and maintenance
 
Software maintenance
Software  maintenanceSoftware  maintenance
Software maintenance
 
Software Evolution and Maintenance Models
Software Evolution and Maintenance ModelsSoftware Evolution and Maintenance Models
Software Evolution and Maintenance Models
 
Software Change in Software Engineering SE27
Software Change in Software Engineering SE27Software Change in Software Engineering SE27
Software Change in Software Engineering SE27
 
Critical Systems
Critical SystemsCritical Systems
Critical Systems
 
Legacy Software Maintenance And Management
Legacy Software Maintenance And ManagementLegacy Software Maintenance And Management
Legacy Software Maintenance And Management
 
RELIABILITY CENTERED MAINTAINANCE
RELIABILITY CENTERED MAINTAINANCERELIABILITY CENTERED MAINTAINANCE
RELIABILITY CENTERED MAINTAINANCE
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 

Viewers also liked

PE Playbook - Process Excellence
PE Playbook - Process ExcellencePE Playbook - Process Excellence
PE Playbook - Process ExcellenceSonja Gielen
 
The Change Management Playbook
The Change Management PlaybookThe Change Management Playbook
The Change Management PlaybookKeith Chisholm
 
VP- Change Management
VP- Change ManagementVP- Change Management
VP- Change Managementdestination
 
10 Ways To Use Customer Journey Maps
10 Ways To Use Customer Journey Maps10 Ways To Use Customer Journey Maps
10 Ways To Use Customer Journey MapsQualtrics
 
Prosci Roles in Change Management
Prosci Roles in Change ManagementProsci Roles in Change Management
Prosci Roles in Change ManagementTim Creasey
 
Change management - the change team
Change management - the change teamChange management - the change team
Change management - the change teamSherif Ali
 
Lightning Talk #14: Blueprint for change by Ally Reeves
Lightning Talk #14: Blueprint for change by Ally ReevesLightning Talk #14: Blueprint for change by Ally Reeves
Lightning Talk #14: Blueprint for change by Ally Reevesux singapore
 
Accenture’s Change Management Strategy for Workday
Accenture’s Change Management Strategy for WorkdayAccenture’s Change Management Strategy for Workday
Accenture’s Change Management Strategy for WorkdayAccenture Technology
 
Chris Ham: Integrated care in Northern Ireland, Scotland and Wales
Chris Ham: Integrated care in Northern Ireland, Scotland and WalesChris Ham: Integrated care in Northern Ireland, Scotland and Wales
Chris Ham: Integrated care in Northern Ireland, Scotland and WalesThe King's Fund
 
Time to Think Differently: The case for change
Time to Think Differently: The case for changeTime to Think Differently: The case for change
Time to Think Differently: The case for changeThe King's Fund
 
How to build a case for change
How to build a case for changeHow to build a case for change
How to build a case for changethechangesource
 
Change Management
Change ManagementChange Management
Change ManagementEstragon
 
Change Management - Leading Organizational Change
Change Management - Leading Organizational ChangeChange Management - Leading Organizational Change
Change Management - Leading Organizational Changejohnnyg14
 
Change management strategy ppt
Change management strategy pptChange management strategy ppt
Change management strategy pptsonips
 
Change Management PPT Slides
Change Management PPT SlidesChange Management PPT Slides
Change Management PPT SlidesYodhia Antariksa
 
Change Management Models- a comparison
Change Management Models- a comparisonChange Management Models- a comparison
Change Management Models- a comparisonPeopleWiz Consulting
 

Viewers also liked (17)

PE Playbook - Process Excellence
PE Playbook - Process ExcellencePE Playbook - Process Excellence
PE Playbook - Process Excellence
 
The Change Management Playbook
The Change Management PlaybookThe Change Management Playbook
The Change Management Playbook
 
VP- Change Management
VP- Change ManagementVP- Change Management
VP- Change Management
 
10 Ways To Use Customer Journey Maps
10 Ways To Use Customer Journey Maps10 Ways To Use Customer Journey Maps
10 Ways To Use Customer Journey Maps
 
Prosci Roles in Change Management
Prosci Roles in Change ManagementProsci Roles in Change Management
Prosci Roles in Change Management
 
Change management - the change team
Change management - the change teamChange management - the change team
Change management - the change team
 
Lightning Talk #14: Blueprint for change by Ally Reeves
Lightning Talk #14: Blueprint for change by Ally ReevesLightning Talk #14: Blueprint for change by Ally Reeves
Lightning Talk #14: Blueprint for change by Ally Reeves
 
Workday Change Management
Workday Change ManagementWorkday Change Management
Workday Change Management
 
Accenture’s Change Management Strategy for Workday
Accenture’s Change Management Strategy for WorkdayAccenture’s Change Management Strategy for Workday
Accenture’s Change Management Strategy for Workday
 
Chris Ham: Integrated care in Northern Ireland, Scotland and Wales
Chris Ham: Integrated care in Northern Ireland, Scotland and WalesChris Ham: Integrated care in Northern Ireland, Scotland and Wales
Chris Ham: Integrated care in Northern Ireland, Scotland and Wales
 
Time to Think Differently: The case for change
Time to Think Differently: The case for changeTime to Think Differently: The case for change
Time to Think Differently: The case for change
 
How to build a case for change
How to build a case for changeHow to build a case for change
How to build a case for change
 
Change Management
Change ManagementChange Management
Change Management
 
Change Management - Leading Organizational Change
Change Management - Leading Organizational ChangeChange Management - Leading Organizational Change
Change Management - Leading Organizational Change
 
Change management strategy ppt
Change management strategy pptChange management strategy ppt
Change management strategy ppt
 
Change Management PPT Slides
Change Management PPT SlidesChange Management PPT Slides
Change Management PPT Slides
 
Change Management Models- a comparison
Change Management Models- a comparisonChange Management Models- a comparison
Change Management Models- a comparison
 

Similar to Bse 3105 lecture 2- software change

SE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptxSE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptxTangZhiSiang
 
Software maintenance
Software maintenance Software maintenance
Software maintenance Rajeev Sharan
 
Software maintenance service strategies
Software maintenance service strategiesSoftware maintenance service strategies
Software maintenance service strategiesSIS Tech
 
Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptxAmarYa2
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenanceConestoga Collage
 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineeringRa'Fat Al-Msie'deen
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed descriptionSaileshSingh27
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance costmalathieswaran29
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)ShudipPal
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
sfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.ppt
sfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.pptsfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.ppt
sfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.pptssuser2d043c
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdfkumari36
 
Information Systems Life Cycle
Information Systems Life CycleInformation Systems Life Cycle
Information Systems Life Cycle4goggas
 

Similar to Bse 3105 lecture 2- software change (20)

Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
SE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptxSE - Lecture 13 - Software Evolution and Tech Trends.pptx
SE - Lecture 13 - Software Evolution and Tech Trends.pptx
 
Ch9
Ch9Ch9
Ch9
 
SE2013_10.ppt
SE2013_10.pptSE2013_10.ppt
SE2013_10.ppt
 
Sw Maintenance.ppt
Sw Maintenance.pptSw Maintenance.ppt
Sw Maintenance.ppt
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Software maintenance service strategies
Software maintenance service strategiesSoftware maintenance service strategies
Software maintenance service strategies
 
Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptx
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software Maintenance
 
Requirements change - requirements engineering
Requirements change - requirements engineeringRequirements change - requirements engineering
Requirements change - requirements engineering
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
 
Ch9 - Evolution
Ch9 - EvolutionCh9 - Evolution
Ch9 - Evolution
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptx
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
sfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.ppt
sfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.pptsfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.ppt
sfdgdfgfgfdgvsdfdsfedrfewsfdsfsfterfdcm.ppt
 
Ch9 evolution
Ch9 evolutionCh9 evolution
Ch9 evolution
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
 
Information Systems Life Cycle
Information Systems Life CycleInformation Systems Life Cycle
Information Systems Life Cycle
 

Bse 3105 lecture 2- software change

  • 1. Software change  Managing the processes of software system change 1
  • 2. Objectives  To explain different strategies for changing software systems  Software maintenance  Architectural evolution  Software re-engineering  To explain the principles of software maintenance 2
  • 3. Software change  Software change is inevitable  New requirements emerge when the software is used  The business environment changes  Errors must be repaired  New equipment must be accommodated  The performance or reliability may have to be improved  A key problem for organisations is implementing and managing change to their legacy systems 3
  • 4. Software change strategies  Software maintenance  Changes are made in response to changed requirements but the fundamental software structure is stable  Architectural transformation  The architecture of the system is modified generally from a centralized architecture to a distributed architecture  Software re-engineering  No new functionality is added to the system but it is restructured and reorganized to facilitate future changes  These strategies may be applied separately or together 4
  • 5. Program evolution dynamics  Program evolution dynamics is the study of the processes of system change  After major empirical study, Lehman and Belady proposed that there were a number of ‘laws’ which applied to all systems as they evolved  There are sensible observations rather than laws. They are applicable to large systems developed by large organisations. Perhaps less applicable in other cases 5
  • 6. Lehman’s laws of Software Evolution  Lehman suggested eight laws of S/w evolution[Draw graphs for laws 1 and 2].  Continuing change: A program that is used in a real-world environment necessarily must change or become progressively less useful in that environment.  Increasing complexity: As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving and simplifying the structure.  Large program evolution: Program evolution is a self-regulating process. System attributes such as size, time between releases and the number of reported errors is approximately invariant for each system release.  Organizational stability: Over a program’s lifetime, its rate of development is approximately constant and independent of the resources devoted to system development. 6
  • 7. Lehman’s laws of Software Evolution-Cont’d • Conservation of familiarity: Over the lifetime of a system, the incremental change in each releases is approximately constant. • Continuing growth: The functionality offered by systems has to continually increase to maintain user satisfaction • Declining quality: The quality of systems will appear to be declining unless they are adapted to changes in their operational environment. • Feedback system: Evolution processes incorporate multi-agent, multi-loop feedback systems and you have to treat them as feedback systems to achieve significant product improvement. 7
  • 8. Applicability of Lehman’s laws  This has not yet been established  They are generally applicable to large, tailored systems developed by large organisations  It is not clear how they should be modified for  Shrink-wrapped software products  Systems that incorporate a significant number of COTS components  Small organizations  Medium sized systems 8
  • 9. Software maintenance  Modifying a program after it has been put into use  Maintenance does not normally involve major changes to the system’s architecture  Changes are implemented by modifying existing components and adding new components to the system 9
  • 10. Maintenance is Expensive … but is it necessary? The solution to the problem of software maintenance is to build systems properly in the first place, right?  Perfection seems to be unattainable  Even if perfection were attainable, software is affected by other changes like; • Technological changes – E.g. tapes vs. hard disks • Changes to laws and government regulations – E.g. data protection act, taxation ... • Changes to the business environment – E.g. need to deal with new, or much larger numbers of, customers/sales/products/... – E.g. e-commerce • Changes to organizational structure – E.g. company mergers[case of Airtel and Warid] 10
  • 11. Maintenance is inevitable  The system requirements are likely to change while the system is being developed because the environment is changing. Therefore a delivered system won't meet its requirements!  Systems are tightly coupled with their environment. When a system is installed in an environment it changes that environment and therefore changes the system requirements.  Systems MUST be maintained therefore if they are to remain useful in an environment 11
  • 12. When is S/W maintenance needed? Maintenance to repair software faults – Coding errors are usually relatively cheap to correct – Design errors are more expensive as they may involve rewriting several program components – Requirements errors are the most expensive to repair because of the extensive system redesign that may be necessary Maintenance to adapt the software to a new operating environment – This type of maintenance is required when some aspect of the system’s environment such as the hardware, the platform operating systems or other support software changes – The application system must be modified to adapt it to cope with these environmental changes Maintenance to add to or modify the system's functionality – This type of maintenance is necessary when the system requirements change in response to organizational or business change – The scale of the changes required to the software is often much grater that the other types of maintenance 12
  • 13. Types of Software Changes done in Maintenance • Studies reveal 4 types of change • Corrective change – correcting faults in system behavior – caused by errors in coding, design or requirements • Adaptive change – due to changes in operating environment – e.g., different hardware or Operating System • Perfective change – due to changes in requirements – Often triggered by organizational, business or user learning • Preventive change – e.g., dealing with legacy systems (legacy systems are these older systems that remain vital to the organization) • Exercise: define each of the above, and find at least two cases of software projects for each of them where it has been used. Also find out which of the 4 is common. 13
  • 14. Managing S/W Maintenance • • Corrective: – Requires maintenance strategy preferably negotiated contract between supplier and customer(s) – Policies for reporting and fixing errors; auditing of process • Perfective: – Should be treated as development (e.g., requirements, specification, design, testing, etc.) – Iterative (or evolutionary) development approach best suited – Risks: drift, shift, creep, ooze, bloat, etc. – When does design or development stop? • Adaptive and Preventive: – Can anticipate, schedule, monitor and manage, etc. 14
  • 15. Distribution of maintenance effort Question: What are the reasons behind the percentages? 15
  • 17. Maintenance costs  Usually greater than development costs (2% to 100% depending on the application)  Affected by both technical and non-technical factors  Increases as software is maintained. Maintenance corrupts the software structure so makes further maintenance more difficult.  Ageing software can have high support costs (e.g. old languages, compilers etc.) 17
  • 19. Maintenance cost factors  Team stability  Maintenance costs are reduced if the same staff are involved with them for some time  Contractual responsibility  The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change  Staff skills  Maintenance staff are often inexperienced and have limited domain knowledge  Program age and structure  As programs age, their structure is degraded and they become harder to understand and change 19
  • 20. Evolutionary software  Rather than think of separate development and maintenance phases, evolutionary software is software that is designed so that it can continuously evolve throughout its lifetime 20
  • 21. The maintenance process NB: The arrow from “system release” to “change request” means that a change can cause a new change request. 21
  • 22. Change requests  Change requests are requests for system changes from users, customers or management  In principle, all change requests should be carefully analyzed as part of the maintenance process and then implemented  In practice, some change requests must be implemented urgently  Fault repair  Changes to the system’s environment  Urgently required business changes 22
  • 25. Maintenance prediction  Maintenance prediction is concerned with assessing which parts of the system may cause problems and have high maintenance costs  Change acceptance depends on the maintainability of the components affected by the change  Implementing changes degrades the system and reduces its maintainability  Maintenance costs depend on the number of changes and costs of change depend on maintainability 25
  • 27. Change prediction  Predicting the number of changes requires understanding of the relationships between a system and its environment  Tightly coupled systems require changes whenever the environment is changed. Recall that in tightly coupled systems, one module can heavily rely on another module such that a change in one module means a change in the other module. For example if they are sharing external variables.  Factors influencing this relationship are  Number and complexity of system interfaces. Like how many modules will need to be changed when one module is changed?  Number of inherently volatile system requirements  The business processes where the system is used 27
  • 28. Complexity metrics  Predictions of maintainability can be made by assessing the complexity of system components  Studies have shown that most maintenance effort is spent on a relatively small number of system components[possibly due to the maintainability of those few components]  Complexity depends on  Complexity of control structures  Complexity of data structures  Procedure and module size 28
  • 29. Process metrics  Process measurements may be used to assess maintainability  Number of requests for corrective maintenance. E.g. How many errors have been reported?  Average time required for impact analysis  Average time taken to implement a change request  Number of outstanding change requests  If any or all of these is increasing, this may indicate a decline in maintainability 29
  • 30. Architectural evolution  There is a need to convert many legacy systems from a centralized architecture to a client-server architecture  Change drivers  Hardware costs. Servers are cheaper than mainframes  User interface expectations. Users expect graphical user interfaces[not just black and white screens]  Distributed access to systems. Users wish to access the system from different, geographically separated, computers 30
  • 31. Distribution factors (i.e factors that affect the shift from centralized to distributed architecture) 31
  • 32. Key points  Software change strategies include software maintenance, architectural evolution and software re-engineering  Lehman’s Laws are invariant [or true] relationships that affect the evolution of a software system  Maintenance types are  Maintenance for repair  Maintenance for a new operating environment  Maintenance to implement new requirements 32
  • 33. Key points  The costs of software change usually exceed the costs of software development  Factors influencing maintenance costs include staff stability, the nature of the development contract, skill shortages and degraded system structure  Architectural evolution is concerned with evolving centralised to distributed architectures 33