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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend