Software Process Recovery Abram Hindle Software Architecture Group - - PowerPoint PPT Presentation

software process recovery
SMART_READER_LITE
LIVE PREVIEW

Software Process Recovery Abram Hindle Software Architecture Group - - PowerPoint PPT Presentation

Software Process Recovery CS445 / CS645 / ECE451 / SE463 Software Process Recovery Abram Hindle Software Architecture Group David R. Cheriton School of Computer Science University of Waterloo Canada http://swag.uwaterloo.ca/ahindle/


slide-1
SLIDE 1

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Software Process Recovery

Abram Hindle

Software Architecture Group David R. Cheriton School of Computer Science University of Waterloo Canada http://swag.uwaterloo.ca/˜ahindle/

ahindle@cs.uwaterloo.ca

Abram Hindle 1

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Software Development Processes

  • Repeatable development
  • Predictable
  • Ensure Quality
  • Project management
  • Attempt to succeed at building software

Abram Hindle 2

slide-14
SLIDE 14

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Prescribed Processes

  • The processes chosen for a project
  • The processes that developers are expected to follow

– Do developers actually follow these?

∗ How would we know?

Abram Hindle 3

slide-15
SLIDE 15

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Observed Processes

  • Based on observation
  • What is observable
  • What kind of behaviour is observable
  • What kind of intent is observable

Abram Hindle 4

slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20
slide-21
SLIDE 21

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Process Recovery

  • Recover information about:

– behaviour – topics / focus – requirements – Software Development Life Cycle – repeating behaviours

  • from...

Abram Hindle 5

slide-22
SLIDE 22

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Development Artifacts

  • Wand of dispel demo demons
  • Blessed wand of developer motivation (4:3)
  • Rusty cursed plate mail named “contract deadline”
  • Blessed dagger named “debug”
  • Potion of Bad Smell Detection

Abram Hindle 6

slide-23
SLIDE 23

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Actual Dev. Artifacts

  • Mailing lists
  • Bug tracker events
  • Source Control Repositories
  • Source Code
  • Documentation
  • Test
  • Build system

Abram Hindle 7

slide-24
SLIDE 24
slide-25
SLIDE 25

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Mailing lists

  • Often used in projects to:

– Allow users to interact with developers – Provide tech support – Report bugs – Post Patches – Discuss Development

Abram Hindle 9

slide-26
SLIDE 26

Software Process Recovery CS445 / CS645 / ECE451 / SE463

User Mailing lists

  • Support
  • General discussion
  • Artifacts

– Bug reports – Messages

Abram Hindle 10

slide-27
SLIDE 27

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Development Lists

  • New features, maintenance, development discussion
  • Bug fixing
  • Artifacts

– Patches – Bug reports – Requirements – Design

Abram Hindle 11

slide-28
SLIDE 28

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Data inside of an email

  • People: to, from, cc, replies, etc.
  • Fields: headers, subjects
  • Body: text data, bug fields

Abram Hindle 12

slide-29
SLIDE 29

Software Process Recovery CS445 / CS645 / ECE451 / SE463

How can we analyze mailing lists?

  • Social Network Analysis
  • Natural Language Processing
  • Bug extractor
  • Time-series analysis

Abram Hindle 13

slide-30
SLIDE 30
slide-31
SLIDE 31

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Version Control

  • Used to store changes to source code
  • Contains diffs of source code
  • Track changes
  • Common products: CVS, GIT, SVN, Darcs, Perforce,

etc.

Abram Hindle 14

slide-32
SLIDE 32

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Version Control Entities

  • Author/Committer - who committed the change
  • Changelog comment - description of change
  • Revision - change to a file
  • Commit - collection of revision (one logical change)
  • Diff/patch - the change per line per file
  • File - source code, tests, documentation, build files,

etc.

Abram Hindle 15

