Presentation is loading. Please wait.

Presentation is loading. Please wait.

Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.

Similar presentations


Presentation on theme: "Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1."— Presentation transcript:

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


Download ppt "Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1."

Similar presentations


Ads by Google