System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

Chapter 11 Software Evolution
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Evolution Managing the processes of software system change
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Software Reengineering
Nov. 14, 2007 Systems Engineering ä System ä A set or arrangement of things so related as to form a unity or organic whole. ä A set of facts, principles,
Software evolution.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Course Instructor: Aisha Azeem
Software Reengineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
The Re-engineering and Reuse of Software
Chapter 29 Maintenance and Reengineering
Software Re-engineering
Chapter 9 – Software Evolution and Maintenance
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Software change  Managing the processes of software system change.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
©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.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Next week Tuesday Report on the project Demo of the working model. Today at the conclusion of lecture, class get together to figure out how you will present.
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.
CASE Tools and their Effect on Software Quality
Managing Data Resources File Organization and databases for business information systems.
CS223: Software Engineering Lecture 33: Software Maintenance.
CS223: Software Engineering Lecture 34: Software Maintenance.
CIS 375 Bruce R. Maxim UM-Dearborn
Business System Development
CompSci 280 S Introduction to Software Development
Software Configuration Management
Chapter 1 The Systems Development Environment
ISA 201 Intermediate Information Systems Acquisition
Environment Assessment
Introduction to Software Evolution and Maintenance
Chapter 13: Setting a Direction for Information Resources
Chapter 1 The Systems Development Environment
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Software Maintenance.
IEEE Std 1074: Standard for Software Lifecycle
Chapter 1 The Systems Development Environment
Software Maintenance
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Business Process Reengineering
MANAGING DATA RESOURCES
Chapter 2 Software Processes
CLINICAL INFORMATION SYSTEM
Software Design Lecture : 8
Chapter 27 Software Change.
CHAPTER 9 (part a) BASIC INFORMATION SYSTEMS CONCEPTS
Chapter 8 Software Evolution.
Unit 5 15SE202 Software engineering Principles
Chapter 1 The Systems Development Environment
Software Development Process Using UML Recap
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
For University Use Only
Presentation transcript:

System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems of a larger system require frequent maintenance Reengineering involves putting in the effort to make it easier to maintain The reengineered system may also be restructured and should be redocumented

When do you decide to reengineer? When system changes are confined to one subsystem, the subsystem needs to be reengineered When hardware or software support becomes obsolete When tools to support restructuring are readily available

Business Process Reengineering Concerned with redesigning business processes to make them more responsive and more efficient Often relies on the introduction of new computer systems to support the revised processes May force software reengineering of legacy computer systems which designed to support existing processes

Business Process Reengineering Principles Organize around outcomes, not tasks. Incorporate information processing work into the work that produces the raw information. Treat geographically dispersed resources as though they were centralized. Link parallel activities instead of integrating their results.

BPR Model A model for business process reengineering defines six activities. Business Definition Process Identification Refinement and instantiation Prototyping Process Evaluation Process specification and design

BPR Model Business definition Process identification business goals identified in the context of key drivers cost reduction time reduction quality improvement empowerment Process identification processes that are critical to achieving business goals are identified and prioritized

BPR Model Process evaluation Process specification and design existing processes are analyzed and measured process costs and time are noted quality/performance problems are isolated Process specification and design use-cases are prepared for each process to be redesigned (these use-case scenarios deliver some outcome to a customer) new tasks are designed for each process

BPR Model Prototyping used to test processes before integrating them into the business Refinement and instantiation based on feedback from the prototype, business processes are refined refined processes then instantiated within a business system

Software reengineering process Definition: Rebuilding a software to create another with added functionality, better performance and reliability. Inventory analysis Document restructuring Forward engineering Reverse engineering Data restructuring Code restructuring

Software Reengineering Process Model Inventory analysis sorting active software applications by business criticality, longevity, current maintainability, and other local criteria helps to identify reengineering candidates Document restructuring options live with weak documentation update poor documents if they are used fully rewrite the documentation for critical systems focusing on the "essential minimum"

Software Reengineering Process Model Reverse engineering process of design recovery analyzing a program in an effort to create a representation of the program at some abstraction level higher than source code Code restructuring source code is analyzed violations of structured programming practices are noted and repaired revised code needs to be reviewed and tested

Software Reengineering Process Model Data restructuring usually requires full reverse engineering current data architecture is dissected data models are defined existing data structures are reviewed for quality Forward engineering sometimes called reclamation or renovation recovers design information from existing source code uses this design information to reconstitute the existing system to improve its overall quality or performance

Forward Engineering and Reengineering from Sommerville

Reverse Engineering Analyzing software with a view to understanding its design and specification May be part of the reengineering process May be used to specify a system for prior to reimplementation Program understanding tools may be useful (browsers, cross-reference generators, etc.)

Reverse Engineering Process

Reverse Engineering Activities Understanding process source code is analyzed to at varying levels of detail system program component pattern statement to understand procedural abstractions and overall functionality

Reverse Engineering Activities Understanding data internal data structures database structure User interfaces what are the basic actions (e.g. key strokes or mouse operations) processed by the interface? what is a compact description of the system's behavioral response to these actions? what concept of equivalence of interfaces is relevant?

Restructuring Benefits Improved program and documentation quality Makes programs easier to learn improves productivity reduces developer frustration Reduces effort required to maintain software Software is easier to test and debug

Types of Restructuring Code restructuring program logic modeled using Boolean algebra and series of transformation rules are applied to yield restructured logic create resource exchange diagram showing data types procedures variables shared between modules restructure program architecture to minimize module coupling

Types of Restructuring Data restructuring analysis of source code data redesign data record standardization data name rationalization file or database translation

Forward Engineering Client/Server Architectures application functionality migrates to each client computer new GUI interfaces implemented at client sites database functions allocated to servers specialized functionality may remain at server site new communications, security, archiving, and control requirements must be established at both client and server sites

Forward Engineering User Interfaces understand the original user interface and how the data moves between the user interface and the remainder of the application remodel the behavior implied by the existing user interface into a series of abstractions that have meaning in the context of a GUI introduce improvements that make the mode of interaction more efficient build and integrate the new GUI