0% found this document useful (0 votes)
16 views16 pages

Software Engineering_Lab2

The document outlines the software development lifecycle, focusing on classical models such as the Waterfall, V, Prototype, Spiral, RAD, Iterative, and Incremental models. It details the stages of software development including requirements, analysis, design, implementation, maintenance, and retirement, using examples like an alarm clock app and large-scale projects. The document also discusses the pros and cons of the Waterfall model and introduces the concept of rapid software development and agile methodologies for future discussion.

Uploaded by

cikif83366
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views16 pages

Software Engineering_Lab2

The document outlines the software development lifecycle, focusing on classical models such as the Waterfall, V, Prototype, Spiral, RAD, Iterative, and Incremental models. It details the stages of software development including requirements, analysis, design, implementation, maintenance, and retirement, using examples like an alarm clock app and large-scale projects. The document also discusses the pros and cons of the Waterfall model and introduces the concept of rapid software development and agile methodologies for future discussion.

Uploaded by

cikif83366
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

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

https://www.menti.com/ed5d1cqv7r
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

You might also like