You are on page 1of 33

Lesson 1 Introduction to Software Engineering – AUB

Part 4 ENMG 644 - Agile Software Project Management

Waterfall Model
PART IV: SOFTWARE PROCESS
MODELS

◦ Define a software process


Learning outcomes ◦ Understand the Waterfall model and its phases
◦ Understand the advantages and drawbacks of the
Waterfall model

W ATERFALL M ODEL 2

Imad Moukadem, PhD 1


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The software process


A software process is a set of activities required to develop a software system.
Many different software processes exist, but all involve:
◦ Specification – defining what the system should do
◦ Design and implementation – defining the organization of the system and implementing the
system
◦ Validation – checking that it does what the customer wants
◦ Evolution – changing the system in response to changing customer needs

W ATERFALL M ODEL 3

The Waterfall model (1/2)

Requirements
definition

System and
software design

Implementation
and unit testing

Integration and
system testing

Operation and
maintenance

W ATERFALL M ODEL 4

Imad Moukadem, PhD 2


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The Waterfall model (2/2)

W ATERFALL M ODEL 5

The Waterfall model phases (1/5)

Requirement Gathering and Analysis/Definition:

oRequirements of the system or project that is to be developed are captured from the
client.
oAll these requirements are documented in a software requirement specification
(SRS) document, and the SRS is verified by the client and after acceptance, next
phase begins.

W ATERFALL M ODEL 6

Imad Moukadem, PhD 3


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The Waterfall model phases (2/5)

System Design:

oThis phase prepares a design of a system.


oPlan all the system hardware and software requirements like what type of
programming languages or database are used

W ATERFALL M ODEL 7

The Waterfall model phases (3/5)

Implementation and Unit Testing:

oOnce the design of a system is prepared, the system is first developed in small programs
called units, which are integrated in the next phase.
oIn this phase, we are coding the software and performing unit testing.

W ATERFALL M ODEL 8

Imad Moukadem, PhD 4


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The Waterfall model phases (4/5)

Integration and System Testing:

oAll the units developed in the implementation phase are integrated into a system after
testing of each unit. Post integration the entire system is tested for any faults and
failures.

W ATERFALL M ODEL 9

The Waterfall model phases (5/5)

Operation and Maintenance:


o Once the testing is done, the product is deployed in the customer environment or
released into the market.
o If issues/bugs are discovered in the client environment, new versions could be
developed to handle these and further enhance the product.

W ATERFALL M ODEL 10

Imad Moukadem, PhD 5


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Advantages (1/2)

oA schedule can be set with deadlines for each stage of development and a product can
proceed through the development process model phases one by one.
oDevelopment moves from concept, through design, implementation, testing,
installation, troubleshooting, and ends up at operation and maintenance.

W ATERFALL M ODEL 11

Advantages (2/2)

oIn addition, it is simple and easy to understand and use.


oPhases are processed and completed within a specific interval.
oIt works well for smaller projects where requirements are very well understood.
oProcess and results are well documented.

W ATERFALL M ODEL 12

Imad Moukadem, PhD 6


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Drawbacks
oNo working software is produced until late during the life cycle
oHigh amounts of risk
oPoor model for long projects
oNot suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
oCannot accommodate changing requirements

W ATERFALL M ODEL 13

When to use the Waterfall model?


oRequirements are very well documented, clear and fixed
oProduct definition is stable
oTechnology is understood and is not dynamic
oThere are no ambiguous requirements
oThe project is short

W ATERFALL M ODEL 14

Imad Moukadem, PhD 7


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Incremental
Model
PART IV: SOFTWARE PROCESS
MODELS

◦ Understand the Incremental model and its phases


Learning outcomes ◦ Understand the advantages and drawbacks of the
Incremental model

INCREM ENTAL M ODEL 16

Imad Moukadem, PhD 8


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The Incremental model (1/2)

Write part 1 of the book


Write part 2 of the book
Write part 3 of the book

Until the book is finished!

INCREM ENTAL M ODEL 17

The Incremental model (2/2)

oThe Incremental model is a combination of one or more Waterfall models.


oIt delivers a series of releases called versions that provide progressively more
functionality for the customer as each version is delivered.
oUser requirements are ordered, and the highest priority requirements are included in
early increments.

INCREM ENTAL M ODEL 18

Imad Moukadem, PhD 9


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The Incremental model phases

INCREM ENTAL M ODEL 19

When to use the Incremental


model?
oIt is effective in the situations where requirements are well defined.
oWhere there is no confusion about the functionality of the final product .

INCREM ENTAL M ODEL 20

Imad Moukadem, PhD 10


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Advantages (1/2)

oThe cost of accommodating changing customer requirements is reduced


