Inauguration lecture Martin Pinzger, University of Klagenfurt, Austria

Preview:

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

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

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

21

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