Sie sind auf Seite 1von 15

7 Impact analysis (IA) Initiation

Concept

Determines the strategy and Location

impact of change Impact Analysis


V
Classes identified in concept Prefactoring E
R
location are the initial impact set I
F
Actualization I
Class dependencies are C
A
analyzed, and impacted classes Postfactoring
T
I
are added to the impact set O
N
Conclusion
Produces estimated impact set

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 1


Initial and estimated impact set

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 2


Example: Point of Sale

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 3


Change request
Record cashier sessions
A cashier session
total cash and all sales
during the time between the cashier logging in and
out.

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 4


Example: Point of Sale
Store Inventory

Cashiers
Item

CashierRecord
Price

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 5


Example: Point of Sale
Store Inventory

Cashiers
Item

CashierRecord
Price

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 6


Example: Point of Sale
Store Inventory

Cashiers
Item

CashierRecord
Price

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 7


Class interactions
Two classes interact if the have something
in common
One depends on the other
There is a contract between them
They coordinate
They share the same coding, schedule, etc.
Interactions propagate change
In both directions
From A to B or from B to A

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 8


Class Interaction Graph
G = (X,I)
X set of classes
I set of interactions
Neighborhood of class A
N(A) = {B | (A,B) I}

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 9


Interactions caused by
dependencies

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 10


Coordination
class C
{
A a; //gets the color code
B b; //paints the screen
void foo()
{
b.paint(a.get()); // dataflow between a and b
}
};
2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 11
Dependency diagram,
Interaction diagram

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 12


Neighborhood of Item

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 13


Status of components (marks)
Blank The class was never inspected
and is not scheduled for an
inspection.
Changed The programmers inspected the
class and found that it is
impacted by the change
Unchange The programmers inspected the
d class and found that it is not
impacted by the change.
Next The class is scheduled for
2012 Vclav Rajlich
inspection
Software Engineering: The Current Practice Ch. 7 14
A simplified IA process

Create interaction diagram and mark all classes as BLANK

Mark the class located during concept location as CHANGED

Mark all BLANK neighbors as NEXT

[No]
Are there any classes [Yes]
marked as NEXT?
Select a class
[UNCHANGED] among the classes
Mark class as UNCHANGED
marked as NEXT.
What is the
new mark
Mark class as CHANGED for this class?
[CHANGED]

2012 Vclav Rajlich Software Engineering: The Current Practice Ch. 7 15

Das könnte Ihnen auch gefallen