KARABUK UNIVERSITY
Computer Engineering Department
CPE 310 Software Engineering
Lab#2
Software Development Lifecycle
Classical Models
Hasan Kivrak
Agenda
● Plan Driven Software Process Models
○ Examples
○ Interactive remote questionnaire
Plan-Driven Software Process Models
1. Waterfall model
2. V model
3. Prototype model
4. Spiral model
5. RAD model
6. Iterative model
7. Incremental model
● In practice, most large systems are developed using a process that
incorporates elements from all of these models.
Software Development Stages
● A very classical model called “waterfall” contains the
following stages:
1. Requirements Phase
2. Analysis(specification) phase
3. Design phase
4. Implementation phase
5. Post-delivery maintenance
6. Retirement
● A mobile “alarm clock app”
○ Let’s practise on the questions you should ask for
each stage of the software development.
Requirements Phase
● For the requirements phase, almost no technical detail should be
considered in detail.
○ Explore the concept
○ Elicit/List the client’s requirements
● Software is treated as a black box, we enlist the features that we wish to
see
○ Do we have snooze(period of sleep) operation?
○ Should we be able to give alias/name to alarms?
○ Is there going to be a soft alarm?
○ Should we be able to save multiple alarms?
○ Do we support periodic alarms?
○ Should we be able to assign custom alarm sounds?
○ … and many more
Analysis Phase
● In the analysis phase, primary requirements on the technical issues are analyzed in
a broad perspective.
○ Analyze the client’s requirements
○ Draw up the specification document
○ Draw up the software project management plan
○ “What the product is supposed to do”
● In this phase for the alarm clock app we ask questions like
○ What is the maximum snooze repetition, how much should we wait in between?
○ Should the user be able to edit snooze time?
○ How should we increase the sound in soft alarm, should we use a different melody?
○ How should we list multiple alarms?
○ Should we disable the periodic alarm in holidays? How should we get the holiday
information?
○ … and many more
Design Phase
● In the design phase, most of the necessary decisions on the technical
issues are made.
○ Architectural design, followed by
■ GUI design
■ Data and Functional design
● In this phase for the alarm clock app we discuss questions like
○ Where should we save the alarm parameters (local db, file, cloud)?
○ How should the alarm list look like?
○ How should the single alarm edit screen look like?
○ What kind of mechanism should we use to trigger alarm? Thread- daemon
process?
○ Should we use a list or an array for the alarm list?
○ How should we cache the holiday dates?
Rest of the Phases
● Implementation phase
○ Coding
○ Unit testing
○ Integration
○ Acceptance testing
● Post-delivery maintenance
● Retirement
Cost of the Phases
● Surprisingly, the average costs of the classical development
phases have hardly changed
Example 1
● Assume Turkey Defence organization did a recent study and
want to build an air defence system to keep the country
protected from potential conflicts in the region
● The air defence system has never been attempted and no
literature exist for such system
● It is fairly big and complex system and potential can take a
decade to build
● Scientists have not clearly expressed idea and no concrete plan
exists
● There are lot of Organization stakeholders and constraints that
will impact this initiative.
● So there is a lot of risk, a lot of constraints.
Example 1 - Analysis & Recommendations
● Fairly unknown needs and outcomes
● Very very risky
● Very large and complex project
Each cycle in the spiral
● Objective setting
● Risk assessment
● Development and test
● Planning next iteration
Example 2
● Very large hospital with locations all over the world wanted to
automate their processes
● Hired a company that is expert in this area and has done similar
automation but not at this scale
● Hospital management want consistency across the globe but not
sure about the nuances in different part of the world
● Few of the places can benefit greatly from the immediate
automation.
Example 2 - Analysis & Recommendations
● Fairly known problem
● Fairly known solution except
the scale
● Benefit form phased delivery
● May tweak a bit based on early
iterations
● Wants consistency
Waterfall Model (Pros and Cons)
Pros Cons
● Simple and disciplined, ● Rigid structure to allow
structured approach necessary changes
● Project management is easy
● Very late delivery
● Maintenance is easier
● Blocking phases
○ Coders must wait designers to
▪ This model is appropriate when the prepare design document
requirements are well-understood and
changes will be limited during the ● Major design problems may not
design process. be detected till very late.
▪ Military, Government Projects
● Limited customer engagement,
resulting in poor satisfaction
Next Week
● Rapid software development and delivery is now often the most
important requirement for software systems
○ System is developed as a series of versions with stakeholders involved in version
evaluation
○ Agile methodologies will be covered next week.
Interactive remote questionnaire
[Link]
Or Use the code: 57 69 64 5
1. Reach either computer or mobile phone
2. Enter a nickname
3. You are going to asked 4 questions