SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Software Re-engineering
Strategy for Software Change
Indu Sharma
HOD(CSE)
CPTC, Rajsamand
Introduction
 We have already discussed three
types of maintenance:
 Corrective Maintenance
 Adaptive Maintenance
 Perfective Maintenance
 There is one more type of
maintenance that is called:
 Preventive Maintenance
Introduction
 Prevention (Preventive maintenance or
reengineering): Computer software
deteriorates due to change, and because of
this, preventive maintenance, often called
software reengineering, must be conducted to
enable the software to serve the needs of its
end users. In this maintenance no new
functionality is added to the system. Rather,
the system is modified so that it can be more
easily corrected, adapted, and enhanced.
Legacy Systems
 Legacy systems are old systems which
are essential for business process
support. Companies rely on these
systems so they must keep them in
operation. Software evolution strategies
include maintenance, replacement,
architectural evolution and software re-
engineering.
Legacy Systems
 The majority of legacy systems have been
written in COBOL, a programming language
best suited to business data processing or
FORTRAN, a programming language for
scientific or mathematical programming.
These languages have limited program
structuring facilities and in the case of
FORTRAN, very limited support for data
structuring.
Legacy Systems
 Maintenance of these old systems is
increasingly expensive so re-engineering
these system extends their useful life time.
Re-engineering a system is cost effective
when it has a high business value but is
maintain to expensive. Re-engineering
improves the system structure, creates new
system documentation and makes it easier to
understand.
Software Re-Engineering
 Software re-engineering is concerned with re-
implementing legacy system to make them
more maintainable. Re-engineering may
involve re-documenting the system,
organizing and restructuring the system,
translating the system to more modern
programming language and modifying and
updating the structure and values of the
system’s data.
Key Advantages or Re-
engineering
 Reduced risk: there is a high risk in
redeveloping software that is essential
for an organization. Errors may be
made in the system specification, there
may be development problems etc.
 Reduced cost: the cost of re-
engineering is significantly less than the
costs of developing new software.
System
Specification
Design &
Implementation
New
System
Forward Engineering
Existing s/w
system
Understanding &
transformation
Re-engineered
System
Software Re-engineering
Re-engineering V/S New
Software Development
Re-engineering V/S New
Software Development
 The critical difference between re-
engineering and new software
development (also called forward
engineering) is the starting point for the
development. Rather than start with a
written specification, the old system
acts as a specification for the new
system.
The Re-engineering Process
Reverse
engineering
Program
documentation
Data
reengineering
Original data
Program
structure
improvement
Program
modularisation
Structured
program
Reengineered
data
Modularised
program
Original
program
Sourcecode
translation
Re-engineering Process
The input to the process is a legacy
program and the output is the modularized
version of the same program. As the same
time as program re-engineering, the data
for the system may also be re-engineered.
The activities in this re-engineering process
are: Source Code Translation,
Reverse Engineering, Program
Structure Improvement, Program
Modularization, Data Re-engineering
I Source Code Translation
Automatically
translatecode
Designtranslator
instructions
Identifysource
codedifferences
Manually
translatecode
Systemtobe
re-engineered
Systemtobe
re-engineered
Re-engineered
system
Source Code Translation
 The simplest form of s/w re-engineering is program
translation where source code in one programming
language is translated to source code in some other
language.
 Source code translation is only economically realistic
if an automated translator is available.
 In this process source in one programming language
is automatically translated in source code in some
other language. The target language may be an
updated version of the original language(eg. COBOL-
74 to COBOL-85) or may be a translated to a
completely different language(eg. FORTRAN to C)
Why source code translation?
 It may be necessary for the following
reasons.
i. Hardware Platform Update: The
organization may whish to change its
standard h/w platform. Compilers for the
original language may not be available
on the new h/w.
Why source code translation?
ii. Staff skill shortages: There may be a lack of
trained maintenance staff for the original
language. This is a particular problem where
programs were written in a non-standard
language that has now gone out of general use.
iii. Organizational Policy Changes: An
organization may decide to standardize on a
particular language to minimize it support
software costs. Maintaining many copies of old
compilers can be very expensive.
Why source code translation?
IV. Lack of software support: The
suppliers of the language may have
gone out of business or may discontinue
for their product.
II Reverse Engineering
Process
Datastucture
diagrams
Programstucture
diagrams
Traceability
matrices
Document
generation
System
information
store
Automated
analysis
Manual
annotation
Systemtobe
re-engineered
Reverse Engineering
 The objective of the reverse
