SlideShare a Scribd company logo
1 of 31
Software Evolution and Maintenance
A Practitioner’s Approach
Chapter 1
Basic Concepts and Preliminaries
Outline
• Software maintenance
• Software evolution
• Software Re-engineering
• Legacy System
• Impact Analysis
• Refactoring
• Program Comprehension
• Software Reuse
Software Maintenance
• The concept of software maintenance means preventing software
from failing to deliver the intended functionalities by means of bug
fixing.
• Maintenance does not involve making major changes to the
architecture of the system. maintenance means keeping an installed
system running with no change to its design.
• For example, bug fixing must be done and it is a planned activity.
SDLC cost assessment
The hierarchical ways of maintenance modifications
• Kitchenham described maintenance modifications in a hierarchical
ways based on the concept of activity:
1. Activities to make corrections: If there are discrepancies between the
expected behavior of a system and the actual behavior, then some activities
are performed to eliminate or reduce the discrepancies.
2. Activities to make enhancements: A number of activities are performed to
implement a change to the system, thereby changing the behavior or
implementation of the system.
This category is subdivided into three types:
1. enhancements that change existing requirement,
2. enhancements that add new system requirements, and
3. enhancements that change the implementation but not the requirements.
Type of software maintenance
• E. Burton Swanson defined three type of software maintenance:
• Swanson definition was later updated in the standard for software
engineering – ISO/IEC 14764.
• Introduced a fourth category called maintenance.
Corrective | Adaptive | Perfective
Preventive
Software evolution
“software evolution to describe the growth characteristics of software
and means of creating new system but related designs from existing
ones”
• The objectives include supporting new functionalities, making the
system perform better, and making the system run on a different
operating system.
Software Evolution: Laws of Lehman
• Continuing change (1st) – A system will become progressively less satisfying to its
user over time, unless it is continually adapted to meet new needs.
• Increasing complexity (2nd) – A system will become progressively more complex,
unless work is done to explicitly reduce the complexity.
• Self-regulation (3rd) – The process of software evolution is self regulating with
respect to the distributions of the products and process artifacts that are produced.
• Conservation of organizational stability (4th) – The average effective global
activity rate on an evolving system does not change over time, that is the average
amount of work that goes into each release is about the same.
• Conservation of familiarity (5th) – The amount of new content in each successive
release of a system tends to stay constant or decrease over time.
• Continuing growth (6th) – The amount of functionality in a system will increase
over time, in order to please its users.
• Declining quality (7th) – A system will be perceived as losing quality over time,
unless its design is carefully maintained and adapted to new operational
constraints.
• Feedback system (8th) – Successfully evolving a software system requires
recognition that the development process is a multi-loop, multi-agent, multi-level
feedback system.
Summary
Software maintenance Software evolution
Software Re-engineering
Re-engineering
Chikofsky and Cross II define reengineering as
“the examination and alteration of a subject system to
reconstitute it in a new form and the subsequent
implementation of the new form.”
Reengineering = Reverse engineering + + Forward engineering.
• Reverse engineering is the activity of defining a more abstract, and
easier to understand, representation of the system.
• The core of reverse engineering is the process of examination, not a
process of change, therefore it does not involve changing the software
under examination.
• : captures alteration that is change of the system.
• forward engineering is the traditional process of moving from high-
level abstraction and logical, implementation-independent designs to
the physical implementation of the system.


