001 Introduction
001 Introduction
001 Introduction
Introduction to
Software Engineering
Dr. Alex Q. Chen
Alex.Q.Chen@SingaporeTech.edu.sg
@AlexQChen
TODAY
3
In 1968…
u n n i ng over - er -
Projects r ts r u n n i ng o v
P roje c
time.
Projects were unmanageable and code budget.
Software was of
difficult to maintain.
Software was very
Softw low quality.
inefficient. a re was
ed
t e n e v e r
a re oft e n d i d not m e l ivered.
So ftw
e m en ts .
requir
SIT INF2001 - AY23/24, Tri 1 6
Software Engineering: The Reality In Numbers
51%
33%
29% 2015
52%
19%
Grand 2% 7% 17%
The resolution of all
Large 6% 17% 24% software project by size
from FY2011-FY2015
Medium 9% 26% 31%
with in the new CHAOS
Moderate 21% 32% 17% database
13
Defining “SOFTWARE ENGINEERING”
▪ A dual emphasis:
• Product: what is produced
• Process: how the product is produced
SIT INF2001 - AY23/24, Tri 1 22
Fault-free Software
▪ What are Faults?
• software behaviour unaccounted for in its design
▪ Examples
• Patriot missile timing error
• Therac-25 medical linear accelerator incident “FAULT-FREE”??
• The pervasive Y2K bug
❖ Global economic impact
▪ On time,
▪ Within budget
▪ Satisfies the user’s needs (functionalities and usability)
Round 2:
California DMV software (2006-2013)
➢ Project stopped after spending $134 million due to
“significant concerns with the lack of progress”
➢ 3 months before the original expected delivery date
➢ Some of the functions were delivered Data from: IEEE SPECTRUM, 2013 Los
Angeles Times, 2013
SIT INF2001 - AY23/24, Tri 1 25
Time And Budget Case Studies
Digital Media Initiative (DMI) by BBC, UK
• To modernise the Corporation's production and archiving
methods by using connected digital production and media asset
management systems.
• Plan: ~£81.7 million
• Actual cost: >£98 million (>SGD200 million)
• 2008 - 2013
• Project scrapped due to bad management and outpaced by
changing technology.
• By 2013, much cheaper Commercial Off The Shelf (COTS)
alternatives by then existed.
Should it be used?
detailed)
Implementation
▪ Implement and document the design
▪ Testing(verify and validate) Testing
▪ Retirement
Analysis and
Design
Implementation
▪ W. Royce “Managing the Development of
Large Software Systems” Verification
▪ Sequential & Distinct phases: one phase is Validation
Analysis and
Design
Implementation
Verification
▪ The rationale is that the earlier you catch a bug Validation
development
maintenance
development
Maintenance
46
SIT INF2001 - AY23/24, Tri 1
TIME (= COST) Of Post-delivery Maintenance
52
US Department of
Defense (DOD)
experienced an
alarming amount of
software failure
using Waterfall
SIT ICT2101/2201
SIT INF2001 - AY23/24, Tri Introduction
1 to Software Engineering, AY21/22, Tri 1 56
Attributes of the Waterfall Process
The Good The Bad
▪ Waterfall model is easy to understand ▪ Success depends on precise requirements
due to its simple linear structure and ▪ No working model of the software until
clearly defined stages the end of the life cycle
▪ Provides structure to less experienced ▪ High amounts of risk / uncertainty.
staff
▪ When in a later stage, it is very difficult to
▪ Facilitates project management make any changes to the product
▪ It helps to define the goals and ▪ Not realistic: Does not reflect real
deliverables at the early stage of the processes
project
▪ Expensive
59
Rapid Prototyping Model
▪ Linear model
▪ Instead of ‘Requirements’:
• Listen to customer
• Build prototype
• Customer “test drives” prototype
• Should be quick (can’t be long)
▪ Challenges:
• “Throw-away” phenomenon
• Demos can set unrealistic expectations
• Compromises that solidify
62
The Spiral Model
63
The Spiral Model
▪ 15 years later…
▪ 4 Specific phases
▪ Uses in iterations
▪ Combines planning and documentation with
prototyping in iterations
▪ There is an emphasis on risk analysis
▪ The radius of the iteration reflects the
accumulated cost involved
▪ Customer is involved throughout
SIT
SIT ICT2101/2201 Introduction
INF2001 - AY23/24, Tri 1 to Software Engineering, AY21/22, Tri 1 64
Attributes of the Spiral Model
The Good The Bad
▪ Customers see the product as it ▪ Iterations are very long - they could be 0.5-2
evolves. years
67
The Rational Unified
Process - 2003
▪ Another 15 years later ...
▪ Closely tied to UML (Unified model language) and
component-based modelling
▪ The Unified Process is not a series of steps for
constructing a software product
• No such single “one size fits all” methodology could
exist
• There is a wide variety of different types of software
▪ The Unified Process is an adaptable methodology
• It must be modified for the specific software
product to be developed
SIT ICT2101/2201
SIT INF2001 Introduction
- AY23/24, Tri 1 to Software Engineering, AY21/22, Tri 1 68
The Rational Unified Process (Framework)
A Phase represents the Business context of a step
Workflow: Technical context
Time
https://www.scnsoft.com/blog/software-development-models
Technically you can have as many You can deliver a component here or
iterations as you want. deliver all of them at the end in parallel
The above case is typically used.
https://www.scnsoft.com/blog/software-development-models
76
Birth of Agile Approaches
77
Agile Manifesto
▪ Signed in 2001 by “independent-minded practitioners”
“We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Individual & Interactions Over Processed & Tools
Over Comprehensive
Working Software
Documentation
▪ That is , while there is value in the items on the right, we value the items on the left
more.”
81
Scrum
Types of Agile
Kanban
Methods
https://getnave.com/blog/kanban-workflow/
SIT ICT2101/2201 Introduction to Software Engineering, AY21/22, Tri
SIT INF2001 - AY23/24, Tri 1 1 82
Attributes of the Agile Method
The Good The Bad
▪ Flexible to change and continuous ▪ May require some rework (since we
feedback which increases the change didn’t know EVERYTHING upfront)
of building the right product
▪ Requires close collaboration with the
▪ Customer Satisfaction client
▪ Early value delivery and early to ▪ Good tools for automation are a must
market have (poor ones might delay you)
▪ Team Ownership (self organizing ▪ Not every individual/team can adopt
team) Agile values, setup needs trust and
communication
SIT INF2001 - AY23/24, Tri 1 83
Practising Agile
▪ Gives the client confidence to know that a new version with additional
functionality will arrive every 3 weeks
▪ The developers know that they will have 3 weeks (but no more) to
deliver a new iteration
• Without client interference of any kind
SIT
SIT ICT2101/2201
INF2001 Introduction
- AY23/24, Tri 1 to Software Engineering, AY21/22, Tri 1 85
When to Use the Agile Method?
When to Use When Not to Use
▪ Lightweight methods suit small- ▪ Do not have a good team
to medium-size projects (or (attitude and skills)
large projects divided into ▪ For large projects where
components) customer needs specific
▪ Used for time-critical documentation and formal
applications and prototypes communication
▪ Requirements are sure to ▪ Large Systems that can’t be
change, new or uncertain broken into modules for smaller
▪ Technology is new teams
SIT INF2001 - AY23/24, Tri 1 86
Introduction to Scrum
▪ https://vimeo.com/334800839/3a7b2fa063
▪ Watch the video (4 mins) by Prof. Tan Chek
Tien
SIT
SIT ICT2101/2201 Introduction
INF2001 - AY23/24, Tri 1 to Software Engineering, AY21/22, Tri 1 87
What We Have Learned Today
▪ Motivation
• Developing software is not simple, and often not done well.
• Developing software is not the same as coding. There is much more
to it.
▪ We need to have good systems and processes in place.
▪ We want to keep maintenance in mind when developing.
▪ We want to detect faults as early as possible.
▪ Software Development Life Cycle (SDLC)
▪ Software models – their Pros, Cons, and when to use them
SIT INF2001 - AY23/24, Tri 1 88