Contents Definitions Software processes Software life-cycle processes activities software life-cycle models Process models Kristian Sandahl krs@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se Software process The effector process Sequence of steps A process that verifies Result: software items itself A process that exits under certain criteria Input Output analysis design implementation Resource consumption Feed-back ETVXM-architecture: resources Entry Task Verify Exit Measure side-effects Example: in out plan E feed-back Kristian Sandahl, IDA krisa@ida.liu.se decide M # defects write SRS SRS T Inspect V X Kristian Sandahl, IDA krisa@ida.liu.se 1 Process levels The software life-cycle Universal: = time for concept -> time for “unavailability” Processes suitable for many projects Worldly Processes adapted to a certain project or product Atomic document whiteboard The SLC is made up by: Software life-cycle model Activities Detailed processes for teams and individuals Kristian Sandahl, IDA krisa@ida.liu.se Software life-cycle models Kristian Sandahl, IDA krisa@ida.liu.se Waterfall model Concept exploration de Facto reference model forward engineering Requirements manageable fixed documents Design Negative: Implementation one-step delivery the negative circle: Test sensitivity to changes -> Installation more time for planning -> shortened design time -> Operation sensitivity to changes.... Waterfall model Incremental model Spiral model Win-win spiral model fee Iterative model: “RUP” ba d- ck Maintenance Replacement Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se 2 Incremental model Concept exploration Requirements The original spiral model The release planning problem Design Implementation Test Installation R1 Design Implementation Test Installation R2 Design Implementation Test Installation Rn Involves early phases in increments ⇒ the process is iterative Original goal: handle risks See: http://www.sei.cmu.edu/ cbs/spiral2000/ Kristian Sandahl, IDA krisa@ida.liu.se The win-win negotiation Kristian Sandahl, IDA krisa@ida.liu.se The win-win spiral model Find stake-holders’ win condition Infer design attributes Negotiate a suitable architectural solution See: http://sunset.usc.edu/ different markets research/WINWIN/ index.html example: layered architecture: + changeability - response time fast updates distributed development Negotiation Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se 3 RUP – Rational Unified Process Prototypig Sometimes called RAD Concept (Rapid Application exploration Development) Focus on feed-back Design Negative: too early commitment Implementation hard to obtain quality? Requirements Design Implementation Test Test See: http://www306.ibm.com/software/awdtools/rup/ Kristian Sandahl, IDA krisa@ida.liu.se Synchronise and Stabilise Kristian Sandahl, IDA krisa@ida.liu.se Cleanroom process model Idea: to always be prepared to deliver Incremental method Incremental method Committed to formal specification Frequent increment installation and test Dedicated use of ETVXM Daily Build Usage-based verification Smoke tests Regression testing The MS way Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se 4 eXtreme Programming Some XP-rules User stories are written Make frequent small releases Move people around Simplicity Choose a system metaphor Create spike solutions to reduce risk Refactor whenever and wherever possible The customer is always available Code the unit test first All production code is pair programmed Leave optimisation till last No overtime All code must pass all unit tests before it can be released Acceptance tests are run often and the score is published. See: http://www.extremeprogramming.org/ Kristian Sandahl, IDA krisa@ida.liu.se Kristian Sandahl, IDA krisa@ida.liu.se Open source The code is published An interested community voluntarily evolves the code All results are free to use Success #1: Linux ”Software culture” Kristian Sandahl, IDA krisa@ida.liu.se 5