You are on page 1of 23

School of Science end Engineering

CSC-3324 Software Engineering I

Chapter II:
The Software Development Life Cycle &
Software Eng. Process Models
(~4,5hours / 1 Week)

Prof. Driss KETTANI


The Software Development Life Cycle…

The details
It starts with the
(contents, activities,
The software life client requirements
deliverables, etc) and
cycle is the set of (Specifications) and
the sequence of these
generic steps any ends with the
steps are determined
software product decommission
by the adopted
goes through… (death) of the
software process
Software Product...
model.

Software Engineering I / Prof. Driss Kettani / Fall 2021 2


The Software Development Life Cycle…

A Classical Software DLC with 7 Steps…

Software Engineering I / Prof. Driss Kettani / Fall 2021 3


The Software Development Life Cycle…

Another Classical Software DLC with 6 Steps…

Software Engineering I / Prof. Driss Kettani / Fall 2021 4


The Software Development Life Cycle…
The Most Important Steps…

Requirements Engineering / Analysis…

System & Software Design…

Implementation…

Exploitation and Maintenance

Software Engineering I / Prof. Driss Kettani / Fall


2021 5
The Software Development Life Cycle…
A Process ?

• A Software Process is the set of steps Software


Product goes through, along with indications on
their Importance, Timing, Sequence,
Interaction, Outcomes, etc.
• It is an imposed structure on the Software Life
Cycle…
Software Engineering I / Prof. Driss Kettani / Fall
2021 6
The Software Development Life Cycle…
Process vs. Methodology ?

• Very often, the terms « Process » and


« Methodology » are mixed!
• A Methodology provides more details then a
Process including: activities, millstones, roles,
actions, alternative plans, project management,
priorities, etc.

Software Engineering I / Prof. Driss Kettani / Fall 2021 7


The Software Development Life Cycle:
a Model ?

• A Model, in general, is a simplified version of a complex


reality/ situation…
• A Software Engineering Process Model groups together all
processes that have a particular common denominator…
• The common denominator is not universal/standard…
• It could be the sequence of work, the visibility factor, the
agility level, risk management based, etc.

Software Engineering I / Prof. Driss Kettani / Fall 2021 8


The Software Development Life Cycle:
a Model ?

• A Software Engineering Process Model is a simplified


“standard” template/reference to uphold/respect while
elaborating/developing a Software Product…
• A Software Engineering Process Model provides a clear
structure to adopt/respect in the execution of the different
activities/tasks of the software engineering process…
• it is an “imposed” structure on the process fabrication of
software…

Software Engineering I / Prof. Driss Kettani / Fall 2021 9


The Software Development Life Cycle:
a Model ?
• Why do we need it?
• Understanding…
• Managing Projects (Planning, Coordination,
Responsibilities, Risk, Time, Budget, etc.)…
• Assessment and Evaluation…
• Making an informed choice as Engineer and as
client…
• Etc.
How to choose the right model ?
Software Engineering I / Prof. Driss Kettani / Fall
2021 10
The Software Development Life Cycle:
Common Models ?

The
prototyping
/Evolutionary
Model

Software
Engineering
Models

Component- Waterfall
Based Model
Model

A software model is a simplified description of a software process


Software Engineering I / Prof. Driss Kettani / Fall
2021 11
The Waterfall Model…

• Separate and distinct phases of specifications and


development…
• Each step (requirement specification, software design,
implementation, etc.) is processed as a separate step…
• Every step should perfectly be gone through and provide all,
data, outcomes and information as prescribed before moving
ahead…
• Strong and irreversible…
• Naturally, the Waterfall Model runs better using a
formal/structured methodology…
Software Engineering I / Prof. Driss Kettani / Fall 2021 12
The Waterfall Model…

Software requirements specification

Software Engineering I / Prof. Driss Kettani / Fall


2021 13
The Waterfall Model…

Advantages:
◦ Reliability
◦ Visibility
◦ Predictability
◦ Project Management
Drawbacks:
◦ Heavy
◦ Long
◦ Costly
◦ Rigide