engineering is to derive the design and
specification of a system from its source
code. It is the process of analyzing a
program in an effort to create a
representation of the program at a
higher level of abstraction than source
code.
III Program Structure
Improvement
 Program restructuring modifies source code and/or
data in an effort to make it easier for future changes.
 Easy to read and understand
 Unstructured control, complex conditions can also be
simplified as part of the restructuring process.
 Complex condition: if not( A>B AND (C>D OR NOT
(E>F)))…
 Simplified condition: if A<= B AND (C>=D OR E>F)…
 Use of structured control statements
Program Structure Improvement
 It focuses on design details of
individual modules and on local data
structures defined within modules.
The benefits of program restructuring
are:
i. Programs have higher quality-better
documentation, less complexity, and
conformance to modern s/w engineering
practices and standards.
Program Structure Improvement
ii. Frustration among s/w engineers who
must work on the program is reduced,
thereby improving productivity and
making learning easier.
iii. Efforts required to maintenance activities
is reduced.
iv. S/W is easier to test and debug.
IV Program Modularization
 Program modularization is the process of
reorganizing a program so that related parts
are collected together and considered as a
single module. Once this has been done, it
becomes easier to remove redundancy in
these related components, to optimize their
interactions and to simplify their interface with
the rest of the program.
 In some cases, this stage may involve
architectural transformation.
Program Modularization
 Several different types of module may be
created during the program modularization
process:
i. Data Abstractions: These are abstract data
types that are created by associating data with
processing components.
ii. Hardware modules: These modules combines
together all of the functions which are used to
control a particular h/w device.
Program Modularization
iii. Functional modules: These are modules which
collect together functions that carry out similar
or closely related tasks. For eg. All of the
functions concerned with input and input
validation may be incorporated in a single
module.
iv. Process support modules: These are modules
where all of the functions and the specific data
items required to support a particular business
process are grouped. For eg., in a library
system, a process support module may include
all of the functionality required to support issue
and return of books.
V Data Re-engineering
Process
Entityname
modification
Literal
replacement
Datadefinition
re-ordering
Data
re-formatting
Defaultvalue
conversion
Validationrule
modification
Data
analysis
Data
conversion
Data
analysis
Modified
data
Programtobere-engineered
Changesummarytables
Stage1 Stage2 Stage3
Data Re-engineering
 During the re-engineering process, the
storage, organization and format of data
processed by legacy programs may
have to evolve to reflect changes to the
software. The process of analyzing and
reorganizing data structures and,
sometimes, the data values in a system
to make it more understandable is
called data-reengineering.
Data Re-engineering
 Various reasons for modifying the data are:
i. Data Degradation: Over time, the quality of data
tends to decline. Changes to the data introduces
errors, duplicate values may have been created
and changes to the external environment may
not be reflected in the data.
eg. Change in account no. format,
e-mail address
Data Re-engineering
ii. Inherent limits that are built into the
program: When originally designed,
developers of many programs included
built-in-constraints on the amount of data
which would be processed. However,
programs are now often required to
process much more data that was
originally specified by their developers.
Data re-engineering may be required to
remove the limitations
Data Re-engineering
iii. Architectural evolution: If a centralized
system is migrated to a distributed
architecture it is essential that the
architecture should be a data
management system that can be
accessed from remote clients. This may
require a large data re-engineering effort
to move data from separate files into the
server database management system.
Cost of Re-engineering
 The cost of re-engineering depend on the
extent of the work that is carried out. Cost
increases from left to right so that source
code translation is the cheapest option and
re-engineering as part of the architectural
migration is the most expensive.
 Apart from the extent of the re-engineering,
