SDLC Interview Questions & Answers

SDLC stands for Software Development Life Cycle. A Software Development Life Cycle is essentially a series of steps, or phases, that provide a model for the development and lifecycle management of an application or piece of software.

In other words, it is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application.

SDLC is required in order to have a systematic, planned approach to build a software application for the client.

  • Requirement gathering and analysis
  • Design
  • Implementation or coding
  • Testing
  • Deployment
  • Maintenance

 

  • Waterfall model
  • V model
  • Incremental model
  • Rapid Application Development(RAD) model
  • Agile model
  • Iterative model
  • Spiral model
  • Big-bang Model
  • Prototype Model
  • Capability Maturity Model
  1. The project requirements are analyzed in terms of input data and desired output, processing required to transform input into output, cost-benefit analysis, and schedule of the project. It also includes gathering, analyzing, validating, and specifying requirements.

SRS or Software Requirement Specification is a document produced at the time of requirement gathering process. It can be also seen as a process of refining requirements and documenting them.

SRS is a formal document that acts as a written agreement between the development team and the customer. SRS acts as input to the design phase and includes functional, performance, software, hardware, and network requirements of the project.

It is a measure to assess how practical and beneficial the software project development will be for an organization. The software analyzer conducts a thorough study to understand economic, technical and operational feasibility of the project.

  • The CRS is a brief document prepared by the business analyst and might contains many contradicting data, duplicates, missing information.
  • The SRS is a base lined and final document that is well organized and clear in terms of understanding which is used as reference by the test engineers.
  • FS document contains the constraints and limitations that are specified by the client and that must be implemented into the application. SRS document contains the requirements of the application.
  • FS document is prepared by the business analyst and the developer together. SRS document is prepared by the Business Analyst only.

The requirements specified in the SRS document is translated into a logical structure that can be implemented in a programming language. System Design helps in specifying hardware, system requirements and in defining overall system architecture. The output of the design phase is a design document that acts as an input for all the subsequent SDLC phases.

The design specified in the design document is implemented into executable programming language code. The output of the coding phase is the source code for the software that acts as input to the testing and maintenance phase. This is the longest phase of the software development life cycle.

    1. In testing phase, the code developed is tested against the design document to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase unit testing, integration testing, system testing, acceptance testing are done.

 

  1. The Deployment phase is nothing but the product is delivered / deployed to the customer for their use after the successful testing.

The Maintenance phase includes implementation of changes that software might undergo over a period of time, or implementation of new requirements after the software is deployed at the customer location. The maintenance phase also includes handling the residual errors that may exist in the software even after the testing phase.

The Waterfall model is a sequential design process, used in software development processes and it is the first process model introduced. It is also known as Classic Life Cycle Model (or) Linear Sequential Model.

In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the project which is small and there are no uncertain requirements. It is very simple to understand and use.

  1. V- Model means Verification and Validation model and it is a modified version of the Waterfall method. In V-Model developer and tester works parallel. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing.
  1. The incremental model is an intuitive approach to the waterfall model. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed iterations. Each iteration passes through the requirements, design, implementation and testing phases.

RAD (rapid application development) is a concept that products can be developed faster and of higher quality through:

  • 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.
  1. In agile model, the product or solution is first divided into features which need to be developed. If there are new features identified in the midst of complete product release it again gets planned across sprints. Agile Sprint duration is decided based on feature to be developed. Every sprint goes through the phases of Requirement, Design, Development and Testing phase. The most important of the principles is customer satisfaction by giving rapid and continuous delivery of small and useful software.

An iterative life cycle model does not attempt to start with a full specification of requirements. Instead, development begins by specifying and implementing just part of the software, which can then be reviewed in order to identify further requirements. This process is then repeated, producing a new version of the software for each cycle of the model.

The spiral model is similar to the incremental model, but incorporates risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spiral builds on the baseline spiral. Requirements are gathered during the planning phase.

