Slides of my inauguration lecture at the University of Klagenfurt in Austria. In this talk I outline several challenges of evolving software systems and present several ideas and findings from my research to address them. In particular, I show how we can use the history of software projects to identify critical parts of a software system and how we can use visualization techniques to help software engineers to understand the implementation of large, complex software systems including large spreadsheets.
11. Initial evaluation of DA4Java
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
11
13. 13
50% form the basis for decisions
Spreadsheets are business critical
Errors often lead to financial loss
see: http://www.eusprig.org/horror-stories.htm
14. Interviewed 27 prof. spreadsheet users
14
What annoys you?
What makes you happy?
15. 15
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%)
16. End Result
Solution: Breviz spreadsheet visualization
16
exam Richard Griffin lab Richard Griffin
overall Richard Griffin
AVERAGE
20. 20
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 ...?
22. Fact: Software systems evolve
Lehmans’ 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
22
24. Implications of Lehmans’ Laws
24
Maintenance
75%
Initial development
25%
Maintenance costs increase
60% is spent on understanding
Developers perform “quick fixes”
Number of bugs increases
26. A solution: Business intelligence for SE
26
Source
Code
Bugs
Tasks
Emails
Knowledge
Repository
Data Mining
Identify bottlenecks in the team work
To understand the effects of source code
changes on the design
To identify failure prone-entities that
need more testing
27. Identifying failure-prone binaries
Released in January, 2007
> 4 years of development
Several thousand developers
Several thousand binaries (*.exe, *.dll)
Several millions of commits
27
RQ: Is fragmentation of contributions related
with the number of post-release failures?
33. What can we learn from that?
Reorganize contributions? (Yes)
Increase testing effort for central binaries? (Yes)
Redesign central binaries? (Maybe)
33
Alice
Bob
Dan
Eric
Fu
Go
Hin
ab
c
5
4
6
2 4
6
2
5 7
4