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

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

Software Re-engineering
Configuration management
Chapter 11 Software Evolution
Ch 3 System Development Environment
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”
Lesson-12 Information System Development-2
Introduction to Software Evolution and Maintenance
Software Evolution Managing the processes of software system change
Delivered System Documentation u One of the most important things that can be done to make a system maintainable is to create the best, most complete,
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Software evolution.
Software evolution.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Software Reengineering
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Chapter 1 The Systems Development Environment
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Chapter 9 – Software Evolution and Maintenance
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
Lecture # 22 Software Evolution
Chapter 1 The Systems Development Environment
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
CS 425/625 Software Engineering Legacy Systems
Lecture 3 Software Engineering Models (Cont.)
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 26,27,28 Slide 1 Legacy Systems l Older software.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Friday, 23 August 2013 Session Work out Presented By: Abhijit Pal.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
CASE Tools and their Effect on Software Quality
CS223: Software Engineering Lecture 33: Software Maintenance.
Tempus Software Maintenance and Evolution JMSE-SM&E Unit 6: Reengineering and Maintenance in software cycle Prof. Mohammad A. Mikki Gaza, Palestine,
CS223: Software Engineering Lecture 34: Software Maintenance.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVI. Software Evolution.
Maintenance Issues in Software Engineering
CS223: Software Engineering
Environment Assessment
1.Introduction to Software Engineering
Introduction to Software Evolution and Maintenance
Software Maintenance.
Business System Development
Software Maintenance PPT By :Dr. R. Mall.
Chapter 2 – Software Processes
Legacy Systems Older software systems that remain vital to an organisation.
IS301 – Software Engineering V:
Software Re-Engineering
Program Restructuring
Presents: Rally To Java Conversion Suite
Chapter 8 Software Evolution.
Lecture 06:Software Maintenance
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Re- engineeniering.
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
Presentation transcript:

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.

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

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

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

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

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

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

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

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