the principal factors that affect re-engineering
costs are:
Cost of Re-engineering
i. The quality of the software to re-
engineered: The lower of the quality of
the software and its associated
documentation(if any), the higher re-
engineering costs.
ii. The tool support available for re-
engineering: The use of CASE tools to
automate most of the program changes
is normally cost effective to re-engineer a
software.
Cost of Re-engineering
iii. The extent of data conversion required:
If re-engineering requires large volumes of data
to be converted, this significantly increases the
process cost.
iv. The availability of expert staff: If the staff
responsible for maintaining the system can’t be
involved in the re-engineering process, this will
increase the costs. System re-engineers will
have to spend a great deal of time
understanding the system.
Disadvantages of S/W Re-
engineering
i. Practical limits to the extent that a system can be
improved by re-engineering. For eg. It is not
possible to convert a system written using a
functional approach to an object-oriented system.
ii. Major architectural changes can’t be carried out
automatically, so involve high additional costs.
iii. Although re-engineered system can improve
maintainability, the re-engineered system will
probably not be as maintainable as new system
developed using modern software engineering
methods.

Weitere ähnliche Inhalte

Was ist angesagt?

SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolutionkim.mens
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineeringParminder Singh
 
Maintenance & Re-Engineering of Software
Maintenance & Re-Engineering of SoftwareMaintenance & Re-Engineering of Software
Maintenance & Re-Engineering of SoftwareAdeel Riaz
 
Programming team structure
Programming team structureProgramming team structure
Programming team structureNancyBeaulah_R
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringAli Raza
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)Nishkarsh Gupta
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
software design principles
software design principlessoftware design principles
software design principlesCristal Ngo
 

Was ist angesagt? (20)

Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Legacy system.
Legacy system.Legacy system.
Legacy system.
 
Software process
Software processSoftware process
Software process
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Software design
Software designSoftware design
Software design
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
 
Software quality
Software qualitySoftware quality
Software quality
 
Maintenance & Re-Engineering of Software
Maintenance & Re-Engineering of SoftwareMaintenance & Re-Engineering of Software
Maintenance & Re-Engineering of Software
 
Programming team structure
Programming team structureProgramming team structure
Programming team structure
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
software design principles
software design principlessoftware design principles
software design principles
 

Andere mochten auch

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
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software ReengineeringBradley Irby
 
Reverse-and forward-engineering specificity of carbohydrate-processing enzymes
Reverse-and forward-engineering specificity of carbohydrate-processing enzymesReverse-and forward-engineering specificity of carbohydrate-processing enzymes
Reverse-and forward-engineering specificity of carbohydrate-processing enzymesLeighton Pritchard
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineeringSaswat Padhi
 
Reverse Engineering
Reverse EngineeringReverse Engineering
Reverse Engineeringdswanson
 
Introduction to video reverse engineering
Introduction to video reverse engineeringIntroduction to video reverse engineering
Introduction to video reverse engineeringVittorio Giovara
 
Agile business analysis the changing role of business analysts in agile sof...
Agile business analysis   the changing role of business analysts in agile sof...Agile business analysis   the changing role of business analysts in agile sof...
Agile business analysis the changing role of business analysts in agile sof...Nari Kannan
 
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...Hugo Bruneliere
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web ApplicationsPorfirio Tramontana
 
Business process reengineering
Business process reengineeringBusiness process reengineering
Business process reengineeringCik Liana Omar
 
Upgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced DebuggingUpgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced DebuggingAbhijeet Vaikar
 
Dynamic analysis in Software Testing
Dynamic analysis in Software TestingDynamic analysis in Software Testing
Dynamic analysis in Software TestingSagar Pednekar
 
Software coding &amp; testing, software engineering
Software coding &amp; testing, software engineeringSoftware coding &amp; testing, software engineering
Software coding &amp; testing, software engineeringRupesh Vaishnav
 
What is-smoke-testing ?
What is-smoke-testing ?What is-smoke-testing ?
What is-smoke-testing ?Ajit Waje
 
Overview of CMMI and Software Process Improvement
Overview of CMMI and Software Process ImprovementOverview of CMMI and Software Process Improvement
Overview of CMMI and Software Process ImprovementNelson Piedra
 

Andere mochten auch (20)

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 & its application
Reverse engineering & its applicationReverse engineering & its application
Reverse engineering & its application
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Reverse-and forward-engineering specificity of carbohydrate-processing enzymes
Reverse-and forward-engineering specificity of carbohydrate-processing enzymesReverse-and forward-engineering specificity of carbohydrate-processing enzymes
Reverse-and forward-engineering specificity of carbohydrate-processing enzymes
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
 
