Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software re engineering


Published on

A basic presentation on Software Re-engineering.

Published in: Education
  • Login to see the comments

Software re engineering

  2. 2.  It is a process of software development which is done to improve the maintainability of a software system. Technical Definition: Software Re- engineering is the examination and alteration of a system to reconstitute it in a new form. This process encompasses a combination of sub-processes such as reverse engineering, restructuring, redocumentation, forward engineering, and retargeting. 2
  3. 3.  It is sometimes a cost-effective option for software system evolution. Applicable when some (but not all) subsystems of a larger system require frequent maintenance. It involves putting in the effort to make it easier to maintain. 3
  4. 4.  Legacy systems are the old software systems which are essential for business process support. Software re-engineering is concerned with re-implementing legacy systems to make them more maintainable. It may be the only viable way to ensure that legacy systems can continue in service. 4
  5. 5. Re-engineering a software system has two key advantages: Reduced risk: As the software is already existing, the risk is less as compared to developing a new software. Reduced cost: The cost of re-engineering is significantly less than the costs of developing a new software. 5
  6. 6. 1) Source code translation2) Reverse Engineering3) Program structure improvement4) Program modularisation5) Data re-engineering 6
  7. 7.  It is a process of translating a source code from one programming language to another. The translated language may be an updated version of the original language or a completely different language. Necessity of Source-level translation: 1.Hardware platform update 2.Staff skill shortages 3.Organisational policy changes 4.Lack of software support 7
  8. 8. System to be System to be Re-engineeredre-engineered re-engineered System Identify source Design Automatically Manually code translator translate translate differences instructions code code 8
  9. 9.  It is the process of analysing software with the objective of recovering its design and specification. The program itself is unchanged by the reverse engineering process. The software source code is usually available as the input. Reverse Engineering is not the same as Re-engineering 9
  10. 10. Program structure diagrams Automated analysis System System to be Document Data structure Informationre-engineered generation diagrams Store Manual annotation Traceability matrices 10
  11. 11.  It is the process of improving the structure of the program to optimise memory use and the lack of understanding of s/w engineering. Typically, programs develop this complex logic structure as they are modified during maintenance. New conditions and associated actions are added without changing the existing control structure. 11
  12. 12. Program to be Restructured restructured program Analyser and Program graph builder generator Graph representation 12
  13. 13. Problems with automatic program restructuring include:1) Loss of comments2) Loss of documentation3) Heavy computational demands 13
  14. 14.  It is the process of reorganizing a program so that related program parts are collected together and considered as a single module. Different types of modules may be created: 1.Data abstractions 2.Hardware modules 3.Functional modules 4.Process support modules 14
  15. 15. Recovering Data Abstraction: Data abstractions collect together data and associated processing and are resilient to change. Steps in converting global data areas to abstract data types: 1.Analyse common data areas to identify logical data abstractions. 2.Create an abstract data type for each of these abstractions. 3.Use a program browsing system/cross reference generator to find all references to the data. Practically difficult and time-consuming,but straightforward. 15
  16. 16.  It is the process of analysing and reorganising data structures in a system to make it more understandable. Why do we have to modify data and programs in a legacy system ? 1.Data degradation 2.Inherent limits that are built into the programs 3.Architectural evolution Expensive and time-consuming process. 16
  17. 17. Program to be re-engineered Data analysis Entity name Data modification reformatting Literal Default value Data Data replacement conversion conversionanalysis Data definition Validation rule reordering modification Stage 1 Stage 2 Stage 3 Change summary tables Modified data 17
  18. 18.  Software Re-engineering its needs advantages. Steps involved in Software re-engineering. 18
  19. 19. Overall Software re-engineering process can be shown as : Program ModularisedOriginal program Original data documentation program Reverse engineering Source code Program Data translation modularisation re-engineering Program structure improvement Structured Re-engineered data program 19
  20. 20.  Software re-engineering is a cost-effective option for software system evolution. Software re-engineering consists of a combination of many sub-processes. Data re-engineering is different from software re-engineering. Data re-engineering is an expensive and time consuming process. 20
  21. 21. Ian Sommerville- Software Engineering, sixth edition, Pearson Education Bruce R. Maxim- Software Reengineering ppt, CIS 376, UM-Dearborn 21
  22. 22. 22