SlideShare a Scribd company logo
SYSTEM DEVELOPMENT LIFE CYCLE: 
System Development Life Cycle is the process of developing, implementing, and retiring 
information systems through a multistep process from initiation, analysis, design, 
implementation, and maintenance to disposal. It helps in establishing a system project plan, 
because it gives an overall list of processes and sub-processes required for developing a 
system, which means that it is a combination of various activities. In the System Analysis 
and Design terminology, the system development life cycle also means software 
development life cycle. 
OR 
We can say that it is the conceptual model that describes the stages involved in an 
information system development project in project management. 
Now let's discuss System Development Life Cycle with its different Phases in detail:
Phases: 
o SYSTEM STUDY 
a) Preliminary System Study 
b) Feasibility Study 
c) Detailed System Study 
d) System Analysis 
e) System Design 
o Preliminary or General Design 
o Structured or Detailed Design 
o CODING 
o TESTING 
--Program Test 
--System Test 
o IMPLEMENTATION 
o MAINTAINANCE 
SYSTEM STUDY: 
1. Preliminary System Study: As the name says it is the first stage of a 
system development life cycle, a brief investigation of the system under 
consideration and gives a clear picture of what actually the physical system 
is? It involves the preparation of a 'System Proposal' which lists the Problem 
Definition, Objectives of the Study, Terms of reference for Study,
Constraints, and Expected benefits of the new system, etc. A System Analyst 
will prepare the proposal and cycle proceeds to the next stage. It depends 
on the management to accept it; they also reject it or request some 
modifications in the proposal. Actually a system study phase passes through 
the following steps: 
 Problem identification and project initiation 
 Background analysis 
 Inference or findings (system proposal) 
2. Feasibility Study: If the proposal is accepted by the management then 
the next phase is to examine the feasibility of the system. In this phase the 
software analysts and strategy makers establish a descriptive view of the 
intended project and determine its goals & objectives. If the project is to 
proceed, the feasibility study will produce a project plan and budget 
estimates for the future stages of development. The main goal of feasibility 
study is not to solve the problem but to achieve the scope. In the process of 
feasibility study, the cost and benefits are estimated with greater accuracy 
to find the Return on Investment (ROI). 
3. Detailed System Study: In accordance with the objectives of the 
proposed system the detailed investigation of the system is carried out. 
Various operations performed by a system and their relationships within and 
outside the system. In this process data are collected on the available files, 
decision points and transactions handled by the present system. It becomes 
easy to draw the exact boundary of the new system under consideration by 
following the steps below: 
 Keeping in view the problems and new requirements 
 Workout the pros and cons including new areas of the system 
There should be proper documentation of all the data and the findings in the 
form of 
detailed data flow diagrams (DFDs), data dictionary, logical data structures 
and miniature specification. The important points that should be discussed in 
this stage are: 
 Specification of what the new system is to accomplish based on the user 
requirements. 
 Functional hierarchy showing the functions to be performed by the new system and 
their relationship with each other. 
 Functional network, which are similar to function hierarchy but they highlight the 
functions which are common to more than one procedure.
 List of attributes of the entities these are the data items which need to be held 
about each entity (record). 
4. System Analysis: In this phase there is a main role of system analyst, 
he is the one who should analyze the end-user information needs and 
prepare a solid plan. Analysis gathers the requirements for the system. This 
stage includes a detailed study of the business needs of the organization. 
Options for changing the business process may be considered. In other 
words it is a process of collecting factual data, understand the processes 
involved, identifying problems and recommending feasible suggestions for 
improving the system functioning. It also includes subdividing of complex 
process involving the entire system, identification of data store and manual 
processes. The major objectives of systems analysis are to find answers for 
each business process: What is being done? How is it being done? Who is 
doing it? When is he doing it? Why is it being done? and How can it be 
improved? It is more of a thinking process and involves the creative skills of 
the System Analyst. 
5. System Design: System Design is the most crucial phase in the 
development of System Software. After the detailed analysis of the existing 
system and requirement of the user, the new system must be designed, 
that's why the name of this phase is "System Design". The logical system 
design arrived at as a result of systems analysis is converted into physical 
system design. Normally, the design proceeds in two stages: 
 Preliminary or General Design 
 Structured or Detailed Design 
a. Preliminary or General Design: The specification of the features of the 
new system and the cost estimation in implementing these features of the 
system are estimated in this stage. And if the project is still considered to be 
feasible, we move to the detailed design stage. 
b. Structured or Detailed Design: The design of the system becomes 
more structured at this stage. Structured design is a blueprint of a computer 
system solution to a given problem having the same components and inter-relationships 
among the same components as the original problem. Input, 
output, databases, forms, codification schemes and processing specifications 
are drawn up in detail. 
In the design stage, the programming language and the hardware and 
software platform in which the new system will run are also decided. 
The various tools and techniques used to describe the system design are:
 Flowchart 
 Data flow diagram (DFD) 
 Data dictionary 
 Structured English 
 Decision table 
 Decision tree 
The System design involves the following steps: 
1. Defining precisely the required system output 
2. Determining the data requirement for producing the output 
3. Determining the medium and format of files and databases 
4. Devising processing methods and use of software to produce output 
5. Determine the methods of data capture and data input 
6. Designing Input forms 
7. Designing Codification Schemes 
8. Detailed manual procedures 
9. Documenting the Design 
CODING 
The system design needs to be implemented to make it a workable system 
which means that once the design is complete, this demands the coding of 
design into computer understandable language i.e. programming language, 
that's why this phase is also known as a programming phase. The goal of 
the coding phase is to translate the design of the system into code in a given 
programming language. For a given design, the aim of this phase is to 
implement the design in the best possible manner. The coding phase affects 
both testing and maintenance profoundly. A well written code reduces the 
testing and maintenance effort. As the cost of testing and maintenance is 
much higher than the coding cost, the goal of coding should be to reduce the 
testing and maintenance effort. Hence, during coding the focus should be on 
developing programs that are easy to write. Simplicity and clarity should be 
strived for, during the coding phase. It is an important stage where the 
defined procedures are transformed into control specifications by the help of 
a computer language. It is generally felt that the programs must be modular 
in nature. This helps in fast development, maintenance and future changes, 
if required. 
TESTING 
The main thrust of the approach is to intensively test the front end in the 
first two releases, thus raising approximately 80% of errors in this period.
Software testing is a process of verifying and validating that a software 
application or program meets the business and technical requirements that 
guided its design and development, and works as expected. 
Formal review points in testing: 
The diagram above outlines the Test Approach. Boxes 1 - 6 show the major 
review stages prior to Test execution. Boxes 7 - 10 show the phases planned 
for & after test execution. 
It is an important phase of a successful system. After codifying the whole 
programs of the system, a test plan should be developed and run on a given 
set of test data. The output of the test run should match the expected 
results. Using the test data following test run are carried out: 
 Program Test 
 System Test 
Program Test: In program test the programs must be individually tested 
with the prepared test data at the time of coding, compiling and brought to 
working conditions. Any undesirable happening must be noted and debugged 
(error corrections). 
System Test: After the program test for each program of the system, and 
also the errors are removed then its turn for System test. In this the test is 
done on actual data. The complete system is executed on the actual data. At 
each stage of the execution, the results or output of the system is analyzed.
At the time of result analysis, it may be found that the outputs are not 
matching the expected output of the system. In such case, the errors in the 
particular programs are identified and are fixed and further tested for the 
expected output. 
IMPLEMENTATION 
After having the user acceptance of the new system developed, the 
Implementation Phase begins. In the implementation phase, the 
organization configures and enables system security features, tests the 
functionality of these features, installs or implements the system, and 
obtains a formal authorization to operate the system. Design reviews and 
system tests should be performed before placing the system into operation 
to ensure that it meets all required security specifications. In addition, if new 
controls are added to the application or the support system, additional 
acceptance tests of those new controls must be performed. This approach 
ensures that new controls meet security specifications and do not conflict 
with or invalidate existing controls. The results of the design reviews and 
system tests should be fully documented, updated as new reviews or tests 
are performed, and maintained in the organization's official records. 
The major steps involved in this phase are: 
 Acquisition and Installation of Hardware and Software 
 Conversion 
 User Training 
 Documentation 
During this phase, all the programs of the system are loaded onto the user's 
computer. After loading the system, training of the user starts. Main topics 
of such type of training are: 
 How to execute the package 
 How to enter the data 
 How to process the data (processing details) 
 How to take out the reports 
After the users are trained about the computerized system, working has to 
shift from manual to computerized working. The process is called 
'Changeover'. The following strategies are followed for changeover of the 
system: 
 Direct Changeover 
 Parallel Run
 Pilot Run 
