Lecture No4

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 46

Introduction to Software Engineering

(CS-313)

Instructor: Sarosh Fatima


Department of Computer Science
NFC-IET (Multan)
Today’s Agenda
• What Is SDLC
• Phases of SDLC
• SDLC Models

2
What is SDLC?

• SDLC stands for Software Development Lifecycle

• It is a set of planned activities for developing any software product.

• Using SDLC is very important for developing a software, SDLC


divides all the tasks to be followed while developing a software into
various phases which makes the software most accurate and
perfect satisfying all the requirements and also for maintenance of
the software.

• Without SDLC, it becomes tough for software project managers to


monitor the progress of the project.
3
Phases of SDLC

There are 6 stages of SDLC which are:


1. Planning and Requirements
2. Analysis
3. Designing
4.Development/Coding
5.Testing
6.Deployment and Maintenance

4
5
1.Planning and Requirements

•It is the first and the most important phase of


SDLC
•In this phase the Business analyst collects the
client's requirements
•Based on that information it is then used to plan
the basic project approach, expenditure, risk
analysis, technical analysis, etc.
•After planning, a document is prepared called
SRS (Software requirement specification)
6
Analysis
• Once the requirement analysis is completed the next
step is to make SRS (Software requirement
specification)
• SRS document consists of all the product requirements
to be designed and developed during the project
• Based on SRS, two documents are further made that
are:
o FRS (Functional requirement specification)
o SRS (System requirement specification)

7
Designing
• Based on the requirements specified in SRS, product architecture is
proposed and a document is made called DDS (Design Document
Specification)
• System architect will convert the design into LLD (Low-Level
Design) and HLD (High-Level Design) which can de done by third-
party application if required
o LLD
o HLD

8
Development
•During this phase, developers start programming.

•Developers must follow the coding guidelines defined by their


organization or manager and programming tools like compilers,
interpreters, debuggers, etc. are used to generate the code.

•Different high-level programming languages are used such as C, C++,


Pascal, Java, and PHP are used for coding. The programming
language is chosen with respect to the type of software being
developed.

9
Testing
• This stage refers to the testing of the software where software's
defects are reported, tracked, fixed, and retested until the product
reaches the quality standards defined in the SRS (Software
Requirement Specification)

• Testing can be done manually and or by using automation tools

10
Deployment and Maintenance

 Deployment
• Once the product is tested and ready to be deployed, it is released
in the market.
 Maintenance
• Once the product is deployed in the market the client may want to
update or make some changes to the product then the maintenance
part does this task.
• Also, when product users use the software they may give feedback
which should be resolved from time to time

11
SDLC Models
• There are various software development life cycle models which are
followed during the software development process.
• Each model follows a Series of steps to ensure success in the process
of software development.
• There are some models of SDLC discussed below:
I. Waterfall Model
II. V-Model
III. Iterative Model
IV. Spiral Model
V. Incremental model
VI. Agile Model
VII. Fish Model
VIII. Big-Bang Model
IX RAD Model (Rapid Application Development)
12
X. Prototype Model
1. Waterfall Model

• In the waterfall model all the processes of software development are


divided into various phases/parts
• These parts are nothing but SDLC phases (Planning and
Requirement, Analysis, Designing, Development/Coding, Testing,
Deployment and Maintenance)
• In the waterfall Model the output of one phase is the input to its next
phase sequentially
• When one phase is completed fully (100%) only then next phase will
be executed
• In this model we can't go back from any phase

13
Waterfall Model diagram and
its Phases

14
Advantages and Disadvantages
Of Waterfall Model

 Advantages
• Simple and easy to understand and use
• Easy to manage due to its rigidness
• Phases are processed and completed one at a time
• In the Waterfall Model, processes and results are well documented
 Disadvantages
• If any changes are required at any phase, the whole process needs to be
start from the beginning. For example, if the application has now shifted to
the coding phase, and there is a change in requirement, It becomes tough
to go back and change it.
• This Model is not suitable for complex/large projects.
• Manage small projects