Legacy System
“An old or obsolete system which is valuable for the company which
often developed and owns it” (Phase out stage of the software
evolution model ).
Legacy systems management solutions
• Freeze: The organization decides no further work on the legacy system should be
performed.
• Outsource: An organization may decide that supporting software is not core business,
and may outsource it to a specialist organization offering this service.
• Carry on maintenance: Despite all the problems of support, the organization decides
to carry on maintenance for another period.
• Discard and redevelop: Throw all the software away and redevelop the application
once again from scratch.
• Wrap: It is a black-box modernization technique – surrounds the legacy system with a
software layer that hides the unwanted complexity of the existing data, individual
programs, application systems, and interfaces with the new interfaces.
• Migrate: Legacy system migration basically moves an existing, operational system to
a new platform, retaining the legacy system’s functionality and causing minimal
disruption to the existing operational business environment as possible.
Summary
Software maintenance Software evolution
Software Re-engineering
Existing systems
or
Legacy systems
New System
Reverse engineering + + Forward engineering
Impact Analysis
• Impact analysis is the task of estimating the parts of the software that
can be affected if a proposed change request is made.
• Impact analysis techniques can be partitioned into two classes:
1. Traceability analysis In this approach the high-level artifacts such as
requirements, design, code and test cases related to the feature to be changed
are identified. A model of inter-artifacts such that each artifact in one level
links to other artifacts is constructed, which helps to locate a pieces of
design, code and test cases that need to be maintained.
2. Dependency (or source-code) analysis Dependency analysis attempt to
assess the affects of change on semantic dependencies between program
entities. This is achieved by identifying the syntactic dependencies that may
signal the presence of such semantic dependencies.
• The two dependency-based impact analysis techniques are: call graph based analysis and
dependency graph based analysis.
Additional Impact analysis techniques
3. Ripple effect analysis measures the impact, or how likely it is that a
change to a particular module may cause problems in the rest of the
program.
4. Change propagation activity ensures that a change made in one
component is propagated properly throughout the entire system.
Refactoring
• Refactoring “is the process of making a change to the internal
structure of software to make it easier to understand and cheaper to
modify without changing its observable behavior”.
• It is the object-oriented equivalent of restructuring.
• Refactoring, which aims to improve the internal structure of the code,
achieve through the removal of duplicate code, simplification, making
code easier to understand, help to find defects and adding flexibility to
program faster.
Program Comprehension
“the task of building mental models of an underlying software system at
various abstraction levels, ranging from models of the code itself to
ones of the underlying application domain, for software maintenance,
evolution and re-engineering purposes.”
Program Comprehension
• Several strategies can be used to arrive at relevant hypotheses such as:
• Bottom up (starting from the code).
• Top down (starting from high-level goal).
• Opportunistic combinations of the two.
• A strategy is formulated by identifying actions to achieve a goal.
• Strategies guide two mechanisms, namely chunking and cross-referencing
to produce higher-level abstraction structures.
• Chunking creates new, higher level abstraction structures from lower level structures.
• Cross-referencing means being able to make links elements of different abstraction
levels.
Software Reuse
“The development of an industry of reusable source-code software
components and the industrialization of the production of application
software from off-the-shelf components.”
Software Reuse
• Reuse developments includes:
• Program families.
• Domain analysis.
• Program families are sets of programs whose common properties are
so extensive that it becomes advantageous to study the common
properties of these programs before analyzing individual differences.
• Domain analysis is an activity of identifying objects and operations of
a class of similar systems in a particular problem domain
Four types of reusable artifacts:
1. Data reuse, involving a standardization of data formats.
2. Architectural reuse, which consists of standardizing a set of design and
programming conventions dealing with the logical organization of software.
3. Design reuse, for some common business applications.
4. Program reuse, which deals with reusing executable code.
Characteristics of software component to be reusable
• Environmental independence - The components can be reused irrespective of
the environment from which they were originally captured.
• High cohesion - The components that implement a single operation or set of
related operations.
• Loose coupling - The components that have minimal links to other
components.
• Adaptability - The components that are adaptable so they can be customized to
fit a range of similar situation.
• Understandability - The components which are easily understandable that
users can quickly interpret functionality.
• Reliability - The components that are error-free.
• Portability - The components that are not restricted in terms of the software or
hardware environment they operate in.
Benefits of Reuse
1. Increased reliability.
2. Reduced process risk.
3. Increase productivity.
4. Standards compliance.
5. Accelerated development.
6. Improve maintainability.
7. Reduction in maintenance time and effort.
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
Better Software design
pattern practices
Software evolution and maintenance   basic concepts and preliminaries

More Related Content

What's hot

Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolutionkim.mens
 
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)IrtazaAfzal3
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01Abdul Basit
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle modelStephennancy
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)ShudipPal
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 

What's hot (20)

Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
The Spiral Model
The Spiral ModelThe Spiral Model
The Spiral Model
 
Software design
Software designSoftware design
Software design
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)
PRESCRIPTIVE PROCESS MODEL(SOFTWARE ENGINEERING)
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Software requirements engineering lecture 01
Software requirements engineering   lecture 01Software requirements engineering   lecture 01
Software requirements engineering lecture 01
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
PROTOTYPE MODEL
PROTOTYPE MODELPROTOTYPE MODEL
PROTOTYPE MODEL
 
Phased life cycle model
Phased life cycle modelPhased life cycle model
Phased life cycle model
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
 
Prototyping model
Prototyping modelPrototyping model
Prototyping model
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Rad model
Rad modelRad model
Rad model
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 

Similar to Software evolution and maintenance basic concepts and preliminaries

Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed descriptionSaileshSingh27
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenanceConestoga Collage
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance costmalathieswaran29
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering processRaheel Aslam
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsMuhammadTalha436
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdfkrishnaraj714229
 
Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptxFarHana74914
 
