$30 off During Our Annual Pro Sale. View details »

CSC308 Lecture 03

CSC308 Lecture 03

Software Engineering I
Process Models
(202209)

Javier Gonzalez-Sanchez
PRO

September 21, 2022
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

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

    Dr. Javier Gonzalez-Sanchez javiergs@calpoly.edu users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  2. jgs Previously

  3. jgs Fall 2022 | 00000010 CSC 308 + CSC 309

    Software Engineering Definition
  4. jgs Fall 2022 | 00000010 Software Engineering “The application of

    a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” – IEEE
  5. jgs Fall 2022 | 00000010 process activity activity activity activity

    Approach step step step step step step step step step step step step step step step step step
  6. jgs Fall 2022 | 00000010 Process and Process Model §

    Process: A structured set of activities required to develop a software system Think about this as an “object” § Process Models: A representation of relationships (structure) Think about this as an “class”
  7. jgs Fall 2022 | 00000010 Activities § Communication or Requirement

    § Modeling or Design § Construction or Coding § Testing (Unit, UI, Integration, Stress, Regression) § Deployment or Delivery
  8. jgs Fall 2022 | 00000010 How to connect the activities?

  9. jgs Fall 2022 | 00000010 Types of Structures § Linear

    § Iterative § Evolutionary § Parallel
  10. jgs Fall 2022 | 00000010 Reading Read Software Process Models

    (PDF available on Canvas)
  11. jgs Fall 2022 | 00000010 Strategy Plan-based Agile

  12. jgs Fall 2022 | 00000010 Strategy § 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.
  13. jgs Fall 2022 | 00000010 Examples Plan-Based Models: • Waterfall

    • V-model • Incremental • Spiral • Prototype Agile Methodologies: • SCRUM • Kanban • XP (extreme programming) • Feature Driven Development
  14. jgs Plan-based Process

  15. jgs Fall 2022 | 00000010 Plan-based Process Models • Waterfall

    • V-model • Incremental • Spiral • Prototype
  16. jgs Fall 2022 | 00000010 The Waterfall Model

  17. jgs Fall 2022 | 00000010 The V-Model this arrows point

    at what we are testing
  18. jgs Fall 2022 | 00000010 The Incremental Model Option A:

    Linear Increments (not all colors (activities) are repeated) Option B: Parallel Increments (most than 1 activity at the same time)
  19. jgs Fall 2022 | 00000010 The Spiral Model

  20. jgs Fall 2022 | 00000010 Prototyping Construction of prototype communication

    Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
  21. jgs Fall 2022 | 00000010 The Waterfall Model § 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.
  22. jgs Fall 2022 | 00000010 The V-Model § 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
  23. jgs Fall 2022 | 00000010 The Incremental Model § 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.
  24. jgs Fall 2022 | 00000010 The Spiral Model § 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
  25. jgs Fall 2022 | 00000010 Prototyping § 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.
  26. jgs Fall 2022 | 00000010 Questions

  27. jgs Fall 2022 | 00000010 References Chapter 2 and 3

  28. jgs Fall 2022 | 00000010 Survey Week 01 Your thoughts

  29. jgs

  30. jgs CSC 308 Software Engineering I Lab 03: Programming with

    Java III Dr. Javier Gonzalez-Sanchez javiergs@calpoly.edu users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  31. jgs Previously

  32. jgs Fall 2022 | 00000010 Can you do this?

  33. jgs Fall 2022 | 00000010 JavaDoc § @author me, you,

    et al. § Methods before or after?
  34. jgs Fall 2022 | 00000010 Comments § When do we

    use comments?
  35. jgs Fall 2022 | 00000010 Naming § What names to

    use for our variables?
  36. jgs Fall 2022 | 00000010 What do you think about

    this?
  37. jgs Fall 2022 | 00000010 Problem § Did you notice

    that the close button is not working? § What is this line? app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  38. jgs Fall 2022 | 00000010 How to show a Dialog

    Box?
  39. jgs Fall 2022 | 00000010 How to show a Dialog

    Box? JOptionPane.showMessageDialog (this, "Hello, I am a dialog box!");
  40. jgs Fall 2022 | 00000010 ActionListener • ActionListener • actionPerformance(ActionEvent

    e) {} • addActionListener (this);
  41. jgs Fall 2022 | 00000010 Can you do this?

  42. jgs Fall 2022 | 00000010 Questions

  43. jgs CSC 308 Software Engineering I Javier Gonzalez-Sanchez, Ph.D. javiergs@calpoly.edu

    Fall 2022 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.