15
2. V-Model
• 'V' in 'V-Model' stands for verification and validation, hence it is called V-
Model
• It is called V-Model because of its structure. On the left side, there are all
the verification processes and on the right side, there are all the validation
phases, they are connected by the development/coding phase at the
bottom, which makes a v shape like structure
• In this model, testing is associated with every phase, which means that
every single phase in the development cycle, they are directly associated to
the testing phase
• Verification - In verification, reviewing is done without executing code. It is
the process of evaluation of the product development process to find
whether specified requirements meet.
• Verification involves :
• Requirement analysis,
• System design,
• Architecture design,
• Module design
16
• Validation - It involves testing of
functional and non-functional testing,
which is done after executing code.
• Validation involves :
• Unit Testing,
• Integration testing,
• System testing, and
• Acceptance testing 17
18
Advantages and Disadvantages
Of V-Model

• Advantages:
• Simple and easy to understand and use.
• It works perfectly for smaller projects where requirements are very well
understood.
• Each and every component is tested parallelly at every phase, so the
chances of errors are less
• Disadvantages:
• No feedback so less scope of changing
• No risk handling
• This Model is not suitable for large and complex
• Once an application is in the testing stage, it is difficult to go back and
change functionality, which means we can't go back from any phase which
affects customer satisfaction

19
3. Iterative Model

• This Model is just like Waterfall Model, unlike waterfall Model, in this, we
can go back to the previous phase if any changes are required

• The Iterative Model allows going not only to the previous phase but also
allows accessing all of its earlier phases

• Due to its allowance to go back to the previous or earlier phase, it results in


time-saving, cost-saving as well as effort-saving as we have to not start
from the beginning again if any change is required

• It is also called Advanced version of the Waterfall Model

20
Iterative Model Diagram

21
Advantages and Disadvantages
Of Iterative Model
• Advantages
• This model is easy to understand and execute
• Some working functionality can be developed quickly and early in
the life cycle.
• Less costly to change the scope/requirements.
• Testing and debugging during smaller iterations are easy.
• Feedback at every stage
• Disadvantages
• Requirement changes can cause over budget.
• Project completion date is not confirmed because of changing
requirements.
• No phase overlapping
• No intermediate delivery
• Rigid Model 22
4. Spiral Model
•In the Spiral Model all phases are divided into 4 quadrants that are:

•i. Objective determination and identifying alternative solutions


•ii. Identifying and resolving risks
•iii. Developing and verifying
•iv. Reviewing and planning for the next phase
Objective determination and identifying alternative solutions:
•This phase starts with gathering the business requirements .This phase also
includes understanding the system requirements by continuous communication
between the customer and the system analyst.

23
Spiral Model
Identifying and resolving risks:
It is the next phase in the spiral model, in this phase, we calculate and
identify all the risks and prepare solutions for that risks before
developing the project
Developing and verifying:
In this phase, the design of the project is made and after designing the
developers develop the project after developing the project, the testing
team will test the software deeply and then the project goes into the
last quadrant/phase
Reviewing and planning for the next phase:
In this phase, the developed project is shown to the client or manager if
any refinement is required it again starts from 1st quadrant which
makes one spiral

24
Spiral Model
A software project repeatedly passes through these phases in iterations called
Spirals.

25
Spiral Model
• Advantage:
• Risk Handling
• Large projects
• Flexible
• Costumer satisfaction
• Disadvantage:
• Complex
• Expensive
• Time
• Too much risk analysis

26
5. Agile Model
• In this model the 'Agile' means - fast, so as the name suggests, this
model is used when the project deadline is short/less
• In Agile Model, the tasks are divided into smaller parts which are
done from time to time which is called iteration for delivering the
project
• instantly
• In this Model, a working software build is delivered after each
iteration. The final build/iterations hold all the features required by
the customer. Customer's interaction is the backbone of the Agile
Model

