SlideShare ist ein Scribd-Unternehmen logo
1 von 29
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

Weitere ähnliche Inhalte

Was ist angesagt?

Software design principles
Software design principlesSoftware design principles
Software design principlesRitesh Singh
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementPratik Tandel
 
Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminariesMoutasm Tamimi
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementArunnima B S
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementJeyanthiR
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) ModelDamian T. Gordon
 
Software maintenance and configuration management, software engineering
Software maintenance and  configuration management, software engineeringSoftware maintenance and  configuration management, software engineering
Software maintenance and configuration management, software engineeringRupesh Vaishnav
 
McCall's Quality Factors
McCall's Quality FactorsMcCall's Quality Factors
McCall's Quality FactorsUsman Khan
 
Software requirement engineering
Software requirement engineeringSoftware requirement engineering
Software requirement engineeringSyed Zaid Irshad
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process ImprovementBilal Shah
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineeringdeshpandeamrut
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Managementelliando dias
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro pptNancyBeaulah_R
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software ReengineeringAbdul Wahid
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing StrategiesNayyabMirTahir
 

Was ist angesagt? (20)

Software design principles
Software design principlesSoftware design principles
Software design principles
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminaries
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Software maintenance and configuration management, software engineering
Software maintenance and  configuration management, software engineeringSoftware maintenance and  configuration management, software engineering
Software maintenance and configuration management, software engineering
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
McCall's Quality Factors
McCall's Quality FactorsMcCall's Quality Factors
McCall's Quality Factors
 
Software requirement engineering
Software requirement engineeringSoftware requirement engineering
Software requirement engineering
 
Quality Assurance in Software Ind.
Quality Assurance in Software Ind.Quality Assurance in Software Ind.
Quality Assurance in Software Ind.
 
Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
 
Software Process Improvement
Software Process ImprovementSoftware Process Improvement
Software Process Improvement
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Chapter 16
Chapter 16Chapter 16
Chapter 16
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
 

Andere mochten auch

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 engineeringananya0122
 
Reverse engineering & its application
Reverse engineering & its applicationReverse engineering & its application
Reverse engineering & its applicationmapqrs
 

Andere mochten auch (7)

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
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
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
 

Ähnlich wie 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
 
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
 
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 CompleteRaj vardhan
 
Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software designCliftone Mullah
 
Enterprise resource planning_system
Enterprise resource planning_systemEnterprise resource planning_system
Enterprise resource planning_systemJithin Zcs
 
Software maintenance real world maintenance cost
Software maintenance real world maintenance costSoftware maintenance real world maintenance cost
Software maintenance real world maintenance costmalathieswaran29
 
Reengineering pros and cons
Reengineering pros and consReengineering pros and cons
Reengineering pros and consNeema Volvoikar
 
Software engineering
Software engineeringSoftware engineering
Software engineeringnimmik4u
 
Design Engineering and Design concepts
Design Engineering and Design conceptsDesign Engineering and Design concepts
Design Engineering and Design conceptsJigyasaAgrawal7
 
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 topichoseg78377
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Fadhil Ismail
 
Software Evolution_Se lect2 btech
Software Evolution_Se lect2 btechSoftware Evolution_Se lect2 btech
Software Evolution_Se lect2 btechIIITA
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed descriptionSaileshSingh27
 
Software Engineering Lec 8-design-
Software Engineering Lec 8-design-Software Engineering Lec 8-design-
Software Engineering Lec 8-design-Taymoor Nazmy
 

Ähnlich wie 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
 
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
 
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
 

Kürzlich hochgeladen

KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptMsecMca
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptNANDHAKUMARA10
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01KreezheaRecto
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfRagavanV2
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 

Kürzlich hochgeladen (20)

KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 

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