Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Previously

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Process

Slide 5

Slide 5 text

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”

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Plan-based Process

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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.

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Agile

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

To be continued …

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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.