making chase mainstream

16
Making CHASE Mainstream Robert DeLine Microsoft Research CHASE Workshop, ICSE 2009

Upload: wilma-allen

Post on 03-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

Making CHASE Mainstream. Robert DeLine Microsoft Research CHASE Workshop, ICSE 2009. What is CHASE?. CHASE studies software development… as though software were created by people… working together. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Making CHASE Mainstream

Making CHASE Mainstream

Robert DeLineMicrosoft Research

CHASE Workshop, ICSE 2009

Page 2: Making CHASE Mainstream

What is CHASE?

CHASE studies software development…as though software were created by people…working together.

CHASE studies those aspects of software development about which people cannot be usefully abstracted away.

Page 3: Making CHASE Mainstream

People and their Roles

customers

pm

test

dev

spec

user needs • design rationale

Page 4: Making CHASE Mainstream

pm

test

dev

spec

user needs • design rationale

Page 5: Making CHASE Mainstream

pm

test

dev

spec

user needs • design rationale • program understanding • visualizationinformation seeking • knowledge sharing • interruption + multitasking

• bug assignment• onboarding

Page 6: Making CHASE Mainstream

pm

test

dev

spec

user needs • design rationale • program understanding • visualizationinformation seeking • knowledge sharing

• bug assignment• interruption + multitasking • onboarding

Page 7: Making CHASE Mainstream

user needs • design rationale • program understanding • visualizationinformation seeking • knowledge sharing

• bug assignment

• awarenesscoordination • distributed work• social networking • expert finding• interruption + multitasking • onboarding

operations

bug repro + diagnostics • workflow + productivity

Page 8: Making CHASE Mainstream

Enabling conditions for “mainstream”

• Need big open problems• Need adoption paths for practitioners• Research methods need to scale out to many

researchers• Need to build bridges to established SE

research areas

Java, Eclipse, Bugzilla, CVS, Mylyn

Page 9: Making CHASE Mainstream

Studying development teams

The direct approach• surveys• interviews• observations

BoundariesOverfishing

“Archaeology”• data mining• modeling

BoundariesPrecisionAccuracy?

Research repositories• archive raw data• reuse across studies

BoundariesData fitness

Page 10: Making CHASE Mainstream

Example: Ko et al ICSE 07 transcripts

Page 11: Making CHASE Mainstream

Example: Ko et al ICSE 07 transcripts

Page 12: Making CHASE Mainstream

Example: Ko et al ICSE 07 transcripts

Page 13: Making CHASE Mainstream

Example: Ko et al ICSE 07 transcripts

What code caused this program state? 61% unsatisfied, max 21 min

Why was the code implemented this way? 44%, 21 min

In what situations does this failure occur? 41%, 49 min

What code could have caused this behavior? 36%, 17 min

How have the resources I depend on changed? 24%, 9 min

What is the program supposed to do? 15%, 21 min

What have my coworkers been doing? 14%, 11 min

Page 14: Making CHASE Mainstream

An execution “route finder”

Intended usage scenario• Select starting and ending lines of code• Step through the execution, like in a debugger• “Drag the route” to change the execution path

Code Canvas is the front end• Has layers for displaying trace and program state• Zooms from system architecture down to code

Pex is the back end• Systematically explores execution traces• Uses symbolic reasoning to find new paths• Uses dynamic analysis to avoid decidability limits• Can repro a complete execution trace

Page 15: Making CHASE Mainstream

Enabling conditions for “mainstream”

• Need big open problems• Need adoption paths for practitioners• Research methods need to scale out to many

researchers• Need to build bridges to established SE

research areasWHAT ELSE?

Page 16: Making CHASE Mainstream

Software Engineering ResearchGOALS

IMPROVE QUALITYFind defects in designsFind defects in codePromote architectures/designsImprove performanceAllocate test resourcesIsolate defectsEliminate sources of defects

IMPROVE FUNCTIONALITYFind defects in specsImprove reqts gatheringImprove bug tracking

IMPROVE TIME TO MARKETReuse componentsReuse design patternsImprove cost estimationImprove productivityImprove code understandingSpread team knowledgeImprove coordination

METHODS

prog. lang. designtype systemstheorem provingspec. notationsmodeling notationsstatic analysisdynamic analysiscode optimizationruntime optimizationdata miningstatistical modelsprocess improvementdesign/arch. notationsarchitectural designsystem designdev. tool designdev. environment designpattern languagesvisualizationtheory building

EVALUATIONS

formal theoremscase studies on specs/codebenchmarksdemonstrations/prototypescase studies on team artifactscase studies on teamscontrolled experiments