reverse engineering techniques 2007-11-29
Post on 20-May-2015
1.204 Views
Preview:
DESCRIPTION
TRANSCRIPT
Reverse engineeringtechniques
Tudor Gîrbawww.tudorgirba.com
forward engineering
actual development }
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
forward engineering
actual development }
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
What are software metrics?
You cannot controlwhat you cannot measure.
Tom de Marco
Software metrics are measurements which
relate to software systems, processes or
related documents
Examples of size metrics
NOM - number of methods
NOA - number of attributes
LOC - number of lines of code
NOS - number of statements
NOC - number of children
Lorentz, Kidd, 1994Chidamber, 1994
McCabe, 1977
McCabe cyclomatic complexity counts the number of possible paths through the code of a function.
Metrics compress the system into numbers
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
Queries reduce the analysis space
Detection Strategies are metric-based queries to detect design flaws
ATFD > FEW
Class uses directly more than a
few attributes of other classes
WMC ! VERY HIGH
Functional complexity of the
class is very high
TCC < ONE THIRD
Class cohesion is low
AND GodClass
Flaw: a God Class centralizes too much intelligence in the system
ATFD > FEW
Class uses directly more than a
few attributes of other classes
WMC ! VERY HIGH
Functional complexity of the
class is very high
TCC < ONE THIRD
Class cohesion is low
AND GodClass
Flaw: a Data Class provides data to other classes, but little or no functionality of its own
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
Visualization compresses the system into pictures
1854, London cholera epidemic
a picture is worth
a thousand words
UML took it literally :)
Weare
visualbeings
How many groups do you see?
How many groups do you see?
How many groups do you see?
How many groups do you see?
Gestalt principles
proximity
enclosure connectivity
similarity
More Gestalt principles
closure continuity
Weare
visualbeings
a picture is worth
a thousand words
example: what is ?
Polymetric views show up to 5 metrics
Color metric
Width metric
Height metric
Position metrics
Lanza, 2003
System Complexity shows class hierarchies
lines
attributes
methods
Lanza, Ducasse, 2003
Class Blueprint shows class internals
Initialize Interface Internal Accessor Attribute
invocation and access direction
Lanza, Ducasse, 2005
Class Blueprint has a rich vocabulary
Regular
Overriding
Extending
Abstract
Constant
Delegating
Setter
Getter
Method
invocations
lines
Attribute
internal access
externalaccess
Access
Invocation
Class Blueprint shows class internals
Distribution Map shows propertiesDucasse etal, 2006
forward engineering
actual development }
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
reve
rse
engin
eerin
g
forward engineering
actual development }
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
reve
rse
engin
eerin
g
reve
rse
engi
neer
ing
Spectographs show change activityWu etal, 2004
commit
time
Evolution Matrix shows changes in classes
Idle class
Pulsar class
Supernova class
White dwarf class
Lanza, Ducasse, 2002
Evolution Matrix shows changes in classes
What happens with inheritance?
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
History contains too much data
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
History contains too much data
ver .1 ver. 2 ver. 3 ver. 4 ver. 5
A A A A A
B B B B BC C C
D D D E
A is persistent, B is stable, C was removed, E is newborn ...
Hierarchy Evolution encapsulates time
A
B
D
C
E
A is persistent, B is stable, C was removed, E is newborn ...
age
changedmethods
changedlines
Removed
Removed
Girba etal, 2005
Hierarchy Evolution View reveals patterns
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
But, what actually happens
behind the scene?
Example: CVS shows activity
Who did this?
Alphabetical order is no orderKuhn
Ownership Map orders historiesGirba etal, 2006
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
}
{
}
{
}
{}
{
}
{
McCabe = 21
LOC =
753,0
00NOM = 102
Metrics Queries Visualizations ...
Tudor Gîrbawww.tudorgirba.com
creativecommons.org/licenses/by/3.0/
top related