SlideShare a Scribd company logo
BIT 3105-LECTURE 4 
Software Re-engineering 
Ref: Somerville 6th Ed Chapter 28 
1
So what is S/W Re-engineering? 
• We have so far seen that s/w re-engineering is the 
process of restructuring and reorganizing the software to 
facilitate future changes without adding new functionality. 
• It is applicable where some but not all sub-systems 
of a larger system require frequent maintenance 
• Re-engineering systems involves adding effort to make 
them easier to maintain. The system may be re-structured 
and re-documented 
2
Advantages of S/w Re-engineering 
• S/w re-engineering has two advantages over more radical 
approaches to systems evolution 
– Reduced risk. There is a high risk in new software development. There 
may be development problems, staffing problems and specification 
problems. Planning is difficult and delays are expensive 
– Reduced cost. The cost of reengineering is often significantly less than 
the costs of developing new software. 
3
When Should Re-engineering be Done? 
• 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 
4
S/W Re-engineering Vs Conventional 
Development 
• Conventional development starts with 
requirements, and proceeds through the other 
usual phases. 
• In re-engineering the old system acts as a 
specification for the new system. 
5
Factors affecting s/w re-engineering 
costs? 
• The cost of re-engineering a s/w can be 
affected by; 
– The quality of the software to be re-engineered 
– The tool support available for re-engineering 
– The extent of data conversion required 
– The availability of expert staff 
• This can be a problem with old systems based on technology 
that is no longer widely used 
6
So what is involved in S/W Re-engineering? 
• S/w re-engineering may involve the following; 
– Source code translation 
• Converting the code to a new language 
– Reverse engineering 
• Analyzing the program to understand it 
– Program structure improvement 
• Restructuring the program automatically for understandability 
– Program modularization 
• Re-organizing the program structure 
– Data re-engineering 
• Cleanup and restructure the system data 
Note: We cover these in detail in the next slides 7
The S/w Re-engineering Process 
Reverse 
engineering 
Program 
documentation 
Data 
Original data 
reengineering 
Program 
structure 
improvement 
Program 
modularisation 
Structured 
program 
Reengineered 
data 
Modularised 
Original program 
program 
Source code 
translation 
8
1. 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 
9
The Program Translation Process 
10 
Automatically 
translatecode 
Design translator 
instructions 
Identify source 
codedifferences 
Manually 
translatecode 
Systemto be 
re-engineered 
Systemto be 
re-engineered 
Re-engineered 
system
2. Reverse engineering 
• This involves analysing a software in order to understand its design and 
specification 
• It may be part of a re-engineering process but may also be used to re-specify a 
system for re-implementation 
• It builds a program database and generates information from this database 
• Program understanding tools (like browsers, cross-reference generators, etc.) 
may be used in this process 
• 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 
11
The Reverse Engineering Process 
12 
Programstucture 
diagrams 
Datastucture 
diagrams 
Traceability 
matrices 
Document 
generation 
System 
information 
store 
Automated 
analysis 
Manual 
annotation 
Systemtobe 
re-engineered 
Note: A traceability matrix is a document, usually in the form of a table, that correlates any two 
base-lined documents that require a many to many relationship to determine the completeness of 
the relationship. It is often used with high-level requirements (these often consist of marketing 
requirements) and detailed requirements of the software product to the matching parts of high-level 
design, detailed design, test plan, and test cases.
3. 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 
• See example on next slide 13
Example: Code Simplification 
• Suppose during maintenance, a certain condition was changed to this 
one below; 
if not (A > B and (C < D or not ( E > F) ) )... 
• During program structure improvement, the above complex condition 
could be simplified as shown below; 
if (A <= B and (C>= D or E > F))... 
14
Automatic Program Restructuring 
15 
Graph 
representation 
Program 
generator 
Restructured 
program 
Analyserand 
graphbuilder 
Programtobe 
restructured
Problems with Program Structure Improvement 
• 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 
16
4. Program Modularization 
• This is 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 
• To modularize a program, you have to identify 
relationships between components and work out what 
these components do. Browsing and visualization tools 
help but it is impossible to automate this process 
completely. 
17
Module Types 
• Data abstractions 
– Abstract data types where data structures and associated operations are 
grouped 
• Hardware modules 
– All functions required to interface with a hardware unit. They are closely 
related to data abstractions and collect together all of the functions which 
are used to control a particular hardware device. 
• 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 
• Read pages 632-633 of Somerville 6th Edition for more on this. 
18
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. It will often be the 
case that several abstractions are combined in a single shared data area. 
– Create an ADT or object for these abstractions. If the programming language 
does not have data hiding facilities, simulate an abstract data type by providing 
functions to update and access all fields of the data. 
– Use a program browsing system or a cross-reference generator to find all 
references to data. Replace these with calls to the appropriate functions. 
19
Data Abstraction Recovery 
• Analyse common data areas to identify logical abstractions 
• Create an abstract data type or object class for each of these 
abstractions. That ADT will help to represent a collection of those 
common data areas. 
• 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 
20
5. Data Re-engineering 
• This 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 
• Data re-engineering may not be necessary if the 
functionality of the system is unchanged 
• The objective is to create a managed data environment 
• Read pages 634-638 of Somerville 6th Edition for more on 
data re-engineering. 
21
Data Re-engineering Approaches 
22
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 
23
Example of re-organizing data 
24 
Program2 Program3 
File1 File2 File3 File4 File5 File6 
Program4 Program5 Program6 Program7 
Database 
management 
system 
Logicaland 
physical 
datamodels 
describes 
Program1 
Program3 Program4 Program5 Program6 
Program2 Program7 
Program1 
Becomes
Examples of 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 25
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 
26
The Data Re-engineering Process 
27 
Entityname 
modification 
Literal 
replacement 
Datadefinition 
re-ordering 
Data 
re-formatting 
Defaultvalue 
conversion 
Validationrule 
modification 
Data 
analysis 
Data 
analysis 
Data 
conversion 
Modified 
data 
Programtobere-engineered 
Stage1 Stage2 Stage3 
Changesummarytables
Summary 
• 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 
program in one language to another 
28
Summary- Cont’d 
• 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 
29

