0% found this document useful (0 votes)
4 views

CSC3209

The document outlines the major phases of the Software Development Life Cycle (SDLC), including Planning & Analysis, Define Requirements, Design, Development, Testing, Deployment, and Maintenance. It also explains various software development models such as the Waterfall Model, Iterative Model, Spiral Model, V-Model, and Big Bang Model, detailing their processes, advantages, and disadvantages. Each model serves different project needs and complexities, emphasizing the importance of selecting the appropriate approach for software development.

Uploaded by

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

CSC3209

The document outlines the major phases of the Software Development Life Cycle (SDLC), including Planning & Analysis, Define Requirements, Design, Development, Testing, Deployment, and Maintenance. It also explains various software development models such as the Waterfall Model, Iterative Model, Spiral Model, V-Model, and Big Bang Model, detailing their processes, advantages, and disadvantages. Each model serves different project needs and complexities, emphasizing the importance of selecting the appropriate approach for software development.

Uploaded by

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

YUSUF MAITAMA SULE UNIVERSITY, KANO

FACULTY OF COMPUTING
DEPARTMENT OF COMPUTER SCIENCE

CSC3209 – Formal Methods In Software Development

Question:
1. Describe the major phases of Software Development Life Cycle (SDLC).
2. Fully explain the following Software development models.

i. Waterfall Model
ii. Iterative Model
iii. Spiral Model
iv. V–model
v. Big Bang Model

Prepared by:

Khalil Jamil Ahmad

UG23CSC3087

25th May, 2024

Kano, Nigeria

1
MAJOR PHASES OF THE SOFTWARE DEVELOPMENT LIFE CYCLE
(SDLC)

The SDLC process will look a little different for every team and product. However, these are the
stages that most SDLC frameworks have in common:

Figure 1 - SDLC Phases

1. Planning & Analysis


The first phase of the SDLC is the project planning stage where you are gathering business
requirements from your client or stakeholders. This phase is when you evaluate the feasibility of
creating the product, revenue potential, the cost of production, the needs of the end-users, etc.

2
To properly decide what to make, what not to make, and what to make first, you can use a
feature prioritization framework that takes into account the value of the software/update, the
cost, the time it takes to build, and other factors.

Once it is decided that the software project is in line with business and stakeholder goals,
feasible to create, and addresses user needs, then you can move on to the next phase.

2. Define Requirements
This phase is critical for converting the information gathered during the planning and analysis
phase into clear requirements for the development team. This process guides the development of
several important documents: a software requirement specification (SRS) or product
specification, a Use Case document, and a Requirement Traceability Matrix document.

3. Design
The design phase is where you put pen to paper—so to speak. The original plan and vision are
elaborated into a software design document (SDD) that includes the system design, programming
language, templates, platform to use, and application security measures. This is also where you
can flowchart how the software responds to user actions.

In most cases, the design phase will include the development of a prototype model. Creating a
pre-production version of the product can give the team the opportunity to visualize what the
product will look like and make changes without having to go through the hassle of rewriting
code.

4. Development
The actual development phase is where the development team members divide the project into
software modules and turn the software requirement into code that makes the product.

This SDLC phase can take quite a lot of time and specialized development tools. It’s important
to have a set timeline and milestones so the software developers understand the expectations and
you can keep track of the progress in this stage.

In some cases, the development stage can also merge with the testing stage where certain tests

3
are run to ensure there are no critical bugs.

Keep in mind, different types of product development software will have different specialties so
you’ll want to pick the one that suits you best.

5. Testing
Before getting the software product out the door to the production environment, it’s important to
have your quality assurance team perform validation testing to make sure it is functioning
properly and does what it’s meant to do. The testing process can also help hash out any major
user experience issues and security issues.

In some cases, software testing can be done in a simulated environment. Other simpler tests can
also be automated.

The types of testing to do in this phase:

Performance testing: Assesses the software's speed and scalability under different conditions
Functional testing: Verifies that the software meets the requirements
Security testing: Identifies potential vulnerabilities and weaknesses
Unit-testing: Tests individual units or components of the software
Usability testing: Evaluates the software's user interface and overall user experience
Acceptance testing: Also termed end-user testing, beta testing, application testing, or field
testing, this is the final testing stage to test if the software product delivers on what it promises

6. Deployment
During the deployment phase, your final product is delivered to your intended user. You can
automate this process and schedule your deployment depending on the type. For example, if you
are only deploying a feature update, you can do so with a small number of users (canary release).
If you are creating brand-new software, you can learn more about the different stages of the
software release life cycle (SRLC).

7. Maintenance

