software process recovery
play

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/


  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

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

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

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

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

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

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

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

  9. Software Process Recovery CS445 / CS645 / ECE451 / SE463 User Mailing lists • Support • General discussion • Artifacts – Bug reports – Messages Abram Hindle 10

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

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

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

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

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

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

  16. Software Process Recovery CS445 / CS645 / ECE451 / SE463 Source Code • Author • Module and File-name • Comments • Entities - identifiers, structures, classes, architecture Abram Hindle 17

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

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

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

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

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

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

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

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

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

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

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

Recommend


More recommend