MAINTENANCE 
It is the least glamorous and perhaps most important step of all, goes 
forever during whole system life. Inevitably the system will need 
maintenance. Software will definitely undergo change once it is delivered to 
the customer. There are many reasons for the change. Change could happen 
because of some unexpected input values into the system. In addition, the 
changes in the system could directly affect the software operations. The 
software should be developed to accommodate changes that could happen 
during the post implementation period. Maintenance is necessary to 
eliminate errors in the system during its working life and to tune the system 
to any variations in its working environments. It has been seen that there 
are always some errors found in the systems that must be noted and 
corrected. It also means the review of the system from time to time. The 
review of the system is done for: 
 Knowing the full capabilities of the system 
 Knowing the required changes or the additional requirements 
 Studying the performance. 
If a major change to a system is needed, a new project may have to be set 
up to carry out the change. The new project will then proceed through all the 
above life cycle phases. 
Various Models in SDLC: 
Why SDLC is necessary? 
Software Development Life Cycle (SDLC) is recognized by different website and software 
developers all over the world. However there's always a question of the need to implement this 
type of planning. We all know that SDLC could help us answer specific needs of different users. 
That is a given. But could that problem be answered when you are already familiar with that 
specific difficulty? In-house developers could even create the software on their own without 
consultation to users since they are also a part of the user group and has a clear understanding of 
what is needed. Clearly, SDLC is not needed to create software in this environment. 
Various SDLC methodologies have been developed to guide the processes involved including 
the waterfall model (the original SDLC method), rapid application development (RAD), joint 
application development (JAD), the fountain model and the spiral model.
Various System Development Life Cycle models are: 
1. Waterfall Software Development Life Cycle Model 
2. Prototyping Software Development Life Cycle Model 
3. Iterative Enhancement Model 
4. The Spiral Model 
5. Object Oriented Methodology 
6. V- Model Methodology 
7. Joint application development (JAD) 
8. Rapid application development (RAD) 
From the above models first the SDLC method that describes the various phases involved in the 
development is the classic Waterfall model methodology which is shown below: 
Waterfall Model: 
The Waterfall Model is a popular version of the Systems Development life cycle model for 
Software Engineering. It is a linear sequential model. Waterfall development has different goals 
for each phase of development. Once a phase of development is completed, the development 
proceeds to the next phase and there is no backtracking. The basic steps involved in this model 
are: 
The stages of the Waterfall Model are:
1. Analysis/Requirement Gathering 
This step is the most important of the entire model because it involves gathering 
information about customer requirements and defining them in the clearest possible 
terms, the problem that the product is expected to solve. This step includes understanding 
customer's business context and constraints, functions that must be performed by product 
and the external systems it must be compatible with. The result obtained from the 
analysis done are typically captured in a formal requirement specification that later on 
serves as input to the next step. 
2. Designing 
This step includes "defining the hardware and software architecture", components, 
modules, interfaces and data to satisfy given requirements". It also involves specifying 
performance and security parameters, selecting the IDE and programming language and 
indicating strategies to deal with issues such as exception handling, resource management 
and interface connectivity. The result of this stage is used in the next stage of 
implementation. 
3. Coding 
In this step, the work is intended to set up the defined modules or units and the actual 
coding begins. The system is first developed in smaller portions. These smaller portions 
are called "units". Later on these units are integrated to form the complete software 
package. 
4. Testing 
In this stage, both individual components and the integrated whole are methodologically 
verified to ensure that they are error free and fully meets the requirements defined in the 
first step "Analysis/Requirement Gathering". Three types of testing is done: unit testing 
of single code modules, system testing of integrated products and acceptance testing 
formally done by or on behalf of the customer. If defects are found then they are logged 
and feedback is provided to the implementation team for correction. 
5. Implementation 
This step includes the actual construction of the product as per the design specification 
developed in the previous steps. In this step, programmers, interface designers and other 
specialists are involved using tools such as compilers, debuggers, interpreters and media 
editors. The output of this step is one or more product components, built according to a 
pre-defined coding standard and debugged, tested and integrated to satisfy the system 
architecture requirements.
6. Maintenance 
This step occurs after installation and involves making modifications to the system or an 
individual component to alter attributes or improve performance. These modifications 
arise either due to change requests initiated by the customer, or defects uncovered during 
live use of the system. Every change made to the product during the maintenance cycle is 
recorded and a new product release is performed to enable the customer to gain the 
benefit of the update. 
Advantages 
The Waterfall Model is the oldest and most widely used model in the field of software 
development. There are certain advantages of this model that makes it, one of the most widely 
used models as yet. Some of them are: 
 Being a linear model, so easy to understand and implement. 
 Fixed requirements. 
 The amount of resources required to implement this model is minimal. 
Disadvantages 
With so many advantages at hand, the Waterfall Model has some disadvantages. Here are a few: 
 For long duration projects, requirements may change, therefore there is a potential 
reduction of the acceptability of the product. 
 Testing is postponed to the later stage until coding is completed. 
 The working model is not seen until later stages. 
Iterative Enhancement Model: 
In Iterative model, iterative process starts with a simple implementation of a small set of the 
software requirements and iteratively enhances the evolving versions until the complete system 
is implemented and ready to be deployed. 
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 in order 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.
Iterative Model design 
Iterative process starts with a simple implementation of a subset of the software requirements 
and iteratively enhances the evolving versions until the full system is implemented. At each 
iteration, design modifications are made and new functional capabilities are added. The basic 
idea behind this method is to develop a system through repeated cycles (iterative) and in smaller 
portions at a time (incremental). 
Following is the pictorial representation of Iterative and Incremental model: 
Iterative and Incremental development is a combination of both iterative design or iterative 
method and incremental build model for development. "During software development, more than 
one iteration of the software development cycle may be in progress at the same time." and "This 
process may be described as an "evolutionary acquisition" or "incremental build" approach." 
In incremental model the whole requirement is divided into various builds. During each iteration, 
the development module goes through the requirements, design, implementation and testing 
phases. Each subsequent release of the module adds function to the previous release. The process 
continues till the complete system is ready as per the requirement. 
The key to 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 have to be repeated and extended to verify each version of the software. 
Iterative Model Application 
Like other SDLC models, Iterative and incremental development has some specific applications 
in the software industry. This model is most often used in the following scenarios: 
 Requirements of the complete system are clearly defined and understood. 
 Major requirements must be defined; however, some functionalities or requested enhancements 
may evolve with time.
 There is a time to the market constraint. 
 A new technology is being used and is being learnt by the development team while working on 
the project. 
 Resources with needed skill set are not available and are planned to be used on contract basis for 
specific iterations. 
 There are some high risk features and goals which may change in the future. 
Spiral Model: 
The spiral model combines the idea of iterative development with the systematic, controlled 
aspects of the waterfall model. 
Spiral model is a combination of iterative development process model and sequential linear 
development model i.e. waterfall model with very high emphasis on risk analysis. 
It allows for incremental releases of the product, or incremental refinement through each 
iteration around the spiral. 
Spiral Model design 
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 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:Design phase starts with the conceptual design in the baseline spiral and involves 
architectural design, logical design of modules, physical product design and final design in the 
subsequent spirals. 
 Construct or Build: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 
customer for feedback. 
 Evaluation and Risk Analysis:Risk Analysis includes identifying, estimating, and monitoring 
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. 
Following is a diagrammatic representation of spiral model listing the activities in each phase: 
Based on the customer evaluation, software development process enters into the next iteration 
and subsequently follows the linear approach to implement the feedback suggested by the 
customer. The process of iterations along the spiral continues throughout the life of the software. 
Spiral Model Application 
Spiral Model is very widely used in the software industry as it is in synch with the natural 
development process of any product i.e. learning with maturity and also involves minimum risk 
for the customer as well as the development firms. Following are the typical uses of Spiral 
model: 
 When costs there is a budget constraint and risk evaluation is important. 
 For medium to high-risk projects. 
 Long-term project commitment because of potential changes to economic priorities as the 
requirements change with time. 
 Customer is not sure of their requirements which are usually the case.
 Requirements are complex and need evaluation to get clarity. 
 New product line which should be released in phases to get enough customer feedback. 
 Significant changes are expected in the product during the development cycle. 
Prototyping Model: 
The Software Prototyping refers to building software application prototypes which display the 
functionality of the product under development but may not actually hold the exact logic of the 
original software. 
Software prototyping is becoming very popular as a software development model, as it enables 
to understand customer requirements at an early stage of development. It helps get valuable 
feedback from the customer and helps software designers and developers understand about what 
exactly is expected from the product under development. 
What is Software Prototyping? 
 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. 
 Prototyping is used to allow the users evaluate developer proposals and try them out before 
implementation. 
 It also helps understand the requirements which are user specific and may not have been 
considered by the developer during product design. 
Following is the stepwise approach to design a software prototype: 
 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. 
 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 and the 
workarounds are used to give the same look and feel to the customer in the prototype developed. 
 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. 
 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 actual implementation. The changes accepted 