Reverse Engineering
Reverse EngineeringReverse Engineering
Reverse Engineering
 
Introduction to video reverse engineering
Introduction to video reverse engineeringIntroduction to video reverse engineering
Introduction to video reverse engineering
 
Agile business analysis the changing role of business analysts in agile sof...
Agile business analysis   the changing role of business analysts in agile sof...Agile business analysis   the changing role of business analysts in agile sof...
Agile business analysis the changing role of business analysts in agile sof...
 
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
Eclipse Modeling & MoDisco - An Introduction to Modeling and (Model Driven) R...
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
 
Software reuse
Software reuseSoftware reuse
Software reuse
 
Business process reengineering
Business process reengineeringBusiness process reengineering
Business process reengineering
 
3D scanning and Reverse Engineering
3D scanning and Reverse Engineering3D scanning and Reverse Engineering
3D scanning and Reverse Engineering
 
Upgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced DebuggingUpgrading Mobile Tester's Weapons with Advanced Debugging
Upgrading Mobile Tester's Weapons with Advanced Debugging
 
Dynamic analysis in Software Testing
Dynamic analysis in Software TestingDynamic analysis in Software Testing
Dynamic analysis in Software Testing
 
Software coding &amp; testing, software engineering
Software coding &amp; testing, software engineeringSoftware coding &amp; testing, software engineering
Software coding &amp; testing, software engineering
 
What is-smoke-testing ?
What is-smoke-testing ?What is-smoke-testing ?
What is-smoke-testing ?
 
Overview of CMMI and Software Process Improvement
Overview of CMMI and Software Process ImprovementOverview of CMMI and Software Process Improvement
Overview of CMMI and Software Process Improvement
 

Ähnlich wie 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
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenanceAnsh Kapoor
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introductionVishal Singh
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewghayour abbas
 
software engineering
software engineeringsoftware engineering
software engineeringsubhakirthi
 
Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptxAmarYa2
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed descriptionSaileshSingh27
 
A Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse EngineeringA Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse Engineeringijsrd.com
 
Restructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality ApproachRestructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality ApproachAdnan Masood
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineeringinfinitetechnology20
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered ArchitectureMuhammed Afsal Villan
 

Ähnlich wie 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
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
SWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overviewSWE-401 - 11. Software maintenance overview
SWE-401 - 11. Software maintenance overview
 
software engineering
software engineeringsoftware engineering
software engineering
 
Ch17
Ch17Ch17
Ch17
 
Software maintaince.pptx
Software maintaince.pptxSoftware maintaince.pptx
Software maintaince.pptx
 
SE notes 2.pdf
SE notes 2.pdfSE notes 2.pdf
SE notes 2.pdf
 
Computers in management
Computers in managementComputers in management
Computers in management
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
A Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse EngineeringA Comparative Study of Forward and Reverse Engineering
A Comparative Study of Forward and Reverse Engineering
 
Restructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality ApproachRestructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality Approach
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptx
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
SE-Unit I.pptx
SE-Unit I.pptxSE-Unit I.pptx
SE-Unit I.pptx
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
 

Mehr von Indu Sharma Bhardwaj (17)

E model
E modelE model
E model
 
E commerce
E commerceE commerce
E commerce
 
Ui design final
Ui design finalUi design final
Ui design final
 
Testing
TestingTesting
Testing
 
Software project management 3
Software project management 3Software project management 3
Software project management 3
 
Software project management
Software project managementSoftware project management
Software project management
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
 
Software resuse
Software  resuseSoftware  resuse
Software resuse
 
Risk analysis
Risk analysisRisk analysis
Risk analysis
 
Design final
Design finalDesign final
Design final
 
Debugging
DebuggingDebugging
Debugging
 
10 common english mistakes
10 common english mistakes10 common english mistakes
10 common english mistakes
 
3. jvm
3. jvm3. jvm
3. jvm
 
6. static keyword
6. static keyword6. static keyword
6. static keyword
 
4. method overloading
4. method overloading4. method overloading
4. method overloading
 
2. hello java
2. hello java2. hello java
2. hello java
 
