Chapter 2 SDL
Chapter 2 SDL
• 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.
Stage 4: Building or Developing the Product
• 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.
Stage 5: Testing the Product
• his 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.
SDLC Models
• There are various software development life cycle models defined and
designed which are followed during the software development process.
• These models are also referred as Software Development Process Models.
• Following are the most important and popular SDLC models followed in the
industry −
• Waterfall Model
• Iterative Model
• Spiral Model
• V-Model
• Big Bang Model
• Other related methodologies are Agile Model, RAD Model, Rapid Application
Development and Prototyping Models.
Waterfall Model
• The spiral model combines the idea of iterative development with the
systematic, controlled aspects of the waterfall model. This Spiral
model is a combination of iterative development process model and
sequential linear development model i.e. the waterfall model with a
very high emphasis on risk analysis. It allows incremental releases of
the product or incremental refinement through each iteration around
the spiral.
Phases of Spiral Model
• The spiral model has four phases. A software project repeatedly passes
through these phases in iterations called Spirals.
• Identification: This phase starts with gathering the business requirements
in the baseline spiral. In the subsequent spirals as the product matures,
identification of system requirements, subsystem requirements and unit
requirements are all done in this phase.
• This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the end of the
spiral, the product is deployed in the identified market.
• Design: The Design phase starts with the conceptual design in the baseline
spiral and involves architectural design, logical design of modules, physical
product design and the final design in the subsequent spirals.
Phases of Spiral Model
• Construct or Build: The Construct phase refers to production of the actual
software product at every spiral. In the baseline spiral, when the product is
just thought of and the design is being developed a POC (Proof of Concept)
is developed in this phase to get customer feedback.
• Then in the subsequent spirals with higher clarity on requirements and design details
a working model of the software called build is produced with a version number.
These builds are sent to the customer for feedback.
• Evaluation and Risk Analysis: Risk Analysis includes identifying, estimating
and monitoring the technical feasibility and management risks, such as
schedule slippage and cost overrun. After testing the build, at the end of
first iteration, the customer evaluates the software and provides feedback.
The following illustration is a representation of the Spiral Model, listing
the activities in each phase.
Spiral Model Application
• The traditional SDLC follows a rigid process models with high emphasis on
requirement analysis and gathering before the coding starts. It puts
pressure on the customer to sign off the requirements before the project
starts and the customer doesn’t get the feel of the product as there is no
working build available for a long time.
• The customer may need some changes after he gets to see the software.
However, the change process is quite rigid and it may not be feasible to
incorporate major changes in the product in the traditional SDLC.
• The RAD model focuses on iterative and incremental delivery of working
models to the customer. This results in rapid delivery to the customer and
customer involvement during the complete development cycle of product
reducing the risk of non-conformance with the actual user requirements.
RAD Model - Application
• Throwaway/Rapid Prototyping
• Throwaway prototyping is also called as rapid or close ended prototyping. This type
of prototyping uses very little efforts with minimum requirement analysis to build a
prototype. Once the actual requirements are understood, the prototype is discarded
and the actual system is developed with a much clear understanding of user
requirements.
• Evolutionary Prototyping
• Evolutionary prototyping also called as breadboard prototyping is based on building
actual functional prototypes with minimal functionality in the beginning. The
prototype developed forms the heart of the future prototypes on top of which the
entire system is built. By using evolutionary prototyping, the well-understood
requirements are included in the prototype and the requirements are added as and
when they are understood.
Software Prototyping - Types
• Incremental Prototyping
• Incremental prototyping refers to building multiple functional prototypes of
the various sub-systems and then integrating all the available prototypes to
form a complete system.
• Extreme Prototyping
• Extreme prototyping is used in the web development domain. It consists of
three sequential phases. First, a basic prototype with all the existing pages is
presented in the HTML format. Then the data processing is simulated using a
prototype services layer. Finally, the services are implemented and integrated
to the final prototype. This process is called Extreme Prototyping used to
draw attention to the second phase of the process, where a fully functional UI
is developed with very little regard to the actual services.
Software Prototyping - Application
• Since a working model of the system is displayed, the users get a better
understanding of the system being developed.
• Reduces time and cost as the defects can be detected much earlier.