Unit 1 SDLC Class 12 Computer Science
Unit 1 SDLC Class 12 Computer Science
Requirement analysis is the most important and fundamental stage in SDLC. It is performed by
the senior members of the team with inputs from the customer, the sales department, market
surveys and domain experts in the industry. This information is then used to plan the basic project
approach and to conduct product feasibility study in the economical, operational and technical
areas.
1
Unit 1 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. 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)..
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. 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.
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.
2
Unit 1 SDLC
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". Each process model follows a Series of steps unique to its type
to ensure success in the process of software development.
Following are the most important and popular SDLC models followed in the industry −
• Waterfall Model
• Iterative Model
• Spiral Model
• Prototype model
Waterfall Model
The Waterfall Model was the first Process Model to be introduced. It is also referred to as
a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
model, each phase must be completed before the next phase can begin and there is no
overlapping in the phases.The Waterfall model is the earliest SDLC approach that was used for
software development.The following illustration is a representation of the different phases of the
Waterfall Model.
3
Unit 1 SDLC
Some situations where the use of Waterfall model is most appropriate are −
• Requirements are very well documented, clear and fixed.
• Product definition is stable.
• Technology is understood and is not dynamic.
• There are no ambiguous requirements.
• Ample resources with required expertise are available to support the product.
• The project is short.
Some of the major advantages of the Waterfall Model are as follows −
• Simple and easy to understand and use
• Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
• Phases are processed and completed one at a time.
• Works well for smaller projects where requirements are very well understood.
• Clearly defined stages.
• Well understood milestones.
• Easy to arrange tasks.
• Process and results are well documented.
The major disadvantages of the Waterfall Model are as follows −
• No working software is produced until late during the life cycle.
• High amounts of risk and uncertainty.
• Not a good model for complex and object-oriented projects.
• Poor model for long and ongoing projects.
• Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
• It is difficult to measure progress within stages.
• Cannot accommodate changing requirements.
• Adjusting scope during the life cycle can end a project.
Iterative Model
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 is
then reviewed to identify further requirements. This process is then repeated, producing a new
version of the software at the end of each iteration of the model.
4
Unit 1 SDLC
The key to a successful use of an iterative software development lifecycle is rigorous validation
of requirements, and verification & testing of each version of the software against those
requirements within each cycle of the model. As the software evolves through successive cycles,
tests must be repeated and extended to verify each version of the software.
The disadvantages of the Iterative and Incremental SDLC Model are as follows −
• More resources may be required.
• Although cost of change is lesser, but it is not very suitable for changing requirements.
• More management attention is required.
• System architecture or design issues may arise because not all requirements are
gathered in the beginning of the entire life cycle.
• Defining increments may require definition of the complete system.
• Not suitable for smaller projects.
Spiral 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. 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.
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.
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.
6
Unit 1 SDLC
7
Unit 1 SDLC
Prototype Model
Prototype is a working model of software with some limited functionality. The prototype does not
always hold the exact logic used in the actual software application and is an extra effort to be
considered under effort estimation.
Following is a stepwise approach explained to design a software prototype.
1.Basic Requirement Identification
This step involves understanding the very basics product requirements especially in terms of
user interface. The more intricate details of the internal design and external aspects like
performance and security can be ignored at this stage.
2.Developing the initial Prototype
The initial Prototype is developed in this stage, where the very basic requirements are
showcased and user interfaces are provided. These features may not exactly work in the same
manner internally in the actual software developed. While, the workarounds are used to give the
same look and feel to the customer in the prototype developed.
3.Review of the Prototype
The prototype developed is then presented to the customer and the other important stakeholders
in the project. The feedback is collected in an organized manner and used for further
enhancements in the product under development.
4.Revise and Enhance the Prototype
The feedback and the review comments are discussed during this stage and some negotiations
happen with the customer based on factors like – time and budget constraints and technical
feasibility of the actual implementation. The changes accepted are again incorporated in the new
Prototype developed and the cycle repeats until the customer expectations are met.
Scenario where prototyping is useful
Software Prototyping is most useful in development of systems having high level of user
interactions such as online systems. Systems which need users to fill out forms or go through
various screens before data is processed can use prototyping very effectively to give the exact
look and feel even before the actual software is developed.
8
Unit 1 SDLC
A feasibility analysis is used to determine the viability of an idea, such as ensuring a project is
legally and technically feasible as well as economically justifiable. It tells us whether a project is
worth the investment.
Types of Feasibility study
1. Technical Feasibility
This assessment focuses on the technical resources available to the organization. It helps
organizations determine whether the technical resources meet capacity and whether the technical
team is capable of converting the ideas into working systems. Technical feasibility also involves
the evaluation of the hardware, software, and other technical requirements of the proposed
system..
2. Economic Feasibility
This assessment typically involves a cost/ benefits analysis of the project, helping organizations
determine the viability, cost, and benefits associated with a project before financial resources are
allocated.
3. Legal Feasibility
This assessment investigates whether any aspect of the proposed project conflicts with legal
requirements like zoning laws, data protection acts or social media laws. Let’s say an
organization wants to construct a new office building in a specific location. A feasibility study
might reveal the organization’s ideal location isn’t zoned for that type of business. That
9
Unit 1 SDLC
organization has just saved considerable time and effort by learning that their project was not
feasible right from the beginning.
4. Operational Feasibility
This assessment involves undertaking a study to analyze and determine whether—and how
well—the organization’s needs can be met by completing the project. Operational feasibility
studies also examine how a project plan satisfies the requirements identified in the requirements
analysis phase of system development.
5. Scheduling Feasibility
This assessment is the most important for project success; after all, a project will fail if not
completed on time. In scheduling feasibility, an organization estimates how much time the project
will take to complete.
Below are some key benefits of conducting a feasibility study:
Systems analysts analyse how well software, hardware and the wider IT system fit the business
needs of their employer or of a client. They write requirements for new systems and may also
help implement them and monitor their effectiveness.
10
Unit 1 SDLC
Data Flow
A data-flow is a path for data to move from one part of the information system to another. A
data-flow may represent a single data element such the Customer ID or it can represent a set of
data element (or a data structure).
Example:
• Customer_info (LastName, FirstName, Tel #, etc.)
• Order_info (OrderId, OrderDate, CustomerID, etc.).
Notation
• Straight lines with incoming arrows are input data flow
• Straight lines with outgoing arrows are output data
flows
11
Unit 1 SDLC
Data Store
A data store or data repository is used in a data-flow diagram to represent a situation when the
system must retain data because one or more
processes need to use the stored data in a later
time.
Notation
• Data can be written into the data store,
which is depicted by an outgoing arrow
• Data can be read from a data store, which is
depicted by an incoming arrow.
• Examples are: inventory, Accounts
receivables, Orders, and Daily Payments.
External Entity
Level 1 DFD
Processes in diagram 0 (with a whole number) can be exploded further to represent details of
the processing activities. Example below shows the next level ((Diagram 1) of process
explosion.
13
Unit 1 SDLC
Decision Table
A decision table is a table that indicates conditions and actions in a simplified and orderly
manner. In a decision table, the logic is well divided into conditions, actions (decisions) and rules
for representing the various components that form the logical model. The general format of a
decision table has four basic parts. They include:
14
Unit 1 SDLC
Decision Tree
A decision tree is a decision support tool that uses a branching method to illustrate every possible
outcome of a decision. A decision tree typically begins with a single node, which branches into
possible outcomes. Each of those outcomes results to additional nodes, which branch off into
other possibilities. This gives it a tree-like shape.
15