Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSC308 Lecture 03

CSC308 Lecture 03

Software Engineering I
Process Models
(202209)

Javier Gonzalez-Sanchez

September 21, 2022
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSC 308 Software Engineering 1 Lecture 03: Process Models

    Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.com Building 14 -227 Office Hours: By appointment
  2. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    3 CSC 308 + CSC 309 Software Engineering Definitions
  3. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    4 process activity activity activity activity Definitions step step step step step step step step step step step step step step step step step
  4. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    6 § Plan-driven all process activities are planned in advance and progress is measured against a plan (a contract). § Agile, planning is incremental and it is easier to change the process to reflect changing customer requirements. Strategy
  5. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    7 § Communication or Requirement § Modeling or Design § Construction or Coding § Testing (Unit, UI, Integration, Stress, Regression) § Deployment or Delivery Activities
  6. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    9 Plan-Based Models: • Waterfall • V-model • Incremental • Spiral • Prototype Examples Agile Methodologies: • SCRUM • Kanban • XP (extreme programming) • Feature Driven Development
  7. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    11 • Waterfall • V-model • Incremental • Spiral • Prototype Plan-based Process Models
  8. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    13 § Key idea: Separate and distinct phases of specification and development. A phase has to be complete before moving onto the next phase. § Type: Linear model. § Recommended for: Embedded systems and Large systems(developed by several partner companies) § Disadvantage: difficulty of accommodating change after the process is underway. The Waterfall Model
  9. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    14 The V-Model this arrows point at what we are testing
  10. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    15 § Key idea: It is an extension of Waterfall where instead of moving down in a linear way, the process steps are bent upwards after the coding phase. While tests are just one of five steps in Waterfall, it looks like practically half of the process in V-model. § Type: Linear model. § Recommended for: well-suited for projects that must maintain a strict deadline and meet key milestone dates throughout the process. Example: medical device industry § Disadvantage: same that waterfall The V-Model
  11. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    16 The Incremental Model Option A: Linear Increments (not all colors (activities) are repeated)
  12. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    17 The Incremental Model Option B: Parallel Increments (most than 1 activity at the same time)
  13. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    18 § Key idea: split each activity in pieces. § Type: Iterative model (it could include parallel). § Recommended for: Facilitate getting customer feedback on the development work that has been done. § Disadvantages: (1) it could not cost-effective to produce documents that reflect every version of the system; (2) System structure tends to degrade as new increments are added. Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. The Incremental Model
  14. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    19 Prototyping Construction of prototype communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
  15. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    20 § Definition: a prototype is an initial version of a system used to demonstrate concepts and try out design options. § Evolutionary model § Recommended for: a prototype can be used to help with requirements elicitation and validation; or in design processes to explore options and develop a UI design. Prototyping
  16. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    22 § Key idea: High amount of risk analysis hence, avoidance of Risk is enhanced. § Evolutionary model § Recommended for: (1) Good for large and mission-critical projects. (2) Strong approval and documentation control. (3) Significant changes are expected (research and exploration). § Doesn’t work well for smaller projects. § Doesn’t work well when users are unsure of their needs § Doesn’t work well when requirements are complex The Spiral Model
  17. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    25 § Through this work we have come to value: “Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan “ § That is, while there is value in the items on the right, we value the items on the left more. Agile Manifesto
  18. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    27 Definition Product Backlog Sprint Backlog
  19. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    29 § Product development where a software company is developing a small or medium-sized product for sale. § Several software products and apps nowadays are small or medium-sized; therefore, they are developed using an agile approach § Custom system development within an organization, where there is a clear commitment from the customer to become involved in the development process and where there are few external rules and regulations that affect the software. Applicability
  20. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    30 § The product is broken down into a set of manageable and understandable chunks. § Unstable requirements do not hold up progress. § The whole team have visibility of everything and consequently team communication is improved. § Customers see on-time delivery of increments and gain feedback on how the product works. Pros
  21. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    31 § The informality of agile development is incompatible with the legal approach to contract definition (requirement specification) that is commonly used in large companies. § Agile methods are most appropriate for new software development rather than software maintenance (documentation). Yet the majority of software costs in large companies come from maintaining their existing software systems. § Agile methods are designed for small co-located teams yet much software development now involves worldwide distributed teams. Cons
  22. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    32 Reading Read Software Process Models (PDF available on Canvas)
  23. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    35 Office Hours Tuesday and Thursday 3 - 5 pm But an appointment required Sent me an email – [email protected]
  24. jgs

  25. jgs CSC 308 Software Engineering 1 Lab 03: Programming with

    Java Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.com Building 14 -227 Office Hours: By appointment
  26. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    40 § @author me, you, et al. § Methods before or after? JavaDoc
  27. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    41 § When do we use comments? Comments
  28. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    42 § What names to use for our variables? Naming
  29. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    44 § Did you notice that the close button is not working? § What is this line? app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Problem
  30. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    46 How to show a Dialog Box? JOptionPane.showMessageDialog (this, "Hello, I am a dialog box!");
  31. jgs Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 |

    47 ActionListener • ActionListener • actionPerformance(ActionEvent e) {} • addActionListener (this);
  32. jgs CSC 308 Software Engineering I Javier Gonzalez-Sanchez, Ph.D. [email protected]

    Winter 2023 Copyright. These slides can only be used as study material for the class CSC308 at Cal Poly. They cannot be distributed or used for another purpose.