SlideShare a Scribd company logo
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 1
Chapter 28
Software Re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 2
Software re-engineering
 Reorganising and modifying
existing software systems to make
them more maintainable
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 3
Objectives
 To explain why software re-engineering is a cost-
effective option for system evolution
 To describe the activities involved in the software
re-engineering process
 To distinguish between software and data re-
engineering and to explain the problems of data
re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 4
Topics covered
 Source code translation
 Reverse engineering
 Program structure improvement
 Program modularisation
 Data re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 5
 Re-structuring or re-writing part or all of a
legacy system without changing its
functionality
 Applicable where some but not all sub-systems
of a larger system require frequent
maintenance
 Re-engineering involves adding effort to make
them easier to maintain. The system may be re-
structured and re-documented
System re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 6
 When system changes are mostly confined to
part of the system then re-engineer that part
 When hardware or software support becomes
obsolete
 When tools to support re-structuring are
available
When to re-engineer
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 7
Re-engineering advantages
 Reduced risk
• There is a high risk in new software development. There may
be development problems, staffing problems and specification
problems
 Reduced cost
• The cost of re-engineering is often significantly less than the
costs of developing new software
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 8
Business process re-engineering
 Concerned with re-designing business
processes to make them more responsive and
more efficient
 Often reliant on the introduction of new computer
systems to support the revised processes
 May force software re-engineering as the legacy
systems are designed to support existing
processes
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 9
Forward engineering and re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 10
The re-engineering process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 11
Re-engineering cost factors
 The quality of the software to be re-engineered
 The tool support available for re-engineering
 The extent of the data conversion which is
required
 The availability of expert staff for re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 12
Re-engineering approaches
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 13
Source code translation
 Involves converting the code from one language
(or language version) to another e.g. FORTRAN
to C
 May be necessary because of:
• Hardware platform update
• Staff skill shortages
• Organisational policy changes
 Only realistic if an automatic translator is
available
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 14
The program translation process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 15
Reverse engineering
 Analysing software with a view to understanding
its design and specification
 May be part of a re-engineering process but may
also be used to re-specify a system for re-
implementation
 Builds a program data base and generates
information from this
 Program understanding tools (browsers, cross-
reference generators, etc.) may be used in this
process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 16
The reverse engineering process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 17
Reverse engineering
 Reverse engineering often precedes re-
engineering but is sometimes worthwhile in its
own right
• The design and specification of a system may be reverse
engineered so that they can be an input to the requirements
specification process for the system’s replacement
• The design and specification may be reverse engineered to
support program maintenance
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 18
Program structure improvement
 Maintenance tends to corrupt the structure of a
program. It becomes harder and harder to
understand
 The program may be automatically restructured
to remove unconditional branches
 Conditions may be simplified to make them more