Software Engineering I / Prof. Driss Kettani / Fall


2021 14
The Evolutionary Model…
The prototyping model

The
Evolutionary
Model

Throwaway
Agile /
Prototyping

Iterative Incremental

Software Engineering I / Prof. Driss Kettani / Fall 2021 15


The Iterative Mode…
- Iterates through different releases of the software in order
to ultimately, progressively, obtain an acceptable
version…
- Aims at developing a system through building small
portions of every Specification…
- A poor Requirements/Specifications understanding...

Software Engineering I / Prof. Driss Kettani / Fall


2021 16
The Incremental Mode…
- The whole system is progressively developed, increment by
increment, following a strategic automation plan/vision…
- This Mode prerequisites the elaboration of a Conceptual
Architecture before developing increments...
- A good understanding of Requirements…
- A good compromise between the Waterfall Model and the
Evolutionary Model…

Software Engineering I / Prof. Driss Kettani / Fall


2021 17
Throwaway / Prototyping Mode…

 Developing several prototypes/ interfaces to be presented to /


and validated by the client in order to better understand the
system requirements…
 Start with a poorly understood requirements and involves the
client in an early stage…
 All prototypes that were developed so far to support the
Requirements Process should be thrown away…
 We keep only the specifications at the end of the prototyping
process!

Software Engineering I / Prof. Driss Kettani / Fall 2021 18


The Agile Mode…
 The Agile Manifesto and the 
Twelve Principles of Agile Software were the consequences
of industry frustration in the 1990s….
 The enormous time lag between business requirements and
the delivery of technology that answered those needs, led to
the cancelling of many projects…
 Business, requirements, and customer requisites changed
during this lag time, and the final product did not meet the
then current needs….
 The software development models of the day, led by the 
Waterfall model, were not meeting the demand for speed and
did not take advantage of just how quickly software could be
altered.

Software Engineering I / Prof. Driss Kettani / Fall


2021 19
The Agile Mode…

 Four Values…

I. Individuals and Interactions Over Processes and Tools

II. Working Software Over Comprehensive Documentation

III. Customer Collaboration Over Contract Negotiation

IV. Responding to Change Over Following a Plan

Software Engineering I / Prof. Driss Kettani / Fall 2021 20


The Agile Mode…
 Twelve Principles…
◦ Customer satisfaction through early and continuous software delivery…
◦ Accommodate changing requirements throughout the development process

◦ Frequent delivery of working software…
◦ Collaboration between the business stakeholders and developers throughout
the project…
◦ Support, trust, and motivate the people involved…
◦ Enable face-to-face interactions…
◦ Working software is the primary measure of progress…
◦ Agile processes to support a consistent development pace…
◦ Attention to technical detail and design enhances agility…
◦ Simplicity – Develop just enough to get the job done for right now….
◦ Self-organizing teams encourage great architectures, requirements, and
designs…
◦ Regular reflections on how to become more effective…

Software Engineering I / Prof. Driss Kettani / Fall 2021 21


The Agile Mode…
 Combines the Iterative and Incremental Modes…
 Very popular nowadays… Specifically in the context of
existing software products’ evolution…
 Every « Increment » or « Spring » is iteratively
developed following the agility Values and principles…
 The Agile mode is often associated with Scrum
Methodology for project Management and Extreme
Programming Approach for Implementation…

Software Engineering I / Prof. Driss Kettani / Fall 2021 22


Components-Based Development Model…

• Based on systematic reuse where systems are integrated from


existing components or COTS systems…
• This approach is becoming more and more popular…
• Process steps are PARTICULAR… Assembly vs. Development.
• Components Search and Analysis are at the heart of the whole
process…
• Pros: Almost no Design/Programming!!! Only Customizing…
• Cons: Adjustment of the different components can be tedious +
Can inherit the malfunctioning of any component/s after
adjustment…
Software Engineering I / Prof. Driss Kettani / Fall
2021 23

You might also like