More Related Content

What's hot

Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Muhammad Asim
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
Lalit Kale
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software ReengineeringAbdul Wahid
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
MuaazZubairi
 
Legacy system.
Legacy system.Legacy system.
Legacy system.
gourav kottawar
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Manish Kumar
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software designPiyush Gogia
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
kim.mens
 
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
NA000000
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
Indu Sharma Bhardwaj
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and how
Rakesh Kumar Jha
 
Software Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationSoftware Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and Specification
Nishu Rastogi
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)
ShudipPal
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
Mohammad Faizan
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Michele Lanza
 
Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26koolkampus
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
Ali Raza
 
component based development model
component based development modelcomponent based development model
component based development model
Muneeba Qamar
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de Software
Franklin Parrales Bravo
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
Charotar University Of Science And Technology,Gujrat
 

What's hot (20)

Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Legacy system.
Legacy system.Legacy system.
Legacy system.
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and how
 
Software Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and SpecificationSoftware Engineering- Requirement Elicitation and Specification
Software Engineering- Requirement Elicitation and Specification
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26Legacy Systems in Software Engineering SE26
Legacy Systems in Software Engineering SE26
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 
component based development model
component based development modelcomponent based development model
component based development model
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de Software
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 

Viewers also liked

Dbms architecture
Dbms architectureDbms architecture
Dbms architecture
Shubham Dwivedi
 
Database system architecture
Database system architectureDatabase system architecture
Database system architectureDk Rukshan
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringMuhammad Chaudhry
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
Syed Zillay Ali
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
ananya0122
 
Reverse engineering & its application
Reverse engineering & its applicationReverse engineering & its application
Reverse engineering & its applicationmapqrs
 

Viewers also liked (6)

Dbms architecture
Dbms architectureDbms architecture
Dbms architecture
 
Database system architecture
Database system architectureDatabase system architecture
Database system architecture
 
Reengineering including reverse & forward Engineering
Reengineering including reverse & forward EngineeringReengineering including reverse & forward Engineering
Reengineering including reverse & forward Engineering
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
 
Reverse engineering & its application
Reverse engineering & its applicationReverse engineering & its application
Reverse engineering & its application
 

Similar to Bse 3105 lecture 4-software re-engineering

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
 
Unit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 CompleteUnit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 Complete
Raj vardhan
 
Data structure design in SE
Data structure  design in SEData structure  design in SE
Data structure design in SE
Dr. Somnath Sinha
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
Unit1 dbms
Unit1 dbmsUnit1 dbms
Unit1 dbms
gowrivageesan87
 
