Presentation is loading. Please wait.

Presentation is loading. Please wait.

SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.

Similar presentations


Presentation on theme: "SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities."— Presentation transcript:

1 SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities involved in the software reengineering process The material of this presentation is adopted from: “Software Engineering,” by Somerville, Ian, 6th Ed., Addison-Wesley, 2001.

2 SWE 316: Software Design and Architecture Much of the software we depend on today is on average 10 to 15 years old. Even when these programs were created using the best design and coding techniques known at the time [and most were not], they were created when program size and storage space were principle concerns. They were then migrated to new platforms, adjusted for changes in machine and operating system technology and enhanced to meet new user needs—all with-out enough regard to overall architecture. The result is the poorly designed structures, poor coding, poor logic, and poor documentation of the software systems we are now called on to keep running... Motivation Osborne and Chikofsky Software Maintenance Introduction Re-Engineering Process 2/9

3 SWE 316: Software Design and Architecture Software reengineering  Reorganizing and modifying existing software systems to make them more maintainable.  When to reengineer?  When system changes are mostly confined to part of the system then reengineer that part  When hardware or software support becomes obsolete  When tools to support restructuring are available Introduction Re-Engineering Process 3/9

4 SWE 316: Software Design and Architecture Reengineering advantages  Reduced risk  There is a high risk in new software development. There may be development problems, staffing problems and specification problems  Reduced cost  The cost of reengineering is often significantly less than the costs of developing new software Introduction Re-Engineering Process 4/9

5 SWE 316: Software Design and Architecture Forward engineering and reengineering Introduction Re-Engineering Process 5/9

6 SWE 316: Software Design and Architecture The reengineering process Introduction Re-Engineering Process 6/9

7 SWE 316: Software Design and Architecture The reengineering process (cont...)  Source code translation: Involves converting the code from one language (or language version) to another e.g. FORTRAN to C  Reverse engineering: analyzing software with a view to understanding its design and specification  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 Introduction Re-Engineering Process 7/9

8 SWE 316: Software Design and Architecture The reengineering process (cont...)  Program modularisation: The process of reorganizing a program so that related program parts are collected together in a single module  Data reengineering: Involves analyzing and reorganizing the data structures (and sometimes the data values) in a program Introduction Re-Engineering Process 8/9

9 SWE 316: Software Design and Architecture Summary  The objective of reengineering is to improve the system structure to make it easier to understand and maintain  The reengineering process involves:  Source code translation is the automatic conversion of program in one language to another  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 reorganization to group related items  Data reengineering may be necessary because of inconsistent data management IntroductionRe-Engineering Process 9/9


Download ppt "SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities."

Similar presentations


Ads by Google