SW Models 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 39

LESSON 3

MODES OF DATA PROCESSING


WHAT IS DATA?
SOFTWARE DEVELOPMENT LIFE CYCLE

Software development teams under constant strain to produce high-quality software that
meets customer expectations, finishes within time, and is feasible economically

and technically.

What is SDLC?

It is essential to understand that when we work to build a product or software, it is


essential to go through a series of familiar stages—a road map or flow that helps us
create a timely and generate high-quality result. This flow we follow is called the
"Software Development Life Cycle.“
WHY USE SDLC?
• It supports effective planning prior to the actual development to avoid software crises in
the future. This is due to the fact that they adhere to a well-organized approach that enables
them to test the software before it is released.

• It helps in regulating costs required for the development. Proper reasoning and studies can
predict the cost risks allowing stakeholders to look after costly mistakes.

• It provides methods to assess the effectiveness of the software as each iteration produces
a software increment that provides investors with a subclass of overall software features
and functionality to keep track of time and quality.
The issues or suggestions collected
once the deployment is done solved
at this stage.
ambiguity, elaboration,
negotiation, specification,
and validation

hosted for the users to use it.


All the authorizations and
reviews are performed with all
the stakeholders, and based on SRS (Software Requirement
the assessment; the product Specification) document
version is released.

unit testing, integration


testing, system testing, Data Flow Diagrams and
and acceptance testing UML diagrams such as
use cases, state
diagrams, class diagrams

Development tools and


languages are used
SOFTWARE DEVELOPMENT PROCESS

• Software development refers to a set of computer science activities dedicated to


the process of creating, designing, deploying and supporting software.

• The software development process is an iterative logical process that aims to create
programmed software to meet unique business or personal objectives, goals, or
processes. The objective is achieved by a software developer writing computer
code.
THE NEED FOR A SOFTWARE DEVELOPMENT PROCESS

To meet the specific needs of a specific client/business (the case with custom software)

To solve a real-world problem

For personal use (e.g., a pharmacy owner may require inventory managing and billing
software.)

The demand for better quality management has enforced the discipline of software
engineering, which focuses on applying the systematic approach of the engineering
paradigm to the software development process.
WATERFALL MODEL
The Waterfall methodology — also known as the
Waterfall model — is a sequential development process
that flows like a waterfall through all phases of a project
(analysis, design, development, and testing, for
example), with each phase completely wrapping up
before the next phase begins.
WATERFALL MODEL - ADVANTAGES
• This model is very simple and is easy to understand.

• Phases in this model are processed one at a time.

• Each stage in the model is clearly defined.

• This model has very clear and well-understood milestones.

• Process, actions and results are very well documented.

• Reinforces good habits: define-before-design and design-before-code.

• This model works well for smaller projects and projects where requirements are well
understood.
WATERFALL MODEL - DISADVANTAGES
No feedback path: It assumes that no error is ever committed by developers during any
phase. Therefore, it does not incorporate any mechanism for error correction.
Difficult to accommodate change requests: This model assumes that all the customer
requirements can be completely and correctly defined at the beginning of the project, but
actually customers’ requirements keep on changing with time. It is difficult to
accommodate any change requests after the requirements specification phase is complete.

No overlapping of phases: This model recommends that a new phase can start only after
the completion of the previous phase. But in real projects, this can’t be maintained. To
increase efficiency and reduce cost, phases may overlap.
WATERFALL MODEL - DISADVANTAGES
Limited flexibility: The Waterfall Model is a rigid and linear approach to software development, which means that it is not
well-suited for projects with changing or uncertain requirements. Once a phase has been completed, it is difficult to make
changes or go back to a previous phase.

Limited stakeholder involvement: The Waterfall Model is a structured and sequential approach, which means that
stakeholders are typically involved in the early phases of the project (requirements gathering and analysis) but may not be
involved in the later phases (implementation, testing, and deployment).

Late defect detection: In the Waterfall Model, testing is typically done towards the end of the development process. This
means that defects may not be discovered until late in the development process, which can be expensive and time-consuming
to fix.

Lengthy development cycle: The Waterfall Model can result in a lengthy development cycle, as each phase must be completed
before moving on to the next. This can result in delays and increased costs if requirements change or new issues arise.

Not suitable for complex projects: The Waterfall Model is not well-suited for complex projects, as the linear and sequential
WATERFALL MODEL – APPLICATIONS
Large-scale software development projects: The Waterfall Model is often used for large-scale software development

projects, where a structured and sequential approach is necessary to ensure that the project is completed on time and

within budget.

Safety-critical systems: The Waterfall Model is often used in the development of safety-critical systems, such as

aerospace or medical systems, where the consequences of errors or defects can be severe.

Government and defense projects: The Waterfall Model is also commonly used in government and defense projects,

where a rigorous and structured approach is necessary to ensure that the project meets all requirements and is

delivered on time.

Projects with well-defined requirements: The Waterfall Model is best suited for projects with well-defined

requirements, as the sequential nature of the model requires a clear understanding of the project objectives and scope.

Projects with stable requirements: The Waterfall Model is also well-suited for projects with stable requirements, as the

linear nature of the model does not allow for changes to be made once a phase has been completed.
ITERATIVE MODEL

An iterative life cycle model does not attempt


to start with a full specification of
requirements. Instead, development begins by
specifying and implementing just part of the
software, which can then be reviewed in order
to identify further requirements.

This process is then repeated, producing a


new version of the software for each cycle of
the model.
WHEN TO USE ITERATIVE MODEL:

• Requirements of the complete system are clearly defined and understood.

• When the project is big.

• Major requirements must be defined; however, some details can evolve with time.
INCREMENTAL MODEL
It is one of the most adopted models of SDP where the
software requirement is broken down into many standalone
modules in the SDLC.
Incremental development is carried out in steps covering all
the analysis, designing, implementation, testing and
maintenance.
Each iteration stage is developed by going through
requirements, design, coding and finally the testing modules of
the software development life cycle.

Functionality developed in each stage will be added on the previously developed functionality and this repeats
until the software is fully developed.
At each incremental stage, the decision on the next stage is carried after a thorough review.
INCREMENTAL MODEL
LESSON 3

MODES OF DATA PROCESSING


AGILE MODEL
The meaning of Agile is swift or versatile.

"Agile process model" refers to a software development approach based on iterative development. It
break tasks into smaller iterations, or parts do not directly involve long term planning.

The project scope and requirements are laid down at the beginning of the development process. Plans
regarding the number of iterations, the duration and the scope of each iteration are clearly defined in
advance.

Each iteration is considered as a short time "frame", which typically lasts from one to four weeks. This
minimizes the project risk and reduces the overall project delivery time requirements.

Each iteration involves a team working through a full software development life cycle including
planning, requirements analysis, design, coding, and testing before a working product is demonstrated
to the client.
Agile model Vs Incremental development model:

AGILE vs INCREMENTAL MODEL


AGILE MODEL INCREMENTAL DEVELOPMENT MODEL

The agile model is an incremental delivery process where


The requirements of the software are divided into several
each incremental delivered part is developed through an
modules that can be incrementally developed and delivered.
iteration after each time box. The main principle of the Agile
The core features are developed first and the whole software
model is to achieve agility by removing unnecessary
is developed by adding new features in successive versions.
activities that waste time and effort.

In the Agile model, the end date for an iteration is fixed, it


cannot be changed. The development team may have to In the Incremental development model, there is no fixed
decide to reduce the delivered functionality to complete that time to complete the next iteration.
iteration on time.
WHEN CAN WE USE THE AGILE METHODOLOGY?

• In small and medium software projects

• To produce the required multiple variants of the product

• When you need to break down the development process into smaller parts – iterations

• When there’s a need for software delivery acceleration

• When the team needs to be flexible in changing priorities

• When the need is to enhance software quality, productivity, and predictability in delivery

• To promote project risk reduction and achieve cost reduction possibilities

• To manage teams effectively on the project


EVOLUTIONARY MODEL

It is a combination of Iterative and Incremental model.

It is better for software products that have their feature sets redefined during
development because of user feedback and other factors.

The model divides the development cycle into smaller, incremental waterfall models in
which users are able to get access to the product at the end of each cycle.

Feedback is provided by the users on the product for the planning stage of the next cycle
and the development team responds, often by changing the product, plan or process.
Therefore, the software product evolves with time.
EVOLUTIONARY MODEL
Evolutionary model suggests breaking down of work into smaller chunks, prioritizing
them and then delivering those chunks to the customer one by one.

The number of chunks is huge and thus is the number of deliveries made to the customer.

The main advantage is that the customer’s confidence increases as he constantly gets
quantifiable goods or services from the beginning of the project to verify and validate his
requirements.

The model allows for changing requirements as well as all work in broken down into
maintainable work chunks.
APPLICATION OF EVOLUTIONARY MODEL
It is used in large projects where you can easily find modules for incremental implementation.

Evolutionary model is commonly used when the customer wants to start using the core
features instead of waiting for the full software.
Necessary conditions for implementing this model:-

• Customer needs are clear and been explained in deep to the developer team.

• There might be small changes required in separate parts but not a major change.

• As it requires time, so there must be some time left for the market constraints.

• Risk is high and continuous targets to achieve and report to customer repeatedly.

• It is used when working on a technology is new and requires time to learn.


SPRIRAL MODEL
The Spiral Model is a SDLC model that provides a

systematic and iterative approach to software

development.

It is based on the idea of a spiral, with each iteration

of the spiral representing a complete software

development cycle, from requirements gathering and

analysis to design, implementation, testing, and

maintenance.

The Spiral Model is a risk-driven model, meaning that

the focus is on managing risk through multiple

iterations of the software development process.


SPRIRAL MODEL
Spiral model provides support for Risk Handling. It looks like a spiral with many loops.

The exact number of loops of the spiral is unknown and can vary from project to project.

Each loop of the spiral is called a Phase of the software development process.

The exact number of phases needed to develop the product can be varied by the project

manager depending upon the project risks.

It consists of the following phases:

Planning: In this phase, scope of the project is determined and a plan is created for the next

iteration of the spiral.

Risk Analysis: In this phase, the risks associated with the project are identified and evaluated.
SPRIRAL MODEL

Engineering: In this phase, the software is developed based on the requirements

gathered in the previous iteration.

Evaluation: The software is evaluated to determine if it meets the customer’s

requirements and if it is of high quality.

Planning: The next iteration of the spiral begins with a new planning phase, based on the

results of the evaluation.


SPRIRAL MODEL

• The Spiral Model is often used for complex and large software development projects, as
it allows for a more flexible and adaptable approach to software development.

• It is also well-suited to projects with significant uncertainty or high levels of risk.

• The Radius of the spiral at any point represents the expenses(cost) of the project so far,
and the angular dimension represents the progress made so far in the current phase.

You might also like