lake city institute of technology
lake city institute of technology lake city institute of technology
lake city institute of technology RaviKalola786
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdfkumari36
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleMantesh Basarakod
 

Similar to Software evolution and maintenance basic concepts and preliminaries (20)

Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
PS02CINT22 SE Software Maintenance
PS02CINT22 SE Software MaintenancePS02CINT22 SE Software Maintenance
PS02CINT22 SE Software Maintenance
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptx
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Software Engineering Important Short Question for Exams
Software Engineering Important Short Question for ExamsSoftware Engineering Important Short Question for Exams
Software Engineering Important Short Question for Exams
 
system development life cycle
system development life cyclesystem development life cycle
system development life cycle
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Software process
Software processSoftware process
Software process
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf
 
Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptx
 
SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
 
lake city institute of technology
lake city institute of technology lake city institute of technology
lake city institute of technology
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 

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 Models
Software Evolution and Maintenance ModelsSoftware Evolution and Maintenance Models
Software Evolution and Maintenance ModelsMoutasm 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 Models
Software Evolution and Maintenance ModelsSoftware Evolution and Maintenance Models
Software Evolution and Maintenance Models
 
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

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitolTechU
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfadityarao40181
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,Virag Sontakke
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfUjwalaBharambe
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupJonathanParaisoCruz
 

Recently uploaded (20)

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptx
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
 
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdfFraming an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
Framing an Appropriate Research Question 6b9b26d93da94caf993c038d9efcdedb.pdf
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized Group
 

