What Is SDLC?: You Do Software Development Process
What Is SDLC?: You Do Software Development Process
What Is SDLC?: You Do Software Development Process
What is SDLC?
SDLC is a process followed for a software project, within a software organization. It
consists of a detailed plan describing how to develop, maintain, replace and alter or
enhance specific software. The life cycle defines a methodology for improving the
quality of software and the overall development process.
The following figure is a graphical representation of the various stages of a typical
SDLC.
Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer or
the market analysts. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be
designed and developed during the project life cycle.
SRS is the reference for product architects to come out with the best architecture for
the product to be developed. Based on the requirements specified in SRS, usually
more than one design approach for the product architecture is proposed and
documented in a DDS - Design Document Specification.
This DDS is reviewed by all the important stakeholders and based on various
parameters as risk assessment, product robustness, design modularity, budget and
time constraints, the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along
with its communication and data flow representation with the external and third party
modules (if any). The internal design of all the modules of the proposed architecture
should be clearly defined with the minutest of the details in DDS.
In this stage of SDLC the actual development starts and the product is built. The
programming code is generated as per DDS during this stage. If the design is
performed in a detailed and organized manner, code generation can be
accomplished without much hassle.
Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate
the code. Different high level programming languages such as C, C++, Pascal, Java
and PHP are used for coding. The programming language is chosen with respect to
the type of software being developed.
This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC. However, this stage
refers to the testing only stage of the product where product defects are reported,
tracked, fixed and retested, until the product reaches the quality standards defined
in the SRS.
Stage 6: Deployment in the Market and Maintenance
Once the product is tested and ready to be deployed it is released formally in the
appropriate market. Sometimes product deployment happens in stages as per the
business strategy of that organization. The product may first be released in a limited
segment and tested in the real business environment (UAT- User acceptance
testing).
Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment. After the product is released in the
market, its maintenance is done for the existing customer base.
• Heuristic methods
dealing with informal approaches.
• Formal methods
dealing with mathematically based approaches.
• Prototyping methods
dealing with software engineering approaches based on
various forms of prototyping
Heuristic Methods
These are categories as
Structured methods
The system is built from a functional viewpoint, starting with a high-level view and
progressively refining this
into a more detailed design.
Data-oriented methods
The starting points are the data structures that a program manipulates rather than the
function it performs
Object-oriented methods
The system is viewed as a collection of objects rather than functions
Domain-specific methods
Includes specialized methods for developing systems which involve real-time, safety,
or security aspects
Formal Methods
These are categorized as
Specification languages and notations
This topic concerns the specification notation or language used. Specification
languages can be classified as model-oriented, property-oriented, or
behavior-oriented
Refinement
This topic deals with how the method refines (or transforms) the specification
into a form which is closer to the desired final form of an executable program .
Verification/Proving properties:
This topic covers the verification properties that are specific to the formal
approach, including both theorem proving and model checking
Prototyping Methods
These are categorized as
Prototyping styles
The prototyping styles topic identifies the various approaches: throwaway,
evolutionary, and
executable specification
Prototyping targets
Examples of the targets of a prototyping method may be requirements, architectural
design, or the user interface
Prototyping evaluation techniques
This topic covers the ways in which the results of a prototype exercise are used
4) What is SRS? Explain the requirements classification?
Qualities of SRS:
Correct
Unambiguous
Complete
Consistent
Ranked for importance and/or stability
Verifiable
Modifiable
Traceable
A software requirement can be of 3 types:
Functional requirements
Non-functional requirements
Domain requirements