Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

jgs Previously

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

jgs Plan-based Process

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

jgs Agile Methods

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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]

Slide 36

Slide 36 text

jgs

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

jgs Previously

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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.