This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive, and complicated projects.

The Big Bang model follows no specific process, and very little time is spent on planning. Even the customer is not sure about what exactly they want and the requirements are implemented on the fly without much analysis. This is typically used for small projects and not recommended for large or complex projects, as it’s a high-risk model; if the requirements are misunderstood in the beginning, you could get to the end and realize the project may have to be started all over again.

A prototype is a model or a program which is not based on strict planning, but is an early approximation of the final product or software system. A prototype acts as a sample to test the process.

A prototype model focuses on developing the software little by little and tested in a real time environment with the customers in mind.

  1. Capability Maturity Model is a bench-mark for measuring the maturity of an organization’s software process. It is a methodology used to develop and refine an organization’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 (KPA). It describes the maturity of the company based upon the project the company is dealing with and the clients. Each level ranks the organization according to its standardization of processes in the subject area being assessed.
  • Initial
  • Managed
  • Defined
  • Quantitatively Managed
  • Optimizing
  • The Patch-Up Prototype
  • Nonoperational Prototype
  • First-of-a-Series Prototype
  • Selected Features Prototype
  1. Advantages:
    • This model is simple and easy to understand and use.
    • It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
    • In this model phases are processed and completed one at a time. Phases do not overlap.
    • Waterfall model works well for smaller projects where requirements are very well understood.
    • It allows for departmentalization and managerial control.
    • As its linear model, it’s easy to implement.

    Disadvantages:

    • Software is delivered late in project, delays discovery of serious errors.
    • Difficult to integrate risk management.
    • Difficult and expensive to make changes to documents “swimming upstream”.
    • Significant administrative overhead, costly for small teams and projects.
    • If client want the requirement to be changed, it will not implemented in the current development process.
    • Poor model for long and ongoing projects.

Advantages:

  • Simple and easy to use.
  • Each phase has specific deliverables.
  • Higher chance of success over the waterfall model due to the early development of test plans during the life cycle.
  • Works well for small projects where requirements are easily understood.
  • Avoids the downward flow of the defects.

Disadvantages:

  • Very rigid and least flexible.
  • Software is developed during the implementation phase, so no early prototypes of the software are produced.
  • If any changes happen in midway, then the test documents along with requirement documents has to be updated.

Advantages:

  • More flexible when adding or changing requirements.
  • Easier to test and debug.
  • Lowers initial delivery cost.
  • Easier to manage risk because risky pieces are identified and handled during its iteration.
  • Generates working software quickly and early during the software life cycle.

Disadvantages:

  • Each phase of an iteration is rigid and do not overlap each other.
  • Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle.
  • Needs good planning and design.
  • Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.

Advantages:

  • Reduces the development time and reusability of components help to speed up development.
  • Easy to work if all functions are modularized.
  • Quick initial reviews occur.
  • Encourages customer feedback.
  • Integration from very beginning solves a lot of integration issues.

Disadvantages:

  • Only system that can be modularized can be built using RAD.
  • Requires highly skilled developers/designers.
  • High dependency on modeling skills.
  • Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
  1. It begins with requirements gathering. Developers and Customers meet and define the overall objectives of the software.Developers prepare design documents using all available requirements then build the prototypes, prototypes are sent to Customer, and Customer evaluates Prototypes and gives feedback. Developers redefine Requirements, modify software design and produce modified Prototypes. Process will be continued like this, after getting Customer’s confirmation Developers Start Regular process; Software Design, Coding (Implementation), Testing and Release & Maintenance.The Objective of this approach is getting clear (Complete and Correct) Requirements from Customers in order to avoid Defects multiplication.
  • It is an expensive approach and time taking process when its compare to sequential models like Waterfall model.
  • Customer could believe the prototype as the working version.
  • Developer also could make the implementation compromises.
  • Once Requirements finalized then adopting changes in Requirements and adding New Requirements are difficult.

