Uploaded by mavisnyathi07

What is SDLC W-WPS Office

advertisement
) 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.
Download