1 / 9

Lecture # 23 Software Reengineering

SWE 316: Software Design and Architecture. Handout. Lecture # 23 Software Reengineering. To describe the activities involved in the software reengineering process .

betsy
Télécharger la présentation

Lecture # 23 Software Reengineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SWE 316: Software Design and Architecture Handout Lecture # 23Software Reengineering • 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. 2/9 Introduction Re-Engineering Process Motivation Software Maintenance 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 werecreated 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 . . . Osborne and Chikofsky

  3. 3/9 Introduction Re-Engineering Process 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

  4. 4/9 Introduction Re-Engineering Process 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

  5. 5/9 Introduction Re-Engineering Process Forward engineering and reengineering

  6. 6/9 Introduction Re-Engineering Process The reengineering process

  7. 7/9 Introduction Re-Engineering Process 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

  8. 8/9 Introduction Re-Engineering Process 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

  9. 9/9 Introduction Re-Engineering Process 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

More Related