Software Development Life Cycle model is utilized for project management and
involves processes from the feasibility Analysis to maintenance of the
completed application.
Waterfall methodology
Waterfall
approach was first SDLC Model to be used widely in Software Engineering to
ensure success of the project.
In
"The Waterfall" approach, the whole
process of software development is divided into separate phases. In
Waterfall model, typically, the outcome of one phase acts as the
input for the next phase sequentially.
· Requirement
Gathering and analysis: All possible requirements
of the system to be developed are captured in this phase and documented in a
requirement specification doc.
· System
Design: The requirement
specifications from first phase are studied in this phase and system design is
prepared. System Design helps in specifying hardware and system requirements
and also helps in defining overall system architecture.
· Implementation: With inputs from system design, the system is first
developed in small programs called units, which are integrated in the next phase. Each unit
is developed and tested for its functionality which is referred to as Unit
Testing.
· Integration
and Testing: All 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.
·
Deployment
of system: Once the functional and nonfunctional
testing is done, the product is deployed
in the customer environment or released into the market.
· Maintenance: There are some issues which come up in the client
environment. To fix
those issues patches are released. Also
to enhance the product some better
versions are released. Maintenance is done to
deliver these changes in the customer environment.
Applications
· Requirements are very well documented, clear and fixed.
·
Product definition is stable.
·
Technology is understood and is not dynamic.
· There are no ambiguous requirements.
· Ample resources with required expertise are available to support the product.
·
The project is short.
Pros
|
Cons
|
· Simple and easy to understand and use
· Easy to manage due to the
rigidity of the model. Each phase has specific deliverables and a review
process.
· Phases are processed and completed one at a time.
· Works well for smaller
projects where requirements are very well understood.
· Clearly defined stages & Well understood milestones.
· Easy to arrange tasks.
· Process and results are well
documented.
|
· No working software is
produced until late during the life cycle.
·
Not a good
model for complex and object-oriented projects.
·
Poor model for long and
ongoing projects.
· Not suitable for the projects
where requirements are at a moderate to high risk of changing.
· It is difficult to measure
progress within stages.
· Cannot
accommodate changing requirements.
· Adjusting scope during the life cycle can end a project.
|
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 is then reviewed in
order to identify further requirements. This process is then repeated, producing a new version of the software at the end
of each iteration of the model.
spiral model
The
spiral model combines the
idea of iterative development with the systematic,
controlled aspects of the waterfall model.
It allows for incremental releases of the
product, or incremental refinement
through each iteration around the spiral.
Agile methodology
Agile
is software development methodology. It is very effective where Client
frequently changes his requirement. Since it has more iteration so you can
assure a solution that meets client’s requirement. More than one builds deployment
for a project. It involves more client interaction and
testing effort.
Key features
- Collective code ownership and freedom to change.
- Incremental approach (e.g. user stories are incrementally implemented)
- Automation (e.g. TDD -- Test Driven Development).
- Customer focused (for e.g. internal and external users and business analysts are your immediate customers)
- Design must be simple. Designing is an ongoing activity with constant re-factoring to achieve the rules of code simplicity like no duplication, verified by automated tests, separation of responsibilities, and minimum number of classes, methods, and lines.
How do you know that you are
using agile development?
You are using an agile practice
when
·
You have daily stand-up meetings.
·
You use CRC (Class Responsibilities and
Collaborators) cards.
·
You use time boxed task boards.
·
You use TDD (Test Driven
Development), Continuous Integration, regular code reviews, pair
programming, automated builds, continuous deployment and delivery, etc.
·
You have iteration planning meetings and
carry out iterative development.
There are two methods by which
this methodology can be
Implemented: - 1- Scrum
2-
Extreme Programming
Scrum: Each
iteration would called a scrum which can be a 1-2 Months. In Scrum Client prioritize
his requirements what he want first. If developer did not meets the entire requirement
which was being fixed for a particular scrum than rest of the development part
would be transferred to the next scrum (would be delivered in the next build),
means developer can’t increase time decided for a scrum. Its fixed.
Extreme Programming (XP): here
iteration period would be less than in scrum, which is being 2-4 weeks. Here developer
prioritizes what to do first on the basis of client requirement. This duration
which was being fixed for a iteration, can be increase if the some development
part is still pending. The build would deploy with having all the client needs.
Thus iteration period is not fixed here it can be increase. But iteration
should meet the entire client's requirement in this build.
Software Development in Dubai
ReplyDeletehttps://www.nsreem.com/ourservices/software-development/
NSREEM develop amazing desktop and web applications that are tailored to your specific requirements.
NSREEM is #1 in Software Development in Dubai
1634283206207-9