SlideShare a Scribd company logo
1 of 20
Software Evolution and Maintenance
Chapter 3
Evolution and Maintenance Models
outline
• 1. General Idea
• 2. Reuse Oriented Model
• 2.1 Quick fix model
• 2.2 Iterative enhancement model
• 2.3 Full reuse model
• 3. Software Maintenance Life Cycle
models
• 3.1 The staged model
• 3.1.1 The staged model for CSS
• 3.1.2 The staged model for FLOS
• 3.2 Change Mini-Cycle Model
• 4. Software Maintenance Standard
• 4.1 IEEE/EIA 1219 Maintenance Process
• 4.2 ISO/IEC 14764 Maintenance Process
1. General Idea
• One traditional software development life cycle (SDLC) is shown in Figure, which
comprises two discrete phases, namely:
• Development
• Maintenance
• Maintenance approaching two-thirds of the product life-span.
• The percentages in Figure 3.1 indicate relative costs.
Software maintenance has unique characteristics:
• Constraints of an existing system: Maintenance is performed on an operational system. Therefore, all
modifications must be compatible with the constraints of the existing architecture, design, and code.
• Shorter time frame: A maintenance activity may span from a few hours to a few months, whereas software
development may span one or more years.
• Available test data: In software development, test cases are designed from scratch, whereas software
maintenance can select a subset of these test cases and execute them as regression tests.
2. Reuse Oriented Models
• One obtains a new version of an old system by modifying one or several
components of the old system and possibly adding new components.
• The three process models for maintenance:
Quick fix model:
The changes are quickly made to the
code and then to the accompanying
documentation
Iterative enhancement model:
First changes are made to the
highest level documents. Eventually,
changes are propagated down to the
code level
Full reuse model:
A new system is built from components
of the old system and others available in
the repository
2.1 Quick Fix Model
1. Source code is modified to fix the problem.
2. Necessary changes are made to the relevant
documents.
3. The new code is recompiled to produce a
new version.
Often changes to the source code are made with
no prior investigation such as analysis of
impact of the changes, ripple effects of the
changes, and regression testing.
Figure 3.2 The quick fix model ©IEEE, 1990
2.2 Iterative enhancement model
The iterative enhancement model, explained in Figure
3.3, shows how changes flow from the very top level
documents to the lowest-level documents.
The model works as follows:
1. It begins with the existing system’s artifacts, namely,
requirements, design, code, test, and analysis
documents.
2. It revises the highest-level documents affected by the
changes and propagates the changes down through
the lower-level documents.
3. The model allows maintainers to redesign the
system, based on the analysis of the existing system.
Figure 3.3
The iterative enhancement model
©IEEE, 1990
2.3 Full reuse model
• The main assumption in this model is
the availability of a repository of
artifacts describing the earlier versions
of the systems.
• In the full reuse model, reuse is
explicit and the following activities are
performed.
Figure 3.4 The full reuse model ©IEEE, 1990
3. Software Maintenance Life Cycle models
CSS Vs. FLOSS
• Free/Libre and Open Source Software(FLOSS) is
distributed under a licensing agreement which
allows computer code to be shared, viewed and
modified by other users and organizations.
• open source software is available for the general
public to use and modify from its original design
free of charge
• Closed source software (CSS)can be defined as
proprietary software distributed under a
licensing agreement to authorized users with
private modification, copying, and republishing
restrictions. Or in layman terms, the source
code is not shared with the public for anyone to
look at or change
3.1.1 The Staged Model for CSS
• Their model divides the lifespan of a typical system into four stages:
• Initial development – The first delivered version is produced. Knowledge about the system is fresh and
constantly changing. In fact, change is the rule rather than the exception. Eventually, an architecture
emerge and stabilizes.
• Evolution – Simple changes are easily performed and more major changes are possible too, albeit the
cost and risk are now greater than in the previous stage. Knowledge about the system is still good,
although many of the original developers will have moved on. For many systems, most of its lifespan is
spent in this phase.
• Servicing – The system is no longer a key asset for the developers, who concentrate mainly on
maintenance tasks rather than architectural or functional change. Knowledge about the system has
lessened and the effects of change have become harder to predict. The costs and risks of change have
increased significantly.
• Phase out – It has been decided to replace or eliminate the system entirely, either because the costs of
maintaining the old system have become prohibitive or because there is a newer solution waiting in the
pipeline. An exit strategy is devised and implemented, often involving techniques such as wrapping and
data migration. Ultimately, the system is shut down.
3.1.1 The Staged Model for CSS
Figure 3.5 The simple staged model for the CSS life cycle ©IEEE, 2000
3.1.1 The Staged Model for CSS
Figure 3.6 The versioned staged model for the CSS life cycle ©IEEE, 2000
3.1.2 The Staged Model for FLOSS
Three major differences are identified between CSS systems and FLOSS systems.
• In Figure 3.7, the rectangle with the label “Initial development” has been visually highlighted
because it can be the only initial development stage in the evolution of FLOSS systems. In other
words, it does not have any evolution track for FLOSS system.
• With some systems that were analyzed, after a transition from Evolution to Servicing, a new period of
evolution was observed. This possibility is depicted in Figure as a broken arc from the Servicing stage
to the Evolution stage.
In general, the active developers of FLOSS systems get frequently
replaced by new developers. Therefore, the dashed line in Figure
exhibits this possibility of a transition from Phaseout stage to
Evolution stage.
Figure 3.7 The staged model for
FLOSS system ©ACM, 2007
3.2 Change Mini-Cycle Model
Software change is a process that may introduce new
requirements to the existing system, or may need to alter
the software system if requirements are not correctly
implemented. In order to capture this, an evolutionary
model known as change mini-cycle.
Figure 3.8 The change mini-cycle ©Springer, 2008
4. Software Maintenance Standard
• IEEE and ISO have both addressed s/w maintenance processes.
• IEEE/EIA 1219 and ISO/IEC 14764 as a part of ISO/IEC12207
(life cycle process).
• ISO/IEC 14764 describes s/w maintenance as an iterative process
for managing and executing software maintenance activities.
4.1 IEEE/EIA 1219 Maintenance Process
The standard focuses on a seven-phases:
• Problem Identification.
• Analysis.
• Design.
• Implementation.
• System Test.
• Acceptance Test.
• Delivery.
Figure 3.9 Seven phases of IEEE maintenance
process ©IEEE, 2004
4.2 ISO/IEC 14764 Maintenance Process
The maintenance process comprises the following high level
activities:
1. Process Implementation.
2. Problem and Modification Analysis.
3. Modification Implementation.
4. Maintenance Review and Acceptance.
5. Migration.
6. Retirement.
Figure 3.17 ISO/IEC 14764 iterative
maintenance process ©IEEE, 2004
Thank you ….
Speaker Information
 Moutasm tamimi
 Masters of Software Engineering
 Independent Consultant , IT Researcher.
 CEO at ITG7.com , IT-CRG.com
 Email: tamimi@itg7.com,