are again incorporated in the new Prototype developed and the cycle repeats until customer 
expectations are met. 
Prototypes can have horizontal or vertical dimensions. Horizontal prototype displays the user 
interface for the product and gives a broader view of the entire system, without concentrating on 
internal functions. A vertical prototype on the other side is a detailed elaboration of a specific 
function or a sub system in the product. 
The purpose of both horizontal and vertical prototype is different. Horizontal prototypes are used 
to get more information on the user interface level and the business requirements. It can even be 
presented in the sales demos to get business in the market. Vertical prototypes are technical in 
nature and are used to get details of the exact functioning of the sub systems. For example, 
database requirements, interaction and data processing loads in a given sub system. 
Software Prototyping Types 
There are different types of software prototypes used in the industry. Following are the major 
software prototyping types used widely: 
 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. Using evolutionary prototyping only well understood requirements are included in the 
prototype and the requirements are added as and when they are understood. 
 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 
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.
Software that involves too much of data processing and most of the functionality is internal with 
very little user interface does not usually benefit from prototyping. Prototype development could 
be an extra overhead in such projects and may need lot of extra efforts. 
RAD Model: 
The RAD (Rapid Application Development) model is based on prototyping and iterative 
development with no specific planning involved. The process of writing the software itself 
involves the planning required for developing the product. 
Rapid Application development focuses on gathering customer requirements through workshops 
or focus groups, early testing of the prototypes by the customer using iterative concept, reuse of 
the existing prototypes (components), continuous integration and rapid delivery. 
What is RAD? 
Rapid application development (RAD) is a software development methodology that uses 
minimal planning in favor of rapid prototyping. A prototype is a working model that is 
functionally equivalent to a component of the product. 
In RAD model the functional modules are developed in parallel as prototypes and are integrated 
to make the complete product for faster product delivery. 
Since there is no detailed preplanning, it makes it easier to incorporate the changes within the 
development process. RAD projects follow iterative and incremental model and have small 
teams comprising of developers, domain experts, customer representatives and other IT 
resources working progressively on their component or prototype. 
The most important aspect for this model to be successful is to make sure that the prototypes 
developed are reusable.
RAD Model Design 
RAD model distributes the analysis, design, build, and test phases into a series of short, iterative 
development cycles. Following are the phases of RAD Model: 
 Business Modeling: The business model for the product under development is designed in terms 
of flow of information and the distribution of information between various business channels. A 
complete business analysis is performed to find the vital information for business, how it can be 
obtained, how and when is the information processed and what are the factors driving successful 
flow of information. 
 Data Modeling: The information gathered in the Business Modeling phase is reviewed and 
analyzed to form sets of data objects vital for the business. The attributes of all data sets is 
identified and defined. The relation between these data objects are established and defined in 
detail in relevance to the business model. 
 Process Modeling: The data object sets defined in the Data Modeling phase are converted to 
establish the business information flow needed to achieve specific business objectives as per the 
business model. The process model for any changes or enhancements to the data object sets is 
defined in this phase. Process descriptions for adding , deleting, retrieving or modifying a data 
object are given. 
 Application Generation: The actual system is built and coding is done by using automation 
tools to convert process and data models into actual prototypes. 
 Testing and Turnover: The overall testing time is reduced in RAD model as the prototypes are 
independently tested during every iteration. However the data flow and the interfaces between all 
the components need to be thoroughly tested with complete test coverage. Since most of the 
programming components have already been tested, it reduces the risk of any major issues. 
Following image illustrates the RAD Model:
RAD Model Vs Traditional SDLC 
The traditional SDLC follows a rigid process models with high emphasis on requirement 
analysis and gathering before the coding starts. It puts a 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 actually 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 traditional SDLC. 
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 
RAD model can be applied successfully to the projects in which clear modularization is possible. 
If the project cannot be broken into modules, RAD may fail. Following are the typical scenarios 
where RAD can be used: 
 RAD should be used only when a system can be modularized to be delivered in incremental 
manner. 
 It should be used if there’s high availability of designers for modeling. 
 It should be used only if the budget permits use of automated code generating tools. 
 RAD SDLC model should be chosen only if domain experts are available with relevant business 
knowledge. 
 Should be used where the requirements change during the course of the project and working 
prototypes are to be presented to customer in small iterations of 2-3 months. 
V-Model 
The V - model is SDLC model where execution of processes happens in a sequential manner in 
V-shape. It is also known as Verification and Validation model. 
V - Model is an extension of the waterfall model and is based on association of a testing phase 
for each corresponding development stage. This means that for every single phase in the 
development cycle there is a directly associated testing phase. This is a highly disciplined model 
and next phase starts only after completion of the previous phase.
V- Model design 
Under V-Model, the corresponding testing phase of the development phase is planned in parallel. 
So there are Verification phases on one side of the .V. and Validation phases on the other side. 
Coding phase joins the two sides of the V-Model. 
The below figure illustrates the different phases in V-Model of SDLC. 
Verification Phases 
Following are the Verification phases in V-Model: 
 Business Requirement Analysis: This is the first phase in the development cycle where the 
product requirements are understood from the customer perspective. This phase involves detailed 
communication with the customer to understand his expectations and exact requirement. This is a 
very important activity and need to be managed well, as most of the customers are not sure about 
what exactly they need. The acceptance test design planning is done at this stage as business 
requirements can be used as an input for acceptance testing. 
 System Design: Once you have the clear and detailed product requirements, it.s time to design 
the complete system. System design would comprise of understanding and detailing the complete 
hardware and communication setup for the product under development. System test plan is 
developed based on the system design. Doing this at an earlier stage leaves more time for actual 
test execution later. 
 Architectural Design: Architectural specifications are understood and designed in this phase. 
Usually more than one technical approach is proposed and based on the technical and financial 
feasibility the final decision is taken. System design is broken down further into modules taking 
up different functionality. This is also referred to as High Level Design (HLD).
The data transfer and communication between the internal modules and with the outside world 
(other systems) is clearly understood and defined in this stage. With this information, integration 
tests can be designed and documented during this stage. 
 Module Design: In this phase the detailed internal design for all the system modules is specified, 
referred to as Low Level Design (LLD). It is important that the design is compatible with the 
other modules in the system architecture and the other external systems. Unit tests are an 
essential part of any development process and helps eliminate the maximum faults and errors at a 
very early stage. Unit tests can be designed at this stage based on the internal module designs. 
Coding Phase 
The actual coding of the system modules designed in the design phase is taken up in the Coding 
phase. The best suitable programming language is decided based on the system and architectural 
requirements. The coding is performed based on the coding guidelines and standards. The code 
goes through numerous code reviews and is optimized for best performance before the final build 
is checked into the repository. 
Validation Phases 
Following are the Validation phases in V-Model: 
 Unit Testing: Unit tests designed in the module design phase are executed on the code during 
this validation phase. Unit testing is the testing at code level and helps eliminate bugs at an early 
stage, though all defects cannot be uncovered by unit testing. 
 Integration Testing: Integration testing is associated with the architectural design phase. 
Integration tests are performed to test the coexistence and communication of the internal 
modules within the system. 
 System Testing: System testing is directly associated with the System design phase. System 
tests check the entire system functionality and the communication of the system under 
development with external systems. Most of the software and hardware compatibility issues can 
be uncovered during system test execution. 
 Acceptance Testing: Acceptance testing is associated with the business requirement analysis 
phase and involves testing the product in user environment. Acceptance tests uncover the 
compatibility issues with the other systems available in the user environment. It also discovers 
the nonfunctional issues such as load and performance defects in the actual user environment. 
V- Model Application 
V- Model application is almost same as waterfall model, as both the models are of sequential 
type. Requirements have to be very clear before the project starts, because it is usually expensive 
to go back and make changes. This model is used in the medical development field, as it is 
strictly disciplined domain. Following are the suitable scenarios to use V-Model: 
 Requirements are well defined, clearly documented and fixed. 
 Product definition is stable. 
 Technology is not dynamic and is well understood by the project team.
 There are no ambiguous or undefined requirements. 
 The project is short. 