Enterprise resource planning_system
Enterprise resource planning_systemEnterprise resource planning_system
Enterprise resource planning_system
Jithin Zcs
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
malathieswaran29
 
Reengineering pros and cons
Reengineering pros and consReengineering pros and cons
Reengineering pros and cons
Neema Volvoikar
 
Software engineering
Software engineeringSoftware engineering
Software engineering
nimmik4u
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
JigyasaAgrawal7
 
Data base chapter 2 | detail about the topic
Data base chapter 2 | detail about the topicData base chapter 2 | detail about the topic
Data base chapter 2 | detail about the topic
hoseg78377
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15
Fadhil Ismail
 
Architec design introduction
Architec design introductionArchitec design introduction
Architec design introduction
Dr.Jayanthi ramasamy
 
Software Evolution_Se lect2 btech
Software Evolution_Se lect2 btechSoftware Evolution_Se lect2 btech
Software Evolution_Se lect2 btechIIITA
 
Software architecture
Software architectureSoftware architecture
Software architecture
Sweta Kumari Barnwal
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
SaileshSingh27
 
Software Engineering Lec 8-design-
Software Engineering Lec 8-design-Software Engineering Lec 8-design-
Software Engineering Lec 8-design-
Taymoor Nazmy
 
5 chap - MAINTENANCE
5 chap - MAINTENANCE5 chap - MAINTENANCE
5 chap - MAINTENANCE
sujitkumar Sujit.Karande
 

Similar to Bse 3105 lecture 4-software re-engineering (20)

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
 
Unit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 CompleteUnit 1: Introduction to DBMS Unit 1 Complete
Unit 1: Introduction to DBMS Unit 1 Complete
 
Data structure design in SE
Data structure  design in SEData structure  design in SE
Data structure design in SE
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Unit1 dbms
Unit1 dbmsUnit1 dbms
Unit1 dbms
 
Enterprise resource planning_system
Enterprise resource planning_systemEnterprise resource planning_system
Enterprise resource planning_system
 
Week 3 database design
Week 3   database designWeek 3   database design
Week 3 database design
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance cost
 
Reengineering pros and cons
Reengineering pros and consReengineering pros and cons
Reengineering pros and cons
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design concepts
 
Data base chapter 2 | detail about the topic
Data base chapter 2 | detail about the topicData base chapter 2 | detail about the topic
Data base chapter 2 | detail about the topic
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15
 
Architec design introduction
Architec design introductionArchitec design introduction
Architec design introduction
 
Software Evolution_Se lect2 btech
Software Evolution_Se lect2 btechSoftware Evolution_Se lect2 btech
Software Evolution_Se lect2 btech
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
Software Engineering Lec 8-design-
Software Engineering Lec 8-design-Software Engineering Lec 8-design-
Software Engineering Lec 8-design-
 
unit 1.pdf
unit 1.pdfunit 1.pdf
unit 1.pdf
 
5 chap - MAINTENANCE
5 chap - MAINTENANCE5 chap - MAINTENANCE
5 chap - MAINTENANCE
 

Recently uploaded

Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
Divya Somashekar
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
manasideore6
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
BrazilAccount1
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
karthi keyan
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 

Recently uploaded (20)

Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 