Click Here
Click HereI T G 7
Click Here
Click HereIT-CRG

More Related Content

What's hot

Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Kiran Hanjar
 
Planning the development process
Planning the development processPlanning the development process
Planning the development processSiva Priya
 
V model presentation
V model presentationV model presentation
V model presentationNiat Murad
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specificationDeepak Sharma
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software EngineeringKourosh Sajjadi
 
Regression testing
Regression testingRegression testing
Regression testingMohua Amin
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activitiessommerville-videos
 
Quality software management
Quality software managementQuality software management
Quality software managementArun Kumar
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Slice Based testing and Object Oriented Testing
Slice Based testing and Object Oriented TestingSlice Based testing and Object Oriented Testing
Slice Based testing and Object Oriented Testingvarsha sharma
 

What's hot (20)

Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )Cost of software quality ( software quality assurance )
Cost of software quality ( software quality assurance )
 
Software quality management standards
Software quality management standardsSoftware quality management standards
Software quality management standards
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
Planning the development process
Planning the development processPlanning the development process
Planning the development process
 
V model presentation
V model presentationV model presentation
V model presentation
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
 
PROTOTYPE MODEL
PROTOTYPE MODELPROTOTYPE MODEL
PROTOTYPE MODEL
 
Regression testing
Regression testingRegression testing
Regression testing
 