1 .java basic
1 .java basic1 .java basic
1 .java basic
 

Kürzlich hochgeladen

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 

Kürzlich hochgeladen (20)

Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 

Software re engineering

  • 1. Software Re-engineering Strategy for Software Change Indu Sharma HOD(CSE) CPTC, Rajsamand
  • 2. Introduction  We have already discussed three types of maintenance:  Corrective Maintenance  Adaptive Maintenance  Perfective Maintenance  There is one more type of maintenance that is called:  Preventive Maintenance
  • 3. Introduction  Prevention (Preventive maintenance or reengineering): Computer software deteriorates due to change, and because of this, preventive maintenance, often called software reengineering, must be conducted to enable the software to serve the needs of its end users. In this maintenance no new functionality is added to the system. Rather, the system is modified so that it can be more easily corrected, adapted, and enhanced.
  • 4. Legacy Systems  Legacy systems are old systems which are essential for business process support. Companies rely on these systems so they must keep them in operation. Software evolution strategies include maintenance, replacement, architectural evolution and software re- engineering.
  • 5. Legacy Systems  The majority of legacy systems have been written in COBOL, a programming language best suited to business data processing or FORTRAN, a programming language for scientific or mathematical programming. These languages have limited program structuring facilities and in the case of FORTRAN, very limited support for data structuring.
  • 6. Legacy Systems  Maintenance of these old systems is increasingly expensive so re-engineering these system extends their useful life time. Re-engineering a system is cost effective when it has a high business value but is maintain to expensive. Re-engineering improves the system structure, creates new system documentation and makes it easier to understand.
  • 7. Software Re-Engineering  Software re-engineering is concerned with re- implementing legacy system to make them more maintainable. Re-engineering may involve re-documenting the system, organizing and restructuring the system, translating the system to more modern programming language and modifying and updating the structure and values of the system’s data.
  • 8. Key Advantages or Re- engineering  Reduced risk: there is a high risk in redeveloping software that is essential for an organization. Errors may be made in the system specification, there may be development problems etc.  Reduced cost: the cost of re- engineering is significantly less than the costs of developing new software.
  • 9. System Specification Design & Implementation New System Forward Engineering Existing s/w system Understanding & transformation Re-engineered System Software Re-engineering Re-engineering V/S New Software Development
  • 10. Re-engineering V/S New Software Development  The critical difference between re- engineering and new software development (also called forward engineering) is the starting point for the development. Rather than start with a written specification, the old system acts as a specification for the new system.
  • 11. The Re-engineering Process Reverse engineering Program documentation Data reengineering Original data Program structure improvement Program modularisation Structured program Reengineered data Modularised program Original program Sourcecode translation
  • 12. Re-engineering Process The input to the process is a legacy program and the output is the modularized version of the same program. As the same time as program re-engineering, the data for the system may also be re-engineered. The activities in this re-engineering process are: Source Code Translation, Reverse Engineering, Program Structure Improvement, Program Modularization, Data Re-engineering
  • 13. I Source Code Translation Automatically translatecode Designtranslator instructions Identifysource codedifferences Manually translatecode Systemtobe re-engineered Systemtobe re-engineered Re-engineered system
  • 14. Source Code Translation  The simplest form of s/w re-engineering is program translation where source code in one programming language is translated to source code in some other language.  Source code translation is only economically realistic if an automated translator is available.  In this process source in one programming language is automatically translated in source code in some other language. The target language may be an updated version of the original language(eg. COBOL- 74 to COBOL-85) or may be a translated to a completely different language(eg. FORTRAN to C)
  • 15. Why source code translation?  It may be necessary for the following reasons. i. Hardware Platform Update: The organization may whish to change its standard h/w platform. Compilers for the original language may not be available on the new h/w.
  • 16. Why source code translation? ii. Staff skill shortages: There may be a lack of trained maintenance staff for the original language. This is a particular problem where programs were written in a non-standard language that has now gone out of general use. iii. Organizational Policy Changes: An organization may decide to standardize on a particular language to minimize it support software costs. Maintaining many copies of old compilers can be very expensive.
  • 17. Why source code translation? IV. Lack of software support: The suppliers of the language may have gone out of business or may discontinue for their product.
  • 19. Reverse Engineering  The objective of the reverse engineering is to derive the design and specification of a system from its source code. It is the process of analyzing a program in an effort to create a representation of the program at a higher level of abstraction than source code.
  • 20. III Program Structure Improvement  Program restructuring modifies source code and/or data in an effort to make it easier for future changes.  Easy to read and understand  Unstructured control, complex conditions can also be simplified as part of the restructuring process.  Complex condition: if not( A>B AND (C>D OR NOT (E>F)))…  Simplified condition: if A<= B AND (C>=D OR E>F)…  Use of structured control statements
  • 21. Program Structure Improvement  It focuses on design details of individual modules and on local data structures defined within modules. The benefits of program restructuring are: i. Programs have higher quality-better documentation, less complexity, and conformance to modern s/w engineering practices and standards.
  • 22. Program Structure Improvement ii. Frustration among s/w engineers who must work on the program is reduced, thereby improving productivity and making learning easier. iii. Efforts required to maintenance activities is reduced. iv. S/W is easier to test and debug.
  • 23. IV Program Modularization  Program modularization is the process of reorganizing a program so that related parts are collected together and considered as a single module. Once this has been done, it becomes easier to remove redundancy in these related components, to optimize their interactions and to simplify their interface with the rest of the program.  In some cases, this stage may involve architectural transformation.
  • 24. Program Modularization  Several different types of module may be created during the program modularization process: i. Data Abstractions: These are abstract data types that are created by associating data with processing components. ii. Hardware modules: These modules combines together all of the functions which are used to control a particular h/w device.
  • 25. Program Modularization iii. Functional modules: These are modules which collect together functions that carry out similar or closely related tasks. For eg. All of the functions concerned with input and input validation may be incorporated in a single module. iv. Process support modules: These are modules where all of the functions and the specific data items required to support a particular business process are grouped. For eg., in a library system, a process support module may include all of the functionality required to support issue and return of books.
  • 27. Data Re-engineering  During the re-engineering process, the storage, organization and format of data processed by legacy programs may have to evolve to reflect changes to the software. The process of analyzing and reorganizing data structures and, sometimes, the data values in a system to make it more understandable is called data-reengineering.
  • 28. Data Re-engineering  Various reasons for modifying the data are: i. Data Degradation: Over time, the quality of data tends to decline. Changes to the data introduces errors, duplicate values may have been created and changes to the external environment may not be reflected in the data. eg. Change in account no. format, e-mail address
  • 29. Data Re-engineering ii. Inherent limits that are built into the program: When originally designed, developers of many programs included built-in-constraints on the amount of data which would be processed. However, programs are now often required to process much more data that was originally specified by their developers. Data re-engineering may be required to remove the limitations
  • 30. Data Re-engineering iii. Architectural evolution: If a centralized system is migrated to a distributed architecture it is essential that the architecture should be a data management system that can be accessed from remote clients. This may require a large data re-engineering effort to move data from separate files into the server database management system.
  • 31. Cost of Re-engineering  The cost of re-engineering depend on the extent of the work that is carried out. Cost increases from left to right so that source code translation is the cheapest option and re-engineering as part of the architectural migration is the most expensive.  Apart from the extent of the re-engineering, the principal factors that affect re-engineering costs are:
  • 32. Cost of Re-engineering i. The quality of the software to re- engineered: The lower of the quality of the software and its associated documentation(if any), the higher re- engineering costs. ii. The tool support available for re- engineering: The use of CASE tools to automate most of the program changes is normally cost effective to re-engineer a software.
  • 33. Cost of Re-engineering iii. The extent of data conversion required: If re-engineering requires large volumes of data to be converted, this significantly increases the process cost. iv. The availability of expert staff: If the staff responsible for maintaining the system can’t be involved in the re-engineering process, this will increase the costs. System re-engineers will have to spend a great deal of time understanding the system.
  • 34. Disadvantages of S/W Re- engineering i. Practical limits to the extent that a system can be improved by re-engineering. For eg. It is not possible to convert a system written using a functional approach to an object-oriented system. ii. Major architectural changes can’t be carried out automatically, so involve high additional costs. iii. Although re-engineered system can improve maintainability, the re-engineered system will probably not be as maintainable as new system developed using modern software engineering methods.