A SEMINAR ON THE TOPIC




                  UNDER THE GUIDANCE OF

                PROF R.B.HANJI
                                      BY:
                  `         ABHILASH .A.M
                           ABHILASH SHET
                            AKSHAY KUMAR
                         AMRUT DESHPANDE
                                      1
 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
   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
 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
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
1)   Source code translation
2)   Reverse Engineering
3)   Program structure improvement
4)   Program modularisation
5)   Data re-engineering




                                     6
 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
System to be                   System to be    Re-engineered
re-engineered                  re-engineered
                                                  System



   Identify
    source         Design      Automatically     Manually
     code        translator      translate       translate
 differences    instructions       code            code




                                                      8
 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
Program
                                                               structure
                                                               diagrams
                Automated
                 analysis

                                System
 System to be                              Document          Data structure
                             Information
re-engineered                              generation          diagrams
                                 Store


                  Manual
                annotation
                                                              Traceability
                                                                matrices




                                                        10
 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
Program to be
                                                                   Restructured
 restructured                                                        program



                Analyser and                            Program
                graph builder                          generator




                                Graph representation




                                                                   12
Problems with automatic program
  restructuring include:
1) Loss of comments
2) Loss of documentation
3) Heavy computational demands




                                  13
 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
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
 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
Program to be re-engineered                    Data analysis




                 Entity name                     Data
                 modification                reformatting

                    Literal                  Default value              Data
 Data            replacement                  conversion             conversion
analysis
                Data definition              Validation rule
                  reordering                  modification



           Stage 1                 Stage 2                     Stage 3


                         Change summary tables                      Modified data




                                                               17
 Software Re-engineering
 its needs
 advantages.
 Steps involved in Software re-engineering.




                                         18
Overall Software re-engineering process can be
 shown as :

                                    Program           Modularised
Original program                                                                    Original data
                                 documentation         program




                     Reverse
                   engineering



  Source code                          Program                             Data
   translation                       modularisation                   re-engineering


                      Program
                     structure
                   improvement


                                   Structured                       Re-engineered data
                                    program




                                                                               19
 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
Ian Sommerville- Software Engineering, sixth
 edition, Pearson Education
 Bruce R. Maxim- Software Reengineering
 ppt, CIS 376, UM-Dearborn




                                       21
22

Software re engineering

  • 1.
    A SEMINAR ONTHE TOPIC UNDER THE GUIDANCE OF PROF R.B.HANJI BY: ` ABHILASH .A.M ABHILASH SHET AKSHAY KUMAR AMRUT DESHPANDE 1
  • 2.
     It isa 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.
    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.
     Legacy systemsare 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.
    Re-engineering a softwaresystem 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.
    1) Source code translation 2) Reverse Engineering 3) Program structure improvement 4) Program modularisation 5) Data re-engineering 6
  • 7.
     It isa 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.
    System to be System to be Re-engineered re-engineered re-engineered System Identify source Design Automatically Manually code translator translate translate differences instructions code code 8
  • 9.
     It isthe 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.
    Program structure diagrams Automated analysis System System to be Document Data structure Information re-engineered generation diagrams Store Manual annotation Traceability matrices 10
  • 11.
     It isthe 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.
    Program to be Restructured restructured program Analyser and Program graph builder generator Graph representation 12
  • 13.
    Problems with automaticprogram restructuring include: 1) Loss of comments 2) Loss of documentation 3) Heavy computational demands 13
  • 14.
     It isthe 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.
    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.
     It isthe 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.
    Program to bere-engineered Data analysis Entity name Data modification reformatting Literal Default value Data Data replacement conversion conversion analysis Data definition Validation rule reordering modification Stage 1 Stage 2 Stage 3 Change summary tables Modified data 17
  • 18.
     Software Re-engineering its needs  advantages.  Steps involved in Software re-engineering. 18
  • 19.
    Overall Software re-engineeringprocess can be shown as : Program Modularised Original 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.
     Software re-engineeringis 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.
    Ian Sommerville- SoftwareEngineering, sixth edition, Pearson Education  Bruce R. Maxim- Software Reengineering ppt, CIS 376, UM-Dearborn 21
  • 22.