Nothing Special   »   [go: up one dir, main page]

SDLC Notes

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

BINALABAGAN CATHOLIC COLLEGE

College Department

System Integration and Architecture


SIA 101

System Development Life Cycle (SDLC)

 A methodology that also forms the framework for planning and controlling the
creation, testing, and delivery of an information system.

 Acts as the foundation for multiple different development and delivery


methodologies, such as the Hardware development life cycle and Software
development life cycle.

 A framework that provides a sequence of activities for system designers and


developers to follow. It consists of a set of steps or phase in which each phase of the
SDLC uses the results of the previous one.

 It aims to produce high-quality software that meets or exceeds customer


expectations, reaches completion with in times and cost estimates.

Phases of SDLC

1. Planning
 In the planning phase, project leaders evaluate the terms of the project. This
includes calculating labor and material costs, creating a timetable with target goals,
and creating the project’s teams and leadership structure.

 Planning can also include feedback from stakeholders. Stakeholders are anyone who
stands to benefit from the application. Try to get back from potential customers,
developers, subject matter experts, and sales reps.

 Planning should clearly define the scope and purpose of the application. It plots the
course and provisions the team to effectively create the software. It also sets
boundaries to help keep the project from expanding or shifting from its original
purpose.

2. Define Requirements
 Defining requirements is considered part of planning to determine what the
application is supposed to do and its requirements. For example, a social media
application would require the ability to connect with a friend. An inventory
program might require a search feature.

 Requirements also include defining the resources needed to build the project.
For example, a team might develop software to control a custom manufacturing
machine. The machine is a requirement in the process.

3. Design and Prototyping


 The Design phase models the way a software application will work. Some aspects
of the design include:

 Architecture – Specifies programming language, industry practices,


overall design, and use of any templates or boilerplate.
 User Interface – Defines the ways customers interact with the software,
and how the software responds to input.
 Platforms – Defines the platforms on which the software will run, such as
Apple, Android, Windows version, Linux or even gaming consoles.
 Programming – Not just the programming language, but including
methods of solving programs and performing tasks in the application.
 Communications – Defines the methods that the application can
communicate with other assets, such as a central server or other
instances of the application.
 Security – Defines the measures taken to secure the application, and may
include SSL traffic encryption, password protection, and secure storage of
user credentials.
 A prototype is like one of the early versions of software in the iterative software
development model. It demonstrates a basic idea of how the application looks
and works.

4. Software Development

 This is the actual writing of the program. A small project might be written by a
single developer, while large project might be broken up and worked by several
teams. Use an Access Control or Source Code Management application in this
phase. These systems help developer’s tract changes to the code. They also help
ensure compatibility between different team projects and to make sure target
goals are being met.
 The coding process includes many other tasks. Many developers need to brush
up on skills or work as a team. Finding and fixing errors and glitches is critical.
Tasks often hold up the development process, such as waiting for test results or
compiling code so an application can run. SDLC can anticipate these delays so
that developers can be tasked with other duties.

5. Testing
 It’s critical to test an application before making it available to user. Much of the
testing can be automated, like security testing. Other testing can only be done in
a specific environment – consider creating a stimulated production environment
for complex deployments.

 Testing should ensure that each function works correctly. Different parts of the
application should also be tested to work seamlessly together-performance test,
to reduce any hangs or lags in processing.

 The testing phase helps reduce the number of bugs and glitches that users
encounter. This leads to higher user satisfaction and a better usage rate.

6. Deployment
 In the deployment phase, the application is made available to users. Many
companies prefer to automate the deployment phase. This can be as simple as
a payment portal and download link on the company website. It could also be
downloading an application on a smartphone.
 Deployment can also be complex. Upgrading a company-wide database to a
newly-developed application is one example. Because there are several other
systems used by the database, integrating the upgrade can take more time and
effort.
7. Operations and Maintenance
 At this point, the development cycle is almost finished. The application is
done and being used in the field. The Operation and Maintenance phase is
still important though. In this phase, users discover bugs that weren’t found
during testing. These errors need to be resolved, which can spawn new
development cycles.

 In addition to bug fixes, models like iterative development plan additional


features in future releases. For each new release, a new Development Cycle
can be launched.
Real-World Applications of SDLC
This example is about building an eCommerce platform.

Planning: In the planning phase, the eCommerce project manager and business analyst will
collect requirements from stakeholders regarding how the eCommerce platform will work
and what features it requires. Then, they will create detailed SRS (Software Requirement
Specification) documents. After this, the business analysts will get the SRS documents
reviewed by the key policymakers and stakeholders to get them approved.