• The amount of analysis and documentation that must be redone is much less than is
required with the Waterfall model
oIt is easier to get customer feedback on the development work that has been done
• Customers can comment on demonstrations of the software and see how much has
been implemented

INCREM ENTAL M ODEL 21

Advantages (2/2)

oMore rapid delivery and deployment of useful software to the customer is possible
• Customers can use and gain value from the software earlier than is possible with a
waterfall process
oErrors are easy to be identified

INCREM ENTAL M ODEL 22

Imad Moukadem, PhD 11


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Drawbacks
oIt requires a good planning designing
oNeeds a clear and complete definition of the whole system before it can be broken
down and built incrementally
oThe process is not visible

INCREM ENTAL M ODEL 23

Spiral Model
PART IV: SOFTWARE PROCESS
MODELS

Imad Moukadem, PhD 12


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

◦ Understand the Spiral model and its phases


Learning outcomes ◦ Understand the advantages and drawbacks of the Spiral
model

SPIRAL M ODEL 25

The Spiral model (1/2)

o The spiral model recognizes that there are some problems associated with software
development and that they should be dealt with

SPIRAL M ODEL 26

Imad Moukadem, PhD 13


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The Spiral model (2/2)

SPIRAL M ODEL 27

Risks
oA risk is any situation that might affect the successful completion of a software project.
oRisks are possible conditions and events that prevent development teams from
achieving their goals.
oThe most important feature of the spiral model is handling these unknown risks after
the project has started.

SPIRAL M ODEL 28

Imad Moukadem, PhD 14


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Frequent risks
oThe client changes some of the requirements.
oDuring a long development, the users’ requirements are neglected or were
misunderstood.
oSomeone leaves the development team.
oOne of the component tasks of the development goes beyond its deadline.
oThe software performs too slowly or/and occupies too much main memory.
oA new software development tool or technology becomes available.
oA competitor launches a rival package onto the market.

SPIRAL M ODEL 29

Why the Spiral model? (1/2)

oMany decisions are taken during software development


oFor every decision there is a risk that something will go wrong, or a mistake will be
made
oThe later a problem is detected, the more effort is needed to fix it
oThe spiral model approach tries to discover errors frequently – at each cycle
• Then, something can be done about them immediately

SPIRAL M ODEL 30

Imad Moukadem, PhD 15


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Why the Spiral model? (2/2)

oAny process model should make provision for the possible risks.
oThe spiral model makes repeated provisions for dealing with these risks, and thus,
minimizes the risk to the software project.
oWhen evaluating the risks, some actions can then be taken to:
◦ Control the project
◦ Rescue the project
◦ Abandon the project

SPIRAL M ODEL 31

The Spiral model phases


1. Determine objectives
2. Evaluating alternatives, identifying and resolving risks
3. Development and Test (Construction)
4. Plan the next iteration (Evaluation)

SPIRAL M ODEL 32

Imad Moukadem, PhD 16


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Number of cycles
oThe number of cycles is not prescribed by the spiral model.
oAs many cycles as necessary are used.
oFurther, the number of cycles is not known at the start of a project.
oIt is decided as the project proceeds based on the evaluations that are carried out at
the end of each cycle.

SPIRAL M ODEL 33

Advantages
oRisk Management
oCustomer Involvement and Feedback
oPerfect for a large project

SPIRAL M ODEL 34

Imad Moukadem, PhD 17


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Drawbacks
oExpensive
oQuite complex
oTime management

SPIRAL M ODEL 35

Prototyping
Model
PART IV: SOFTWARE PROCESS
MODELS

Imad Moukadem, PhD 18


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

◦ Understand the Prototyping model and its phases


Learning outcomes ◦ Understand the advantages and drawbacks of the
Prototyping model

PROTOTYPING M ODEL 37

Coping with change


oChange is inevitable in all large software projects
◦ Business changes lead to new and changed system requirements
◦ New technologies open new possibilities for improving implementations
◦ Changing platforms require application changes
oChange leads to rework so the costs of change include both rework (e.g., re-analyzing
requirements) as well as the costs of implementing new functionalities.

PROTOTYPING M ODEL 38

Imad Moukadem, PhD 19


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Reducing the costs of rework


oChange avoidance: where the software process includes activities that can anticipate
possible changes before significant rework is required.
oChange tolerance: where the process is designed so that changes can be
accommodated at relatively low cost.
◦ This normally involves some form of incremental development.
◦ Proposed changes may be implemented in increments that have not yet been developed.
◦ If this is impossible, then only a single increment may have been altered to incorporate the
change.

PROTOTYPING M ODEL 39

Coping with changing requirements


oSystem prototyping: where a version of the system or part of the system is developed
quickly to check the customer’s requirements and the feasibility of design decisions.
oIncremental delivery: where system increments are delivered to the customer for
comments and experimentations.