Software resuse
Software  resuseSoftware  resuse
Software resuse
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activities
 
Prototyping model
Prototyping modelPrototyping model
Prototyping model
 
Quality software management
Quality software managementQuality software management
Quality software management
 
Software process
Software processSoftware process
Software process
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
Slice Based testing and Object Oriented Testing
Slice Based testing and Object Oriented TestingSlice Based testing and Object Oriented Testing
Slice Based testing and Object Oriented Testing
 

Similar to Software Evolution and Maintenance Models

Software Maintenance Chapter 3 Models
Software Maintenance Chapter 3 ModelsSoftware Maintenance Chapter 3 Models
Software Maintenance Chapter 3 Modelsalbaraahasan1
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenanceConestoga Collage
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed descriptionSaileshSingh27
 
Agile methodology
Agile methodologyAgile methodology
Agile methodologybipulpwc
 
Software maintenance ppt
Software maintenance pptSoftware maintenance ppt
Software maintenance pptAnas Usman
 
11 system development models
11 system development models11 system development models
11 system development modelsmeenakshi24
 
07_SoftwareEvolution.pdf for student of comuter
07_SoftwareEvolution.pdf for student of comuter07_SoftwareEvolution.pdf for student of comuter
07_SoftwareEvolution.pdf for student of comuterabdulghaffarfrotan20
 
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
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentRAVALCHIRAG1
 

Similar to Software Evolution and Maintenance Models (20)

Ch3-Models.ppt
Ch3-Models.pptCh3-Models.ppt
Ch3-Models.ppt
 
Software Maintenance Chapter 3 Models
Software Maintenance Chapter 3 ModelsSoftware Maintenance Chapter 3 Models
Software Maintenance Chapter 3 Models
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software Maintenance
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
SDLC
SDLC SDLC
SDLC
 
Lecture 2.pptx
Lecture 2.pptxLecture 2.pptx
Lecture 2.pptx
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptx
 
system development life cycle
system development life cyclesystem development life cycle
system development life cycle
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Software maintenance ppt
Software maintenance pptSoftware maintenance ppt
Software maintenance ppt
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
 
Pawan111
Pawan111Pawan111
Pawan111
 
N1803017478
N1803017478N1803017478
N1803017478
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
11 system development models
11 system development models11 system development models
11 system development models
 
07_SoftwareEvolution.pdf for student of comuter
07_SoftwareEvolution.pdf for student of comuter07_SoftwareEvolution.pdf for student of comuter
07_SoftwareEvolution.pdf for student of comuter
 
The process
The processThe process
The process
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
SDLC Model
SDLC  ModelSDLC  Model
SDLC Model
 

More from Moutasm Tamimi

Software Quality Assessment Practices
Software Quality Assessment PracticesSoftware Quality Assessment Practices
Software Quality Assessment PracticesMoutasm Tamimi
 
Reengineering PDF-Based Documents Targeting Complex Software Specifications
Reengineering PDF-Based Documents Targeting Complex Software SpecificationsReengineering PDF-Based Documents Targeting Complex Software Specifications
Reengineering PDF-Based Documents Targeting Complex Software SpecificationsMoutasm Tamimi
 
Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminariesMoutasm Tamimi
 
An integrated security testing framework and tool
An integrated security testing framework  and toolAn integrated security testing framework  and tool
An integrated security testing framework and toolMoutasm Tamimi
 
Critical Success Factors along ERP life-cycle in Small medium enterprises
Critical Success Factors along ERP life-cycle in Small medium enterprises Critical Success Factors along ERP life-cycle in Small medium enterprises
Critical Success Factors along ERP life-cycle in Small medium enterprises Moutasm Tamimi
 
