Post on 22-Apr-2015
description
The Knowledgeable Software Engineer
Univ.-Prof. Dr. Martin PinzgerProfessor of Software Engineering
Software Engineering Research GroupUniversity of Klagenfurt
Software systems
2
500 million
Mobile applications (apps)
3
1,000 million
Software in your car
4
Software is everywhere!
Fact: Many software systems are large
5
How many lines of code?
10 MLOC = 14 meters
Fact: Software systems are complex
6
Challenge: Understanding software systems
7
Martin
?
Andreas
?
Perspective of software developers
8
Difficult to comprehend dependencies
A solution: DA4Java visualization
9
NbBundleTest
testExistingR.()
testNonE.()
main()
NbBundle
getMessage()
Install from: http://serg.aau.at/bin/view/MartinPinzger/DA4Java
Initial evaluation of DA4Java
Pros/cons+ DA4Java reduces clutter/information overload+ Good input for discussing dependencies- Performance, graph can still get very complex
TodoAdd information about changesUser studies to evaluate the approachUse the approach in different domains
11
Applying the idea to spreadsheets12
13
50% form the basis for decisionsSpreadsheets are business critical
Errors often lead to financial loss see: http://www.eusprig.org/horror-stories.htm
Interviewed 27 prof. spreadsheet users
14
What annoys you?
What makes you happy?
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%)
End Result
Solution: Breviz spreadsheet visualization
16
exam Richard Griffin lab Richard Griffin
overall Richard Griffin
AVERAGE
Breviz: Global View
17
Breviz: Formula View
18
Evaluation with spreadsheet users
Interviews with 27 users
Case studies with 9 spreadsheets19
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 ...?
Fact: Software systems evolve
Lehmans’ Laws of software evolution
1. Continuing changeA program that is used in a real-world environment must change
2. Increasing complexityAs a program evolves, it becomes more complex
22
Growth and changes of Mozilla
231998
Implications of Lehmans’ Laws
24
Maintenance75%
Initial development25%
Maintenance costs increase60% is spent on understanding
Developers perform “quick fixes”
Number of bugs increases
Challenge: Evolving software systems
25
Martin
?
Andreas
?
A solution: Business intelligence for SE
26
SourceCode
Bugs
Tasks
Emails
KnowledgeRepository
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
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?
Approach
28
Change
Logs
Bugs Regression Analysis
Measuring Contributions
Count post-release failure reports
Developer contributions
29
Alice
Printer.dll
System.dll
Bob
Change Logs Build System
4
2
3
4:Alice
4:Alice, 5:Bob
Developer contribution network
30
Alice
Bob
Dan
Eric
Fu
Go
Hin
ab
c
Windows binary (*.dll)Developer
Which binary is failure-prone?
Network centrality measures
31
Alice
Bob
Dan
Eric
Fu
Go
Hin
ab
c
Freeman degree
Alice
Bob
Dan
Eric
Fu
Go
Hin
ab
c
Alice
Bob
Dan
Eric
Fu
Go
Hin
ab
c
Bonacich’s powerCloseness
Alice
Bob
Dan
Eric
Fu
Go
Hin
ab
c
Larger fragmentation - more failures
32
40200
1.00
0.90
0.80
0.70
0.60
0.50
40200
1.00
0.90
0.80
0.70
0.60
0.50
40200
1.00
0.90
0.80
0.70
0.60
0.50
R-Square Pearson Spearman
Linear regression of 50 random splits#Failures = b0 + b1*Closeness + b2*#Authors + b3*#Commits
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
The knowledgeable software engineer
34
Martin Andreas
KnowledgeRepository
Strong collaborations
35
Software Engineering Research Group
36http://serg.aau.at martin.pinzger@aau.at