4
The maintenance phase is the final stage of the SDLC if you’re following the waterfall structure
of the software development process. However, the industry is moving towards a more agile
software development approach where maintenance is only a stage for further improvement.

In the maintenance stage, users may find bugs and errors that were missed in the earlier testing
phase. These bugs need to be fixed for better user experience and retention. In some cases, these
can lead to going back to the first step of the software development life cycle.

The SDLC phases can also restart for any new features you may want to add in your next
release/update.

SOFTWARE DEVELOPMENT MODELS


Software development models are various processes or methods that are chosen for project
development depending on the objectives and goals of the project. Many development life
cycle models have been developed to achieve various essential objectives. Models specify the
various steps of the process and the order in which they are executed.

Let’s look at the each and every model in brief one by one:-

1. Waterfall Model
Waterfall model is a famous and good version of SDLC(System Development Life Cycle) for
software engineering. The waterfall model is a linear and sequential model, which means that a
development phase cannot begin until the previous phase is completed. We cannot overlap
phases in waterfall model.

We can imagine waterfall in the following way:-

“Once the water starts flowing over the edge of the cliff, it starts falling down the mountain
and the water cannot go back up.”

Similarly waterfall model also works, once one phase of development is completed then we
move to the next phase but cannot go back to the previous phase.

In the waterfall model, the output of one phase serves as the input for the other phase.

5
Figure 2 - Waterfall Model

Phases of Waterfall Model:

1. Requirement phase:- Requirement phase is the first phase of the waterfall model. In
this phase the requirements of the system are collected and documented. This phase is
very crucial because the next phases are based on this phase.
2. Design phase:- Design phase is based on the fact how the software will be built. The
main objective of the design phase is to prepare the blueprint of the software system so
that no problems are faced in the coming phases and solutions to all the requirements in
the requirement phase are found.
3. Implementation phase:- In this phase, hardware, software and application programs are
installed and the database design is implemented. Before the database design can be
implemented, the software has to go through a testing, coding, and debugging process.
This is the longest lasting phase in waterfall.
4. Verification phase:- In this phase the software is verified and it is evaluated that we
have created the right product. In this phase, various types of testing are done and every
area of the software is checked. It is believed that if we do not verify the software
properly and there is any defect in it then no one will use it, hence verification is very
important. One advantage of verification is that it reduces the risk of software failure.
1. Maintenance phase:- This is the last phase of waterfall. When the system is ready
and users start using it, then the problems that arise have to be solved time-to-time.
Taking care of the finished software and maintaining it as per time is called
maintenance.

6
Advantages of Waterfall Model

· This model is simple and easy to understand.


· This is very useful for small projects.
· This model is easy to manage.
· The end goal is determined early.
· Each phase of this model is well explained.
· It provides a structured way to do things.
· This is a base model, all the SDLC models that came after this were created keeping this
in mind, although they worked to remove its shortcomings.
· In this model, we can move to the next phase only after the first phase is successfully
completed so that there is no overlapping between the phases.

Disadvantages of Waterfall Model

· In this model, complete and accurate requirements are expected at the beginning of the
development process.
· Working software is not available for very long during the development life cycle.
· We cannot go back to the previous phase due to which it is very difficult to change the
requirements.
· Risk is not assessed in this, hence there is high risk and uncertainty in this model.
· In this the testing period comes very late.
· Due to its sequential nature this model is not realistic in today’s world.
· This is not a good model for large and complex projects.

2. Iterative Model
In Iterative model we start developing the software with some requirements and when it is
developed, it is reviewed. If there are requirements for changes in it, then we develop a new
version of the software based on those requirements. This process repeats itself many times
until we get our final product.

So, in Iterative model a software is developed by following several iterations. Iteration means
that we are repeating the development process again and again. For example, we develop the
first version of the software following the SDLC process with some software requirements. We
can call this Iteration 1.

7
After the first version is developed, if there is a need to change the software , then a new
version is developed with the second iteration. Now again we will see if the new version is
enough, if not then we will make changes in it with the third iteration. The iteration will be
repeated until the complete software is ready.

The basic concept of Iterative model is that the software should be developed through repeated
cycles or what we also call iteration and only a small part of it should be developed at a time.
This model was developed to overcome the drawbacks of the classical waterfall model.

Through this diagram you can understand the Interactive model.:-

Figure 3 - Iterative Modal

Phases of Iterative Model:

