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
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
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
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
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
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
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
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
Software Process Recovery CS445 / CS645 / ECE451 / SE463 User Mailing lists • Support • General discussion • Artifacts – Bug reports – Messages Abram Hindle 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
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
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
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
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
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
Software Process Recovery CS445 / CS645 / ECE451 / SE463 Source Code • Author • Module and File-name • Comments • Entities - identifiers, structures, classes, architecture Abram Hindle 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
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
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
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
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
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
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
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
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
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
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