Software Development Lifecycle (SDLC)

Software Development Lifecycle (SDLC)

Well defined processes are what describes the Software Life Cycle in its whole and each of its steps. It is what is “behind” the chosen Software Development Life Cycle. For a?process?in a software development environment we understand that it:

  • Defines the order and frequency of each activity;?
  • Specify the criteria to go from one phase to the other;?
  • States what needs to be release at the end of each phase;?
  • Help us follow the software development timeline and the continous “hunting” for more quality in its evolution;?

Understand the importance of processes is vital to follow and set the proper model process to develop any given software. I’ll definitely get back to the benefits of having good processes, but for now I’m going to focus on the types of Software Development Life Cycle. Once we understand the importance of well defined processes we can now proceed and designate the best model in which the processes will abstractly represented.

“… a software process model (sometimes called a Software Development Life Cycle or SDLC model) is a simplified representation of a software process. Each process model represents a process from a particular perspective and thus only provides partial information about that process” (SOMMERVILLE, 2016)

Regardless of what model will be chosen, at least three points must be taken into consideration:?

  • What do you need to develop?
  • How will it be developed?
  • Maintenance of the product once it’s released to the client.?

The most famous models out there are the sequential, iterative and incremental models. As per sequential models we understand: Waterfall and V-Model.?

  • Waterfall: here the development activities happen one after the other. The testing phase has its own place, which is after all other development activities. An example of a general Waterfall model process would be:

Requirements?->?Design ->??Development?->?Testing ->?Deployment ->?Maintenance?

  • V-Model: trying to go around the disadvantages perceived in the Waterfall model, the V-Model was created. The delay in the feedback from one phase to another and the late testing phase can be stated as disadvantages of the Waterfall model. Trying to solve the late test phase issue the V-Model integrated the testing phase early in the process by including test levels on each of the development stages.?

Business requirements ->??Acceptance Testing

System Requirements?->?System Testing

Architectural Design?->?Integration Testing

Detailed Design?->?Component Testing


The Waterfall and V-Models have drawbacks, tough. Nonetheless the testing phase is found in each and every phase of the V-model the duration of the delivery is still long. To try to overcome the disadvantages of the sequential model the Software Development Process evolved to the iterative and incremental?models.???

  • Incremental: in the incremental model all the stages of the software development are done in pieces, which permits the phases to be completed incrementally.
  • Iterative: all the stages come up together to deliver a small working piece of the whole software. Types of iterative models are RUP?(Rational Unified Process), Scrum, Kanban?and?Spiral.

Both Incremental and Iterative models deliver a working part of the software in weeks or even days. It might be the major difference between them and the sequential model.

Yet, the use of a certain method will be defined by the characteristics of the reality in which the software is being developed and the adaptations that will need to be dealt with.?


*These are?personal?notes I’ve made during my preparation for the ISTQB Certified Tester Foundation Level (CTFL) exam. If you have anything to add or suggest, please feel free to comment??

要查看或添加评论,请登录

Gabriel Poeta的更多文章

  • Managing Non-linear Data Structures with Pointers in C

    Managing Non-linear Data Structures with Pointers in C

    Whenever we’re working with data that is not arranged in a sequential or linear manner, a good idea is to use…

  • Understanding Memory and Data in C: A Foundation for Programming

    Understanding Memory and Data in C: A Foundation for Programming

    I’ve been re-visiting the content of C language - something I haven't seen for a while. I’m trying to better understand…

  • What is UML?

    What is UML?

    With the surge of object-oriented programming in the 80’s organizations felt the necessity to come up with methods that…

社区洞察

其他会员也浏览了