1. SDLC Models
1.1. Waterfall Model
1.1.1. Waterfall Model is a traditional model. It is aka Sequential Design Process, often used in SDLC, in which the progress is seen as flowing downwards like a waterfall, through the different phases such as Requirement Gathering, Feasibility Study/Analysis, Design, Coding, Testing, Installation, and Maintenance. Every next phase is begun only once the goal of the previous phase is completed. This methodology is preferred in projects where quality is more important as compared to schedule or cost. This methodology is best suitable for short term projects where the requirements will not change. (E.g. Calculator, Attendance Management)
1.2. Spiral
1.2.1. The spiral model works in an iterative nature. It is a combination of both the Prototype development process and the Linear development process (waterfall model). This model places more emphasis on risk analysis. Mostly this model adapts to large and complicated projects where risk is high. Every Iteration starts with planning and ends with the product evaluation by the client.
1.3. V Model
1.3.1. V-model is also known as the Verification and Validation (V&V) model. In this, each phase of SDLC must be completed before the next phase starts. It follows a sequential design process same as the waterfall model.
1.4. Prototype
1.4.1. The Prototype Model is one of the most used Software Development Life Cycle Models (SDLC models). A prototype of the end product is first developed prior to the actual product. Usually, this SDLC model is used when the customers don’t know the project requirements beforehand. By developing the prototype of the end product, it gives the customers an opportunity to see the product early in the life cycle. It starts by getting the inputs (requirements) from the customers and undergoes developing the prototype. By getting the customer’s feedback, requirements are refined. Actual product development starts once the customer approves the prototype. The developed product is released for customer’s feedback. Released product is refined as per the customers. This process goes on until the model is accepted by the customer.
1.5. Agile SDLC
1.5.1. Agile Scrum Methodology is one of the popular Agile software development methods. There are some other Agile software development methods but the popular one which is using widely is Agile Scrum Methodology. The Agile Scrum Methodology is a combination of both Incremental and Iterative model for managing product development.
2. SDLC is a process which follows in Software Projects to develop a product in a systematic way and to deliver a high-quality product.
2.1. It provides visibility of a project plan to all the involved stakeholders
2.2. It helps us to avoid project risks
2.3. It allows us to track and control the project
2.4. It doesn’t conclude until all the requirements have been achieved
3. SDLC Phases
3.1. Phase 1: Requirement collection and analysis
3.1.1. Business Analyst collects the requirement from the Customer/Client as per the clients business needs and documents the requirements in the Business Requirement Specification
3.1.2. Business Requirement Specfication
3.1.3. Business Specification
3.2. Phase 2: Feasibility study:
3.2.1. Economic: Can we complete the project within the budget or not?
3.2.2. Legal: Can we handle this project as cyber law and other regulatory framework/compliances.
3.2.3. Operation feasibility: Can we create operations which is expected by the client?
3.2.4. Technical: Need to check whether the current computer system can support the software
3.2.5. Schedule: Decide that the project can be completed within the given schedule or not.
3.2.6. Software Requirement Specification
3.2.7. Project Manager, Business Analyst, Senior Members of the team
3.3. Phase 3: Design:
3.3.1. HLD – High-Level Design – It gives the architecture of the software product to be developed and is done by architects and senior developers
3.3.2. LLD – Low-Level Design – It is done by senior developers. It describes how each and every feature in the product should work and how every component should work. Here, only the design will be there and not the code
3.4. Phase 4: Coding:
3.4.1. This is the phase where we start building the software and start writing the code for the product.
3.4.2. Developers of all levels (seniors, juniors, freshers)
3.4.3. Source Code Document (SCD) and the developed product.
3.5. Phase 5: Testing:
3.5.1. The testing team starts testing the functionality of the entire system. This is done to verify that the entire application works according to the customer requirement.
3.5.2. Quality Product and the Testing Artifacts.
3.6. Phase 6: Installation/Deployment:
3.6.1. the final software is released and checked for deployment issues if any.
3.6.2. Project Manager
3.7. Phase 7: Maintenance:
3.7.1. Bug fixing - bugs are reported because of some scenarios which are not tested at all
3.7.2. Upgrade - Upgrading the application to the newer versions of the Software
3.7.3. Enhancement - Adding some new features into the existing software