13. DA4Java - Dependency Analysis for Java
13
Nested graph
Nodes present source code entities
Edges present dependencies between
them
Incrementally add/filter info
Add/filter dependent entities
Integrated with Eclipse IDE
Works for Java
Install from: http://serg.aau.at/bin/view/MartinPinzger/DA4Java
15. Initial evaluation of DA4Java
In my reengineering course (TU Delft)
40-50 master students analyzing a Java system (150 KLOC)
Pros/cons
+ DA4Java reduces clutter/information overload
+ Good input for discussing dependencies
- Performance, graph can still get very complex
Todo
Add information about changes
User studies to evaluate the approach
Use the approach in different domains
15
17. 17
50% form the basis for decisions
Spreadsheets are business critical
Errors often lead to financial loss
see: http://www.eusprig.org/horror-stories.htm
18. Interviewed 27 prof. spreadsheet users
18
What annoys you?
What makes you happy?
19. 19
Support for understanding is missing
How are the different worksheets related? (44%)
Where do formulas refer to? (38%)
What cells are meant for input? (22%)
What cells contain output? (22%)
29. Spreadsheet #Worksheets #Cells #Formulas
Shares risk management 9 29,671 221
Top and bottom 5 stock performance 5 2,781 1,601
Weekly report 16 9,555 7,215
Overview of portfolio data 42 28,222 13,096
Gain and loss of all trades for one week 10 503,050 38,188
Constructing a stock portfolio 6 16,054 16,659
Industrial spreadsheets
30. 30
Results
Does the visualization help to understand large, complex
spreadsheets?
Answers
“This really helps me to understand what [worksheet] is what.”
“The global view reveals the idea (design) behind the spreadsheet.”
“The different levels allow to show and filter details.”
Whats more ...?
33. Lehman’s Laws of software evolution
1. Continuing change
A program that is used in a real-world environment must change
2. Increasing complexity
As a program evolves, it becomes more complex
33
35. Lehman’s Laws in practice
Quick fixes
Lack of time, resources, money, etc.
Initial good design is not maintained
Spaghetti code, copy/paste programming, dependencies are introduced, no
tests, etc.
Documentation is not updated (if there is one)
Architecture and design documents
Original developers leave and with them their knowledge
35
36. Implications of Lehman’s Laws
36
Maintenance
75%
Initial development
25%
Maintenance costs increase
60% is spent on understanding
Number of bugs increase
38. A solution: Business intelligence for SE
38
Source
Code
Bugs
Tasks
Emails
Knowledge
Repository
Data Mining
What is the effect of the new developer
on productivity?
What are the effects of the source code
changes on the design?
Where will bugs occur?
Where is this bug located?
39. Study with Microsoft
Released in January, 2007
> 4 years of development
Several thousand developers
Several thousand binaries (*.exe, *.dll)
Several millions of commits
39
RQ: Is fragmentation of contributions related
with the number of post-release failures?
48. Summary of results
48
Centrality measures to predict 83% of failure-pone Vista binaries
Closeness, #Authors, and #Commits to predict the number of post-
release failures
49. What can we learn from that?
Increase testing effort for central binaries? - yes
Redesign central binaries? - maybe
Restrict contributions? - maybe
49
Alice
Bob
Dan
Eric
Fu
Go
Hin
ab
c
5
4
6
2 4
6
2
5 7
4
50. The knowledgeable software engineer
50
Martin Andreas
Knowledge
Repository
martin.pinzger@aau.at http://serg.aau.at