Ques 1. What is Software Life Cycle?
Software life cycle comprise the total life of the software developed right from the time of initial development to the time it is scrapped out or terminated. This includes the development phases, revisions and upgrades and if necessary adding it up with another software project as well.
Ques 2. Why is software development life cycle important?
SDLC serves as a guide to the project and provides a flexible and consistent medium to accommodate changes, and perform the project to meet the client's objectives. SDLC phases define key schedules and delivery points that ensure timely and correct delivery to the client within budget and other constraints and project requirements. SDLC co-operates with project control and management activities as they must be introduced within each phase of SDLC.
Following are some of the points that briefly describe the importance of the SDLC process:
- It explains why project planning, scheduling, and budgeting are necessary.
- It allows for some control over the development process in order to guarantee that the final product meets the original criteria.
- It provides a structure for a standard set of projects and deliverables.
- It helps in the growth process by increasing the visibility of project planning to all involved parties.
- It assures that the design and testing processes that lead to a solution's release are good and well-managed.
- It is the most effective method for project management and tracking.
- It aids in the acceleration of development and the improvement of client relationships.
- It aids in the reduction of project risk and overhead in the project administration plan.
Ques 3. What are the different phases in SDLC?
There are 5 phases in Software Development Life Cycle:
1. Requirement & analysis
2. Design
3. Coding
4. Testing
5. Maintenance
Ques 4. What is SDLC model? What are the most well known SDLC models?
An SDLC model defines implementation of an approach to the project. It defines the various processes, and phases that would be carried out throughout the project to produce the desired output. There are a variety of SDLC models that exist catering to different needs and characteristics of a project. Some are of iterative nature (Prototyping), whereas some are sequential (waterfall). Some of the well known SDLC models are:
- Waterfall Model
- Iterative Model
- Spiral Model
- V-Model
- RAD Model
- Agile Model
Ques 5. Explain the phases in a typical SDLC process briefly.
- Planning: The first stage of the SDLC is all about determining, what clients want. Project planning is an important component of the software delivery lifecycle because it is here that the team estimates the cost and outlines the new program's needs.
- Gathering Requirements: Defining requirements is part of the planning process to figure out what the application is supposed to perform and what it needs. The development team examines the requirements while keeping the software's design and code in mind.
- Design: The following phase entails distilling all of the software project's requirements, analysis, and design information. This phase is the culmination of the previous two, such as customer feedback and requirement collecting. It is a simulation of how a software application will work. Some particulars of this phase are architecture, platform, security, and user interface.
- Development: This is where the code is really written. Writing code is the first step in putting a design into action. Developers must adhere to the coding requirements set forth by their bosses. Many other jobs are included in the coding process. Many developers need to brush up on their abilities or collaborate with others. It's vital to find and resolve problems and flaws. If any changes or upgrades are needed, the developers can show the work to the business analysts.
- Testing: Before making an application available to users, it's vital to test it. The testing team examines the system's overall functionality. This phase aids in reducing the number of faults and issues seen by consumers. As a result, there is a higher level of user satisfaction and a higher rate of utilization.
- Deployment: Once the product has been thoroughly tested and is ready for deployment, it is made available to customers. The deployment's complexity is determined by the project's size. Many businesses prefer to have the deployment step automated.
- Maintenance: The developed product is looked after throughout this period. The program is updated on a regular basis to keep up with the changing user-end environment or technology. Users find flaws that were not discovered during testing. These issues must be addressed, which may result in new development cycles.
Ques 6. Explain the types of SDLC models.
The following are the predominant models that come under SDLC:
Waterfall model: The waterfall model is a prominent software engineering and product development approach that takes a linear, sequential approach to the software development life cycle (SDLC). The waterfall approach emphasizes a logical step-by-step process. It was the first model in the software business to be extensively adopted. It is divided into phases, with one phase's output becoming the input for the next.
Agile model: Agile approaches divide jobs into smaller iterations or sections and avoid long-term planning entirely. The scope and requirements of the project are defined at the start of the development phase. The number of iterations, duration, and scope of each iteration are all clearly determined ahead of time. In the Agile process model, each iteration is a small-time "frame" that lasts anywhere from one to four weeks.
Iterative model: One of the most straightforward software development life cycle models is the iterative approach. There are several situations when the initial or basic software requirements are well-defined, but the project's complete scope or set of features is unclear. It primarily focuses on preliminary growth and design, then gradually develops momentum as more complex needs are met until the final software is completely constructed.
Spiral model: The spiral model is a risk management strategy that combines the iterative development process model with parts of the Waterfall approach. The spiral approach is preferred by software engineers for large, expensive, and complex projects.
V-model model: The V-model is an SDLC paradigm in which processes are executed in a V-shape in a sequential manner. The Verification and Validation model is another name for it. The waterfall model is extended by the V-Model. Every phase of the development cycle has a testing phase that is directly linked to it.
Ques 7. Which SDLC model is best and Why?
According to the annual State of Agile report, Agile is the best SDLC methodology and also one of the most widely utilized SDLC in the IT industry. Unlike other predictive approaches, the adaptive agile methodology does not necessitate comprehensive preparation. If a change is required, it can be made during the sprint. It's ideal for projects that require a lot of customer involvement and projects that have a constantly changing environment.
Ques 8. What are the advantages of the SDLC process?
At the end of each stage, a formal review is established to provide maximum management oversight. SDLC aids in the creation of extensive system documentation. This guarantees that system needs can be linked to specified business goals. It generates a large number of intermediate products that may be evaluated to see if they fit the user's requirements and adhere to industry standards. These can be improved further if necessary, ensuring that the company receives exactly what it requires.
Ques 9. What are the disadvantages of the SDLC process?
Before you begin, make sure you understand all of the details of the project. During the development phase, there was a lot of paperwork. It is difficult to alter or change due to a lack of flexibility. If the planning isn't done properly, the project will take longer and cost more. When there are a lot of flaws in the code, fixing them can take a long time and cause deadlines to be missed.
Ques 10. List Top SDLC tools.
- Jira: This software is intended to make workflow management easier for a wide range of groups. Jira was created with the intention of being a simple system for recording tasks and errors. However, it has since matured into a robust workflow management solution.
- Git is a distributed version management system that is open-source. Developers aiming to examine changes and contributions to the overall code might considerably benefit from a version control system or VCS. This software customization management tool is an important part of the SDLC.
- Confluence: During this stage, Confluence is a wonderful tool for developing product research docs and sharing design assets.
- Asana: From daily activities to larger projects, Asana assists teams in orchestrating their work. Teams are more confident, move faster, and accomplish more with less when they use Asana, regardless of where they are based.
Ques 11. What are the differences between Agile and Waterfall Methodologies?
Agile | Waterfall |
---|
It separates the project development lifecycle into sprints. | The software development process is divided into distinct phases. |
It follows an incremental approach | Waterfall methodology is a sequential design process. |
Agile methodology is known for its flexibility. | Waterfall is a structured software development methodology so most times it can be quite rigid. |
Agile can be considered a collection of many different projects. | Software development will be completed as one single project. |
Agile is quite a flexible method that allows changes to be made in the project development requirements even if the initial planning has been completed. | There is no scope for changing the requirements once the project development starts. |
The agile methodology follows an iterative development approach because of this planning, development, prototyping, and other software development phases may appear more than once. | All the project development phases like designing, development, testing, etc. are completed once in the Waterfall model. |
The test plan is reviewed after each sprint | The test plan is rarely discussed during the test phase. |
Agile development is a process in which the requirements are expected to change and evolve. | The method is ideal for projects which have definite requirements and changes not at all expected. |
In Agile methodology, testing is performed concurrently with software development. | In this methodology, the “Testing” phase comes after the “Build” phase |
Agile introduces a product mindset where the software product satisfies the needs of its end customers and changes itself as per the customer’s demands. | This model shows a project mindset and places its focus completely on accomplishing the project. |
The agile methodology works exceptionally well with Time & Materials or non-fixed funding. It may increase stress in fixed-price scenarios. | Reduces risk in the firm fixed price contracts by getting a risk agreement at the beginning of the process. |
Prefers small but dedicated teams with a high degree of coordination and synchronization. | Team coordination/synchronization is very limited. |
Product owner with team prepares requirements just about every day during a project. | Business analysis prepares requirements before the beginning of the project. |
The test team can take part in the requirements change without problems. | It is difficult for the test to initiate any change in requirements. |
The description of project details can be altered anytime during the SDLC process. | Detail description needs to implement the waterfall software development approach. |
The Agile Team members are interchangeable, as a result, they work faster. There is also no need for project managers because the projects are managed by the entire team | In the waterfall method, the process is always straightforward so, the project manager plays an essential role during every stage of SDLC. |
Ques 12. Describe prototype software development life cycle model.
Prototype SDLC models is based upon creation of a software prototype of the complete system and then refine and review it continuously till the complete acceptable system is built.
Ques 13. Describe rapid application development (RAD) software development life cycle model.
RAD involves iterative development along with the creation of prototypes. It uses interactive use of techniques and prototypes to define user requirements and system design clearly. Structured techniques are used to create initial design models based on user input and prototypes are built on top of that. The end users and analysts use the prototypes to validate and enhance the requirements and design models. The process lasts till a set of final technical requirements and design models have been created.
Ques 14. Describe incremental software development life cycle model.
Incremental SDLC approach suggests construction of a partial system rather than the complete system and then builds more functionality into it. Requirements and features are prioritized and categorized and then implemented in phases, each phase based on the waterfall model. The process continues till the complete system is achieved.
Ques 15. Describe spiral software development life cycle model.
The spiral SDLC model combines components of both design and prototype in phases. It’s a hybrid of waterfall and prototyping model. One should use spiral SDLC model for large and expensive projects.
Ques 16. What is the testing phase in the SDLC model?
One of the most important procedures in the Software Development Lifecycle is testing (SDLC). It enables businesses to do a thorough evaluation of software and verify that their product meets the expectations of their customers. The testing procedure's main purpose is to report, monitor, troubleshoot, and retest software components until they meet the quality requirements established in the initial SRS. During the testing phase, there are numerous forms of testing, including quality assurance testing (QA), system integration testing (SIT), and user acceptability testing (UAT).
Ques 17. What are the different environments related to development while following SDLC?
The following environments are used while following SDLC:
- Dev: A development environment is a workspace where developers may make changes without damaging anything in a live environment. The development environment is frequently referred to as a workspace for developers.
- QA/SIT: System Integration Testing/ Quality Analysis: In a QA environment, you test your update operation against data, hardware, and software that closely resembles the production environment, and you allow intended users to test the outcome.
- UAT/PRE-PROD: User Acceptance Testing: User acceptance testing (UAT) environments, also known as staging environments, let the application's primary users try out new features before they're deployed into production. Sometimes, we call it a Pre-Production environment as well.
- PROD: The "Production" environment, sometimes known as "Live" is where real customers/users interact with the software product.