Software understanding in the large (EVO 2008)
-
Upload
tudor-girba -
Category
Education
-
view
439 -
download
1
description
Transcript of Software understanding in the large (EVO 2008)
![Page 1: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/1.jpg)
Software understandingin the large
Tudor Gîrbawww.tudorgirba.com
![Page 2: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/2.jpg)
![Page 3: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/3.jpg)
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
}
{
![Page 4: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/4.jpg)
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
![Page 5: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/5.jpg)
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{actual development
reve
rse
engi
neer
ing
}
{}
{
}
{
}
{ }
{
}
{
![Page 6: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/6.jpg)
Systems are large and complex}
{}
{
}
{
}
{ }
{
}
{
![Page 7: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/7.jpg)
}
{}
{
}
{
}
{ }
{
}
{
… and have many facets
![Page 8: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/8.jpg)
Still, simple tools can get you far
![Page 9: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/9.jpg)
for i in $( ls ); do echo `wc -l $i` >> tempdonesort -nr temp | head -10
![Page 10: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/10.jpg)
Spinellis 2003
![Page 11: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/11.jpg)
Hindle etal 2008
Indentation correlates with complexity.
![Page 12: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/12.jpg)
Queries reduce the analysis space
![Page 13: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/13.jpg)
Mens etal 2006
Intensional Views ensure rules
acceptsClassOfType(?VisitorClass,?VisitedClass) if methodWithNameInClass(?Method,?Selector,?VisitorClass), [’accept*’ match:?Selector asString], argumentOfMethod(?Argument,?Method), [’*’,(?VisitedClass name asString), ’*’ match:?Argument asString]
![Page 14: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/14.jpg)
Visual queries put results in perspective
![Page 15: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/15.jpg)
Every system is special.
![Page 16: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/16.jpg)
![Page 17: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/17.jpg)
team 1te
am 2
}
{}
{
}
{
}
{ }
{
}
{
}
{}
{
}
{
}
{ }
{
}
{
![Page 18: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/18.jpg)
team 1te
am 2
}
{}
{
}
{
}
{ }
{
}
{
}
{}
{
}
{
}
{ }
{
}
{
=
![Page 19: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/19.jpg)
Every system is special.
![Page 20: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/20.jpg)
Reporting Live analysisvs.
![Page 21: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/21.jpg)
Every system is special.
![Page 22: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/22.jpg)
Every technology is special.
![Page 23: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/23.jpg)
Lanza, Marinescu 2006
Data Classes are dumb data holders
WOC < ONE THIRD
Interface of class reveals data
rather than offering services
AND Data Class
Class reveals many attributes and is
not complex
![Page 24: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/24.jpg)
java.sun.com
Use a Transfer Object to encapsulate the business data. A single method call is used to send and retrieve the Transfer Object.
When the client requests the enterprise bean for the business data, the enterprise bean can construct the Transfer Object, populate it with its attribute values, and pass it by value to the client.
![Page 25: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/25.jpg)
Every technology is special.
![Page 26: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/26.jpg)
In Java
= .java
}
{}
{
}
{
}
{ }
{
}
{
![Page 27: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/27.jpg)
In J2EE
= .java
}
{}
{
}
{
}
{ }
{
}
{
![Page 28: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/28.jpg)
In J2EE
= .java
.jsp
}
{}
{
}
{
}
{ }
{
}
{
![Page 29: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/29.jpg)
In J2EE
= .java
.jsp
.xml
}
{}
{
}
{
}
{ }
{
}
{
![Page 30: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/30.jpg)
![Page 31: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/31.jpg)
![Page 32: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/32.jpg)
By looking only at .java we
would miss useful information
![Page 33: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/33.jpg)
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
![Page 34: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/34.jpg)
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
*//**
![Page 35: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/35.jpg)
Schreck etal 2007
![Page 36: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/36.jpg)
Schreck etal 2007
![Page 37: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/37.jpg)
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
{
*//**
![Page 38: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/38.jpg)
}
{}
{
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{
}
{
}
{ }
{
actual development
reve
rse
engi
neer
ing
}
*//**
@
![Page 39: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/39.jpg)
Adams etal 2007
MAKAO shows Makefile dependencies
![Page 40: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/40.jpg)
The sources can tell you how the system looks like,but not why.
![Page 41: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/41.jpg)
![Page 42: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/42.jpg)
ugly?
![Page 43: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/43.jpg)
Model
![Page 44: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/44.jpg)
GUI
Model
![Page 45: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/45.jpg)
Helpers GUI
Model
![Page 46: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/46.jpg)
Murphy etal 1995Helpers GUI
Model
![Page 47: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/47.jpg)
![Page 48: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/48.jpg)
Helpers
Model
![Page 49: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/49.jpg)
Brühlmann etal 2008
![Page 50: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/50.jpg)
Brühlmann etal 2008
![Page 51: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/51.jpg)
Put findings in perspective.
![Page 52: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/52.jpg)
![Page 53: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/53.jpg)
It’s not Lupus
![Page 54: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/54.jpg)
You mainly see what you are looking for.
![Page 55: Software understanding in the large (EVO 2008)](https://reader033.fdocuments.net/reader033/viewer/2022052904/557d5582d8b42ae3298b53f1/html5/thumbnails/55.jpg)
Tudor Gîrbawww.tudorgirba.com
creativecommons.org/licenses/by/3.0/