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

Pressman ch-21-project-management-concepts
Pressman ch-21-project-management-conceptsPressman ch-21-project-management-concepts
Pressman ch-21-project-management-conceptsseethaveera
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software qualityUtkarsh Agarwal
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4Siddharth Ayer
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26koolkampus
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleKittitouch Suteeca
 
Software maintenance
Software maintenance Software maintenance
Software maintenance Rajeev Sharan
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software EngineeringSatishDabhi1
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)IIUI
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Software Evolution
Software EvolutionSoftware Evolution
Software EvolutionMuhammad Asim
 

What's hot (20)

CMMI
CMMICMMI
CMMI
 
Pressman ch-21-project-management-concepts
Pressman ch-21-project-management-conceptsPressman ch-21-project-management-concepts
Pressman ch-21-project-management-concepts
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26
 
Ch 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycleCh 7 integrating quality activities in the projectlife cycle
Ch 7 integrating quality activities in the projectlife cycle
 
Artifacts
ArtifactsArtifacts
Artifacts
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software Engineering
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 

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
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptxAnish874317
 
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
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptxAmnaAhsaan1
 
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
 
software project management
software project managementsoftware project management
software project managementJassir4
 

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 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
 
software project management
software project managementsoftware project management
software project management
 

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

Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline 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
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
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
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 

Recently uploaded (20)

Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
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
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
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 🔝✔️✔️
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 

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