27
28
Advantages and Disadvantages Of
Agile Model

• Advantages
• Resource requirements are minimum.
• Project delivery time is fast
• One-to-one communication with the client
• Changes can be done frequently
• Little or no planning is required
• Easy to manage
• Adaptive software development methods

29
Advantages and Disadvantages Of
Agile Model

Disadvantages
•Less documentation may result in confusion and
conflicts.
•Transfer of technology to new team members
may be quite challenging due to lack of
documentation.
•Depends heavily on customer interaction, so if
customer is not clear, team can be driven in the
wrong direction

30
6. Fish Model

• In the Fish Model, verification and validation are done


parallelly at each phase by two different teams.
• In Verification, reviewing is done of the whole phase, and
In Validation, testing is done of the whole phase.
• Except deployment and maintenance phases all other
processes are done by separate teams and then reports
are generated, by the end of the phases.
• All the phases when connected via a diagram it makes a
fish like structure, that's why it is called Fish Model

31
32
Advantages and Disadvantages
Of Fish Model

 Advantages
• Fish model is used for developing secure and Highly quality
software
• Fish Model is easy to implement and all the documents are created
one by one as the phases are completed
 Disadvantages
• This SDLC is expensive in terms of cost & time since it involves
verification as well as validation on almost all the phases
• it is not suitable for small projects

33
Note.
• The Fish Model emphasizes testing
activities even more than the V-Model,
especially in critical systems like
embedded systems or safety-critical
systems.

34
Comparison of Fish Model and V-Model

35
7. Big-Bang Model
• In the Big Bang model of the SDLC model, the model
does not follow any specific process.
• The development just starts with the required money and
efforts as the input, and the output is the software
developed which may or may not be as per customer
requirement
• There is no/less planning
• Usually this model is followed for small projects where
the development teams are very small
• For example - Academic projects

36
37
Advantages and Disadvantages
of Big- Bang Model
 Advantages
• This is a very simple model to understand
• Little or no planning required
• Easy to manage
• Very few resources required
• Gives flexibility to developers
 Disadvantages
• Very High risk and uncertainty
• Not a good model for complex and object-oriented projects
• Poor model for long and ongoing projects
• Can turn out to be very expensive if requirements are misunderstood

38
8. Prototype Model

• In this type of model, a toy model (aka Prototype Model)


is made first which is only a dummy model of a project
that is made on the basis of the client's requirement
• If the client accepts that toy model (Acceptance) then it
goes to the next phases which are designing,
developing, testing, deploying & Maintenance which is
called iterative development
• If any changes are required by the user, it can be done
at an earlier stage itself

39
40
Advantages and Disadvantages
Of Prototype Model

 Advantages
• • Customer satisfaction
• Reduce Maintenance cost
• Reduces time and cost as the defects can be detected much
earlier
• Throwaway model.
 Disadvantages
• Can take a long time
• It would be difficult if the customer is not clear with their idea
• .
41
9. RAD Model (Rapid Application
Development Model)
• Rapid application development is an SDLC Model that uses minimal
planning or not specific planning

• In this model the project is broken down into small modules and each
module may/may not be assigned independently to separate teams. These
modules can finally be combined to form the final product using some
powerful developer tools such as JAVA, C++, Visual BASIC, XML, etc. is
also an integral part of the projects.

42
9. RAD Model (Rapid Application
Development Model)

• Quick Prototype
• Iterative development
• Incremental release
• User Involvement
• Time Boxing
• Parallel Development

43
44
Advantages and Disadvantages
Of RAD Model
 Advantages
• It takes less time as powerful RAD tools are used
• Feedback from the customer is available at the initial stages
• Expenses are lesser as fewer developers are required and
automation tools are used
 Disadvantages
• Highly skilled professionals are required for use of powerful tools
• It is suitable for large projects only

45
Assignment 1
• Difference Between Agile and
Incremental model?
• What is cocomo model?
• Scrum Model?
• Extreme Programming? (XP)

46

You might also like