Software evolution and maintenance basic concepts and preliminaries

  • 1. Software Evolution and Maintenance A Practitioner’s Approach Chapter 1 Basic Concepts and Preliminaries
  • 2.
  • 3. Outline • Software maintenance • Software evolution • Software Re-engineering • Legacy System • Impact Analysis • Refactoring • Program Comprehension • Software Reuse
  • 4. Software Maintenance • The concept of software maintenance means preventing software from failing to deliver the intended functionalities by means of bug fixing. • Maintenance does not involve making major changes to the architecture of the system. maintenance means keeping an installed system running with no change to its design. • For example, bug fixing must be done and it is a planned activity.
  • 6. The hierarchical ways of maintenance modifications • Kitchenham described maintenance modifications in a hierarchical ways based on the concept of activity: 1. Activities to make corrections: If there are discrepancies between the expected behavior of a system and the actual behavior, then some activities are performed to eliminate or reduce the discrepancies. 2. Activities to make enhancements: A number of activities are performed to implement a change to the system, thereby changing the behavior or implementation of the system. This category is subdivided into three types: 1. enhancements that change existing requirement, 2. enhancements that add new system requirements, and 3. enhancements that change the implementation but not the requirements.
  • 7. Type of software maintenance • E. Burton Swanson defined three type of software maintenance: • Swanson definition was later updated in the standard for software engineering – ISO/IEC 14764. • Introduced a fourth category called maintenance. Corrective | Adaptive | Perfective Preventive
  • 8.
  • 9. Software evolution “software evolution to describe the growth characteristics of software and means of creating new system but related designs from existing ones” • The objectives include supporting new functionalities, making the system perform better, and making the system run on a different operating system.
  • 10. Software Evolution: Laws of Lehman • Continuing change (1st) – A system will become progressively less satisfying to its user over time, unless it is continually adapted to meet new needs. • Increasing complexity (2nd) – A system will become progressively more complex, unless work is done to explicitly reduce the complexity. • Self-regulation (3rd) – The process of software evolution is self regulating with respect to the distributions of the products and process artifacts that are produced. • Conservation of organizational stability (4th) – The average effective global activity rate on an evolving system does not change over time, that is the average amount of work that goes into each release is about the same.
  • 11. • Conservation of familiarity (5th) – The amount of new content in each successive release of a system tends to stay constant or decrease over time. • Continuing growth (6th) – The amount of functionality in a system will increase over time, in order to please its users. • Declining quality (7th) – A system will be perceived as losing quality over time, unless its design is carefully maintained and adapted to new operational constraints. • Feedback system (8th) – Successfully evolving a software system requires recognition that the development process is a multi-loop, multi-agent, multi-level feedback system.
  • 12. Summary Software maintenance Software evolution Software Re-engineering
  • 13. Re-engineering Chikofsky and Cross II define reengineering as “the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new form.”
  • 14. Reengineering = Reverse engineering + + Forward engineering. • Reverse engineering is the activity of defining a more abstract, and easier to understand, representation of the system. • The core of reverse engineering is the process of examination, not a process of change, therefore it does not involve changing the software under examination. • : captures alteration that is change of the system. • forward engineering is the traditional process of moving from high- level abstraction and logical, implementation-independent designs to the physical implementation of the system.  
  • 15. Legacy System “An old or obsolete system which is valuable for the company which often developed and owns it” (Phase out stage of the software evolution model ).
  • 16. Legacy systems management solutions • Freeze: The organization decides no further work on the legacy system should be performed. • Outsource: An organization may decide that supporting software is not core business, and may outsource it to a specialist organization offering this service. • Carry on maintenance: Despite all the problems of support, the organization decides to carry on maintenance for another period. • Discard and redevelop: Throw all the software away and redevelop the application once again from scratch. • Wrap: It is a black-box modernization technique – surrounds the legacy system with a software layer that hides the unwanted complexity of the existing data, individual programs, application systems, and interfaces with the new interfaces. • Migrate: Legacy system migration basically moves an existing, operational system to a new platform, retaining the legacy system’s functionality and causing minimal disruption to the existing operational business environment as possible.
  • 17. Summary Software maintenance Software evolution Software Re-engineering Existing systems or Legacy systems New System Reverse engineering + + Forward engineering
  • 18. Impact Analysis • Impact analysis is the task of estimating the parts of the software that can be affected if a proposed change request is made. • Impact analysis techniques can be partitioned into two classes: 1. Traceability analysis In this approach the high-level artifacts such as requirements, design, code and test cases related to the feature to be changed are identified. A model of inter-artifacts such that each artifact in one level links to other artifacts is constructed, which helps to locate a pieces of design, code and test cases that need to be maintained. 2. Dependency (or source-code) analysis Dependency analysis attempt to assess the affects of change on semantic dependencies between program entities. This is achieved by identifying the syntactic dependencies that may signal the presence of such semantic dependencies. • The two dependency-based impact analysis techniques are: call graph based analysis and dependency graph based analysis.
  • 19. Additional Impact analysis techniques 3. Ripple effect analysis measures the impact, or how likely it is that a change to a particular module may cause problems in the rest of the program. 4. Change propagation activity ensures that a change made in one component is propagated properly throughout the entire system.
  • 20. Refactoring • Refactoring “is the process of making a change to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior”. • It is the object-oriented equivalent of restructuring. • Refactoring, which aims to improve the internal structure of the code, achieve through the removal of duplicate code, simplification, making code easier to understand, help to find defects and adding flexibility to program faster.
  • 21. Program Comprehension “the task of building mental models of an underlying software system at various abstraction levels, ranging from models of the code itself to ones of the underlying application domain, for software maintenance, evolution and re-engineering purposes.”
  • 22. Program Comprehension • Several strategies can be used to arrive at relevant hypotheses such as: • Bottom up (starting from the code). • Top down (starting from high-level goal). • Opportunistic combinations of the two. • A strategy is formulated by identifying actions to achieve a goal. • Strategies guide two mechanisms, namely chunking and cross-referencing to produce higher-level abstraction structures. • Chunking creates new, higher level abstraction structures from lower level structures. • Cross-referencing means being able to make links elements of different abstraction levels.
  • 23. Software Reuse “The development of an industry of reusable source-code software components and the industrialization of the production of application software from off-the-shelf components.”
  • 24. Software Reuse • Reuse developments includes: • Program families. • Domain analysis. • Program families are sets of programs whose common properties are so extensive that it becomes advantageous to study the common properties of these programs before analyzing individual differences. • Domain analysis is an activity of identifying objects and operations of a class of similar systems in a particular problem domain
  • 25. Four types of reusable artifacts: 1. Data reuse, involving a standardization of data formats. 2. Architectural reuse, which consists of standardizing a set of design and programming conventions dealing with the logical organization of software. 3. Design reuse, for some common business applications. 4. Program reuse, which deals with reusing executable code.
  • 26. Characteristics of software component to be reusable • Environmental independence - The components can be reused irrespective of the environment from which they were originally captured. • High cohesion - The components that implement a single operation or set of related operations. • Loose coupling - The components that have minimal links to other components. • Adaptability - The components that are adaptable so they can be customized to fit a range of similar situation. • Understandability - The components which are easily understandable that users can quickly interpret functionality. • Reliability - The components that are error-free. • Portability - The components that are not restricted in terms of the software or hardware environment they operate in.
  • 27. Benefits of Reuse 1. Increased reliability. 2. Reduced process risk. 3. Increase productivity. 4. Standards compliance. 5. Accelerated development. 6. Improve maintainability. 7. Reduction in maintenance time and effort.
  • 29. 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