24
Software Analysis And Transformation Software Evolution & Technical Debt December 12th 2012 Jurgen Vinju Wednesday, December 12, 12

Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

Software Analysis And Transformation

Software Evolution&

Technical DebtDecember 12th 2012

Jurgen Vinju

Wednesday, December 12, 12

Page 2: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Software Evolution

•Lehman: software goes bad eventually

•Standish: maintenance is the cost of software

Wednesday, December 12, 12

Page 3: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions?

Wednesday, December 12, 12

Page 4: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions

•Management

• ISO/IEC 12207

• ITIL

•CMMI

•Mitigating the bad effects of evolution by managing people

• Ignores the cause?

Wednesday, December 12, 12

Page 5: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions

•Architecture

•design for change

•reversible design

•Platonic solution?

•“if only we had…”

Wednesday, December 12, 12

Page 6: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions

•Automated testing

•gives [sense of] security when modifying

•Who maintains the (complete?) tests?

Wednesday, December 12, 12

Page 7: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions

•Software renovation

•Reverse engineering

•Re-engineering

•Migrating old to new

•Tools mitigate investment cost

•Like starting from scratch, but with a burden?

Wednesday, December 12, 12

Page 8: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions•Quality assessment & monitoring

•Metrics, aggregation

• Interpretation

•Preventing evolution issues

•go/no-go

•early focus on internal quality

•Assessing quality by measuring quantity?

Wednesday, December 12, 12

Page 9: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions

•Refactoring

•continuous improvement

•Preventing degradation

•Waste of time? What to refactor to?

Wednesday, December 12, 12

Page 10: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions

•Design Patterns

•Reserved names for [OO] solutions

•Communicate to the reader

•With documented internal quality attributes

•Do design patterns solve any problem?

Wednesday, December 12, 12

Page 11: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Solutions

•Mining Software Repositories

•predict where the bugs are

•spot trends and sudden developments

•observe what causes the problems

•So, now we know for sure that we have a problem?

Wednesday, December 12, 12

Page 12: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Flipping the perspective

Wednesday, December 12, 12

Page 13: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Flipping the perspective• Previously:

• Software maintenance should be done

• Software evolution is problematic

• Architecture, reverse engineering, metrics, … all fight against the problem

• There is still a problem

Wednesday, December 12, 12

Page 14: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Flipping the perspective• Previously:

• Software maintenance should be done

• Software evolution is problematic

• Architecture, reverse engineering, metrics, … all fight against the problem

• There is still a problem

• Like:

• We need to get to work

• There is always a traffic jam

• Share a car, widen the road, change working hours, take a train, ...

• There is still a traffic jam

Wednesday, December 12, 12

Page 15: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Flipping the perspective

• If we would work [closer to] where we live…

•We wouldn’t need a car to go to work

•And, traffic jams would be a non-issue

•We all decided to live far from our jobs, and now we pay for this every day (except in weekends) and forever. It’s our “forensic debt”.

Wednesday, December 12, 12

Page 16: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Technical Debt•Coined by Ward Cunningham

•Metaphor of the decade (IMNSHO)

•Debt is what you take for granted because you have a higher priority elsewhere, but eventually you must pay it off, with interest.

•So, what would “technical debt” be?

•what is the currency?

•what is the interest?

Wednesday, December 12, 12

Page 17: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Today’s Technical Debt Hypothesis:

If we make internal software quality our primary goal,

software evolution becomes a non-issue, and external quality

will follow automatically

Wednesday, December 12, 12

Page 18: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

A Technical Debt Hypothesis:

If we make internal quality our primary

goal, software evolution becomes a

non-issue

O really?

Why?

How?

First invest,then harvest.

No pain,no gain

Assignment:

Let’s bring Mohammed

to the mountain

Rhetorics:

Wednesday, December 12, 12

Page 19: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

TDH Discussion•O really? Why?

•Tell us why this is not true

•Tell us why this is true

•What about “no silver bullet”? (Fred Brooks)

•How?

•Tell us how this could be achieved?

•What are critical success factors?

Wednesday, December 12, 12

Page 20: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Real Solutions• Write source code for readability

• Code review

• KISS - Keep it simple [&] stupid

• Monitor internal quality

• Invest

• Prioritize

• Teach

• Tools: get help from the computer

• search

• summarize

• refactor

• test

• generate

Wednesday, December 12, 12

Page 21: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Tools

[wikipedia]

Wednesday, December 12, 12

Page 22: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Rascal• Manage source code diversity

• languages, frameworks, libraries

• reuse

• Manage tool multi-disciplinary nature

• parse, model, analyze, generate, ...

• integrate

• Build new tools to

• search, summarize, test, generate, refactor, …• and prevent or pay off technical debt

Wednesday, December 12, 12

Page 23: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Your todos•Transform argumentation scheme into text

•revise motivation

•revise argumentation

•add conclusion

•submit between dec 21 and dec 31 (2012)

•Finish series 2

•demonstrate now or at least before dec 21 2012

Wednesday, December 12, 12

Page 24: Software Evolution Technical Debthomepages.cwi.nl/~jurgenv/teaching/evolution1213/... · SWAT - S oftWare Analysis And Transformation Flipping the perspective • Previously: •

SWAT - SoftWare Analysis And Transformation

Thanks!

Wednesday, December 12, 12