Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems."— Presentation transcript:

1 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

2 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

3 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

4 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.

5 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

6 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

7 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

8 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

9 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

10 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"

11 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

12 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

13 Forward Engineering and Reengineering from Sommerville

14 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.)

15 Reverse Engineering Process

16 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

17 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?

18 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

19 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

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

21 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

22 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


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

Similar presentations


Ads by Google