2. Reverse engineering is analyzing a subject system to:
identify components and their relationships, and
create more abstract representations.
0
& Cross, 9
C hikofky
17. fo
rw
ar
d
en
gin
ee
rin
g
{ {
{ { { {
} { {
}
} actual development } }
} { } } }
18. fo
rw
g
rin
ar
ee
d
gin
en
gin
en
ee
se
rin
erv
g
re
{ {
{ { { {
} { {
}
} actual development } }
} { } } }
19. fo
rw
g
rin
ar
ee
d
gin
en
gin
en
ee
se
rin
erv
g
re
{ {
{ { { {
} { {
}
} program transformation } }
} { } } }
20. cycle
ginee ring life
Reen
fo
rw
g
rin
ar
ee
d
gin
en
gin
en
ee
se
rin
erv
g
re
{ {
{ { { {
} { {
}
} program transformation } }
} { } } }
21. Setting direction
First contact
Initial understanding
g
Detailed model capture
rin
ee
gin
en
se
erv
re
{ {
{ {
}
}
}
} { }
22. Setting direction patterns
First contact patterns
Initial understanding patterns
g
Detailed model capture patterns
rin
ee
gin
en
se
erv
re
{ {
{ {
}
}
}
} { }
24. Setting direction
First contact
Initial understanding
g
rin
Detailed model capture
ee
gin
en
se
erv
re
{ {
{ {
}
}
}
} { }
25. You got to be careful if you don't know where you're
going, because you might not get there.
ra
Yogi Ber
26. Setting direction patterns
Set Where
direction to start
Agree Most valuable
on maxims first
Maintain Coordinate What not What
direction direction to do to do
Appoint Speak to the If it ain’t broke Fix problems
a navigator round table don’t fix it not symptoms
How to do
Keep it simple
27. Setting direction
First contact
Initial understanding
g
rin
Detailed model capture
ee
gin
en
se
erv
re
{ {
{ {
}
}
}
} { }
28. Interview during demo Chat with maintainers
What is the usage? What is the history?
What are the bugs? What is the process?
What do you like? What are the problems?
29. Interview during demo Chat with maintainers
What is the usage? What is the history?
What are the bugs? What is the process?
What do you like? What are the problems?
all humans:
that th ey are
mber
Reme plain
h
t ey com usiastic
they are enth eir jobs
tect th
they pro
39. I took a course in speed reading and read “War and
Peace” in twenty minutes.
It’s about Russia.
n
Woody Alle
40.
41. First contact patterns
Talk with Talk with
developers users
Talk
Chat with Interview about it
maintainers during demo
Verify what Read Read about Compile
you hear the code the code the code
Read all code Skim Do a mock
in one hour documentation installation
42. Setting direction
First contact
Initial understanding
g
rin
Detailed model capture
ee
gin
en
se
erv
re
{ {
{ {
}
}
}
} { }
46. Initial understanding patterns
Top down
Recover
design
Speculate
about design
Iteration
Analyze Study
persistent data exceptional entities
Recover Identify
database problems
Bottom up
47. Setting direction
First contact
Initial understanding
g
Detailed model capture
rin
ee
gin
en
se
erv
re
{ {
{ {
}
}
}
} { }
52. Detailed model capture patterns
Tie code and
questions
Track your Expose
understanding design
Refactor
to understand
Expose Encode
collaborations assumptions
Step through Write tests
execution to understand
Expose
contracts Expose
evolution
Look for Learn from
the contracts the past
53. Setting direction
First contact
Initial understanding
g
Detailed model capture
rin
ee
gin
en
se
erv
re
{ {
{ {
}
}
}
} { }