3. Software Process
description
Transcript of 3. Software Process
![Page 1: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/1.jpg)
PROC-1Venkat SubramaniamVenkat Subramaniam
3. Software Process
![Page 2: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/2.jpg)
PROC-2Venkat SubramaniamVenkat Subramaniam
What’s a process?• Set of activities in creating software
• It involves creativity– hard to automate– Requires human judgment
• No one approach to create software– Different organizations and groups within
organization do different things
![Page 3: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/3.jpg)
PROC-3Venkat SubramaniamVenkat Subramaniam
Activities• Requirements specification
• Analysis
• Design
• Implementation
• Testing
• Maintenance and evolution
![Page 4: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/4.jpg)
PROC-4Venkat SubramaniamVenkat Subramaniam
Different Approaches• Waterfall
• Spiral
• Iterative & Incremental Development
• Agile
![Page 5: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/5.jpg)
PROC-5Venkat SubramaniamVenkat Subramaniam
Waterfall ModelRequirements
Analysis
Design
Implementation &Testing
Integration
Maintenance
![Page 6: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/6.jpg)
PROC-6Venkat SubramaniamVenkat Subramaniam
What’s good about Waterfall• Easy to plan
– (but hard to execute)
• Easy to explain the progression of the project– (but may not be the reality, however)
• Help with budgeting and estimating time upfront– (often overrun though)
![Page 7: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/7.jpg)
PROC-7Venkat SubramaniamVenkat Subramaniam
Problems with Waterfall• Sequential steps• Not easy to work with• Each stage expected to be complete and
well done• Assumes requirements are well
understood– (Are they ever?)
• Hard to keep up with change– (change is the only constant)
• Hard to meet users needs
![Page 8: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/8.jpg)
PROC-8Venkat SubramaniamVenkat Subramaniam
Spiral Model
Analysis
RequirementsSpecification
Integration
Design
Implementation& Unit Testing
![Page 9: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/9.jpg)
PROC-9Venkat SubramaniamVenkat Subramaniam
What’s good about Spiral• Recognizes that software applications
need to evolve• Each version may be one loop though the
spiral• You have a chance to revisit and modify
things that may not be correct or adequate
![Page 10: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/10.jpg)
PROC-10Venkat SubramaniamVenkat Subramaniam
Problems with Spiral• Each cycle may be long – waterfall
• If each cycle is large, hard to modify system– change may be prohibitive
• May be expensive• If cycles are short, planning may be hard
– Project management and reporting will be an issue
![Page 11: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/11.jpg)
PROC-11Venkat SubramaniamVenkat Subramaniam
Iterative & Incremental Dev.• Consider waterfall as a guiding
framework, but not execution model• Consider spiral as execution model within
that guiding framework• Planned with versions in mind
– incremental
• Each increment involves many cycles of all the activities, ending with executable application
![Page 12: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/12.jpg)
PROC-12Venkat SubramaniamVenkat Subramaniam
Iterative & Incremental Dev.
Waterfall
Spiral
Iterative & Incremental Development
![Page 13: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/13.jpg)
PROC-13Venkat SubramaniamVenkat Subramaniam
Advantages & Disadvantages of IID
• Provides good opportunity to analyze risk• System evolves• Coding starts early• Integration start sooner• May still be ceremonial• Iteration may be too long• Some companies that claim to be doing
IID actually are doing waterfall
![Page 14: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/14.jpg)
PROC-14Venkat SubramaniamVenkat Subramaniam
Agile Development Process• Iterative and evolutionary development• Adaptive planning• Incremental delivery• Agility• More focused on success than sticking
with a plan• Working software is valued and
considered measure of progress
![Page 15: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/15.jpg)
PROC-15Venkat SubramaniamVenkat Subramaniam
Advantages• Closely matches user expectations
• You may modify and evolve as understanding as requirements evolve
• Functionality stabilizes overtime
![Page 16: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/16.jpg)
PROC-16Venkat SubramaniamVenkat Subramaniam
Disadvantage• Hard to document each step
• Project management is not easy
• System may be poorly structure– You may hack your way though
• Works effectively only for small teams
![Page 17: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/17.jpg)
PROC-17Venkat SubramaniamVenkat Subramaniam
Where does it work?• For small teams
• Small to medium size projects
• Not effective on large projects– (large projects are not effective any ways!!)
• Requires competent team
![Page 18: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/18.jpg)
PROC-18Venkat SubramaniamVenkat Subramaniam
The Agile Manifesto• Individuals and interactions
– over process and tools
• Working Software– over comprehensive documentation
• Customer collaboration– over contract negotiations
• Responding to change– over following a plan
![Page 19: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/19.jpg)
PROC-19Venkat SubramaniamVenkat Subramaniam
The Agile Principles• Satisfy Customer through early and continuous delivery
of valuable software• Welcome changing requirements any time• Deliver working software frequently• Business people and developers work closely• Motivated individuals trusted to do job• Face-to-face conversation• Working software measure of progress• Processes that promote sustainable development• Sponsors, developers, users should maintain constant
pace indefinitely• Attention to technical excellence and good design
enhances agility• Simplicity is essential• Reflect on how to become more effective, and tunes
and adjusts behavior accordingly
![Page 20: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/20.jpg)
PROC-20Venkat SubramaniamVenkat Subramaniam
Agile Modeling• UML is for understanding/communication not for
documentation• Agile modeling is not avoiding modeling• Do not apply UML to all or most of software• Defer simpler design till programming• Use UML for smaller percentage of system where it is
required• Choose lightweight simpler tools• Don’t model alone• Look for good enough solution• Use design as guidelines – it will be inaccurate when
you start• Do not expect (or be expected) to design and hand off
for coding – developer must be part of designing
![Page 21: 3. Software Process](https://reader030.fdocuments.us/reader030/viewer/2022033023/5681443d550346895db0d71a/html5/thumbnails/21.jpg)
PROC-21Venkat SubramaniamVenkat Subramaniam
Agile Processes• Scrum
– Self-organizing teams– Daily team measurement– Avoid following predefined steps– Standup meetings, 30 day iteration, demo to stake
holders at end of iteration
• XP– Collaboration– Quick and early software creation– Communication, simplicity, feedback, courage– Constant feedback, test driven development