slide-33
SLIDE 33

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Version Control Analysis

  • Time-series - when changes occur
  • Partitioning - by file-type
  • NLP - word occurrence

– Word-bags – Machine learning

Abram Hindle 16

slide-34
SLIDE 34
slide-35
SLIDE 35
slide-36
SLIDE 36
slide-37
SLIDE 37

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Source Code

  • Author
  • Module and File-name
  • Comments
  • Entities - identifiers, structures, classes, architecture

Abram Hindle 17

slide-38
SLIDE 38
slide-39
SLIDE 39

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Bug Reports

  • Repositories of bug descriptions

– And feature requests

  • Made by users, developers, testers
  • Document the instance and solution to bug

Abram Hindle 18

slide-40
SLIDE 40

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Bug report data

  • Participants: author, stakeholders, testers, developers
  • Bug fields: meta-data such as version or platform
  • Bug description: often contains logs or error codes

Abram Hindle 19

slide-41
SLIDE 41

Software Process Recovery CS445 / CS645 / ECE451 / SE463

How can we analyze Bug reports?

  • Social Network Analysis
  • Natural Language Processing
  • Bug extractor
  • Time-series analysis

Abram Hindle 20

slide-42
SLIDE 42
slide-43
SLIDE 43
slide-44
SLIDE 44
slide-45
SLIDE 45
slide-46
SLIDE 46
slide-47
SLIDE 47
slide-48
SLIDE 48
slide-49
SLIDE 49
slide-50
SLIDE 50
slide-51
SLIDE 51
slide-52
SLIDE 52
slide-53
SLIDE 53
slide-54
SLIDE 54
slide-55
SLIDE 55
slide-56
SLIDE 56
slide-57
SLIDE 57
slide-58
SLIDE 58

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Process

  • What if our data doesn’t look like boxes and arrows?

– Maybe it isn’t.

∗ Maybe the process we can observe is mixture of

efforts over time.

Abram Hindle 21

slide-59
SLIDE 59
slide-60
SLIDE 60

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Rational Unified Process

  • Phases and Disciplines

– Phase - stage in a life-cycle – Discipline - types of tasks

Abram Hindle 22

slide-61
SLIDE 61

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Phases

  • Inception - investigate or plan it
  • Elaboration - design it
  • Construction - build it
  • Transition - ship it, finish it

Abram Hindle 23

slide-62
SLIDE 62

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Engineering Disciplines

  • Business Modelling - domain clarification
  • Requirements - collect and record
  • Analysis/Design - uses cases
  • Implementation - build it
  • Test - unit/regression tests, quality
  • Deployment - package and platforms

Abram Hindle 24

slide-63
SLIDE 63

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Support Disciplines

  • Environment - processes and tools
  • Configuration Management - version control and

metrics

  • Project Management - managing and planning

Abram Hindle 25

slide-64
SLIDE 64

Software Process Recovery CS445 / CS645 / ECE451 / SE463

View of Process

  • What parts of RUP are observable?
  • What parts of RUP could we extract?
  • What wouldn’t we see during certain phases or

iterations?

Abram Hindle 26

slide-65
SLIDE 65

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Mapping to Process

  • How do we map events or artifacts to process?
  • What does a change mean?

Abram Hindle 27

slide-66
SLIDE 66
slide-67
SLIDE 67
slide-68
SLIDE 68
slide-69
SLIDE 69
slide-70
SLIDE 70
slide-71
SLIDE 71
slide-72
SLIDE 72
slide-73
SLIDE 73
slide-74
SLIDE 74
slide-75
SLIDE 75
slide-76
SLIDE 76

Software Process Recovery CS445 / CS645 / ECE451 / SE463

Limitations of Process Recovery

  • What isn’t observed is hard to reason about

– Proxy measures?

  • OSS versus Commercial

– Requirements are different!

Abram Hindle 8

slide-77
SLIDE 77
slide-78
SLIDE 78
slide-79
SLIDE 79