1. Requirement gathering & analysis: In this phase, all the software requirements of the
customer are collected and it is analyzed whether those requirements can be meet or
not. Besides, it is also checked whether this project will not go beyond our budget.
2. Design: In this phase the design of software is prepared. For this, various diagrams like
Data Flow diagram, class diagram, activity diagram, state transition diagram, etc. are
used.
3. Implementation: Now the design of software is implemented in coding through various
programming languages. We also call this coding phase.
4. Testing: After the coding of the software is done, it is now tested so that the bugs and
errors present in it can be identified. To do this, various testing techniques like
performance testing, security testing, requirement testing, stress testing, etc. are done.
5. Deployment: Finally the software is given to the customer. After this the customer starts
8
using that software in his work environment.
6. Review: After the software is deployed in its work environment, it is reviewed. If any
error/bug is found or any new requirements come in front of developer, then again these
phases are repeated with new iteration and a new version is developed.
7. Maintenance: In this phase we look at customer feedback, solve problems, fix errors,
update software, etc.

Advantage of Iterative model:-

· In iterative models, bugs and errors can be identified quickly.


· Under this model, software is prepared quickly with some specifications.
· Testing and debugging the software becomes easier during each iteration.
· We get reliable feedback from users along with blueprints.
· This model is easily adaptable to constantly changing needs.
· During the software development process, additional time is devoted to development
and limited time to documentation.
· Risks are identified and resolved during iteration.

Disadvantage of Iterative model:-

· Iterative model is not suitable for small projects.


· Since we have to repeat iterations many times in the software development process
due to which we require more resources.
· Since the requirements are constantly changing, we have to make frequent changes in
the software.
· Due to constantly changing requirements, the budget of the project also increases and
it takes more time to complete it.
· In this model, it is complicated to control the entire process of software development.
· It is very difficult to tell by what date the complete software will be ready.

3. Spiral Model
Spiral model is a software development process model. This model has characteristics of both
iterative and waterfall models. This model is used in projects which are large and complex.
This model was named spiral because if we look at its figure, it looks like a spiral, in which a
long curved line starts from the center point and makes many loops around it. The number of
9
loops in the spiral is not decided in advance but it depends on the size of the project and the
changing requirements of the user. We also call each loop of the spiral a phase of the software
development process.

A software project goes through these loops again and again in iterations. After each iteration a
more and more complete version of the software is developed. The most special thing about
this model is that risks are identified in each phase and they are resolved through prototyping.
This feature is also called Risk Handling.

Since it also includes the approaches of other SDLC models, it is also called Meta Model. It
was first developed by Barry Boehm in 1986.

Figure 4 - Spiral Model

Phases of Iterative Model:

In Spiral Model the entire process of software development is described in four phases which
are repeated until the project is completed. Those phases are as follows:-

1. Determining objectives and alternate solutions: In the first phase, whatever


requirements the customer has related to the software are collected. On the basis of
which objectives are identified and analyzed and various alternative solutions are
proposed.
2. Identifying and resolving risks: In this phase, all the proposed solutions are assessed
and the best solution is selected. Now that solution is analyzed and the risks related to it

10
are identified. Now the identified risks are resolved through some best strategy.
3. Develop and test: Now the development of software is started. In this phase various
features are implemented, that is, their coding is done. Then those features are verified
through testing.
4. Review and plan for the next phase: In this phase the developed version of the
software is given to the customer and he evaluates it. Gives his feedback and tells new
requirements. Finally planning for the next phase (next spiral) is started.

Advantages of Spiral Model:-

· If we have to add additional functionality or make any changes to the software, then
through this model we can do so in the later stages also.
· Spiral model is suitable for large and complex projects.
· It is easy to estimate how much the project will cost.
· Risk analysis is done in each phase of this model.
· The customer can see the look of his software only in the early stages of the development
process.
· Since continuous feedback is taken from the customer during the development process,
the chances of customer satisfaction increases.

Disadvantage of Spiral Model:-

· This is the most complex model of SDLC, due to which it is quite difficult to manage.
· This model is not suitable for small projects.
· The cost of this model is quite high.
· It requires more documentation than other models.
· Experienced experts are required to evaluate and review the project from time to time.
· Using this model, the success of the project depends greatly on the risk analysis phase.

4. V-Model
V-Model is an SDLC model, it is also called Verification and Validation Model. V-Model is
widely used in the software development process, and it is considered a disciplined model. In
V-Model, the execution of each process is sequential, that is, the new phase starts only after
the previous phase ends.
11
It is based on the association of testing phase with each development phase that is in V-Model
with each development phase, its testing phase is also associated in a V-shape in other words
both software development and testing activities take place at the same time.

So in this model, Verification Phase will be on one side, Validation Phase will be on the other
side that is both the activities run simultaneously and both of them are connected to each other
in V-Shape through Coding Phase, hence it is called V-Model.