Joint application development (JAD) Model: 
Uses for JAD: 
1. Application Development, Adaptation, & Selection 
Requirements 
External Design/Prototypes 
User Test Cases 
Training 
Post-Implementation Reviews 
2. Strategic Planning 
3. Customer Satisfaction Session 
4. Organization Changes 
5. Request for Proposal Development 
6. Curriculum Design/Development 
Why Use JAD? 
1. Accelerates Application Development/Selection Process 
2. Increases Developers’ Productivity 
3. User Participation in Application’s Design 
4. Improves Communications Between: 
User and I/S 
User and User
I/S and I/S 
5. Enables Consensus, Commitment, and Partnership across the Enterprise 
Why JAD Works 
Users: 
1. Educates Users about Development Process 
2. Gives Users More Input & Accountability for Design 
3. Leverages User's Subject Matter Expertise at Right Time 
I/S: 
1. Ensures I/S and Users Come to Consensus Early 
2. Provides I/S Subject Matter Expertise at Right Time 
3. Educates I/S about Business Process 
MANAGEMENT: 
1. Ensures Management Communications & Participation 
Through Executive Sponsor 
2. Enforces Top-Down Design to Ensure Business Objectives 
Are Met 
3. Educates Management On Both I/S and Business Area Detail 
4. Leverages Management Subject Matter Expertise at Right Time 
Agile Model: 
Agile SDLC model is a combination of iterative and incremental process models with focus on 
process adaptability and customer satisfaction by rapid delivery of working software product. 
Agile Methods break the product into small incremental builds. These builds are provided in 
iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves 
cross functional teams working simultaneously on various areas like planning, requirements 
analysis, design, coding, unit testing, and acceptance testing. 
At the end of the iteration a working product is displayed to the customer and important 
stakeholders. 
What is Agile? 
Agile model believes that every project needs to be handled differently and the existing methods 
need to be tailored to best suit the project requirements. In agile the tasks are divided to time 
boxes (small time frames) to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration. Each 
build is incremental in terms of features; the final build holds all the features required by the 
customer. 
Here is a graphical illustration of the Agile Model: 
Agile thought process had started early in the software development and started becoming 
popular with time due to its flexibility and adaptability. 
The most popular agile methods include Rational Unified Process (1994), Scrum (1995), Crystal 
Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven 
Development, and Dynamic Systems Development Method (DSDM) (1995). These are now 
collectively referred to as agile methodologies, after the Agile Manifesto was published in 2001. 
Following are the Agile Manifesto principles 
 Individuals and interactions - in agile development, self-organization and motivation are 
important, as are interactions like co-location and pair programming. 
 Working software - Demo working software is considered the best means of communication 
with the customer to understand their requirement, instead of just depending on documentation. 
 Customer collaboration - As the requirements cannot be gathered completely in the beginning 
of the project due to various factors, continuous customer interaction is very important to get 
proper product requirements. 
 Responding to change - agile development is focused on quick responses to change and 
continuous development.
Agile Vs Traditional SDLC Models 
Agile is based on the adaptive software development methods where as the traditional SDLC 
models like waterfall model is based on predictive approach. 
Predictive teams in the traditional SDLC models usually work with detailed planning and have a 
complete forecast of the exact tasks and features to be delivered in the next few months or during 
the product life cycle. Predictive methods entirely depend on the requirement analysis and 
planning done in the beginning of cycle. Any changes to be incorporated go through a strict 
change control management and prioritization. 
Agile uses adaptive approach where there is no detailed planning and there is clarity on future 
tasks only in respect of what features need to be developed. There is feature driven development 
and the team adapts to the changing product requirements dynamically. The product is tested 
very frequently, through the release iterations, minimizing the risk of any major failures in 
future. 
Customer interaction is the backbone of Agile methodology, and open communication with 
minimum documentation are the typical features of Agile development environment. The agile 
teams work in close collaboration with each other and are most often located in the same 
geographical location.

More Related Content

What's hot

L7 decision tree & table
L7 decision tree & tableL7 decision tree & table
L7 decision tree & tableNeha Gupta
 
TRANSACTION PROCESSING SYSTEM
TRANSACTION PROCESSING SYSTEMTRANSACTION PROCESSING SYSTEM
TRANSACTION PROCESSING SYSTEM
Ubaid ur Rehman
 
Decision support system & Management Information System
Decision support system & Management Information SystemDecision support system & Management Information System
Decision support system & Management Information System
Muhammad Aitzaz Ahsan
 
Systems development cycle
Systems development cycleSystems development cycle
Systems development cycle
Samuel Igbanogu
 
System concept in MIS
System concept in MISSystem concept in MIS
System concept in MIS
Mohammed Jasir PV
 
System design
System designSystem design
System design
Gheethu Joy
 
Types & Fundamentals of Information System
Types & Fundamentals of Information SystemTypes & Fundamentals of Information System
Types & Fundamentals of Information System
Awais Mansoor Chohan
 
System engineering
System engineeringSystem engineering
System engineering
Lisa Elisa
 
System development
System developmentSystem development
System development
Praveen Minz
 
System Analysis and Design (SAD)
System Analysis and Design (SAD)System Analysis and Design (SAD)
System Analysis and Design (SAD)
Sachith Perera
 
Transaction Processing System
Transaction Processing SystemTransaction Processing System
Transaction Processing System
Mohammed Kashifulla
 
Systems Analysis And Design 2
Systems Analysis And Design 2Systems Analysis And Design 2
Systems Analysis And Design 2MISY
 
Sub systems of information system - MIS
Sub systems of information system - MISSub systems of information system - MIS
Sub systems of information system - MISSanaRiaz789
 
Mis system analysis and system design
Mis   system analysis and system designMis   system analysis and system design
Mis system analysis and system designRahul Hedau
 
System analysis and design
System analysis and design System analysis and design
System analysis and design Razan Al Ryalat
 
Information System & Business applications
Information System & Business applicationsInformation System & Business applications
Information System & Business applications
Shubham Upadhyay
 
FORMAL & INFORMAL INFORMATION SYSTEM
FORMAL & INFORMAL  INFORMATION SYSTEMFORMAL & INFORMAL  INFORMATION SYSTEM
FORMAL & INFORMAL INFORMATION SYSTEM
Zahid Parvez
 
System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...
System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...
System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...
Uttar Tamang ✔
 
Nature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of SoftwareNature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of Software
Raja Adapa
 
Role of system analyst
Role of system analystRole of system analyst
Role of system analyst
Karan Chaudhary
 

What's hot (20)

L7 decision tree & table
L7 decision tree & tableL7 decision tree & table
L7 decision tree & table
 
TRANSACTION PROCESSING SYSTEM
TRANSACTION PROCESSING SYSTEMTRANSACTION PROCESSING SYSTEM
TRANSACTION PROCESSING SYSTEM
 
Decision support system & Management Information System
Decision support system & Management Information SystemDecision support system & Management Information System
Decision support system & Management Information System
 
Systems development cycle
Systems development cycleSystems development cycle
Systems development cycle
 
System concept in MIS
System concept in MISSystem concept in MIS
System concept in MIS
 
System design
System designSystem design
System design
 
Types & Fundamentals of Information System
Types & Fundamentals of Information SystemTypes & Fundamentals of Information System
Types & Fundamentals of Information System
 
System engineering
System engineeringSystem engineering
System engineering
 
System development
System developmentSystem development
System development
 
System Analysis and Design (SAD)
System Analysis and Design (SAD)System Analysis and Design (SAD)
System Analysis and Design (SAD)
 
Transaction Processing System
Transaction Processing SystemTransaction Processing System
Transaction Processing System
 
Systems Analysis And Design 2
Systems Analysis And Design 2Systems Analysis And Design 2
Systems Analysis And Design 2
 
Sub systems of information system - MIS
Sub systems of information system - MISSub systems of information system - MIS
Sub systems of information system - MIS
 
Mis system analysis and system design
Mis   system analysis and system designMis   system analysis and system design
Mis system analysis and system design
 
System analysis and design
System analysis and design System analysis and design
System analysis and design
 
Information System & Business applications
Information System & Business applicationsInformation System & Business applications
Information System & Business applications
 
FORMAL & INFORMAL INFORMATION SYSTEM
FORMAL & INFORMAL  INFORMATION SYSTEMFORMAL & INFORMAL  INFORMATION SYSTEM
FORMAL & INFORMAL INFORMATION SYSTEM
 
System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...
System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...
System Development Life Cycle (SDLC), Types of SDLC | Waterfall Model and Spi...
 
Nature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of SoftwareNature and Qualities of Software, Types of Software
Nature and Qualities of Software, Types of Software
 
Role of system analyst
Role of system analystRole of system analyst
Role of system analyst
 

Viewers also liked

Medical store management system
Medical store management systemMedical store management system
Medical store management system
Upendra Sengar
 
System development life cycle (sdlc)
System development life cycle (sdlc)System development life cycle (sdlc)
System development life cycle (sdlc)Mukund Trivedi
 
Medical Store Management System Software Engineering Project
Medical Store Management System Software Engineering ProjectMedical Store Management System Software Engineering Project
Medical Store Management System Software Engineering Projecthani2253
 
1982-1986 Management Improvement models
1982-1986 Management Improvement models1982-1986 Management Improvement models
1982-1986 Management Improvement models
HolisticMeta (Self Employed, Part Time)
 
Six Sigma and/For Software Engineering
Six Sigma and/For Software EngineeringSix Sigma and/For Software Engineering
Six Sigma and/For Software EngineeringAnshuman Biswal
 
