General discussion

What is SDLC? Phases of Software Development, Models, & Best Practices

By jmirthipati ·
The software development life cycle (SDLC) is a process used for structuring the development of any software system, from initiation through to implementation. An increase in demand for software to meet customer needs effectively but with less cost and faster delivery has put tremendous pressure on modern organizations. To stay competitive, companies must build their software correctly and transform their businesses by following efficient software engineering methodologies, practices, and concepts. Without meeting these changes, there can be a drop in productivity, leading ultimately to business failure. Customer interaction at all levels with the right methodology for implementing the software is crucial to any organization’s success.

Five different SDLC stages are:-

1. Planning and analysis
2. Designing the product architecture
3. Developing and coding
4. Testing
5. Maintenance.

Commercial link removed by moderator.
Thread display: Collapse - | Expand +

All Comments

Collapse -

Why this?

by rproffitt Moderator In reply to What is SDLC? Phases of S ...

That's just one of many development models. And why did you write "Best Practices"?

The above looks like the classic WATERFALL method which as many know isn't the best for all software development.

For example I had this tiny project that was about to be subjected to what you wrote above so I accelerated the process and finished it in 7 days, tested, began production and 3 weeks later was called into our software review to begin the classic process. I was in and out of that process in about 10 minutes as the group that called the meeting didn't want to provide funds to re-open the project and "do it the right way."

The product admittedly was a small thing with a microprocessor, etc. code but hey, why burden everything with such a process?

Collapse -

software development life cycle

by ditstek In reply to What is SDLC? Phases of S ...

he software development life cycle is about producing high-quality software promptly.
And your team needs to follow the software development life cycle steps to achieve that.
It’s also essential that your team adheres to the proper SDLC model.
This guide will be like the ultimate tutorial to SDLC.
We’ll start by “What’s the definition of SDLC” and then transition to the different phases of the software development life cycle and its models.
Table of contents:
What is the Software Development Life Cycle Process?
What are the 7 phases of the Software Development Life Cycle?
What are the advantages and disadvantages of SDLC?
What are the different SDLC Models?
The Waterfall Model
The V Model
The Iterative Model
The Spiral Model
The Agile Model
The Scrum Methodology
The XP Methodology
The Rad Model and many more

Collapse -

There it is.

by rproffitt Moderator In reply to software development life ...

Thanks for listing many of the processes used today.

I'll add one I've used many times. It's not well accepted except in commercial circles.

-> The Spike Method.

Or solution. In a commercial setting where time and money is at stake sometimes you need a spike solution (this fixes that) to get the product working and into production.

Collapse -

Best practices, so to speak

by sreejithfingent In reply to What is SDLC? Phases of S ...

A few points on secure SDLc I'd like to add:

A secure SDLC process ensures that security is an integral part of the development process through code review, architecture analysis, and penetration testing.

A Secure SDLC process follows a few standard sets of processes such as risk assessment, threat modeling, static analysis, code review, and code review as opposed to normal SDLC which involves design, development, testing, and deployment.

Building blocks of a Secure SDLC:
Supporting quotes and research
Secure Coding Guidelines
Secure Coding checklist
Non Functional Requirements
Static Code Analysis
Dynamic Code Analysis
Security Awareness Training
Threat Modeling
Application Security Risk Matrix.

Each step is designed with security in mind and is equally important to the process.
If you had to choose, the single most important aspect of it would be choosing and integrating a Capability Maturity Model based on your requirements. (Reference: CISA’s: Secure Software Development Life Cycle Processes)

There are different models available to choose from such as OWASP's S-SDLC, MS SDL, NIST 800-64, etc.

Choosing a CMMI model would be the most important part of a secure SDLC process because it dictates the processes and methodologies that would be used such as risk analysis, preliminary design, source code review, and third-party assessment based on your unique needs.

Collapse -

I'll ask.

by rproffitt Moderator In reply to Best practices, so to spe ...

Why isn't the spike solution listed? Why I ask is it's a well known solution done far more often than you suspect.

Related Discussions

Related Forums