Download presentation
Presentation is loading. Please wait.
Published byEmerald Hardy Modified over 8 years ago
1
Tori Bowman CSSE 375, Rose-Hulman September 11, 2007
2
Maintenance text, Chapter 7 Code Complete, Chapter 24 Code Complete, Chapter 29 2
4
Reverse engineering is the process of analyzing a system to Identify the system’s components and interrelationships Create representations of system in another form or at higher levels of abstraction 4
5
Product/Environment Related Maintenance Process Related Commercially Related 5
6
6
7
In groups of 4, discuss your functional requirements (5 min.) Around the room discussion (5 min) **Homework: Write design level requirements 7
9
Refactoring is the process of rewriting a computer program or other material to improve its structure or readability, while explicitly preserving its meaning or behavior. [Wikipedia] In that manner, refactoring has similar goals to preventive maintenance 9
10
As we will see later, one of the Laws of Software Evolution is: “As a program is evolved its complexity increases unless work is done to maintain or reduce it.” Refactoring (as well as reverse engineering) can help to reduce such complexity 10
11
Data-level (e.g. give a variable a better name) Statement-level (e.g. consolidate if-then-else options using && or II) Routine-level (e.g. splitting a routine into two routines which each have a single clearly defined function) Class Implementation-level (e.g. changing use of a data member to a method or vice versa) Class Interface-level (e.g. creating an abstract class out of an existing class) System-level (e.g. replace error codes with exceptions or vice versa) 11
12
12
13
Economics 1 Cost associated with continuing maintenance: C maint = [P 3 – (P 1 + P 2 )] X L Cost associated with refactoring: C reeng = [P 6 – (P 4 + P 5 )] X (L – P 8 ) – (P 7 X P 9 ) Overall benefit can be computed cost benefit = C reeng – C maint P 1 = current annual maintenance cost for an application P 2 = current annual operation cost for an application P 3 = current annual business value of an application P 4 = predicted annual maintenance cost after reengineering P 5 = predicted annual operations cost after reengineering P 6 = predicted annual business value after reengineering P 7 = estimated reengineering costs P 8 = estimated reengineering calendar time P 9 = reengineering risk factor (P 9 = 1.0 is nominal) L = expected life of the system 13 Maintenance or refactoring? 1 Sneed, H., “Planning the Reengineering of Legacy Systems”, IEEE Software, January 1995, pp. 24-25
15
System integration refers to the combination of separate components into a single software system 15
16
1. Design, code, test, and debug each class (unit development) 2. Combine the classes into on whopping- big system (“system integration”) 3. Test and debug the whole system What are the potential problems/issues with this approach? Advantage of this approach? 16
17
1. Develop a small, functional part of the system (the “skeleton”) 2. Design, code, test, and debug a class 3. Integrate the new class with the skeleton What are the potential problems/issues with this approach? Advantage of this approach? 17
18
Top-down Across levels (pg. 695) Vertical slices (pg. 696) Bottom-up Across levels (pg. 697) Vertical slices (pg. 698) Sandwich Risk-oriented Feature-oriented T-Shaped 18
19
19
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.