Software Development Life Cycle Models and their Pros and Cons
What is SLDC?
A software development life cycle (SDLC) model is a conceptual framework describing all activities(steps) in a software development project from planning to maintenance. This process is associated with several models, each including a variety of tasks and activities.
1.Waterfall Method
The Waterfall Model is a linear or sequential approach to Software project management and works based on fixed dates, requirements, and deliverables. Teams do not require consistent communication and, unless specific integrations are required, can be self-contained
Requirements
First, you must gather all the requirements and documentation you need to get started on the app. At the end of this step, the SRS(Software Requirement Specification) document deliver as a deliverable of this step.
Design
After the requirements have been specified, those requirements are studied, and system design is created. The model helps in preparing the overall system architecture.
Implementation
The input from the system design phase is used to develop a system in small programs or units. These units are tested for their functionality, and this is referred to as unit testing.
Verification
Though the app has been delivered, the project is not quite over until you’ve done some administrative tasks( pay contracts, close all paper works and etc..) to tie everything up. This is technically the final step.
Maintainance
The nature of any software project is that, through use by customers, new bugs will arise and must be squashed. This is an ongoing, post-launch phase that extends for as long as your contract dictates.
Pros of Waterfall Model
- Transferring project knowledge is simpler44
- Makes the project easy to manage
- Works well for smaller projects
- The tasks remain as stable as possible
Cons of Waterfall Model
- Difficult to make changes
- Ignores mid-process user/client feedback
- Poor model for long and ongoing projects
- Delays testing until after completion
V Model
This is a variation of the waterfall model. It emphasizes the verification and validation of the product. All deliverables are testable and progress is tracked by milestones. Testing is implemented in parallel to the development phase.
Development Phases
- Business Requirements
- System Requirements
- High-level Design
- Low-level Design
Test Phases
- User Acceptance Testing
- System Testing
- Integration Testing
- Unit Testing
Pros of the V Model
- Progress goes in a very systematic way.
- Best suitable for small and medium-size projects
- Testing starts from the requirement phase
- Easy to keep track on the progress
Cons of the V Model
- Not suitable for bigger and complex projects
- Not a good option if requirements changes frequently
- The client sees the only final project, not intermediate modules
- Don’t scope for risk management and risk mitigatio
Spiral Model
The spiral model consists of four phases: Planning, Risk Analysis, Engineering, and Evaluation. A typical project goes through each of these phases in iterations, which in this case can be termed as spirals. It all starts from the baseline spiral, which begins from the Planning phase, where requirements are gathered and assessed. All subsequent spirals build upon the baseline spiral.
1.Planning
In this phase project requirements, details, and scope is established in the form of Business Requirement Specifications ‘BRS’ and System Requirement Specifications ‘SRS’.
2.Risk Analysis
Identification of potential risks that may arise, and consequently, mitigation strategies planned and built to counter those risks.
3.Development
The software is developed, tested, and deployed using a waterfall or incremental development approach.
4.Evalution
All current developments and output is assessed and evaluated against intended requirements and objectives before it moves on to the next spiral.
Pros of Spiral Model
- It involves extensive risk analysis leading to very minimal risks.
- This method is effective for developing high-risk and large projects in general.
- Features and functions can still be added even at late stages of testing. The Spiral model revolves all the phases repeatedly, thereby enabling changes.
Cons of Spiral Mode
- It is a waste of resources for projects with low-risk factors.
- The success of the approach is dependent on risk analysis. If the risk analysis is faulty, then the software project can be flawed.
- There is a risk factor of the development being inconclusive, resulting in a spiral manner without a conclusion.
Agile Model
Agile project management is a distinct method of software development. Instead of taking a sequential design process so that the workflow starts at the beginning and concludes at the end, the Agile method uses an incremental approach. There is no pre-determined starting point or ending point.
Principles of Agile:
- Satisfy the customer through continuous delivery
- Welcome changing requirements even late in development
- Deliver working software frequently
- Business people and developers work together daily throughout the project
- Build projects around motivated individuals
- Working software as a primary measure of progress
- The sponsors, developers, and users should be able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity; the art of maximizing the work not done.
- At regular intervals, the team reflects on how to become more efficient and adjusts its behavior accordingly
- The best architecture, requirements, and designs emerge from Self-Organizing teams
- Face to face communication with and within a team
Pros of Agile Methodology
1.It gives designers the freedom to develop.
2. It makes the development process much more adaptable.
3. Feedback and testing occur simultaneously.
4. It works with ideas that do not have defined end-goals.
Cons of Agile Methodology
- Someone has to stitch all of the individual models together.
- There is no pre-determined course of action or defined plan.
- Collaboration must happen for it to be successful.
- Losing a designer mid-project can devastate it.