V-Design: In V-Design the left side represents the development activity, the right side
represents the testing activity.

Figure 5 - V-Model

Phases of V- Model:

1. Requirements analysis:- This is the first phase of the development cycle, in which the
requirements of the product are analyzed according to the customer’s needs. In this
phase, product related requirements are thoroughly collected from the customer. This is
a very important phase because this phase determines the coming phases. In this phase,
acceptance tests are designed for later use.
2. System design:- When we have the requirements of the product, after that we prepare a
complete design of the system. In this phase, a complete description of the hardware
and all the technical components required to develop the product .
12
3. Architectural design:- In this phase architectural specifications are designed. It contains
the specification of how the software will link internally and externally with all the
components. Therefore this phase is also called high level design (HLD).
4. Module design:- In this phase the internal design of all the modules of the system is
specified. Therefore it is called low level design (LLD). It is very important that the
design of all modules should be according to the system architecture. Unit tests are also
designed in the module design phase.
5. Coding phase:- In the coding phase, coding of the design and specification done in the
previous phases is done. This phase takes the most time.

Validation Phases of V-Model

1. Unit testing:- In the unit testing phase, the unit tests created during the module design
phase are executed. Unit testing is code level testing, it only verifies the technical
design. Therefore it is not able to test all the defects.
2. Integration testing:- In integration testing, the integration tests created in the
architectural design phase are executed. Integration testing ensures that all modules are
working well together.
3. System testing:– In system testing, the system tests created in the system design phase
are executed. System tests check the complete functionality of the system. In this, more
attention is given to performance testing and regression testing.
4. Acceptance testing:- In acceptance testing, the acceptance tests created in the
requirement analysis phase are executed. This testing ensures that the system is
compatible with other systems. And in this, non-functional issues like:- load time,
performance etc. are tested in the user environment.

Advantages of V-Model

· This is a simple and easy to use model.


· Planning, testing and designing tests can be done even before coding.
· This is a very disciplined model, in which phase by phase development and testing goes
on.
· Defects are detected in the initial stage itself.
· Small and medium scale developments can be easily completed using it.

13
Disadvantages of V-Model

· This model is not suitable for any complex projects.


· There remains both high risk and uncertainty.
· This is not a suitable model for an ongoing project.
· This model is not at all suitable for a project which is unclear and in which there are
changes in the requirement.

5. Big Bang Model


The Big Bang model is a Software Development Life Cycle (SDLC) model without specific
processes.

The Big Bang model requires no or minimal planning. Instead, the development starts with
acquiring the inputs, such as:

· Time.
· Effort.
· Resources.

This model focuses on software development so developers can jump straight to the
implementation to create software as the outcome.

The diagram below shows an overview of the Big Bang model:

Figure 6 - Big Bang Model

14
Use-cases of Big Bang

The Big Bang model is best suited in the following cases:

· smaller or simple projects,


· small development teams,
· when requirements are not specified at the start of the project or can change during the
development,
· experimental projects,
· projects for learning purposes.

Advantages of Big Bang Model

The strength of the Big Bang model lies in its simplicity. This model can offer the following
advantages:

· it requires no or minimal planning,


· it is easy to understand the process and manage the project,
· it can be time and cost-effective,
· it requires few resources,
· it provides flexibility for developers and also the project.

Disadvantages of Big Bang Model

The Big Bang model, mainly due to the minimal planning included in it, has the following
disadvantages:

· it is not suitable for complex, larger or ongoing projects,


· it comes with uncertainty, can have high risks and low reliability,
· unclear requirements at the beginning of the development can create higher costs or longer
developmental times for the final product.

15
Reference:

· Topic on Software Development Life Cycle -The Product Manager


· Topic on Software Development Models - Geeks For Geeks
· Topic on V-Model - Tutorials Point
· Topic on Big Bang Model - Code Academy
· Image on Software Development Life Cycle
· "Software Engineering: A Practitioner's Approach" by Roger S. Pressman
· "Global Business Information" by Geoffrey Elliott
· "Managing Information Technology Projects" by James Taylor
· "Software Development Life Cycle: A Guide to Building Better Software" by Carl K.
Chang
· "Software Engineering: Theory and Practice" by Shari Lawrence Pfleeger
· "Waterfall Software Development: A Guide to Building Better Software" by David Astels
· "Iterative Software Development: A Guide to Building Better Software" by Craig Larman
· "Spiral Software Development: A Guide to Building Better Software" by Barry Boehm
· "Big Bang Software Development: A Guide to Building Better Software" by Robert C.
Martin

16

You might also like