PROTOTYPING M ODEL 40

Imad Moukadem, PhD 20


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Software prototype
oA prototype is an initial version of a system used to demonstrate concepts and try out
design options.
oA prototype can be used in:
◦ The requirements engineering process to help with requirements elicitation and
validation.
◦ In design processes to explore options and develop a UI design.

PROTOTYPING M ODEL 41

Prototyping model
oPrototype methodology is defined as a software development model in which a
prototype is built, test, and then reworked when needed until an acceptable prototype
is achieved.
oIt also creates a base to produce the final system.
oSoftware prototyping model works best in scenarios where the project's requirement
are not known.

PROTOTYPING M ODEL 42

Imad Moukadem, PhD 21


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

The Prototyping model phases (1/2)

PROTOTYPING M ODEL 43

The Prototyping model phases (2/2)

1. Requirements gathering and analysis


2. Quick software design
3. Build the prototype
4. Initial user evaluation
5. Refining the prototype
6. Implementation

PROTOTYPING M ODEL 44

Imad Moukadem, PhD 22


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Advantages (1/2)

oUsers are actively involved in development.


oErrors can be detected early.
oMissing functionality can be identified, which helps to reduce the risk of failure .
oCustomer satisfaction exists because the customer can feel the product at a very early
stage.

PROTOTYPING M ODEL 45

Advantages (2/2)

oSoftware rejection is hard.


oPrototypes may offer early training for future users of the software system.
oMaintenance effort is reduced because the system meets the users’ needs.
oSystems are easier for end users to learn and use because users know what to expect.

PROTOTYPING M ODEL 46

Imad Moukadem, PhD 23


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Drawbacks (1/2)

oPrototyping is a slow and time taking process.


oCustomers may not be willing to participate in the iteration cycle for the longer time
duration.
oThere may be far too many variations in software requirements when each time the
prototype is evaluated by the customer.

PROTOTYPING M ODEL 47

Drawbacks (2/2)

oEstimating, planning and managing a prototyping project can be difficult because it can
be hard to predict the number of needed prototyping iterations.
oPoor documentation because the requirements of the customers are changing.
oAfter seeing an early prototype model, the customers may think that the actual product
will be delivered soon.
oThe client may lose interest in the final product if he/she is not happy with the initial
prototype.

PROTOTYPING M ODEL 48

Imad Moukadem, PhD 24


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Best Practices of Prototyping


oUse Prototyping model when the requirements are unclear.
oThis model is especially popular for the development of the user interface part of the
project.
oRegular meetings are necessary to keep the project on time and avoid costly delays.
oAt a very early stage, the prototype needs to be approved and only then the team is
allowed to move to the next step.
oImplement important features early on so that if the project runs out of the time, you
still have a worthwhile system.

PROTOTYPING M ODEL 49

Prototyping techniques
oThe objectives of prototyping should be made explicit from the start of the
process.
oDuring this process, you have also to decide what to put into and what to leave
out of the prototype system.
oTo reduce prototyping costs and accelerate the delivery schedule, you may
leave some functionality out of the prototype.

PROTOTYPING TECHNIQUES 50

Imad Moukadem, PhD 25


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Prototyping techniques (1/4)

Reuse components:
oThe time needed to develop a prototype can be reduced if many parts of the system
can be reused rather than designed and implemented.
oThe reusable components may also be used in the final system, thus, reducing its
development cost.

PROTOTYPING TECHNIQUES 51

Prototyping techniques (2/4)

Ignore error handling:


Error handling includes:
◦ Validation of user data input from keyboards.
◦ Handling input-output device errors.
◦ Exception handling software.

PROTOTYPING TECHNIQUES 52

Imad Moukadem, PhD 26


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Prototyping techniques (3/4)

Omit features:
oIt may be that some features can simply be omitted in a prototype.
oThese components of a production quality system can be significantly costly in
development effort and so their omission makes construction of a prototype faster

PROTOTYPING TECHNIQUES 53

Prototyping techniques (4/4)

Ignore functionality
oThis type of prototype is often used during the design of the user interface.
oFor example, suppose we were setting out to develop a new word processor, we could,
very quickly, create a mock-up of what would appear on the screen, while the actual
functions of the word processor are simply not implemented.

PROTOTYPING TECHNIQUES 54

Imad Moukadem, PhD 27


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Agile Model
PART IV: SOFTWARE PROCESS
MODELS

◦ Understand the Agile model and its phases


Learning outcomes ◦ Understand the advantages and drawbacks of the Agile
model

AGILE M ODEL 56

Imad Moukadem, PhD 28


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Agile process model (1/2)

Agile software engineering combines a philosophy and a set of development


