General discussion

  • Creator
  • #2140499

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


    by jmirthipati ·

    Tags: ,

    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.

    [i]Commercial link removed by moderator.[/i]

All Comments

  • Author
    • #2414988
      Avatar photo

      Why this?

      by rproffitt ·

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

      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?

    • #2413519

      software development life cycle

      by ditstek ·

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

      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

      • #2413508
        Avatar photo

        There it is.

        by rproffitt ·

        In reply to software development life cycle

        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.

    • #2413423

      Best practices, so to speak

      by sreejitho ·

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

      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.

      • #2413421
        Avatar photo

        I’ll ask.

        by rproffitt ·

        In reply to Best practices, so to speak

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

    • #2417365

      What is SDLC?

      by smith987 ·

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

      The system development life cycle is a project management model that defines the stages involved in bringing a project from inception to completion. Software development teams, for example, deploy a variety of systems development life cycle models that include waterfall, spiral and agile processes.

    • #2415202

      Thanks for Sharing

      by steveskok3 ·

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

      Software Development Life Cycles (SDLCs) represent a systematic approach to each component of application development — from the initial idea to a functioning production application. A step (or phase) is a unit of related work in an SDLC. A methodology is a collection of SDLC steps in action, applied to a project. Artifacts are the recorded output from steps.

      Types of Software Development Life Cycles

      Waterfall SDLCs

      The first type of formal software development life cycle is sequential, or linear. That is, it begins with one step and proceeds through subsequent steps until reaching a final step. A typical example of linear methodology steps is the following:

      Analysis: Review the business needs and develop requirements.
      Design: Develop a plan to meet business requirements with a software solution.

      Development: Build a software solution.

      Implementation: Install and configure the software solution.

      Maintenance: Address software issues identified after implementation.

      Iterative SDLCs

      The following are examples of iterative SDLCs:

      Spiral: Typified by ever-expanding scope in hopes of identifying large design flaws as soon as possible
      Agile: A collection of methodologies fall into this category, including Scrum, Feature-Driven Development, Extreme Programming, Test-Driven Design, and others.

      Microsoft Solutions Framework: Microsoft’s own practice gleaned from a sampling of best practices from different methodologies

      SSIS and SDLCs

      A few of the common ways that SSIS integrates into SDLCs includes:

      ETL tasks can be included as part of a product backlog

      Packages can be assigned to developers

      Packages can be checked into source control through the file system or through Visual Studio

      Packages can be grouped together and deployed as a set

Viewing 4 reply threads