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
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?
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
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
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
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!");
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.