readable
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 19
Spaghetti logic
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 20
Structured control logic
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 21
Condition simplification
-- Complex condition
if not (A > B and (C < D or not ( E > F) ) )...
-- Simplified condition
if (A <= B and (C>= D or E > F)...
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 22
Automatic program restructuring
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 23
Restructuring problems
 Problems with re-structuring are:
• Loss of comments
• Loss of documentation
• Heavy computational demands
 Restructuring doesn’t help with poor
modularisation where related components are
dispersed throughout the code
 The understandability of data-driven programs
may not be improved by re-structuring
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 24
Program modularisation
 The process of re-organising a program so that
related program parts are collected together in a
single module
 Usually a manual process that is carried out by
program inspection and re-organisation
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 25
Module types
 Data abstractions
• Abstract data types where datastructures and associated
operations are grouped
 Hardware modules
• All functions required to interface with a hardware unit
 Functional modules
• Modules containing functions that carry out closely related tasks
 Process support modules
• Modules where the functions support a business process or
process fragment
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 26
Recovering data abstractions
 Many legacy systems use shared tables and
global data to save memory space
 Causes problems because changes have a wide
impact in the system
 Shared global data may be converted to objects
or ADTs
• Analyse common data areas to identify logical abstractions
• Create an ADT or object for these abstractions
• Use a browser to find all data references and replace with
reference to the data abstraction
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 27
Data abstraction recovery
 Analyse common data areas to identify logical
abstractions
 Create an abstract data type or object class for
each of these abstractions
 Provide functions to access and update each
field of the data abstraction
 Use a program browser to find calls to these data
abstractions and replace these with the new
defined functions
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 28
Data re-engineering
 Involves analysing and reorganising the data
structures (and sometimes the data values) in a
program
 May be part of the process of migrating from a
file-based system to a DBMS-based system or
changing from one DBMS to another
 Objective is to create a managed data
environment
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 29
Approaches to data re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 30
Data problems
 End-users want data on their desktop machines
rather than in a file system. They need to be able
to download this data from a DBMS
 Systems may have to process much more data
than was originally intended by their designers
 Redundant data may be stored in different
formats in different places in the system
Data
migration
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 32
Data problems
 Data naming problems
• Names may be hard to understand. The same data may have
different names in different programs
 Field length problems
• The same item may be assigned different lengths in different
programs
 Record organisation problems
• Records representing the same entity may be organised
differently in different programs
 Hard-coded literals
 No data dictionary
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 33
Data value inconsistencies
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 34
Data conversion
 Data re-engineering may involve changing the
data structure organisation without changing the
data values
 Data value conversion is very expensive.
Special-purpose programs have to be written to
carry out the conversion
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 35
The data re-engineering process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 36
Key points
 The objective of re-engineering is to improve the
system structure to make it easier to understand
and maintain
 The re-engineering process involves source
code translation, reverse engineering, program
structure improvement, program modularisation
and data re-engineering
 Source code translation is the automatic
conversion of of program in one language to
another
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 37
Key points
 Reverse engineering is the process of deriving
the system design and specification from its
source code
 Program structure improvement replaces
unstructured control constructs with while loops
and simple conditionals
 Program modularisation involves reorganisation
to group related items
 Data re-engineering may be necessary because
of inconsistent data management

More Related Content

Similar to ch28-software-reengineering.ppt

Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
Alonzee Tash
 
regeeggregretgregrgrrgfergregrgregregrwgreger
regeeggregretgregrgrrgfergregrgregregrwgregerregeeggregretgregrgrrgfergregrgregregrwgreger
regeeggregretgregrgrrgfergregrgregregrwgreger
hovoda5119
 
Rekayasa-Perangkat-Lunak-Pertemuan-13.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-13.pptRekayasa-Perangkat-Lunak-Pertemuan-13.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-13.ppt
KSekar6
 
Se-Lecture-6.ppt
Se-Lecture-6.pptSe-Lecture-6.ppt
Se-Lecture-6.ppt
vishal choudhary
 
Software Engineering - Ch17
Software Engineering - Ch17Software Engineering - Ch17
Software Engineering - Ch17Siddharth Ayer
 
Design & Implementation.pptx
Design & Implementation.pptxDesign & Implementation.pptx
Design & Implementation.pptx
SalmaItagi2
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
kim.mens
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
Indu Sharma Bhardwaj
 
Ch2.Part2.Modified.ppt
Ch2.Part2.Modified.pptCh2.Part2.Modified.ppt
Ch2.Part2.Modified.ppt
Melisa521270
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
Sharath g
 
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
ChristopherBow2
 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28koolkampus
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
SaileshSingh27
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9Ian Sommerville
 
Ch25-Software Engineering 9
Ch25-Software Engineering 9Ch25-Software Engineering 9
Ch25-Software Engineering 9Ian Sommerville
 
Areas Of It Complexity PowerPoint Presentation Slides
Areas Of It Complexity PowerPoint Presentation SlidesAreas Of It Complexity PowerPoint Presentation Slides
Areas Of It Complexity PowerPoint Presentation Slides
SlideTeam
 
Reuse-1.ppt
Reuse-1.pptReuse-1.ppt
Reuse-1.ppt
SnehaKattari
 
System Design
System DesignSystem Design

Similar to ch28-software-reengineering.ppt (20)

Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
 
regeeggregretgregrgrrgfergregrgregregrwgreger
regeeggregretgregrgrrgfergregrgregregrwgregerregeeggregretgregrgrrgfergregrgregregrwgreger
regeeggregretgregrgrrgfergregrgregregrwgreger
 
Rekayasa-Perangkat-Lunak-Pertemuan-13.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-13.pptRekayasa-Perangkat-Lunak-Pertemuan-13.ppt
Rekayasa-Perangkat-Lunak-Pertemuan-13.ppt
 
Se-Lecture-6.ppt
Se-Lecture-6.pptSe-Lecture-6.ppt
Se-Lecture-6.ppt
 
Software Engineering - Ch17
Software Engineering - Ch17Software Engineering - Ch17
Software Engineering - Ch17
 
Design & Implementation.pptx
Design & Implementation.pptxDesign & Implementation.pptx
Design & Implementation.pptx
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
Ch18
Ch18Ch18
Ch18
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Ch2.Part2.Modified.ppt
Ch2.Part2.Modified.pptCh2.Part2.Modified.ppt
Ch2.Part2.Modified.ppt
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28
 
ch07.ppt
ch07.pptch07.ppt
ch07.ppt
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
Ch9-Software Engineering 9
Ch9-Software Engineering 9Ch9-Software Engineering 9
Ch9-Software Engineering 9
 
Ch25-Software Engineering 9
Ch25-Software Engineering 9Ch25-Software Engineering 9
Ch25-Software Engineering 9
 
Areas Of It Complexity PowerPoint Presentation Slides
Areas Of It Complexity PowerPoint Presentation SlidesAreas Of It Complexity PowerPoint Presentation Slides
Areas Of It Complexity PowerPoint Presentation Slides
 
Reuse-1.ppt
Reuse-1.pptReuse-1.ppt
Reuse-1.ppt
 
System Design
System DesignSystem Design
System Design
 

Recently uploaded

openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 

Recently uploaded (20)

openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 

ch28-software-reengineering.ppt

  • 1. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 1 Chapter 28 Software Re-engineering
  • 2. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 2 Software re-engineering  Reorganising and modifying existing software systems to make them more maintainable
  • 3. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 3 Objectives  To explain why software re-engineering is a cost- effective option for system evolution  To describe the activities involved in the software re-engineering process  To distinguish between software and data re- engineering and to explain the problems of data re-engineering
  • 4. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 4 Topics covered  Source code translation  Reverse engineering  Program structure improvement  Program modularisation  Data re-engineering
  • 5. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 5  Re-structuring or re-writing part or all of a legacy system without changing its functionality  Applicable where some but not all sub-systems of a larger system require frequent maintenance  Re-engineering involves adding effort to make them easier to maintain. The system may be re- structured and re-documented System re-engineering
  • 6. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 6  When system changes are mostly confined to part of the system then re-engineer that part  When hardware or software support becomes obsolete  When tools to support re-structuring are available When to re-engineer
  • 7. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 7 Re-engineering advantages  Reduced risk • There is a high risk in new software development. There may be development problems, staffing problems and specification problems  Reduced cost • The cost of re-engineering is often significantly less than the costs of developing new software
  • 8. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 8 Business process re-engineering  Concerned with re-designing business processes to make them more responsive and more efficient  Often reliant on the introduction of new computer systems to support the revised processes  May force software re-engineering as the legacy systems are designed to support existing processes
  • 9. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 9 Forward engineering and re-engineering
  • 10. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 10 The re-engineering process
  • 11. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 11 Re-engineering cost factors  The quality of the software to be re-engineered  The tool support available for re-engineering  The extent of the data conversion which is required  The availability of expert staff for re-engineering
  • 12. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 12 Re-engineering approaches
  • 13. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 13 Source code translation  Involves converting the code from one language (or language version) to another e.g. FORTRAN to C  May be necessary because of: • Hardware platform update • Staff skill shortages • Organisational policy changes  Only realistic if an automatic translator is available
  • 14. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 14 The program translation process
  • 15. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 15 Reverse engineering  Analysing software with a view to understanding its design and specification  May be part of a re-engineering process but may also be used to re-specify a system for re- implementation  Builds a program data base and generates information from this  Program understanding tools (browsers, cross- reference generators, etc.) may be used in this process
  • 16. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 16 The reverse engineering process
  • 17. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 17 Reverse engineering  Reverse engineering often precedes re- engineering but is sometimes worthwhile in its own right • The design and specification of a system may be reverse engineered so that they can be an input to the requirements specification process for the system’s replacement • The design and specification may be reverse engineered to support program maintenance
  • 18. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 18 Program structure improvement  Maintenance tends to corrupt the structure of a program. It becomes harder and harder to understand  The program may be automatically restructured to remove unconditional branches  Conditions may be simplified to make them more readable
  • 19. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 19 Spaghetti logic
  • 20. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 20 Structured control logic
  • 21. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 21 Condition simplification -- Complex condition if not (A > B and (C < D or not ( E > F) ) )... -- Simplified condition if (A <= B and (C>= D or E > F)...
  • 22. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 22 Automatic program restructuring
  • 23. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 23 Restructuring problems  Problems with re-structuring are: • Loss of comments • Loss of documentation • Heavy computational demands  Restructuring doesn’t help with poor modularisation where related components are dispersed throughout the code  The understandability of data-driven programs may not be improved by re-structuring
  • 24. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 24 Program modularisation  The process of re-organising a program so that related program parts are collected together in a single module  Usually a manual process that is carried out by program inspection and re-organisation
  • 25. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 25 Module types  Data abstractions • Abstract data types where datastructures and associated operations are grouped  Hardware modules • All functions required to interface with a hardware unit  Functional modules • Modules containing functions that carry out closely related tasks  Process support modules • Modules where the functions support a business process or process fragment
  • 26. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 26 Recovering data abstractions  Many legacy systems use shared tables and global data to save memory space  Causes problems because changes have a wide impact in the system  Shared global data may be converted to objects or ADTs • Analyse common data areas to identify logical abstractions • Create an ADT or object for these abstractions • Use a browser to find all data references and replace with reference to the data abstraction
  • 27. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 27 Data abstraction recovery  Analyse common data areas to identify logical abstractions  Create an abstract data type or object class for each of these abstractions  Provide functions to access and update each field of the data abstraction  Use a program browser to find calls to these data abstractions and replace these with the new defined functions
  • 28. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 28 Data re-engineering  Involves analysing and reorganising the data structures (and sometimes the data values) in a program  May be part of the process of migrating from a file-based system to a DBMS-based system or changing from one DBMS to another  Objective is to create a managed data environment
  • 29. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 29 Approaches to data re-engineering
  • 30. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 30 Data problems  End-users want data on their desktop machines rather than in a file system. They need to be able to download this data from a DBMS  Systems may have to process much more data than was originally intended by their designers  Redundant data may be stored in different formats in different places in the system
  • 32. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 32 Data problems  Data naming problems • Names may be hard to understand. The same data may have different names in different programs  Field length problems • The same item may be assigned different lengths in different programs  Record organisation problems • Records representing the same entity may be organised differently in different programs  Hard-coded literals  No data dictionary
  • 33. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 33 Data value inconsistencies
  • 34. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 34 Data conversion  Data re-engineering may involve changing the data structure organisation without changing the data values  Data value conversion is very expensive. Special-purpose programs have to be written to carry out the conversion
  • 35. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 35 The data re-engineering process
  • 36. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 36 Key points  The objective of re-engineering is to improve the system structure to make it easier to understand and maintain  The re-engineering process involves source code translation, reverse engineering, program structure improvement, program modularisation and data re-engineering  Source code translation is the automatic conversion of of program in one language to another
  • 37. ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 37 Key points  Reverse engineering is the process of deriving the system design and specification from its source code  Program structure improvement replaces unstructured control constructs with while loops and simple conditionals  Program modularisation involves reorganisation to group related items  Data re-engineering may be necessary because of inconsistent data management