The system development life cycle (SDLC)
The system development life cycle (SDLC)The system development life cycle (SDLC)
The system development life cycle (SDLC)
gourav kottawar
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
despicable me
 
System development methodologies
System development methodologiesSystem development methodologies
System development methodologies
Kashif Khan (کاشف خان)
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Vaska Shefteroska
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development Methodologies
Devon Ravihansa
 
Database design process
Database design processDatabase design process
Database design process
Tayyab Hameed
 
Medical Store Presentation ppt
Medical Store Presentation pptMedical Store Presentation ppt
Medical Store Presentation ppt
Sk Habib
 
Virtual organisations.
Virtual organisations. Virtual organisations.
Virtual organisations.
Aijaz Sawar
 
Ppt of medical store
Ppt of medical storePpt of medical store
Ppt of medical store
Navdeep Singh Sehra
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
Design process
Design processDesign process
Design process
Divonis.com
 
Computer Science & Information Systems
Computer Science & Information SystemsComputer Science & Information Systems
Computer Science & Information Systems
Luis Borges Gouveia
 
Accounting information system
Accounting information systemAccounting information system
Accounting information system
Vivek K. Singh
 

Viewers also liked (20)

Medical store management system
Medical store management systemMedical store management system
Medical store management system
 
System development life cycle (sdlc)
System development life cycle (sdlc)System development life cycle (sdlc)
System development life cycle (sdlc)
 
Medical Store Management System Software Engineering Project
Medical Store Management System Software Engineering ProjectMedical Store Management System Software Engineering Project
Medical Store Management System Software Engineering Project
 
1982-1986 Management Improvement models
1982-1986 Management Improvement models1982-1986 Management Improvement models
1982-1986 Management Improvement models
 
Six Sigma and/For Software Engineering
Six Sigma and/For Software EngineeringSix Sigma and/For Software Engineering
Six Sigma and/For Software Engineering
 
The system development life cycle (SDLC)
The system development life cycle (SDLC)The system development life cycle (SDLC)
The system development life cycle (SDLC)
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
System development methodologies
System development methodologiesSystem development methodologies
System development methodologies
 
Chap03
Chap03Chap03
Chap03
 
Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)Information systems development methodologies (autosaved)
Information systems development methodologies (autosaved)
 
System Development Methodologies
System Development MethodologiesSystem Development Methodologies
System Development Methodologies
 
Database design process
Database design processDatabase design process
Database design process
 
Medical Store Presentation ppt
Medical Store Presentation pptMedical Store Presentation ppt
Medical Store Presentation ppt
 
Virtual organisations.
Virtual organisations. Virtual organisations.
Virtual organisations.
 
Ppt of medical store
Ppt of medical storePpt of medical store
Ppt of medical store
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Design process
Design processDesign process
Design process
 
Computer Science & Information Systems
Computer Science & Information SystemsComputer Science & Information Systems
Computer Science & Information Systems
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Accounting information system
Accounting information systemAccounting information system
Accounting information system
 

Similar to System development life cycle

System development life cycle
System development life cycleSystem development life cycle
System development life cycle
Aiswarya P Suresh
 
Sdlc
SdlcSdlc
Intro sad
Intro sadIntro sad
Intro sad
abhijeetdavane
 
Introduction to system analysis and design
Introduction to system analysis and designIntroduction to system analysis and design
Introduction to system analysis and designTwene Peter
 
System development life_cycle
System development life_cycleSystem development life_cycle
System development life_cycle
Swapnil Walde
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys Bldg
USeP
 
Lesson how to create sad
Lesson how to create sadLesson how to create sad
Lesson how to create sad
Laguna State Polytechnic University
 
SYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLESYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLE
ayushisingh190
 
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Neetu Marwah
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riport
Dilip Prajapati
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riportDilip Prajapati
 
Management information system
Management information systemManagement information system
Management information system
Roneet Kumar
 
Software Development Life Cycle & Its Models
Software Development Life Cycle & Its ModelsSoftware Development Life Cycle & Its Models
Software Development Life Cycle & Its Models
Dr.Purushottam Petare
 
System Analysis And Design 2011
System Analysis And Design  2011System Analysis And Design  2011
System Analysis And Design 2011tgushi12
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to quality
DhanashriAmbre
 
system development life cycle
system development life cyclesystem development life cycle
system development life cycle
SuhleemAhmd
 

Similar to System development life cycle (20)

SDLC
SDLCSDLC
SDLC
 
System development life cycle
System development life cycleSystem development life cycle
System development life cycle
 
Sdlc
SdlcSdlc
Sdlc
 
Intro sad
Intro sadIntro sad
Intro sad
 
Introduction to system analysis and design
Introduction to system analysis and designIntroduction to system analysis and design
Introduction to system analysis and design
 
Sdlc
SdlcSdlc
Sdlc
 
System development life_cycle
System development life_cycleSystem development life_cycle
System development life_cycle
 
Different Approaches To Sys Bldg
Different Approaches To Sys BldgDifferent Approaches To Sys Bldg
Different Approaches To Sys Bldg
 
Lesson how to create sad
Lesson how to create sadLesson how to create sad
Lesson how to create sad
 
SYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLESYSTEM DEVELOPMENT LIFE CYCLE
SYSTEM DEVELOPMENT LIFE CYCLE
 
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
Report on SOFTWARE DEVELOPMENT LIFE CYCLE SDLC
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riport
 
Gr 6 sdlc models
Gr 6   sdlc modelsGr 6   sdlc models
Gr 6 sdlc models
 
Sdlc1
Sdlc1Sdlc1
Sdlc1
 
Online auction system srs riport
Online auction system srs  riportOnline auction system srs  riport
Online auction system srs riport
 
Management information system
Management information systemManagement information system
Management information system
 
Software Development Life Cycle & Its Models
Software Development Life Cycle & Its ModelsSoftware Development Life Cycle & Its Models
Software Development Life Cycle & Its Models
 
System Analysis And Design 2011
System Analysis And Design  2011System Analysis And Design  2011
System Analysis And Design 2011
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to quality
 
system development life cycle
system development life cyclesystem development life cycle
system development life cycle
 

More from Yaswanth Babu Gummadivelli

E commerce use case documentation.
E commerce use case documentation.E commerce use case documentation.
E commerce use case documentation.
Yaswanth Babu Gummadivelli
 
MOM on activity diagram
MOM on activity diagramMOM on activity diagram
MOM on activity diagram
Yaswanth Babu Gummadivelli
 
UML Diagrams
UML DiagramsUML Diagrams
Business analyst ppt
Business analyst pptBusiness analyst ppt
Business analyst ppt
Yaswanth Babu Gummadivelli
 
MOM on BA
MOM on BAMOM on BA
exception handling
 exception handling exception handling
exception handling
Yaswanth Babu Gummadivelli
 
collections
 collections collections
Constructors
Constructors Constructors
array
array array
Use case for atm
Use case for atmUse case for atm
Use case for atm
Yaswanth Babu Gummadivelli
 
use case diagramHospital managment system
use case diagramHospital managment systemuse case diagramHospital managment system
use case diagramHospital managment system
Yaswanth Babu Gummadivelli
 
Activity diagram for ticket vending machine
Activity diagram for ticket vending machineActivity diagram for ticket vending machine
Activity diagram for ticket vending machine
Yaswanth Babu Gummadivelli
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Yaswanth Babu Gummadivelli
 
Agile model
Agile model Agile model
Business Analyst
Business AnalystBusiness Analyst
Business Analyst
Yaswanth Babu Gummadivelli
 

More from Yaswanth Babu Gummadivelli (20)

Presentation on BA
Presentation on BAPresentation on BA
Presentation on BA
 
ERP
ERPERP
ERP
 
Ba -content
Ba -contentBa -content
Ba -content
 
E commerce use case documentation.
E commerce use case documentation.E commerce use case documentation.
E commerce use case documentation.
 
MOM on activity diagram
MOM on activity diagramMOM on activity diagram
MOM on activity diagram
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
 
Business analyst ppt
Business analyst pptBusiness analyst ppt
Business analyst ppt
 
MOM on BA
MOM on BAMOM on BA
MOM on BA
 
exception handling
 exception handling exception handling
exception handling
 
collections
 collections collections
collections
 
Constructors
Constructors Constructors
Constructors
 
array
array array
array
 
Use case for atm
Use case for atmUse case for atm
Use case for atm
 
use case diagramHospital managment system
use case diagramHospital managment systemuse case diagramHospital managment system
use case diagramHospital managment system
 
Activity diagram for ticket vending machine
Activity diagram for ticket vending machineActivity diagram for ticket vending machine
Activity diagram for ticket vending machine
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Agile model
Agile model Agile model
Agile model
 
Business Analyst
Business AnalystBusiness Analyst
Business Analyst
 
CRM and ERP
CRM and ERPCRM and ERP
CRM and ERP
 
Reflection
ReflectionReflection
Reflection
 

