Program Restructuring

Slides:



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

Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Cocomo II Constructive Cost Model [Boehm] Sybren Deelstra.
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
Software Reengineering
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.
‘all aspects of software production’ - Software engineering is not just concerned with the technical processes of software development but also with activities.
Incremental Model Requirements phase Verify Specification phase Verify
Chapter 29 Maintenance and Reengineering
Software Construction and Evolution - CSSE 375 Reverse Engineering and Reengineering Approaches Shawn & Steve In long-term software developments, the “elephant.
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Statistical Software Quality Assurance Implies –Information about defects is collected and categorized –An attempt is made to trace each defect to underlying.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Tori Bowman CSSE 375, Rose-Hulman September 11, 2007.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
Planning the Reengineering of Legacy Systems, by Harry M. Sneed Reviewed by Odd Petter N. Slyngstad for DT8100, 27/1/2005.
Chapter 11 Managing Application Development. Agenda Application management framework Application management issues Criteria for development approach Development.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Empirical Estimation Models Based upon historic data Basic Structure E = A + B * (ev) C where A, B, c are empirical constants ‘ev’ is the effort in terms.
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.
Monitoring Risk Factors General attitude of team members based on project pressures The degree to which the team is jelled Interpersonal relationships.
CS223: Software Engineering Lecture 33: Software Maintenance.
CS223: Software Engineering Lecture 34: Software Maintenance.
Software Reviews Software reviews are the filter for the software engineering process Applied at various different points and serve to uncover errors that.
Duration: How long will a lecture take?
IS301 – Software Engineering V:
Environment Assessment
Measuring Change Activity
Software Engineering Lecture #41
Version Control Combination of procedures and tools to manage different versions of the software configuration. Configuration management allows the user.
McCall’s Quality Factors
Software Engineering Lecture #2
Software Maintenance
Business Process Reengineering
Software Engineering Lecture #39
SE Tasks for a Concept Development Project
Software Engineering Lecture #45
IS301 – Software Engineering V:
Software Engineering Lecture #7
Software Engineering Lecture #25
Software Engineering Lecture # 17
Software Engineering Lecture #26
Error Tracking Defect removal efficiency DRE = E / (E+D)
Practical Software Engineering
Baseline – IEEE definition
KEY PROCESS AREAS (KPAs)
Quality Measurable characteristic Cyclomatic complexity Cohesion
The Project Reel’s five step approach for successful projects
Decision Tree.
Software Engineering Lecture # 01
Software Engineering Lecture #35
Extreme Programming.
Calculating Task Set Selector (TSS)
Chapter 8 Software Evolution.
Software Engineering Lecture #40
Software Engineering Lecture #16
Unit 5 15SE202 Software engineering Principles
Lecture 06:Software Maintenance
Software Engineering Lecture # 19
Legacy system components
Software Engineering Lecture #29
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Re- engineeniering.
Software Engineering II
Software Engineering Lecture #28
For University Use Only
Presentation transcript:

Program Restructuring Modify source code and data in order to make it amenable to future changes Code restructuring Design with same function with higher quality than original program Data restructuring Involves restructuring the database or the database schema May involve code restructuring

Software Engineering II Lecture 40 Fakhar Lodhi

Recap

Forward Engineering Application of SE principles, methods, and concepts to re-create an existing application In most cases forward engineering does not simply create a modern equivalent of an older program, rather new user and technology requirements are integrated into the reengineering effort.

The Economics of Reengineering Cost benefit analysis P1 : current annual maintenance cost for an application P2 : current annual operation cost for an application P3 : current annual business value of an application P4 : predicted annual maintenance cost after reengineering P5 : predicted annual operations cost after reengineering

The Economics of Reengineering P6 : predicted annual business value cost after reengineering P7 : estimated reengineering cost P8 : estimated reengineering calendar time P9 : reengineering risk factor (1.0 is nominal) L : expected life of the system

The economics of reengineering C maintenance = [P3 – (P1 + P2)] x L Where P1 = current annual maintenance cost for an application P2 = current annual operation cost for an application P3 = current annual business value of an application L = expected life of the system

The economics of reengineering C reengineering = [P6 – (P4 + P5) x (L – P8) – (P7 x P9)] Where P4 = predicted annual maintenance cost after reengineering P5 = predicted annual operations cost after reengineering P6 = predicted annual business value cost after reengineering P7 = estimated reengineering cost P8 = estimated reengineering calendar time P9 = reengineering risk factor (1.0 is nominal) L = expected life of the system