Critical Success Factors (CSFs) In International ERP Implementations with que...
Critical Success Factors (CSFs) In International ERP Implementations with que...Critical Success Factors (CSFs) In International ERP Implementations with que...
Critical Success Factors (CSFs) In International ERP Implementations with que...Moutasm Tamimi
 
Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3Moutasm Tamimi
 
Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1Moutasm Tamimi
 
Recovery in Multi database Systems
Recovery in Multi database SystemsRecovery in Multi database Systems
Recovery in Multi database SystemsMoutasm Tamimi
 
Software Quality Models: A Comparative Study paper
Software Quality Models: A Comparative Study  paperSoftware Quality Models: A Comparative Study  paper
Software Quality Models: A Comparative Study paperMoutasm Tamimi
 
ISO 29110 Software Quality Model For Software SMEs
ISO 29110 Software Quality Model For Software SMEsISO 29110 Software Quality Model For Software SMEs
ISO 29110 Software Quality Model For Software SMEsMoutasm Tamimi
 
Windows form application - C# Training
Windows form application - C# Training Windows form application - C# Training
Windows form application - C# Training Moutasm Tamimi
 
Asp.net Programming Training (Web design, Web development)
Asp.net Programming Training (Web design, Web  development)Asp.net Programming Training (Web design, Web  development)
Asp.net Programming Training (Web design, Web development)Moutasm Tamimi
 
Database Management System - SQL Advanced Training
Database Management System - SQL Advanced TrainingDatabase Management System - SQL Advanced Training
Database Management System - SQL Advanced TrainingMoutasm Tamimi
 
Database Management System - SQL beginner Training
Database Management System - SQL beginner Training Database Management System - SQL beginner Training
Database Management System - SQL beginner Training Moutasm Tamimi
 
Measurement and Quality in Object-Oriented Design
Measurement and Quality in Object-Oriented DesignMeasurement and Quality in Object-Oriented Design
Measurement and Quality in Object-Oriented DesignMoutasm Tamimi
 
SQL Injection and Clickjacking Attack in Web security
SQL Injection and Clickjacking Attack in Web securitySQL Injection and Clickjacking Attack in Web security
SQL Injection and Clickjacking Attack in Web securityMoutasm Tamimi
 

More from Moutasm Tamimi (17)

Software Quality Assessment Practices
Software Quality Assessment PracticesSoftware Quality Assessment Practices
Software Quality Assessment Practices
 
Reengineering PDF-Based Documents Targeting Complex Software Specifications
Reengineering PDF-Based Documents Targeting Complex Software SpecificationsReengineering PDF-Based Documents Targeting Complex Software Specifications
Reengineering PDF-Based Documents Targeting Complex Software Specifications
 
Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminaries
 
An integrated security testing framework and tool
An integrated security testing framework  and toolAn integrated security testing framework  and tool
An integrated security testing framework and tool
 
Critical Success Factors along ERP life-cycle in Small medium enterprises
Critical Success Factors along ERP life-cycle in Small medium enterprises Critical Success Factors along ERP life-cycle in Small medium enterprises
Critical Success Factors along ERP life-cycle in Small medium enterprises
 
Critical Success Factors (CSFs) In International ERP Implementations with que...
Critical Success Factors (CSFs) In International ERP Implementations with que...Critical Success Factors (CSFs) In International ERP Implementations with que...
Critical Success Factors (CSFs) In International ERP Implementations with que...
 
Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3Best Practices For Business Analyst - Part 3
Best Practices For Business Analyst - Part 3
 
Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1Concepts Of business analyst Practices - Part 1
Concepts Of business analyst Practices - Part 1
 
Recovery in Multi database Systems
Recovery in Multi database SystemsRecovery in Multi database Systems
Recovery in Multi database Systems
 
Software Quality Models: A Comparative Study paper
Software Quality Models: A Comparative Study  paperSoftware Quality Models: A Comparative Study  paper
Software Quality Models: A Comparative Study paper
 
ISO 29110 Software Quality Model For Software SMEs
ISO 29110 Software Quality Model For Software SMEsISO 29110 Software Quality Model For Software SMEs
ISO 29110 Software Quality Model For Software SMEs
 
