Describe Steps in SDLC Model With An Example
Describe Steps in SDLC Model With An Example
System analysis:-
It is a set of activity in which the system analyst gathers the information requirements of
the users, analyses them systematically in the form of functionality of the application system, the
input data requirement and their sources the output data and their presentation requirements.
The system analyst gathers data about the performance expectations of the users such as
expected response time the total turn around time etc. the system analyst finally prepares a
document called as system requirement specification(SRS) which documents all the agreements
reached between the users and the system analyst.
System design:-
It involves preparing the blue print of the new software system. Taking the SRS as a base
to start with it prepares various diagrammatic representations of the logical and physical artifacts
to be developed during the software development stages to follow. The major artifacts include
data models, process models and presentation model. finally the system design is documented
Coding or Construction:-
This involves programming and testing individual programs on the basis of the design
document. The developers responsible for programming also creates text data sets for inputs and
verifies that the program generate the expected output for these inputs data sets the individual
program are also reviewed to ensure that they meet programming standard as expected by the
users. This is the only face where the conceptual system is first translated into a computer
executable program sources.
Testing:-
It is to demonstrate to the development team members that the software system works
exactly to meet the user expectation of information requirements as well as the performance
expectation . it involves planning the testing creating the text data executing text runs matching
the text results with the expected results, analyzing the differences fixing the bugs and testing the
bug fixing repeatedly until a satisfactory number of mismatches are removed.
Implementation:-
It involves installing the software system on the user computer system conducting user
trained on new software system data preparations parallel running and going live as core
activities. This is the stage where the software system is first transferred to the user’s premises
and the users get a chance to work on the new software system for the first time. Also it involves
the most important step of user acceptance testing which marks the technical and commercial
milestone of the software development project
Maintenance:-
It involves maintaining the software system always up to date to ensure that it is in the
line with current information requirements considering even the latest changes in the same. It
helps keep the software system up to date thereby ensuring the user’s high return on their
investment at operational level of the business. The developer analyses the changes in the light of
the latest changes in the design identifies the new changes in the system design, verify quickly
that it works as expected.
Model of the Systems Development Life Cycle with the Maintenance bubble highlighted.
The Systems Development Life Cycle (SDLC), or Software Development Life Cycle in
systems engineering, information systems and software engineering, is the process of creating or
altering systems, and the models and methodologies that people use to develop these systems.
The concept generally refers to computer or information systems.
In software engineering the SDLC concept underpins many kinds of software
development methodologies. These methodologies form the framework for planning and
controlling the creation of an information system: the software development process.
Overview
Systems and Development Life Cycle (SDLC) is a process used by a systems analyst to
develop an information system, including requirements, validation, training, and user
(stakeholder) ownership. Any SDLC should result in a high quality system that meets or exceeds
customer expectations, reaches completion within time and cost estimates, works effectively and
efficiently in the current and planned Information Technology infrastructure, and is inexpensive
to maintain and cost-effective to enhance.
Computer systems are complex and often (especially with the recent rise of Service-
Oriented Architecture) link multiple traditional systems potentially supplied by different
software vendors. To manage this level of complexity, a number of SDLC models have been
created: "waterfall"; "fountain"; "spiral"; "build and fix"; "rapid prototyping"; "incremental"; and
"synchronize and stabilize".[citation needed]
SDLC models can be described along a spectrum of agile to iterative to sequential. Agile
methodologies, such as XP and Scrum, focus on light-weight processes which allow for rapid
changes along the development cycle. Iterative methodologies, such as Rational Unified Process
and Dynamic Systems Development Method, focus on limited project scopes and expanding or
improving products by multiple iterations. Sequential or big-design-upfront (BDUF) models,
such as Waterfall, focus on complete and correct planning to guide large projects and risks to
successful and predictable results[citation needed]. Other models, such as Anamorphic Development,
tend to focus on a form of development that is guided by project scope and adaptive iterations of
feature development.
In project management a project can be defined both with a project life cycle (PLC) and
an SDLC, during which slightly different activities occur. According to Taylor (2004) "the
project life cycle encompasses all the activities of the project, while the systems development life
cycle focuses on realizing the product requirements".[3]
History
The systems development life cycle (SDLC) is a type of methodology used to describe
the process for building information systems, intended to develop information systems in a very
deliberate, structured and methodical way, reiterating each stage of the life cycle. The systems
development life cycle, according to Elliott & Strachan & Radford (2004), "originated in the
1960s to develop large scale functional business systems in an age of large scale business
conglomerates. Information systems activities revolved around heavy data processing and
number crunching routines".
Several systems development frameworks have been partly based on SDLC, such as the
Structured Systems Analysis and Design Method (SSADM) produced for the UK government
Office of Government Commerce in the 1980s. Ever since, according to Elliott (2004), "the
traditional life cycle approaches to systems development have been increasingly replaced with
alternative approaches and frameworks, which attempted to overcome some of the inherent
deficiencies of the traditional SDLC".[4]
Project planning, feasibility study: Establishes a high-level view of the intended project and
determines its goals.
Systems analysis, requirements definition: Refines project goals into defined functions and
operation of the intended application. Analyzes end-user information needs.
Systems design: Describes desired features and operations in detail, including screen layouts,
business rules, process diagrams, pseudo code and other documentation.
Implementation: The real code is written here.
Integration and testing: Brings all the pieces together into a special testing environment, then
checks for errors, bugs and interoperability.
Acceptance, installation, deployment: The final stage of initial development, where the
software is put into production and runs actual business.
Maintenance: What happens during the rest of the software's life: changes, correction, additions,
and moves to a different computing platform and more. This, the least glamorous and perhaps
most important step of all, goes on seemingly forever.
In the following example (see picture) these stage of the Systems Development Life Cycle are
divided in ten steps from definition to creation and modification of IT work products:
The tenth phase occurs when the system is disposed of and the task performed is either
eliminated or transferred to other systems. The tasks and work products for each phase are
described in subsequent chapters. [6]
Not every project will require that the phases be sequentially executed. However, the phases are
interdependent. Depending upon the size and complexity of the project, phases may be combined
or may overlap.[6]
System analysis
The goal of system analysis is to determine where the problem is in an attempt to fix the
system. This step involves breaking down the system in different pieces to analyze the situation,
analyzing project goals, breaking down what needs to be created and attempting to engage users
so that definite requirements can be defined. Requirements analysis sometimes requires
individuals/teams from client as well as service provider sides to get detailed and accurate
requirements....often there has to be a lot of communication to and from to understand these
requirements. Requirement gathering is the most crucial aspect as many times communication
gaps arise in this phase and this leads to validation errors and bugs in the software program.
Design
In systems design the design functions and operations are described in detail, including
screen layouts, business rules, process diagrams and other documentation. The output of this
stage will describe the new system as a collection of modules or subsystems.
The design stage takes as its initial input the requirements identified in the approved
requirements document. For each requirement, a set of one or more design elements will be
produced as a result of interviews, workshops, and/or prototype efforts.
Design elements describe the desired software features in detail, and generally include functional
hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams,
pseudocode, and a complete entity-relationship diagram with a full data dictionary. These design
elements are intended to describe the software in sufficient detail that skilled programmers may
develop the software with minimal additional input design.
Implementation
Modular and subsystem programming code will be accomplished during this stage. Unit
testing and module testing are done in this stage by the developers. This stage is intermingled
with the next in that individual modules will need testing before integration to the main project.
Testing
The code is tested at various levels in software testing. Unit, system and user acceptance
testings are often performed. This is a grey area as many different opinions exist as to what the
stages of testing are and how much if any iteration occurs. Iteration is not generally part of the
waterfall model, but usually some occur at this stage.
Following are the types of testing:
Data set testing.
Unit testing
System testing
Integration testing
Black box testing
White box testing
Regression testing
Automation testing
User acceptance testing
Performance testing
Production process that ensures that the program performs the intended task.
A data flow diagram (DFD) is a graphical representation of the "flow" of data through
an information system. DFDs can also be used for the visualization of data processing (structured
design).
On a DFD, data items flow from an external data source or an internal data store to an
internal data store or an external data sink, via an internal process.
A DFD provides no information about the timing of processes, or about whether
processes will operate in sequence or in parallel. It is therefore quite different from a flowchart,
which shows the flow of control through an algorithm, allowing a reader to determine what
operations will be performed, in what order, and under what circumstances, but not what kinds of
data will be input to and output from the system, nor where the data will come from and go to,
nor where the data will be stored (all of which are shown on a DFD).
Overview
A Level 2 Data flow diagram showing the "Process Enquiry" process for the same
system.
This level is a decomposition of a process shown in a level-1 diagram, as such there
should be a level-2 diagram for each and every process shown in a level-1 diagram. In this
example, processes 1.1, 1.2 & 1.3 are all children of process 1. Together they wholly and
completely describe process 1, and combined must perform the full capacity of this parent
process. As before, a level-2 diagram must be balanced with its parent level-1 diagram.