There are different methodologies, which are a part of the agile model. The most famous one is scrum methodology. Like all the other agile computer programming, scrum is also an iterative and incremental methodology. This methodology is different than the other methodologies because, the idea of empirical process control was introduced in this process. As a matter of fact, scrum was introduced for software project management. However, it was eventually also used for software maintenance.

The best part of the scrum methodology is that it makes use of real world progress of a project, which is used for planning and scheduling releases. The entire computer software project is divided into small parts known as sprints.

The duration of sprint can range from one week to three weeks. At the end of the duration of the sprint, the team members along with the stakeholders meet. This meeting helps in assessing the progress of the project and chalk out the further plan of action. This assessment helps in taking stalk of the current state of affairs and rework the line of work and complete the project on time and not just speculate or predict the further outcome.

The Spiral Life Cycle Model is a type of iterative software development model which is generally implemented in high risk projects.

It was first proposed by Boehm. In this system development method, we combine the features of both, waterfall model and prototype model. In Spiral model we can arrange all the activities in the form of a spiral.

This is an initial stage in SDLC; in this stage business analyst category people gather requirements from the customer and document them, the document called BRS (Business requirements specification) or CRS (customer requirements specification) or URS (user requirements specification) or PRD (product requirements specification) or BDD (business design document)

NOTE:

  • Document name may vary from one company to another but process is same
  • In software application development BA category people gather requirements from a specific customer
  • In software product development BA category people gather requirements from model customers in the market
  1. BRS is Business Requirement Specification which means the client who want to make the application gives the specification to software development organization and then the organization convert it to SRS (Software requirement Specification) as per the need of the software.
  • Software Requirements Specification (SRS) is a perfect detailed description of the behavior of the system to be developed.
  • SRS document is an agreement between the developer and the customer covering the functional and non functional requirements of the software to be developed.
  • SRS document consists of 2 sub documents:
    1. System Requirements Specification
    2. Functional Requirements Specification
  • SRS can be derived from BRS Document and it is technical document.
  1. High Level Design gives the overall System Design in terms of Functional Architecture and Database design. It designs the over all architecture of the entire system from main module to all sub module.
  1. Low Level Design the view of the application developed during the high level design is broken down into modules and programs. Logic design is done for every program and then documented as program specifications. For every program, a unit test plan is created.

PM (Project Manager) forms Release Team, Release team consists of a few developers, testers,project management executive, and system administrator Release Team goes to customer place and deploys software.

Release Team provides some training to the customer site people (if required)

PM (Project Manager) forms Maintenance Team, Maintenance team consists ofa few developers, testers, and project management executive CCB receives customer change requests and perform required changes Maintenance(3 types)

  • Modifications
    1. Corrective changes
    2. Enhancements
  • Migration Migrating from old technology to new technology

(ex: windows 98 to Vista/windows 7)
Ms Access to SQL Server/Oracle)

  • Retirement Retiring the Old system and developing New system

(Ex: II­tier application to web application)

The process of testing software in a well planned and systematic way is known as software testing life cycle(STLC).
Different organizations have different phases in STLC however generic

Software Test Life Cycle (STLC) consists of the following phases:

  1. Test Planning
  2. Test Design
  3. Test Execution
  4. Evaluating the Exit criteria
  5. Test Closure

Software Development Life Cycle involves the complete Verification and Validation of a Process or a Project.

Whereas Software Testing Life Cycle involves only Validation. Software Development Life Cycle involves business requirement specifications, Analysis, Design,Software requirement specifications, Development Process(Coding and Application development), Testing Process(Preparation of Test Plan,Preparation of Test cases,Testing,Bug reporting,Test Logs & Test Reports), Release and Maintenance.

Whereas Software Testing Life Cycle involves Preparation of Test Plan, Preparation of Test cases,Test execution ,Bug reporting & Tracking, Re & Regression Testing and Test Closure.

STLC is a Part of SDLC.