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

CSC307 Lecture 02

CSC307 Lecture 02

Introduction to Software Engineering
Process Models
(202306)

Javier Gonzalez-Sanchez
PRO

June 24, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 307
    Introduction to Software Engineering
    Lecture 02:
    Processes Models
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View Slide

  2. CSC 308 | Dr. Javier Gonzalez-Sanchez | 2
    jgs
    Key Ideas
    Good software is software
    that compiles and run

    View Slide

  3. CSC 308 | Dr. Javier Gonzalez-Sanchez | 3
    jgs
    Key Ideas
    ❌ Good software is software
    that compiles and run

    View Slide

  4. CSC 308 | Dr. Javier Gonzalez-Sanchez | 4
    jgs
    Key Ideas
    Large vs Small
    Human-Centered
    for
    Modifiability
    Extensibility
    Together but not
    scrambled
    Quality
    Cost

    View Slide

  5. CSC 308 | Dr. Javier Gonzalez-Sanchez | 5
    jgs
    CSC 307
    Introduction to
    Software Engineering
    Definition

    View Slide

  6. CSC 308 | Dr. Javier Gonzalez-Sanchez | 6
    jgs
    “The application of a
    systematic, disciplined, quantifiable
    approach to the
    development, operation, and maintenance of
    software”
    – IEEE
    Software Engineering

    View Slide

  7. CSC 308 | Dr. Javier Gonzalez-Sanchez | 7
    jgs
    “The application of a
    systematic, disciplined, quantifiable
    approach to the
    development, operation, and maintenance of
    software”
    – IEEE
    Software Engineering
    Process

    View Slide

  8. CSC 308 | Dr. Javier Gonzalez-Sanchez | 8
    jgs
    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

  9. CSC 308 | Dr. Javier Gonzalez-Sanchez | 9
    jgs
    § Communication or Requirement Engineering
    § Modeling or Design
    § Construction or Implementation
    § Testing (Unit, UI, Integration, Stress, Regression)
    § Deployment or Delivery
    Activities

    View Slide

  10. CSC 308 | Dr. Javier Gonzalez-Sanchez | 10
    jgs
    Homework
    § http://taiga.io (mandatory)
    § https://astah.net (mandatory)
    § https://www.jetbrains.com/idea/ (optional)
    § https://github.com (mandatory)

    View Slide

  11. CSC 308 | Dr. Javier Gonzalez-Sanchez | 11
    jgs
    How to connect the activities?

    View Slide

  12. CSC 308 | Dr. Javier Gonzalez-Sanchez | 12
    jgs
    § 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

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

    View Slide

  14. jgs
    Plan-based Process

    View Slide

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

    View Slide

  16. CSC 308 | Dr. Javier Gonzalez-Sanchez | 16
    jgs
    The Waterfall Model

    View Slide

  17. CSC 308 | Dr. Javier Gonzalez-Sanchez | 17
    jgs
    § 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

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

    View Slide

  19. CSC 308 | Dr. Javier Gonzalez-Sanchez | 19
    jgs
    § 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

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

    View Slide

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

    View Slide

  22. CSC 308 | Dr. Javier Gonzalez-Sanchez | 22
    jgs
    § 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

  23. CSC 308 | Dr. Javier Gonzalez-Sanchez | 23
    jgs
    Prototyping
    Construction
    of prototype
    communication
    Quick
    plan
    Modeling
    Quick design
    Construction
    of prototype
    Deployment
    delivery &
    feedback

    View Slide

  24. CSC 308 | Dr. Javier Gonzalez-Sanchez | 24
    jgs
    § 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

  25. CSC 308 | Dr. Javier Gonzalez-Sanchez | 25
    jgs
    The Spiral Model

    View Slide

  26. CSC 308 | Dr. Javier Gonzalez-Sanchez | 26
    jgs
    § 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

  27. jgs
    Agile Methods
    To be continued…

    View Slide

  28. CSC 308 | Dr. Javier Gonzalez-Sanchez | 28
    jgs
    Chapter 1, 2 and 3
    References

    View Slide

  29. CSC 308 | Dr. Javier Gonzalez-Sanchez | 29
    jgs
    Questions

    View Slide

  30. CSC 308 | Dr. Javier Gonzalez-Sanchez | 30
    jgs
    Office Hours
    Tuesday and Thursday 3 - 5 pm
    But an appointment required
    Sent me an email – [email protected]

    View Slide

  31. jgs
    CSC 307 Introduction to Software Engineering
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Summer 2023
    Copyright. These slides can only be used as study material for the class CSC307 at Cal Poly.
    They cannot be distributed or used for another purpose.

    View Slide