2. IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
2
3. IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
3
What
to
do?
4. IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
4
5. IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
5
6. Why Software Re-engineering?
• ‘Trying to figure out the structure and behavior of existing
software by building general-level static and dynamic models’
• Re-structuring or re-writing part or all of a legacy system without
changing its functionality
• Applicable where some but not all sub-systems of a larger system
require frequent maintenance
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
6
7. Advantages of Re-engineering
• Reduce Risk
• Risk is less than developing new software
• Reduced Cost
• Cost of developing a new software is significantly high than Re-engineering
• Productivity increases
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
7
8. Re-Engineering cost factors
•The quality of the software to be re-engineered.
•The tool support availability for engineering.
•Extent of the data conversion which is required.
•The availability of expert staff for Re-engineering.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
8
9. When RE is needed
• When the programming language or platform is no longer
supported. (IFS converted Centura code to C#.net code)
• There is a drastic change in technology. ( IFS windows technology
was changed to web based technologies)
• Business processes in the company are changing.( Banking
System)
• If the software is initially poor. ( LinkedIn/ Autolanka.com)
• A technology appears which is perfect for your goals.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
9
11. Forward Engineering
“Forward engineering is the traditional process of moving
from high-level abstractions and logical, implementation-
independent designs to the physical implementation of a
system."
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
11
12. IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
12
13. IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
13
15. Software Re-engineering
• Reorganising and modifying existing software systems to make them
more maintainable
• Examination and alteration of a system to reconstitute it in a new
form
• The principles of Re-Engineering when applied to the software
development process is called software re-engineering
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
15
16. Some Software re-engineering activities
• Source code translation into another programming language
• Database reorganization or its transfer
• Software architecture optimization
• New functionality addition and integration with third-party APIs.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
16
18. Inventory Analysis
• Every software organisation should have an inventory of all the
applications.
• Inventory can be nothing more than a spreadsheet model containing
information that provides a detailed description of every active
application.
• By sorting this information according to business criticality, longevity,
current maintainability and other local important criteria, candidates for
re-engineering appear.
• Resource can then be allocated to candidate application for re-
engineering work.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
18
19. Document reconstructing
• Documentation of a system either explains how it operate or how to
use it.
• Documentation must be updated.
• It may not be necessary to fully document an application.
• The system is business critical and must be fully re-documented.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
19
20. Reverse Engineering
• Reverse engineering is a process of design recovery.
• Reverse engineering tools extracts data, architectural and procedural
design information from an existing program.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
20
21. Code Reconstructing
• The source code is analysed using a reconstructing tool.
• Violations of structured programming construct are noted and code is
then reconstruct.
• The resultant restructured code is reviewed and tested to ensure that
no anomalies have been introduced.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
21
22. Data Restructuring
• Data restructuring begins with the reverse engineering activity.
• Current data architecture is dissected, and necessary data models are
defined.
• Data objects and attributes are identified, and existing data structure
are reviewed for quality.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
22
23. Forward Engineering
• Forward Engineering also called as renovation or reclamation not only
for recovers design information from existing software but uses this
information to alter or reconstitute the existing system in an effort to
improve its overall quality.
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
23
24. Thank you
IT1204 – Software Engineering
Institute of Technology, University of Moratuwa
24
Editor's Notes
The modernization process will be an appropriate option in the following cases:
when the programming language or platform is no longer supported. Improvements, patches for bug fixing and security updates no longer work, which makes the app vulnerable. Also, there are lost the options for integration with third-party systems through modern APIs;
there is a drastic change in technology. The situation when the initially promising technology is replaced by more successful and advanced alternatives is common in IT. The market is constantly evolving and, if the company wants to keep up with technology, reengineering process becomes a necessity;
business processes in the company are changing. If the product was initially confined to the ideal solution of a limited number of tasks in clearly defined processes’ conditions, it may be necessary to make changes to the software, provided most of them are to be changed;
if the software is initially poor. This sometimes happens because of an attempt of excessive saving at development or opting for amateur performers. If the solution used limits the company’s performance and does not work well enough, it influences business processes and reengineering might help to achieve a higher-quality product;
a technology appears which is perfect for your goals. For example, a completely new market can appear, as happened when the first iPhone came out. This does not happen often nowadays, but still, it may well do.