Windows form application - C# Training
Windows form application - C# Training Windows form application - C# Training
Windows form application - C# Training
 
Asp.net Programming Training (Web design, Web development)
Asp.net Programming Training (Web design, Web  development)Asp.net Programming Training (Web design, Web  development)
Asp.net Programming Training (Web design, Web development)
 
Database Management System - SQL Advanced Training
Database Management System - SQL Advanced TrainingDatabase Management System - SQL Advanced Training
Database Management System - SQL Advanced Training
 
Database Management System - SQL beginner Training
Database Management System - SQL beginner Training Database Management System - SQL beginner Training
Database Management System - SQL beginner Training
 
Measurement and Quality in Object-Oriented Design
Measurement and Quality in Object-Oriented DesignMeasurement and Quality in Object-Oriented Design
Measurement and Quality in Object-Oriented Design
 
SQL Injection and Clickjacking Attack in Web security
SQL Injection and Clickjacking Attack in Web securitySQL Injection and Clickjacking Attack in Web security
SQL Injection and Clickjacking Attack in Web security
 

Recently uploaded

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 

Software Evolution and Maintenance Models

  • 1. Software Evolution and Maintenance Chapter 3 Evolution and Maintenance Models
  • 2. outline • 1. General Idea • 2. Reuse Oriented Model • 2.1 Quick fix model • 2.2 Iterative enhancement model • 2.3 Full reuse model • 3. Software Maintenance Life Cycle models • 3.1 The staged model • 3.1.1 The staged model for CSS • 3.1.2 The staged model for FLOS • 3.2 Change Mini-Cycle Model • 4. Software Maintenance Standard • 4.1 IEEE/EIA 1219 Maintenance Process • 4.2 ISO/IEC 14764 Maintenance Process
  • 3. 1. General Idea • One traditional software development life cycle (SDLC) is shown in Figure, which comprises two discrete phases, namely: • Development • Maintenance • Maintenance approaching two-thirds of the product life-span. • The percentages in Figure 3.1 indicate relative costs.
  • 4. Software maintenance has unique characteristics: • Constraints of an existing system: Maintenance is performed on an operational system. Therefore, all modifications must be compatible with the constraints of the existing architecture, design, and code. • Shorter time frame: A maintenance activity may span from a few hours to a few months, whereas software development may span one or more years. • Available test data: In software development, test cases are designed from scratch, whereas software maintenance can select a subset of these test cases and execute them as regression tests.
  • 5. 2. Reuse Oriented Models • One obtains a new version of an old system by modifying one or several components of the old system and possibly adding new components. • The three process models for maintenance: Quick fix model: The changes are quickly made to the code and then to the accompanying documentation Iterative enhancement model: First changes are made to the highest level documents. Eventually, changes are propagated down to the code level Full reuse model: A new system is built from components of the old system and others available in the repository
  • 6. 2.1 Quick Fix Model 1. Source code is modified to fix the problem. 2. Necessary changes are made to the relevant documents. 3. The new code is recompiled to produce a new version. Often changes to the source code are made with no prior investigation such as analysis of impact of the changes, ripple effects of the changes, and regression testing. Figure 3.2 The quick fix model ©IEEE, 1990
  • 7. 2.2 Iterative enhancement model The iterative enhancement model, explained in Figure 3.3, shows how changes flow from the very top level documents to the lowest-level documents. The model works as follows: 1. It begins with the existing system’s artifacts, namely, requirements, design, code, test, and analysis documents. 2. It revises the highest-level documents affected by the changes and propagates the changes down through the lower-level documents. 3. The model allows maintainers to redesign the system, based on the analysis of the existing system. Figure 3.3 The iterative enhancement model ©IEEE, 1990
  • 8. 2.3 Full reuse model • The main assumption in this model is the availability of a repository of artifacts describing the earlier versions of the systems. • In the full reuse model, reuse is explicit and the following activities are performed. Figure 3.4 The full reuse model ©IEEE, 1990
  • 9. 3. Software Maintenance Life Cycle models
  • 10. CSS Vs. FLOSS • Free/Libre and Open Source Software(FLOSS) is distributed under a licensing agreement which allows computer code to be shared, viewed and modified by other users and organizations. • open source software is available for the general public to use and modify from its original design free of charge • Closed source software (CSS)can be defined as proprietary software distributed under a licensing agreement to authorized users with private modification, copying, and republishing restrictions. Or in layman terms, the source code is not shared with the public for anyone to look at or change
  • 11. 3.1.1 The Staged Model for CSS • Their model divides the lifespan of a typical system into four stages: • Initial development – The first delivered version is produced. Knowledge about the system is fresh and constantly changing. In fact, change is the rule rather than the exception. Eventually, an architecture emerge and stabilizes. • Evolution – Simple changes are easily performed and more major changes are possible too, albeit the cost and risk are now greater than in the previous stage. Knowledge about the system is still good, although many of the original developers will have moved on. For many systems, most of its lifespan is spent in this phase. • Servicing – The system is no longer a key asset for the developers, who concentrate mainly on maintenance tasks rather than architectural or functional change. Knowledge about the system has lessened and the effects of change have become harder to predict. The costs and risks of change have increased significantly. • Phase out – It has been decided to replace or eliminate the system entirely, either because the costs of maintaining the old system have become prohibitive or because there is a newer solution waiting in the pipeline. An exit strategy is devised and implemented, often involving techniques such as wrapping and data migration. Ultimately, the system is shut down.
  • 12. 3.1.1 The Staged Model for CSS Figure 3.5 The simple staged model for the CSS life cycle ©IEEE, 2000
  • 13. 3.1.1 The Staged Model for CSS Figure 3.6 The versioned staged model for the CSS life cycle ©IEEE, 2000
  • 14. 3.1.2 The Staged Model for FLOSS Three major differences are identified between CSS systems and FLOSS systems. • In Figure 3.7, the rectangle with the label “Initial development” has been visually highlighted because it can be the only initial development stage in the evolution of FLOSS systems. In other words, it does not have any evolution track for FLOSS system. • With some systems that were analyzed, after a transition from Evolution to Servicing, a new period of evolution was observed. This possibility is depicted in Figure as a broken arc from the Servicing stage to the Evolution stage. In general, the active developers of FLOSS systems get frequently replaced by new developers. Therefore, the dashed line in Figure exhibits this possibility of a transition from Phaseout stage to Evolution stage. Figure 3.7 The staged model for FLOSS system ©ACM, 2007
  • 15. 3.2 Change Mini-Cycle Model Software change is a process that may introduce new requirements to the existing system, or may need to alter the software system if requirements are not correctly implemented. In order to capture this, an evolutionary model known as change mini-cycle. Figure 3.8 The change mini-cycle ©Springer, 2008
  • 16. 4. Software Maintenance Standard • IEEE and ISO have both addressed s/w maintenance processes. • IEEE/EIA 1219 and ISO/IEC 14764 as a part of ISO/IEC12207 (life cycle process). • ISO/IEC 14764 describes s/w maintenance as an iterative process for managing and executing software maintenance activities.
  • 17. 4.1 IEEE/EIA 1219 Maintenance Process The standard focuses on a seven-phases: • Problem Identification. • Analysis. • Design. • Implementation. • System Test. • Acceptance Test. • Delivery. Figure 3.9 Seven phases of IEEE maintenance process ©IEEE, 2004
  • 18. 4.2 ISO/IEC 14764 Maintenance Process The maintenance process comprises the following high level activities: 1. Process Implementation. 2. Problem and Modification Analysis. 3. Modification Implementation. 4. Maintenance Review and Acceptance. 5. Migration. 6. Retirement. Figure 3.17 ISO/IEC 14764 iterative maintenance process ©IEEE, 2004
  • 20. Speaker Information  Moutasm tamimi  Masters of Software Engineering  Independent Consultant , IT Researcher.  CEO at ITG7.com , IT-CRG.com  Email: tamimi@itg7.com, Click Here Click HereI T G 7 Click Here Click HereIT-CRG