) What is SDLC? What is the SDLC process? SDLC is an abbreviation for "Software Development Life Cycle". SDLC is the process of systematic development of software by following every step in the development process. The entire process may involve different software development methodologies. SDLC is useful for improving the quality of software and ensuring the software properly meets user expectations. 2) What are the different phases involved in the SDLC process? SDLC approach is used to design or develop software in a systematic manner. Following are the phases involved in an SDLC process: • Planning or Requirement Analysis • System Design • Development • Coding • Testing • Deployment and Maintenance Software Development Life Cycle (SDLC) Phases 3) What is the initial phase of SDLC? The initial phase of the software development life cycle is referred to as "Planning or Requirement Analysis”. It means that the developers figure out the basic requirements of the project and build a plan to achieve that approach. There are several factors such as technical, economic, and operational feasibility which are carried out in the initial phase. The possible risks and other unexpected circumstances that could be a part of the software project are also discussed in this phase. 4) What is the feasibility study? Who does it? The feasibility study is one of the important factors of the software development life cycle. It allows assessing how viable and beneficial software project development will be for any organization. The software analyst is responsible to perform a complete study to understand the technical, economic, and operational feasibility of any project. Technical: Under the technical study, it is measured whether the system can be developed according to the requirements. The study also includes the suitability of devices and operating systems for running the software. Tools and utilities required for the project are also reviewed in the technical study. Economic: All economic factors such as resource transportation, training costs, tools and utility costs, and other costs and benefits are estimated under economic feasibility. Operational: The operational study allows us to measure whether the organization will adjust properly according to the changes made as per the demand of the software project. The study also includes whether the change is useful. 5) What is the design phase in SDLC? In the design phase, the basic structure for the development of the software is designed according to the software requirement specification (SRS). The requirements and other details are documented in a DDS (Design Document Specification). The requirements are further converted into a logical structure and implemented in software through a specific programming language. The design phase is the most challenging phase of the software development life cycle. 6) What is mean by SRS? SRS stands for “Software Requirement Specification”. It is typically a document that is generated at the time of requirement gathering. SRS is referred to as an agreement between the developer and the customer containing all the functional and non-functional requirements of the software to be developed. SRS works as an input for the software design phase. It is built with the proper communication between Business Analysts, client, and the technical team. Functional Requirements: Functional requirements are the functional features and specifications that a user expects from the software. Non-functional Requirements: Non-functional requirements include security, performance, user interface design, interoperability, cost, etc. expected by users from the software. 7) State the importance of the Coding phase. In the coding phase of SDLC, the design document is converted into an executable programming language. This means that the actual programming or coding for the development of the software is performed in this phase according to SRS and DDS. Based on the requirements, the programming language is selected like Java, Python, or C#, etc. This phase is said to be the longest phase of the software development life cycle. The output obtained from the coding phase acts as the input of the test phase. 8) What is the testing phase of SDLC? Prior to deployment of software, programming, or code is tested against DDS to ensure that the software is actually performing according to the specifications addressed during the requirements analysis phase. During the testing phase, various types of tests are done such as unit testing, integration testing, system testing, and acceptance testing, etc. The software testing team works closely with developers to detect and resolve software bugs, which may have occurred in the previous phase. The entire software is retested until it meets the specified requirements outlined in SRS. Nowadays, there are advanced testing tools that allow firms or organizations to test software for selected custom requirements. 9) What tasks are performed in the deployment and maintenance phase? After the software is tested, it is distributed/deployed to customers for their use. The software can be released as a demo to get user feedback, to further improve it. The process of transferring authentication and ownership of software, deployment tasks, and closing of a software project is done in the deployment phase. However, software maintenance is performed after deployment to implement new requirements and to fix bugs present in the software even after the testing phase. The software is continuously monitored during the maintenance phase to measure its stability, flexibility, performance, and user-friendliness. 10) Explain the Software Release Process. The software release process is the distribution of software to the customer. After the testing phase, the project manager typically builds a release team consisting of developers, testers, system administrators, and project management executive. The release team is responsible for the deployment of the software and provides training to use it if necessary. 11) What are the different models of the software development life cycle? There are several models used in SDLC. The following are the commonly used SDLC methodologies or models: • Agile Model • Waterfall Model • Spiral Model • Rapid Application Development (RAD) Model • Iterative or Incremental Model • Evolutionary Prototype Model • V-Shaped Model • Big-bang Model • Capability Maturity Model • DevOps Model Software Development Life Cycle (SDLC) Models 12) Which SDLC model is the best? SDLC models are adopted according to the requirements of the development process. Each model offers unique features for software development. Therefore, it may vary software-to-software to decide which model is best. However, the Agile Model is currently the most popular and widely adopted by software firms. 13) What is the Agile Model in SDLC? What are the advantages of the Agile Model? The Agile method is a quick and realistic development approach to deliver software with few functional requirements within two or three weeks. The model is based on iterative and incremental development where requirements and solutions are developed through collaboration between cross-functional teams. At each iteration, the software is tested. The Agile method needs more engagement and support from the customer as testers and developers work together to establish whether the software meets the requirements. The risks in the Agile method are minor because constant changes are made based on user feedback. Advantages of Agile Model • It is easy to implement, understand, and use. • It has simple and easy deliverables that are often planned on a sprint basis that ensures frequent and high-quality deliverables. • It is suitable for both small and large software development projects. 14) What is the Waterfall model in SDLC? Write its advantages and disadvantages. The waterfall model is one of the earliest and widely used software development processes. The model is based on a sequential design process which means that we move on to the next phase only after the first phase is successfully completed. Therefore, it is also known as the "Linear Sequential Life Cycle Model". This type of development model is typically used for small projects with no uncertain requirements. Advantages of the Waterfall Model • Simple, easy to understand, and use. • Suitable for small projects where requirements are well understood. • Easy to manage due to the rigidity of the model (each phase has specific deliverables and a review process). • Easy to implement because of its linear process. • Allows departmentalization and managerial control. Disadvantages of Waterfall Model • Difficulty in estimating the time and cost of the process resulting in delayed delivery of the product. • Poor model for long and ongoing projects. • High amounts of risk and uncertainty. • Difficulty in implementing new features or requirements in the current development process. • Not suitable for complex and object-oriented projects or projects where requirements are at a moderate to high risk of change. 15) What is the Spiral model in SDLC? The spiral model is similar to the iterative model that is typically implemented in high-risk projects. The spiral life cycle model consists of four stages: planning, risk analysis, engineering, and evaluation. A software project goes through these stages in iterations (called spiral in this model). All activities in this model are organized as a spiral. The spiral model is a combination of the prototype model and the waterfall model. It is generally used for large, expensive, and complex projects. 16) What is the RAD model in SDLC? The term RAD stands for “Rapid Application Development”. As the name itself suggests, the RAD model is a technique for developing fast and high-quality software products by: • Requirements using workshops or focus groups. • Prototyping and early, reiterative user testing of designs. • The re-use of software components. • A rigidly paced schedule that defers design improvements to the next product version. • Less formality in reviews and other team communication. 17) What is the Iterative model in SDLC? An iterative model does not attempt to begin with a full specification of requirements. Instead, development begins by specifying and implementing only part of the software, which can then be reviewed to identify further requirements. This process is then repeated, creating a new version of the software for each cycle of the model. The iterative model is very simple to understand and use. 18) What is the Prototype model in SDLC? A prototype model is an immediate approximation of the final software but is not based on strict planning. A prototype is usually a working sample of software that allows users to test the product to ensure if it meets their needs. Based on the analysis and customer feedback, the developers redefine requirements, modify software design, and produce new Prototypes. The prototypes are enhanced and updated little by little and tested in a real-time environment with the customers. This process reduces the total cost and time taken for development as problems are fixed and all requirements of customers are added before implementation. The available types of prototyping are Rapid, Incremental, Evolutionary, and Extreme. 19) What are the different types of Prototype models? The following are the types of Prototype models: • The Patch-Up Prototype • Non-operational Prototype • First-of-a-Series Prototype • Selected Features Prototype 20) What is the V-shaped model in SDLC? What are some advantages and disadvantages of the V-shaped model? The V-shaped model is an updated form of the waterfall model. As the name suggests, the V-shaped model stands for the validation and validation model. The verification phase includes requirements analysis, product design, architecture design, and module design. The validation phase consists of unit testing, system testing, integration, and acceptance testing. In a V-shaped model, a phase is started only after successfully completing the last phase. Developers and testers work parallel to achieve product requirements. Advantages of V-shaped Model • The higher success rate as multiple stages of testing are performed. • Due to multiple stage testing, the quality of the product increases. • Each stage has specific deliverables. • Supports various development methods such as structured and object-oriented system development. • Suitable for small projects where the requirements are easily understood. Disadvantages of V-shaped Model • Expensive, rigid, and least flexible. • Software is developed during the implementation phase, so there will be no prototype of the software project. • It is difficult to add new requirements and changes in the middle of the process as the entire system will be updated, including test documents and requirements documents. 21) What is the Big-bang model in SDLC? The Big Bang model has no specific process. Planning takes less time and the requirements are implemented without much analysis and research. It is commonly used for small projects and is not suggested for large or complex projects. The Big Bang model is a high-risk model, even the customer is not sure about their needs and objectives. If the requirements are misunderstood, the entire project may go in the wrong direction and may have to be restarted. 22) What is the Capability Maturity Model in SDLC? What are the capability maturity levels? The Capability Maturity Model (CMM) is a standard or benchmark for analyzing and measuring the maturity of software development processes being followed in an organization. It is a technique used to develop and refine a company’s software development process. CMM can be used to assess an organization against a scale of five process maturity levels based on certain key process areas (KPAs). It describes the maturity of the organization based on the project the organization is working on with customers. The five different levels of the Capability Maturity Model are: • Initial • Repeatable • Defined • Managed (Capable) • Optimizing (Efficient) 23) What is the DevOps model in SDLC? The DevOps methodology is one of the latest methodologies in the process of the software development life cycle. As the name suggests, Developers and Operations teams work closely as a single team. This helps accelerate innovation and deploy higher-quality and more reliable software products and functionalities. In a DevOps model, small and frequent updates are provided for software products. Discipline, continuous feedback and process improvement, and automation of manual development processes are all indications of the DevOps model. 24) Explain HLD and LLD in short. HLD: HLD stands for “High-Level Design". It provides the overall system design in terms of functional architecture and database design. It consists of the entire architectural design of the system from the main module to all sub-modules. LLD: LLD stands for "Low-Level Design". The view of the application developed during the HLD is broken down into modules and programs. Then it is designed separately. Logic design is done for each application or program and then documented according to the program's prescribed specifications. A unit test is also made for each program. 25) What is the role of Requirements Gathering in SDLC? In the initial phase of SDLC, requirements analysis and gathering are done. The project requirements are analyzed in terms of input data and the desired output. The cost analysis, benefits, and scheduling of the project are also analyzed in this phase. Business analysts are responsible for gathering requirements from the customer and document them. The document may be referred to as BRS (Business Requirements Specification) or CRS (Customer Requirements Specification) or PRD (Product Requirements Specification) or URS (User Requirements Specification) or BDD (Business Design Document). Document name may vary from company to company but the process is the same. 26) What does STLC mean? How is it different from SDLC? STLC stands for “Software Testing Life Cycle”. STLC is a process of testing any software in a planned and systematic way. Different organizations have different phases and methodologies in their software testing process. However, a generic STLC involves the following phases: • Planning • Test Design • Execution • Evaluation of Exit criteria • Closure Difference between SDLC and STLC: The main differences between SDLC and STLC are tabulated below: SDLC STLC Software Development Life Cycle (SDLC) is a process of systematic development of software from design to deployment. Software Testing Life Cycle (STLC) is a process of systematic testing of software by following different testing phases. SDLC includes complete verification and validation of Process or Project. STLC only includes Validation. Requirements are calculated from market and sales data and analyzed by the development team. Requirements are gathered from the SRS (Software Requirement Specification) by the testing team to test the software to see if it meets the requirements. Coding is done to develop the software according to the needs of the SRS. develop test cases and to identify test points to use these cases. Coding is done to 27) What is mean by Software Maintenance? Can software bug fixes also be performed in software maintenance? Software maintenance is a process of SDLC. Modifying or updating existing software after delivery is necessary to fix bugs and improve performance. Sometimes, new features are also required by the customer. Therefore the maintenance team consisting of developers, testers, and project manager officers is formed by the project manager who is responsible for software maintenance. Various types of software maintenance are: Corrective: Removing errors reported by users. Adaptive: Dealing with changes in hardware and software environments where software is deployed. Perfective: Adding new requirements or features as per user’s need. Preventive: Taking appropriate measures to avoid future problems. 28) What is mean by the 'scope' of a project? The scope of the project or Software scope is the predefined objectives, goals, and expectations of the project. It is a well-defined boundary, which contains all the stages required to develop and distribute the software product. The software scope also includes all the artifacts, features, and functionalities to be distributed as a part of the software. The scope also helps identify what the final software will be able to do and what it will involve. 29) What is the primary aim of SDLC? The primary purpose of the software development life cycle is to follow a systematic, planned approach to create a robust software application for the customer. The entire software development process is divided into several stages that make it easy to evaluate each stage of development and work concurrently on each stage. SDLC not only helps in easy development, but it also helps to ensure that the software meets customer requirements. 30) What are the Pros and Cons of the software development life cycle? Pros: • The formal review is created at the end of each phase that allows maximum management control. • SDLC approach helps developers to create considerable system documentation which ensures that the software requirements meet stated business goals and objectives. • Many intermediate products can be produced with this approach according to user-defined standards and requirements. These products can be further improved to ensure that the business needs it. Cons: • Producing documentation is time-consuming and expensive. It's even harder to keep updated. • SDLC encourages stiff implementation instead of creativity. • Users may not be able to easily review and evaluate intermediate products (such as data flow diagrams) according to their business needs.