Designing: The SRS documents will be sent to the eCommerce software development team
at this stage. First, the development team will carefully review the document to understand
client requirements. Then, eCommerce developers will build a suitable architecture, and
designers will create web pages after approval.

Development: Coders will take over eCommerce platform development in this phase. They
will code the web pages and APIs required to add various functionalities.

Testing: In this step, the tester will do end-to-end functionality testing. They will ensure that
the e-commerce platform is working seamlessly without any bugs.

Deployment: At last, the developers will deploy code and offer end-users the final version of
the e-commerce solution. After that, a similar process will be followed while integrating the
latest features.

Basic 6 SDLC Methodologies


Now that you know the basic SDLC phases and why each of them is important, it’s time to
dive into the core methodologies of the system development life cycle.
These are the approaches that can help you to deliver a specific software model with unique
characteristics and features. Most developers and project managers opt for one of
these 6 approaches. Hybrid models are also popular.
Waterfall Model
This approach implies a linear type of project phase completion, where each stage
has its separate project plan and is strictly related to the previous and next steps of system
development.
Typically, each stage must be completed before the next one can begin, and
extensive documentation is required to ensure that all tasks are completed before moving
on to the next stage. This is to ensure effective communication between teams working
apart at different stages.
While a Waterfall model allows for a high degree of structure and clarity, it can be
somewhat rigid. It is difficult to go back and make changes at a later stage.

Iterative Model

The Iterative model incorporates a series of smaller “waterfalls,” where manageable


portions of code are carefully analyzed, tested, and delivered through repeating
development cycles. Getting early feedback from an end user enables the elimination of
issues and bugs in the early stages of software creation.
The Iterative model is often favored because it is adaptable, and changes are
comparatively easier to accommodate.

Spiral Model
The Spiral model best fits large projects where the risk of issues arising is high.
Changes are passed through the different SDLC phases again and again in a so-called “spiral”
motion.
It enables regular incorporation of feedback, which significantly reduces the time
and costs required to implement changes.

V-Model

Verification and validation methodology requires a rigorous timeline and large


amounts of resources. It is similar to the Waterfall model with the addition of
comprehensive parallel testing during the early stages of the SDLC process.
The verification and validation model tends to be resource-intensive and inflexible.
For projects with clear requirements where testing is important, it can be useful.
The Big Bang Model

Mostly used for creating and delivering a wide range of ideas, this model perfectly
fits the clients who don’t have a clear idea or vision of what their final product should look
like.
A more concrete vision of project completion is gained via delivering different
system variations that may more accurately define the final output.
While it is usually too expensive for the delivery of large projects, this SDLC
methodology perfectly works for small or experimental projects.
Agile Model

The Agile model prioritizes collaboration and the implementation of small changes
based on regular feedback. The Agile model accounts for shifting project requirements,
which may become apparent over the course of SDLC.
The Scrum model, which is a type of time-constrained Agile model, is popular among
developers. Often developers will also use a hybrid of the Agile and Waterfall model,
referred to as an “Agile-Waterfall hybrid.”
As you can see, different methodologies are used depending on the specific vision,
characteristics, and requirements of individual projects. Knowing the structure and nuances
of each model can help to pick the one that best fits your project.

Benefits of SDLC
Having covered the major SDLC methodologies offered by software development
companies, let’s now review whether they are actually worth employing.
Here are the benefits that the system development life cycle provides:
 Comprehensive overview of system specifications, resources, timeline, and the
project goals
 Clear guidelines for developers
 Each stage of the development process is tested and monitored
 Control over large and complex projects
 Detailed software testing
 Process flexibility
 Lower costs and strict time frames for product delivery
 Enhanced teamwork, collaboration, and shared understanding
Possible Drawbacks of SDLC

Just like any other software development approach, each SDLC model has its drawbacks:
 Increased time and costs for the project development if a complex model is required
 All details need to be specified in advance
 SDLC models can be restrictive
 A high volume of documentation which can slow down projects
 Requires many different specialists
 Client involvement is usually high
 Testing might be too complicated for certain development teams

While there are some drawbacks, SDLC has proven to be one of the most effective ways
for successfully launching software products.
Alternative development paradigms, such as rapid application development (RAD), may
be suitable for some projects but typically carry limitations and should be considered
carefully.

You might also like