36
The Knowledgeable Software Engineer Univ.-Prof. Dr. Martin Pinzger Professor of Software Engineering Software Engineering Research Group University of Klagenfurt

Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

The Knowledgeable Software Engineer

Univ.-Prof. Dr. Martin PinzgerProfessor of Software Engineering

Software Engineering Research GroupUniversity of Klagenfurt

Page 2: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Software systems

2

500 million

Page 3: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Mobile applications (apps)

3

1,000 million

Page 4: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Software in your car

4

Software is everywhere!

Page 5: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Fact: Many software systems are large

5

How many lines of code?

10 MLOC = 14 meters

Page 6: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Fact: Software systems are complex

6

Page 7: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Challenge: Understanding software systems

7

Martin

?

Andreas

?

Page 8: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Perspective of software developers

8

Difficult to comprehend dependencies

Page 9: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

A solution: DA4Java visualization

9

NbBundleTest

testExistingR.()

testNonE.()

main()

NbBundle

getMessage()

Page 10: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Install from: http://serg.aau.at/bin/view/MartinPinzger/DA4Java

Page 11: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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

Page 12: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Applying the idea to spreadsheets12

Page 13: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

13

50% form the basis for decisionsSpreadsheets are business critical

Errors often lead to financial loss see: http://www.eusprig.org/horror-stories.htm

Page 14: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Interviewed 27 prof. spreadsheet users

14

What annoys you?

What makes you happy?

Page 15: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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%)

Page 16: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

End Result

Solution: Breviz spreadsheet visualization

16

exam Richard Griffin lab Richard Griffin

overall Richard Griffin

AVERAGE

Page 17: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Breviz: Global View

17

Page 18: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Breviz: Formula View

18

Page 19: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Evaluation with spreadsheet users

Interviews with 27 users

Case studies with 9 spreadsheets19

Page 20: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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 ...?

Page 21: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Upload your spreadsheet at: http://app.infotron.nl

21

Page 22: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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

Page 23: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Growth and changes of Mozilla

231998

Page 24: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Implications of Lehmans’ Laws

24

Maintenance75%

Initial development25%

Maintenance costs increase60% is spent on understanding

Developers perform “quick fixes”

Number of bugs increases

Page 25: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Challenge: Evolving software systems

25

Martin

?

Andreas

?

Page 26: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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

Page 27: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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?

Page 28: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Approach

28

Change

Logs

Bugs Regression Analysis

Measuring Contributions

Count post-release failure reports

Page 29: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Developer contributions

29

Alice

Printer.dll

System.dll

Bob

Change Logs Build System

4

2

3

4:Alice

4:Alice, 5:Bob

Page 30: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Developer contribution network

30

Alice

Bob

Dan

Eric

Fu

Go

Hin

ab

c

Windows binary (*.dll)Developer

Which binary is failure-prone?

Page 31: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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

Page 32: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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

Page 33: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

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

Page 34: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

The knowledgeable software engineer

34

Martin Andreas

KnowledgeRepository

Page 35: Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Strong collaborations

35