CSE360 Flipped Lecture 02

CSE360 Flipped Lecture 02

Introduction to Software Engineering
Process Models
(202008)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez

June 02, 2020
Tweet

Transcript

  1. CSE 360 Introduction to Software Engineering Lecture 02: Process and

    Process Model Dr. Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. Previously

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

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

    of Process (Strategies) Plan-based Agile
  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.
  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
  10. Plan-based Process

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

    Waterfall Model
  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.
  13. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 13 The

    V-Model this arrows point at what we are testing
  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
  15. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 15 The

    Incremental Model Option A: Linear Increments (not all colors (activities) are repeated)
  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.
  17. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 17 Prototyping

    Construction of prototype communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback
  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.
  19. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 19 The

    Spiral Model
  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
  21. Agile

  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
  23. To be continued …

  24. Javier Gonzalez-Sanchez | CSE360 | Summer 2018 | 24 Homework

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

    Chapter 1 and 2
  26. CSE360 – Introduction to Software Engineering Javier Gonzalez-Sanchez javiergs@asu.edu 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.