Bse 3105 lecture 4-software re-engineering

  • 1. BIT 3105-LECTURE 4 Software Re-engineering Ref: Somerville 6th Ed Chapter 28 1
  • 2. So what is S/W Re-engineering? • We have so far seen that s/w re-engineering is the process of restructuring and reorganizing the software to facilitate future changes without adding new functionality. • It is applicable where some but not all sub-systems of a larger system require frequent maintenance • Re-engineering systems involves adding effort to make them easier to maintain. The system may be re-structured and re-documented 2
  • 3. Advantages of S/w Re-engineering • S/w re-engineering has two advantages over more radical approaches to systems evolution – Reduced risk. There is a high risk in new software development. There may be development problems, staffing problems and specification problems. Planning is difficult and delays are expensive – Reduced cost. The cost of reengineering is often significantly less than the costs of developing new software. 3
  • 4. When Should Re-engineering be Done? • 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 4
  • 5. S/W Re-engineering Vs Conventional Development • Conventional development starts with requirements, and proceeds through the other usual phases. • In re-engineering the old system acts as a specification for the new system. 5
  • 6. Factors affecting s/w re-engineering costs? • The cost of re-engineering a s/w can be affected by; – The quality of the software to be re-engineered – The tool support available for re-engineering – The extent of data conversion required – The availability of expert staff • This can be a problem with old systems based on technology that is no longer widely used 6
  • 7. So what is involved in S/W Re-engineering? • S/w re-engineering may involve the following; – Source code translation • Converting the code to a new language – Reverse engineering • Analyzing the program to understand it – Program structure improvement • Restructuring the program automatically for understandability – Program modularization • Re-organizing the program structure – Data re-engineering • Cleanup and restructure the system data Note: We cover these in detail in the next slides 7
  • 8. The S/w Re-engineering Process Reverse engineering Program documentation Data Original data reengineering Program structure improvement Program modularisation Structured program Reengineered data Modularised Original program program Source code translation 8
  • 9. 1. 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 9
  • 10. The Program Translation Process 10 Automatically translatecode Design translator instructions Identify source codedifferences Manually translatecode Systemto be re-engineered Systemto be re-engineered Re-engineered system
  • 11. 2. Reverse engineering • This involves analysing a software in order to understand its design and specification • It may be part of a re-engineering process but may also be used to re-specify a system for re-implementation • It builds a program database and generates information from this database • Program understanding tools (like browsers, cross-reference generators, etc.) may be used in this process • 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 11
  • 12. The Reverse Engineering Process 12 Programstucture diagrams Datastucture diagrams Traceability matrices Document generation System information store Automated analysis Manual annotation Systemtobe re-engineered Note: A traceability matrix is a document, usually in the form of a table, that correlates any two base-lined documents that require a many to many relationship to determine the completeness of the relationship. It is often used with high-level requirements (these often consist of marketing requirements) and detailed requirements of the software product to the matching parts of high-level design, detailed design, test plan, and test cases.
  • 13. 3. 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 • See example on next slide 13
  • 14. Example: Code Simplification • Suppose during maintenance, a certain condition was changed to this one below; if not (A > B and (C < D or not ( E > F) ) )... • During program structure improvement, the above complex condition could be simplified as shown below; if (A <= B and (C>= D or E > F))... 14
  • 15. Automatic Program Restructuring 15 Graph representation Program generator Restructured program Analyserand graphbuilder Programtobe restructured
  • 16. Problems with Program Structure Improvement • 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 16
  • 17. 4. Program Modularization • This is 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 • To modularize a program, you have to identify relationships between components and work out what these components do. Browsing and visualization tools help but it is impossible to automate this process completely. 17
  • 18. Module Types • Data abstractions – Abstract data types where data structures and associated operations are grouped • Hardware modules – All functions required to interface with a hardware unit. They are closely related to data abstractions and collect together all of the functions which are used to control a particular hardware device. • 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 • Read pages 632-633 of Somerville 6th Edition for more on this. 18
  • 19. 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. It will often be the case that several abstractions are combined in a single shared data area. – Create an ADT or object for these abstractions. If the programming language does not have data hiding facilities, simulate an abstract data type by providing functions to update and access all fields of the data. – Use a program browsing system or a cross-reference generator to find all references to data. Replace these with calls to the appropriate functions. 19
  • 20. Data Abstraction Recovery • Analyse common data areas to identify logical abstractions • Create an abstract data type or object class for each of these abstractions. That ADT will help to represent a collection of those common data areas. • 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 20
  • 21. 5. Data Re-engineering • This 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 • Data re-engineering may not be necessary if the functionality of the system is unchanged • The objective is to create a managed data environment • Read pages 634-638 of Somerville 6th Edition for more on data re-engineering. 21
  • 23. 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 23
  • 24. Example of re-organizing data 24 Program2 Program3 File1 File2 File3 File4 File5 File6 Program4 Program5 Program6 Program7 Database management system Logicaland physical datamodels describes Program1 Program3 Program4 Program5 Program6 Program2 Program7 Program1 Becomes
  • 25. Examples of 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 25
  • 26. 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 26
  • 27. The Data Re-engineering Process 27 Entityname modification Literal replacement Datadefinition re-ordering Data re-formatting Defaultvalue conversion Validationrule modification Data analysis Data analysis Data conversion Modified data Programtobere-engineered Stage1 Stage2 Stage3 Changesummarytables
  • 28. Summary • 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 program in one language to another 28
  • 29. Summary- Cont’d • 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 29