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
PRO

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

    View Slide

  2. jgs
    Previously

    View Slide

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

    View Slide

  4. 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

    View Slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 5
    Strategy
    Plan-based Agile

    View Slide

  6. 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

    View Slide

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

    View Slide

  8. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 8
    How to connect the activities?

    View Slide

  9. 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

    View Slide

  10. jgs
    Plan-based Process

    View Slide

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

    View Slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 12
    The Waterfall Model

    View Slide

  13. 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

    View Slide

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

    View Slide

  15. 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

    View Slide

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

    View Slide

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

    View Slide

  18. 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

    View Slide

  19. 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

    View Slide

  20. 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

    View Slide

  21. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 21
    The Spiral Model

    View Slide

  22. 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

    View Slide

  23. jgs
    Agile Methods

    View Slide

  24. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 24
    Strategy
    Plan-based Agile

    View Slide

  25. 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

    View Slide

  26. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 26
    Agile in a Nutshell

    View Slide

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

    View Slide

  28. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 28
    Agile in Action

    View Slide

  29. 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

    View Slide

  30. 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

    View Slide

  31. 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

    View Slide

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

    View Slide

  33. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 33
    Chapter 2 and 3
    References

    View Slide

  34. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 34
    Questions

    View Slide

  35. 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]

    View Slide

  36. jgs

    View Slide

  37. 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

    View Slide

  38. jgs
    Previously

    View Slide

  39. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 39
    Can you do this?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  43. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 43
    What do you think about this?

    View Slide

  44. 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

    View Slide

  45. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 45
    How to show a Dialog Box?

    View Slide

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

    View Slide

  47. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 47
    ActionListener
    • ActionListener
    • actionPerformance(ActionEvent e) {}
    • addActionListener (this);

    View Slide

  48. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 48
    Can you do this?

    View Slide

  49. 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.

    View Slide