reverse engineering techniques 2007-11-29

Post on 20-May-2015

1.204 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

I used this set of slides for a lecture at Hasso Plattner Institute on 2007.11.29

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

top related