Download presentation
Presentation is loading. Please wait.
Published byEdwin Fairall Modified over 10 years ago
1
Processes
2
Outline Definition of process Type of processes Improvement models Example Next steps… 1
3
Process Do you want to build a “dog house” or “high rise” Process needed to build large /complex software systems 2 ?
4
Process: a set of ordered tasks Typical software tasks: What should the system do? (Requirements) How should the system do it? (Design) Writing the code… (Implementation) Making sure the code works (Testing) Using the system (Deployment) Different processes order tasks differently 3 Requirements Design Implementation Testing Deployment
5
Process: Requirements What should the system do? Customers write down what they want Talk to customers, make diagrams Watch users to see what’s needed Look up requirements from standards body (e.g., medical) 4 Requirements
6
Process: Design How should the system do it? Architectural design- overall structure of the system What components? How connected? Program design- how code should be organized Components => Classes and functions 5 Design
7
Process: Implementation Finally, we get to write some code!! May also include: Writing comments Writing documentation Helping other engineers with coding (e.g., pair programming) Answering questions Reading other documentation 6 Implementation
8
Process: Testing Does the system work? Unit testing System integration testing Usability testing Acceptance testing … 7 Testing
9
Process: Deployment Using the system (aka Operation) Distributing code Providing documentation and support Debugging Studying how the system work in practice Adapting the system 8 Deployment
10
Outline Definition of process Type of processes Improvement models Example Next steps… 9
11
Types of Processes Waterfall Spiral Agile 10
12
Waterfall process 11 Requirements analysis Design Implementation Operation Testing Prototyping (No prototyping in a pure waterfall process)
13
Spiral Process 12 Draft a menu of requirements Establish requirements Plan Analyze risk & prototype Draft a menu of architecture designs Analyze risk & prototype Draft a menu of program designs Establish architecture Establish program design Implementation Testing Operation Plan
14
Agile process 13 Customer provides “stories” (short requirement snippets) System and acceptance tests Do “spike” to evaluate & control risk Prioritize stories and plan Implement Operation (Agile processes are rarely this tidy in practice) Write/run/modify unit tests
15
Comparing Waterfall, Spiral, Agile 14 WaterfallSpiralAgile Emphasizes:-Simplicity -Traceability -Risk management -Exploring alternatives -Flexibility -Immediacy Weakness:Requirement/design mistakes can be costly Exploring alternatives can be costly Continual rework can be costly Style:-Highly controlled -High ceremony -Moderately controlled -Moderate ceremony -Rapid & organic -Low ceremony Some definitions -“traceability”: relationships between requirements and system elements are documented -“immediacy”: getting some sort of working system to the customer as fast as possible -“rework”: redesigning the architecture and/or refactoring the program code -“controlled”: conformance to process is highly valued, even if it slows a project down -“ceremony”: how much analysis, documentation, and planning is involved
16
When to choose what Waterfall: good for smaller systems where requirements can be fully understood before design and implementation Spiral: good for larger systems with vague requirements and many alternatives for designing and coding Agile: good for systems where you can rapidly create something very small but useful and then expand from there 15
17
Outline Definition of process Type of processes Improvement models Example Next steps… 16
18
Improvement Models How to improve the system later? Iterative Get the entire system working really well Then add more parts Incremental Get part of the system working really well Then add more parts to the system 17
19
Improvement Models Iterative and incremental can be mixed / matched with process models Iterative Agile Incremental Waterfall Etc. 18
20
Improvement Models: How to Choose? Incremental is often good when most of a system’s value is tightly concentrated in a small number of components. Iterative is often good when you need to implement most of a system before you can get much value. 19
21
Outline Definition of process Type of processes Improvement models Example Next steps… 20
22
Example: Incremental Spiral Development Customer wants “Eco-friendly Amazon.com” Why pick spiral over waterfall or agile? Big software project Vague requirements Many alternatives 21
23
Spiral Process 22 Draft a menu of requirements Establish requirements Plan Analyze risk & prototype Draft a menu of architecture designs Analyze risk & prototype Draft a menu of program designs Establish architecture Establish program design Implementation Testing Operation Plan
24
Incremental Spiral: Draft Menu of Requirements Shopping cart Database of products Define “Eco-Friendly” Based on product’s “eco-friendliness”? Collect data from producers? Collect ratings from watchdog organizations? Collect ratings from customers? Eco-friendly shipping options? Feature to swap / trade items? 23
25
Incremental Spiral: Review Prototypes with Customers 24 Paper prototypesLightweight prototypesDocumentation Let’s suppose that the customer settles on eco-friendliness options based on watchdog data. These “throwaway” prototypes are cheap to make because they are usually not interactive.
26
Incremental Spiral: Draft Menu of Architectures 25 PHP/Apache Mysql Web application -Watchdog data input screens - E-commerce interface Web application -Watchdog data input screens - E-commerce interface Database Linux PHP/Apache Mysql E-commerce interface Database Linux Scrapers to read watchdog data Watchdog users Shopping users Watchdog XML feeds Shopping users
27
Incremental Spiral: Review with Customers and/or Users 26 More prototypes And now an XML mockup Documentation And lots of analysis & discussion about pros/cons/cost/schedule/etc. Let’s suppose that the XML feed architecture is selected, omitting XML feeds for now (to be added in later increment).
28
Incremental Spiral: Draft Menu of Program Designs E-commerce interface Make each product its own object? Make user accounts its own object? “Hide” database from UI code? What should be put it “library” classes for reuse in future increments? E.g., XML feeds … 27
29
Incremental Spiral: Review Prototypes with Customer 28 Heavyweight prototypes These prototypes are pretty expensive to make, since they implement some interactivity. Therefore, they often are incorporated into the finished product (“evolutionary” prototypes). Documentation
30
Incremental Spiral: Implementation, Testing, Operation Wrap up increment #1 Manually load data base with products Finish coding UI for searching / ordering Write / run tests Fix bugs Deliver code to customer Customer tests Deploy to public server Test, test, test 29
31
Incremental Spiral: Increment #2, add XML feed Already know this is a requirement No need to return to requirements phase Return to review alternative architectures Create a menu of program design Prototype and review Implement, test, send to customer … 30
32
Incremental Spiral: Increment #3 31 Pay attention to users, discover new requirements - Spiral, spiral, spiral
33
Outline Definition of process Type of processes Improvement models Example Next steps… 32
34
Next steps… Finish your Vision Statement Overview! Finalize your team Be ready to explain Waterfall, Spiral, and Agile development Definition Pros / cons of each Explain when to use, and WHY When NOT to use… Next time: Requirements 33
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.