Recently uploaded

Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
beazzy04
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 

Recently uploaded (20)

Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345Sha'Carri Richardson Presentation 202345
Sha'Carri Richardson Presentation 202345
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 

System development life cycle

  • 1. SYSTEM DEVELOPMENT LIFE CYCLE: System Development Life Cycle is the process of developing, implementing, and retiring information systems through a multistep process from initiation, analysis, design, implementation, and maintenance to disposal. It helps in establishing a system project plan, because it gives an overall list of processes and sub-processes required for developing a system, which means that it is a combination of various activities. In the System Analysis and Design terminology, the system development life cycle also means software development life cycle. OR We can say that it is the conceptual model that describes the stages involved in an information system development project in project management. Now let's discuss System Development Life Cycle with its different Phases in detail:
  • 2. Phases: o SYSTEM STUDY a) Preliminary System Study b) Feasibility Study c) Detailed System Study d) System Analysis e) System Design o Preliminary or General Design o Structured or Detailed Design o CODING o TESTING --Program Test --System Test o IMPLEMENTATION o MAINTAINANCE SYSTEM STUDY: 1. Preliminary System Study: As the name says it is the first stage of a system development life cycle, a brief investigation of the system under consideration and gives a clear picture of what actually the physical system is? It involves the preparation of a 'System Proposal' which lists the Problem Definition, Objectives of the Study, Terms of reference for Study,
  • 3. Constraints, and Expected benefits of the new system, etc. A System Analyst will prepare the proposal and cycle proceeds to the next stage. It depends on the management to accept it; they also reject it or request some modifications in the proposal. Actually a system study phase passes through the following steps:  Problem identification and project initiation  Background analysis  Inference or findings (system proposal) 2. Feasibility Study: If the proposal is accepted by the management then the next phase is to examine the feasibility of the system. In this phase the software analysts and strategy makers establish a descriptive view of the intended project and determine its goals & objectives. If the project is to proceed, the feasibility study will produce a project plan and budget estimates for the future stages of development. The main goal of feasibility study is not to solve the problem but to achieve the scope. In the process of feasibility study, the cost and benefits are estimated with greater accuracy to find the Return on Investment (ROI). 3. Detailed System Study: In accordance with the objectives of the proposed system the detailed investigation of the system is carried out. Various operations performed by a system and their relationships within and outside the system. In this process data are collected on the available files, decision points and transactions handled by the present system. It becomes easy to draw the exact boundary of the new system under consideration by following the steps below:  Keeping in view the problems and new requirements  Workout the pros and cons including new areas of the system There should be proper documentation of all the data and the findings in the form of detailed data flow diagrams (DFDs), data dictionary, logical data structures and miniature specification. The important points that should be discussed in this stage are:  Specification of what the new system is to accomplish based on the user requirements.  Functional hierarchy showing the functions to be performed by the new system and their relationship with each other.  Functional network, which are similar to function hierarchy but they highlight the functions which are common to more than one procedure.
  • 4.  List of attributes of the entities these are the data items which need to be held about each entity (record). 4. System Analysis: In this phase there is a main role of system analyst, he is the one who should analyze the end-user information needs and prepare a solid plan. Analysis gathers the requirements for the system. This stage includes a detailed study of the business needs of the organization. Options for changing the business process may be considered. In other words it is a process of collecting factual data, understand the processes involved, identifying problems and recommending feasible suggestions for improving the system functioning. It also includes subdividing of complex process involving the entire system, identification of data store and manual processes. The major objectives of systems analysis are to find answers for each business process: What is being done? How is it being done? Who is doing it? When is he doing it? Why is it being done? and How can it be improved? It is more of a thinking process and involves the creative skills of the System Analyst. 5. System Design: System Design is the most crucial phase in the development of System Software. After the detailed analysis of the existing system and requirement of the user, the new system must be designed, that's why the name of this phase is "System Design". The logical system design arrived at as a result of systems analysis is converted into physical system design. Normally, the design proceeds in two stages:  Preliminary or General Design  Structured or Detailed Design a. Preliminary or General Design: The specification of the features of the new system and the cost estimation in implementing these features of the system are estimated in this stage. And if the project is still considered to be feasible, we move to the detailed design stage. b. Structured or Detailed Design: The design of the system becomes more structured at this stage. Structured design is a blueprint of a computer system solution to a given problem having the same components and inter-relationships among the same components as the original problem. Input, output, databases, forms, codification schemes and processing specifications are drawn up in detail. In the design stage, the programming language and the hardware and software platform in which the new system will run are also decided. The various tools and techniques used to describe the system design are:
  • 5.  Flowchart  Data flow diagram (DFD)  Data dictionary  Structured English  Decision table  Decision tree The System design involves the following steps: 1. Defining precisely the required system output 2. Determining the data requirement for producing the output 3. Determining the medium and format of files and databases 4. Devising processing methods and use of software to produce output 5. Determine the methods of data capture and data input 6. Designing Input forms 7. Designing Codification Schemes 8. Detailed manual procedures 9. Documenting the Design CODING The system design needs to be implemented to make it a workable system which means that once the design is complete, this demands the coding of design into computer understandable language i.e. programming language, that's why this phase is also known as a programming phase. The goal of the coding phase is to translate the design of the system into code in a given programming language. For a given design, the aim of this phase is to implement the design in the best possible manner. The coding phase affects both testing and maintenance profoundly. A well written code reduces the testing and maintenance effort. As the cost of testing and maintenance is much higher than the coding cost, the goal of coding should be to reduce the testing and maintenance effort. Hence, during coding the focus should be on developing programs that are easy to write. Simplicity and clarity should be strived for, during the coding phase. It is an important stage where the defined procedures are transformed into control specifications by the help of a computer language. It is generally felt that the programs must be modular in nature. This helps in fast development, maintenance and future changes, if required. TESTING The main thrust of the approach is to intensively test the front end in the first two releases, thus raising approximately 80% of errors in this period.
  • 6. Software testing is a process of verifying and validating that a software application or program meets the business and technical requirements that guided its design and development, and works as expected. Formal review points in testing: The diagram above outlines the Test Approach. Boxes 1 - 6 show the major review stages prior to Test execution. Boxes 7 - 10 show the phases planned for & after test execution. It is an important phase of a successful system. After codifying the whole programs of the system, a test plan should be developed and run on a given set of test data. The output of the test run should match the expected results. Using the test data following test run are carried out:  Program Test  System Test Program Test: In program test the programs must be individually tested with the prepared test data at the time of coding, compiling and brought to working conditions. Any undesirable happening must be noted and debugged (error corrections). System Test: After the program test for each program of the system, and also the errors are removed then its turn for System test. In this the test is done on actual data. The complete system is executed on the actual data. At each stage of the execution, the results or output of the system is analyzed.
  • 7. At the time of result analysis, it may be found that the outputs are not matching the expected output of the system. In such case, the errors in the particular programs are identified and are fixed and further tested for the expected output. IMPLEMENTATION After having the user acceptance of the new system developed, the Implementation Phase begins. In the implementation phase, the organization configures and enables system security features, tests the functionality of these features, installs or implements the system, and obtains a formal authorization to operate the system. Design reviews and system tests should be performed before placing the system into operation to ensure that it meets all required security specifications. In addition, if new controls are added to the application or the support system, additional acceptance tests of those new controls must be performed. This approach ensures that new controls meet security specifications and do not conflict with or invalidate existing controls. The results of the design reviews and system tests should be fully documented, updated as new reviews or tests are performed, and maintained in the organization's official records. The major steps involved in this phase are:  Acquisition and Installation of Hardware and Software  Conversion  User Training  Documentation During this phase, all the programs of the system are loaded onto the user's computer. After loading the system, training of the user starts. Main topics of such type of training are:  How to execute the package  How to enter the data  How to process the data (processing details)  How to take out the reports After the users are trained about the computerized system, working has to shift from manual to computerized working. The process is called 'Changeover'. The following strategies are followed for changeover of the system:  Direct Changeover  Parallel Run
  • 8.  Pilot Run MAINTENANCE It is the least glamorous and perhaps most important step of all, goes forever during whole system life. Inevitably the system will need maintenance. Software will definitely undergo change once it is delivered to the customer. There are many reasons for the change. Change could happen because of some unexpected input values into the system. In addition, the changes in the system could directly affect the software operations. The software should be developed to accommodate changes that could happen during the post implementation period. Maintenance is necessary to eliminate errors in the system during its working life and to tune the system to any variations in its working environments. It has been seen that there are always some errors found in the systems that must be noted and corrected. It also means the review of the system from time to time. The review of the system is done for:  Knowing the full capabilities of the system  Knowing the required changes or the additional requirements  Studying the performance. If a major change to a system is needed, a new project may have to be set up to carry out the change. The new project will then proceed through all the above life cycle phases. Various Models in SDLC: Why SDLC is necessary? Software Development Life Cycle (SDLC) is recognized by different website and software developers all over the world. However there's always a question of the need to implement this type of planning. We all know that SDLC could help us answer specific needs of different users. That is a given. But could that problem be answered when you are already familiar with that specific difficulty? In-house developers could even create the software on their own without consultation to users since they are also a part of the user group and has a clear understanding of what is needed. Clearly, SDLC is not needed to create software in this environment. Various SDLC methodologies have been developed to guide the processes involved including the waterfall model (the original SDLC method), rapid application development (RAD), joint application development (JAD), the fountain model and the spiral model.
  • 9. Various System Development Life Cycle models are: 1. Waterfall Software Development Life Cycle Model 2. Prototyping Software Development Life Cycle Model 3. Iterative Enhancement Model 4. The Spiral Model 5. Object Oriented Methodology 6. V- Model Methodology 7. Joint application development (JAD) 8. Rapid application development (RAD) From the above models first the SDLC method that describes the various phases involved in the development is the classic Waterfall model methodology which is shown below: Waterfall Model: The Waterfall Model is a popular version of the Systems Development life cycle model for Software Engineering. It is a linear sequential model. Waterfall development has different goals for each phase of development. Once a phase of development is completed, the development proceeds to the next phase and there is no backtracking. The basic steps involved in this model are: The stages of the Waterfall Model are:
  • 10. 1. Analysis/Requirement Gathering This step is the most important of the entire model because it involves gathering information about customer requirements and defining them in the clearest possible terms, the problem that the product is expected to solve. This step includes understanding customer's business context and constraints, functions that must be performed by product and the external systems it must be compatible with. The result obtained from the analysis done are typically captured in a formal requirement specification that later on serves as input to the next step. 2. Designing This step includes "defining the hardware and software architecture", components, modules, interfaces and data to satisfy given requirements". It also involves specifying performance and security parameters, selecting the IDE and programming language and indicating strategies to deal with issues such as exception handling, resource management and interface connectivity. The result of this stage is used in the next stage of implementation. 3. Coding In this step, the work is intended to set up the defined modules or units and the actual coding begins. The system is first developed in smaller portions. These smaller portions are called "units". Later on these units are integrated to form the complete software package. 4. Testing In this stage, both individual components and the integrated whole are methodologically verified to ensure that they are error free and fully meets the requirements defined in the first step "Analysis/Requirement Gathering". Three types of testing is done: unit testing of single code modules, system testing of integrated products and acceptance testing formally done by or on behalf of the customer. If defects are found then they are logged and feedback is provided to the implementation team for correction. 5. Implementation This step includes the actual construction of the product as per the design specification developed in the previous steps. In this step, programmers, interface designers and other specialists are involved using tools such as compilers, debuggers, interpreters and media editors. The output of this step is one or more product components, built according to a pre-defined coding standard and debugged, tested and integrated to satisfy the system architecture requirements.
  • 11. 6. Maintenance This step occurs after installation and involves making modifications to the system or an individual component to alter attributes or improve performance. These modifications arise either due to change requests initiated by the customer, or defects uncovered during live use of the system. Every change made to the product during the maintenance cycle is recorded and a new product release is performed to enable the customer to gain the benefit of the update. Advantages The Waterfall Model is the oldest and most widely used model in the field of software development. There are certain advantages of this model that makes it, one of the most widely used models as yet. Some of them are:  Being a linear model, so easy to understand and implement.  Fixed requirements.  The amount of resources required to implement this model is minimal. Disadvantages With so many advantages at hand, the Waterfall Model has some disadvantages. Here are a few:  For long duration projects, requirements may change, therefore there is a potential reduction of the acceptability of the product.  Testing is postponed to the later stage until coding is completed.  The working model is not seen until later stages. Iterative Enhancement Model: In Iterative model, iterative process starts with a simple implementation of a small set of the software requirements and iteratively enhances the evolving versions until the complete system is implemented and ready to be deployed. 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 in order 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.
  • 12. Iterative Model design Iterative process starts with a simple implementation of a subset of the software requirements and iteratively enhances the evolving versions until the full system is implemented. At each iteration, design modifications are made and new functional capabilities are added. The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental). Following is the pictorial representation of Iterative and Incremental model: Iterative and Incremental development is a combination of both iterative design or iterative method and incremental build model for development. "During software development, more than one iteration of the software development cycle may be in progress at the same time." and "This process may be described as an "evolutionary acquisition" or "incremental build" approach." In incremental model the whole requirement is divided into various builds. During each iteration, the development module goes through the requirements, design, implementation and testing phases. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is ready as per the requirement. The key to 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 have to be repeated and extended to verify each version of the software. Iterative Model Application Like other SDLC models, Iterative and incremental development has some specific applications in the software industry. This model is most often used in the following scenarios:  Requirements of the complete system are clearly defined and understood.  Major requirements must be defined; however, some functionalities or requested enhancements may evolve with time.
  • 13.  There is a time to the market constraint.  A new technology is being used and is being learnt by the development team while working on the project.  Resources with needed skill set are not available and are planned to be used on contract basis for specific iterations.  There are some high risk features and goals which may change in the future. Spiral Model: The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model. Spiral model is a combination of iterative development process model and sequential linear development model i.e. waterfall model with very high emphasis on risk analysis. It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral. Spiral Model design 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 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:Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and final design in the subsequent spirals.  Construct or Build: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 customer for feedback.  Evaluation and Risk Analysis:Risk Analysis includes identifying, estimating, and monitoring technical feasibility and management risks, such as schedule slippage and cost overrun. After
  • 14. testing the build, at the end of first iteration, the customer evaluates the software and provides feedback. Following is a diagrammatic representation of spiral model listing the activities in each phase: Based on the customer evaluation, software development process enters into the next iteration and subsequently follows the linear approach to implement the feedback suggested by the customer. The process of iterations along the spiral continues throughout the life of the software. Spiral Model Application Spiral Model is very widely used in the software industry as it is in synch with the natural development process of any product i.e. learning with maturity and also involves minimum risk for the customer as well as the development firms. Following are the typical uses of Spiral model:  When costs there is a budget constraint and risk evaluation is important.  For medium to high-risk projects.  Long-term project commitment because of potential changes to economic priorities as the requirements change with time.  Customer is not sure of their requirements which are usually the case.
  • 15.  Requirements are complex and need evaluation to get clarity.  New product line which should be released in phases to get enough customer feedback.  Significant changes are expected in the product during the development cycle. Prototyping Model: The Software Prototyping refers to building software application prototypes which display the functionality of the product under development but may not actually hold the exact logic of the original software. Software prototyping is becoming very popular as a software development model, as it enables to understand customer requirements at an early stage of development. It helps get valuable feedback from the customer and helps software designers and developers understand about what exactly is expected from the product under development. What is Software Prototyping?  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.  Prototyping is used to allow the users evaluate developer proposals and try them out before implementation.  It also helps understand the requirements which are user specific and may not have been considered by the developer during product design. Following is the stepwise approach to design a software prototype:  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.  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 and the workarounds are used to give the same look and feel to the customer in the prototype developed.  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.  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
  • 16. and budget constraints and technical feasibility of actual implementation. The changes accepted are again incorporated in the new Prototype developed and the cycle repeats until customer expectations are met. Prototypes can have horizontal or vertical dimensions. Horizontal prototype displays the user interface for the product and gives a broader view of the entire system, without concentrating on internal functions. A vertical prototype on the other side is a detailed elaboration of a specific function or a sub system in the product. The purpose of both horizontal and vertical prototype is different. Horizontal prototypes are used to get more information on the user interface level and the business requirements. It can even be presented in the sales demos to get business in the market. Vertical prototypes are technical in nature and are used to get details of the exact functioning of the sub systems. For example, database requirements, interaction and data processing loads in a given sub system. Software Prototyping Types There are different types of software prototypes used in the industry. Following are the major software prototyping types used widely:  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. Using evolutionary prototyping only well understood requirements are included in the prototype and the requirements are added as and when they are understood.  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 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.
  • 17. Software that involves too much of data processing and most of the functionality is internal with very little user interface does not usually benefit from prototyping. Prototype development could be an extra overhead in such projects and may need lot of extra efforts. RAD Model: The RAD (Rapid Application Development) model is based on prototyping and iterative development with no specific planning involved. The process of writing the software itself involves the planning required for developing the product. Rapid Application development focuses on gathering customer requirements through workshops or focus groups, early testing of the prototypes by the customer using iterative concept, reuse of the existing prototypes (components), continuous integration and rapid delivery. What is RAD? Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping. A prototype is a working model that is functionally equivalent to a component of the product. In RAD model the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery. Since there is no detailed preplanning, it makes it easier to incorporate the changes within the development process. RAD projects follow iterative and incremental model and have small teams comprising of developers, domain experts, customer representatives and other IT resources working progressively on their component or prototype. The most important aspect for this model to be successful is to make sure that the prototypes developed are reusable.
  • 18. RAD Model Design RAD model distributes the analysis, design, build, and test phases into a series of short, iterative development cycles. Following are the phases of RAD Model:  Business Modeling: The business model for the product under development is designed in terms of flow of information and the distribution of information between various business channels. A complete business analysis is performed to find the vital information for business, how it can be obtained, how and when is the information processed and what are the factors driving successful flow of information.  Data Modeling: The information gathered in the Business Modeling phase is reviewed and analyzed to form sets of data objects vital for the business. The attributes of all data sets is identified and defined. The relation between these data objects are established and defined in detail in relevance to the business model.  Process Modeling: The data object sets defined in the Data Modeling phase are converted to establish the business information flow needed to achieve specific business objectives as per the business model. The process model for any changes or enhancements to the data object sets is defined in this phase. Process descriptions for adding , deleting, retrieving or modifying a data object are given.  Application Generation: The actual system is built and coding is done by using automation tools to convert process and data models into actual prototypes.  Testing and Turnover: The overall testing time is reduced in RAD model as the prototypes are independently tested during every iteration. However the data flow and the interfaces between all the components need to be thoroughly tested with complete test coverage. Since most of the programming components have already been tested, it reduces the risk of any major issues. Following image illustrates the RAD Model:
  • 19. RAD Model Vs Traditional SDLC The traditional SDLC follows a rigid process models with high emphasis on requirement analysis and gathering before the coding starts. It puts a 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 actually 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 traditional SDLC. 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 RAD model can be applied successfully to the projects in which clear modularization is possible. If the project cannot be broken into modules, RAD may fail. Following are the typical scenarios where RAD can be used:  RAD should be used only when a system can be modularized to be delivered in incremental manner.  It should be used if there’s high availability of designers for modeling.  It should be used only if the budget permits use of automated code generating tools.  RAD SDLC model should be chosen only if domain experts are available with relevant business knowledge.  Should be used where the requirements change during the course of the project and working prototypes are to be presented to customer in small iterations of 2-3 months. V-Model The V - model is SDLC model where execution of processes happens in a sequential manner in V-shape. It is also known as Verification and Validation model. V - Model is an extension of the waterfall model and is based on association of a testing phase for each corresponding development stage. This means that for every single phase in the development cycle there is a directly associated testing phase. This is a highly disciplined model and next phase starts only after completion of the previous phase.
  • 20. V- Model design Under V-Model, the corresponding testing phase of the development phase is planned in parallel. So there are Verification phases on one side of the .V. and Validation phases on the other side. Coding phase joins the two sides of the V-Model. The below figure illustrates the different phases in V-Model of SDLC. Verification Phases Following are the Verification phases in V-Model:  Business Requirement Analysis: This is the first phase in the development cycle where the product requirements are understood from the customer perspective. This phase involves detailed communication with the customer to understand his expectations and exact requirement. This is a very important activity and need to be managed well, as most of the customers are not sure about what exactly they need. The acceptance test design planning is done at this stage as business requirements can be used as an input for acceptance testing.  System Design: Once you have the clear and detailed product requirements, it.s time to design the complete system. System design would comprise of understanding and detailing the complete hardware and communication setup for the product under development. System test plan is developed based on the system design. Doing this at an earlier stage leaves more time for actual test execution later.  Architectural Design: Architectural specifications are understood and designed in this phase. Usually more than one technical approach is proposed and based on the technical and financial feasibility the final decision is taken. System design is broken down further into modules taking up different functionality. This is also referred to as High Level Design (HLD).
  • 21. The data transfer and communication between the internal modules and with the outside world (other systems) is clearly understood and defined in this stage. With this information, integration tests can be designed and documented during this stage.  Module Design: In this phase the detailed internal design for all the system modules is specified, referred to as Low Level Design (LLD). It is important that the design is compatible with the other modules in the system architecture and the other external systems. Unit tests are an essential part of any development process and helps eliminate the maximum faults and errors at a very early stage. Unit tests can be designed at this stage based on the internal module designs. Coding Phase The actual coding of the system modules designed in the design phase is taken up in the Coding phase. The best suitable programming language is decided based on the system and architectural requirements. The coding is performed based on the coding guidelines and standards. The code goes through numerous code reviews and is optimized for best performance before the final build is checked into the repository. Validation Phases Following are the Validation phases in V-Model:  Unit Testing: Unit tests designed in the module design phase are executed on the code during this validation phase. Unit testing is the testing at code level and helps eliminate bugs at an early stage, though all defects cannot be uncovered by unit testing.  Integration Testing: Integration testing is associated with the architectural design phase. Integration tests are performed to test the coexistence and communication of the internal modules within the system.  System Testing: System testing is directly associated with the System design phase. System tests check the entire system functionality and the communication of the system under development with external systems. Most of the software and hardware compatibility issues can be uncovered during system test execution.  Acceptance Testing: Acceptance testing is associated with the business requirement analysis phase and involves testing the product in user environment. Acceptance tests uncover the compatibility issues with the other systems available in the user environment. It also discovers the nonfunctional issues such as load and performance defects in the actual user environment. V- Model Application V- Model application is almost same as waterfall model, as both the models are of sequential type. Requirements have to be very clear before the project starts, because it is usually expensive to go back and make changes. This model is used in the medical development field, as it is strictly disciplined domain. Following are the suitable scenarios to use V-Model:  Requirements are well defined, clearly documented and fixed.  Product definition is stable.  Technology is not dynamic and is well understood by the project team.
  • 22.  There are no ambiguous or undefined requirements.  The project is short. Joint application development (JAD) Model: Uses for JAD: 1. Application Development, Adaptation, & Selection Requirements External Design/Prototypes User Test Cases Training Post-Implementation Reviews 2. Strategic Planning 3. Customer Satisfaction Session 4. Organization Changes 5. Request for Proposal Development 6. Curriculum Design/Development Why Use JAD? 1. Accelerates Application Development/Selection Process 2. Increases Developers’ Productivity 3. User Participation in Application’s Design 4. Improves Communications Between: User and I/S User and User
  • 23. I/S and I/S 5. Enables Consensus, Commitment, and Partnership across the Enterprise Why JAD Works Users: 1. Educates Users about Development Process 2. Gives Users More Input & Accountability for Design 3. Leverages User's Subject Matter Expertise at Right Time I/S: 1. Ensures I/S and Users Come to Consensus Early 2. Provides I/S Subject Matter Expertise at Right Time 3. Educates I/S about Business Process MANAGEMENT: 1. Ensures Management Communications & Participation Through Executive Sponsor 2. Enforces Top-Down Design to Ensure Business Objectives Are Met 3. Educates Management On Both I/S and Business Area Detail 4. Leverages Management Subject Matter Expertise at Right Time Agile Model: Agile SDLC model is a combination of iterative and incremental process models with focus on process adaptability and customer satisfaction by rapid delivery of working software product. Agile Methods break the product into small incremental builds. These builds are provided in iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves cross functional teams working simultaneously on various areas like planning, requirements analysis, design, coding, unit testing, and acceptance testing. At the end of the iteration a working product is displayed to the customer and important stakeholders. What is Agile? Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In agile the tasks are divided to time boxes (small time frames) to deliver specific features for a release.
  • 24. Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer. Here is a graphical illustration of the Agile Model: Agile thought process had started early in the software development and started becoming popular with time due to its flexibility and adaptability. The most popular agile methods include Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method (DSDM) (1995). These are now collectively referred to as agile methodologies, after the Agile Manifesto was published in 2001. Following are the Agile Manifesto principles  Individuals and interactions - in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.  Working software - Demo working software is considered the best means of communication with the customer to understand their requirement, instead of just depending on documentation.  Customer collaboration - As the requirements cannot be gathered completely in the beginning of the project due to various factors, continuous customer interaction is very important to get proper product requirements.  Responding to change - agile development is focused on quick responses to change and continuous development.
  • 25. Agile Vs Traditional SDLC Models Agile is based on the adaptive software development methods where as the traditional SDLC models like waterfall model is based on predictive approach. Predictive teams in the traditional SDLC models usually work with detailed planning and have a complete forecast of the exact tasks and features to be delivered in the next few months or during the product life cycle. Predictive methods entirely depend on the requirement analysis and planning done in the beginning of cycle. Any changes to be incorporated go through a strict change control management and prioritization. Agile uses adaptive approach where there is no detailed planning and there is clarity on future tasks only in respect of what features need to be developed. There is feature driven development and the team adapts to the changing product requirements dynamically. The product is tested very frequently, through the release iterations, minimizing the risk of any major failures in future. Customer interaction is the backbone of Agile methodology, and open communication with minimum documentation are the typical features of Agile development environment. The agile teams work in close collaboration with each other and are most often located in the same geographical location.