guidelines
Philosophy
◦ Encourages customer satisfaction and early incremental delivery of the software
Development guidelines
◦ Active and continuous communication between developers and customers

AGILE M ODEL 57

Agile process model (2/2)

oAgile SDLC model is a combination of iterative and incremental process models with
focus on process adaptability and customer satisfaction by rapid delivery of working
software product
oAgile methods break the product into small incremental builds. These builds are
provided in iterations. Each iteration typically lasts from about one to three weeks
oEvery iteration involves cross functional teams working simultaneously on various
areas like planning, requirements analysis, design, coding, unit testing, and acceptance
testing
oAt the end of the iteration a working product is displayed to the customer and
important stakeholders

AGILE M ODEL 58

Imad Moukadem, PhD 29


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Agile vs. Traditional SDLC models (1/2)


oAgile is based on the adaptive software development methods whereas the traditional
SDLC models like waterfall model is based on predictive approach.
oPredictive teams in the traditional SDLC models usually work with detailed planning
and have a complete forecast of the exact tasks and features to be delivered in the
next few months or during the product life cycle.
oPredictive methods entirely depend on the requirement analysis and planning done in
the beginning of cycle. Any changes to be incorporated go through a strict change
control management and prioritization.

AGILE M ODEL 59

Agile vs. Traditional SDLC models (2/2)


oAgile uses adaptive approach where there is no detailed planning and there is clarity
on future tasks only in respect of what features need to be developed
oThe product is tested very frequently, through the release iterations, minimizing the
risk of any major failures in future
oCustomer interaction is the backbone of Agile methodology, and open communication
with minimum documentation are the typical features of Agile development
environment
oThe agile teams work in close collaboration with each other and are most often
located in the same geographical location

AGILE M ODEL 60

Imad Moukadem, PhD 30


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Agile vs. Waterfall models (1/3)

Agile Model Waterfall Model


Agile method proposes incremental and iterative Development of the software flows sequentially
approach to software design from start point to end point.
The agile process is broken into individual models The design process is not broken into an individual
that designers work on models
The customer has early and frequent opportunities
The customer can only see the product at the end
to look at the product and make decision and
of the project
changes to the project
Agile model is considered unstructured compared Waterfall model are more secure because they are
to the waterfall model so plan oriented

AGILE M ODEL 61

Agile vs. Waterfall models (2/3)

Agile Model Waterfall Model


Small projects can be implemented very
quickly. For large projects, it is difficult to All sorts of project can be estimated and completed.
estimate the development time.
Only at the end, the whole product is tested. If the
Error can be fixed in the middle of the project. requirement error is found or any changes must be
made, the project must start from the beginning.
Development process is iterative, and the The development process is phased, and the phase is
project is executed in short (2-4) weeks much bigger than iteration. Every phase ends with the
iterations. Planning is very less. detailed description of the next phase.
Documentation is a top priority and can even use for
Documentation attends less priority than
training staff and upgrade the software with another
software development.
team

AGILE M ODEL 62

Imad Moukadem, PhD 31


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Agile vs. Waterfall models (3/3)

Agile Model Waterfall Model


In agile testing when an iteration end, shippable
features of the product is delivered to the
All features developed are delivered at once after
customer. New features are usable right after
the long implementation phase.
shipment. It is useful when you have good contact
with customers.
Testers and developers work together. Testers work separately from developers
At the end of every sprint, user acceptance is User acceptance is performed at the end of the
performed. project.
Developer does not involve in requirement and
It requires close communication with developers
planning process. Usually, time delays between
and together analyze requirements and planning.
tests and coding.

AGILE M ODEL 63

Advantages of Agile model


oCustomer satisfaction by rapid, continuous delivery of useful software
oPeople and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other
oWorking software is delivered frequently (weeks rather than months)
oFace-to-face conversation is the best form of communication
oClose, daily cooperation between business-people and developers
oRegular adaptation to changing circumstances
oEven late changes in requirements are welcomed

AGILE M ODEL 64

Imad Moukadem, PhD 32


Lesson 1 Introduction to Software Engineering – AUB
Part 4 ENMG 644 - Agile Software Project Management

Disadvantages of Agile model


oIn case of some software deliverables, especially the large ones, it is difficult to assess
the effort required at the beginning of the software development life cycle
oThere is lack of emphasis on necessary designing and documentation
oThe project can easily get taken off track if the customer representative is not clear
what outcome that they want
oOnly senior programmers can take the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless
combined with experienced resources

AGILE M ODEL 65

When to use Agile model?


•When new changes need to be implemented. The freedom agile gives to change is
considerable.
•To implement a new feature: in this case, the developers need to lose only the work of
a few days, or even only hours, to roll back and implement it.

AGILE M ODEL 66

Imad Moukadem, PhD 33

You might also like