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

CSE360 Flipped Lecture 02

CSE360 Flipped Lecture 02

Introduction to Software Engineering
Process Models
(202008)

Javier Gonzalez-Sanchez
PRO

June 02, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. CSE 360
    Introduction to Software Engineering
    Lecture 02: Process and Process Model
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. Previously

    View Slide

  3. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 3
    CSE360 – Introduction to
    Software Engineering
    Definitions
    The application of engineering
    to develop software
    in a systematic way

    View Slide

  4. Process

    View Slide

  5. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 5
    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 simplified representation of the
    activities and relationships in a process
    Think about this as an “class”

    View Slide

  6. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 6
    Activities
    1. Requirements
    2. Modeling or Design
    3. Construction or Coding
    4. Testing
    5. Deployment or Delivery

    View Slide

  7. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 7
    Types of Process (Strategies)
    Plan-based Agile

    View Slide

  8. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 8
    Types of Process (Strategies)
    § Plan-driven all process activities are established 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.

    View Slide

  9. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 9
    Process Models
    Plan-Based Models:
    • Waterfall
    • V-model
    • Incremental
    • Spiral
    • Prototype
    Agile Methodologies:
    • SCRUM
    • Kanban
    • XP (extreme programming)
    • Feature Driven
    Development

    View Slide

  10. Plan-based Process

    View Slide

  11. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 11
    The Waterfall Model

    View Slide

  12. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 12
    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.

    View Slide

  13. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 13
    The V-Model
    this arrows point at
    what we are testing

    View Slide

  14. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 14
    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

    View Slide

  15. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 15
    The Incremental Model
    Option A: Linear Increments (not all colors (activities) are repeated)

    View Slide

  16. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 16
    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.

    View Slide

  17. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 17
    Prototyping
    Construction
    of prototype
    communication
    Quick
    plan
    Modeling
    Quick design
    Construction
    of prototype
    Deployment
    delivery &
    feedback

    View Slide

  18. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 18
    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.

    View Slide

  19. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 19
    The Spiral Model

    View Slide

  20. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 20
    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

    View Slide

  21. Agile

    View Slide

  22. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 22
    We’re going to try something…
    Agile emerged in the late 1990s and it aim was to
    radically reduce the delivery time for working
    software systems

    View Slide

  23. To be continued …

    View Slide

  24. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 24
    Homework
    Complete This Week’s Hybrid Activities

    View Slide

  25. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 25
    References
    Chapter 1 and 2

    View Slide

  26. CSE360 – Introduction to Software Engineering
    Javier Gonzalez-Sanchez
    [email protected]
    Fall 2020
    Disclaimer. These slides can only be used as study material for the class CSE360 at ASU. They cannot be distributed or used for another purpose.

    View Slide