Stages (Phases) of System Development Life Cycle
It describes the stages involved to develop an IS project.It is supervised and led by one or more
system analysts. These phases include Planning, Analysis, Design, Development, Testing,
Implementation, and Maintenance.
Stage 1: Feasibility study or Planning
Here, we determine whether there is a need for a new system, whether it is possible to develop
the system with available finances (economic feasibility), technology (technological feasibility),
time (scheduling feasibility) and human resources (technical feasibility). We determine what is to
be improved if the system is to replace an existing one.
This stage involves identifying the system’s objectives, defining the scope, setting timelines, and
allocating necessary resources. Effective planning ensures that the development process aligns
with the organization’s goals, guiding the project in a clear and structured direction. This phase
answers the question Why should we develop the system?
Stage 2: Analysis or Requirement Phase
In the Analysis phase, the focus is on understanding the system’s requirements, and determine
the needs of the end users. This phase answers the question What do we should to develop?
Types of requirements
The system analyst collect data from users and customers through methods like questionnaires,
interviews, surveys, and he may study an existing system through documentation, observation
and gather requirements for the new system.
Stage 3: Design
The Design phase translates the requirements gathered during Analysis into a detailed technical
blueprint. This includes designing the system’s architecture, database models, user interfaces,
and defining system components. The outcome of this phase provides the technical structure
needed to guide the upcoming development and implementation activities.
Stage 4: Development (Coding or Construction)
1
In this phase, the actual coding and development of the system take place. Developers build the
system according to the design specifications, implementing features, creating databases, and
writing code. This phase also includes initial internal testing to ensure the system functions as
expected and adheres to design and functional requirements.
Stage 5: Testing
Testing is a crucial phase that ensures the system is free of errors and functions correctly under
various conditions. This phase includes multiple types of testing, such as unit testing, integration
testing, system testing, and user acceptance testing. The goal is to identify and fix any issues
before the system is deployed. Types of testing include;
● System testing: It is a type of testing in which a quality assurance team tests the
system to check how the various components interact as a whole and fully integrated
system.
● Integration testing: It is a type of testing in which individual units or modules are
combined and tested as a group
● Acceptance testing: It is a formal testing in which the system is tested to determine
whether it satisfies some criteria or whether requirements are satisfied and whether the
user will accept or not the system. You should test that the program works the way a
user/customer expects the application to work. Acceptance tests ensure that the
functionality meets business requirements.
● Unit testing: it is a type of testing in which we test each piece of code individually. It can
be each subroutine, class, method etc each of which are tested separately.
● Integration: it is a type of testing in which we test the integrations of many units
together. You make sure your code works when put together, including dependencies,
databases and libraries.
● Black Box testing: it is a type of testing in which we ignore the internal structure and
working of the software and instead test the functionality and output. It is used for
validation. We test the functionality of an application without peering into its internal
structures or workings
● White Box testing: it is a type of testing in which we focus on the internal structure and
working and test how the output is obtained. It is used for verification. In this we focus
on the internal mechanism Le. how the output is achieved.
Types of test data
● Boundary data: boundary values which the system can support
● Valid data: these are data types supported by the system and helps to test for the
correct functioning
2
● Invalid data: data types which are not supported by the system and helps test how
the system will respond to erroneous input with error messages or notifications
Stage 6: Implementation
The Implementation phase involves deploying the developed system into a live environment.
Key activities include system installation, migrating data, training users, and configuring
infrastructure. This phase requires thorough planning to ensure a smooth transition from the
existing system to the new one with minimal disruptions.
Implementation methods
System Conversion Methods in SDLC
System conversion refers to the process of transitioning from an old system to a new one.
Several methods can be used, each with its own advantages and disadvantages.
1. Direct Conversion: This method involves a sudden switch from the old system to the new one,
often overnight.
● Advantages:
○ Cost-effective
○ Quick and efficient
● Disadvantages:
○ High risk of failure
○ No fallback option if the new system malfunctions
2. Parallel Conversion: Both the old and new systems run concurrently for a period, allowing for
comparison and verification.
● Advantages:
○ Low risk
○ Provides a safety net
● Disadvantages:
○ Double the workload and cost
○ Can lead to confusion and inefficiency
3. Phased Conversion: The new system is implemented in stages, gradually replacing the old
system.
● Advantages:
○ Reduces risk
○ Allows for testing and feedback
● Disadvantages:
○ Can be time-consuming and complex
3
○ Requires careful planning and coordination
4. Pilot Conversion: The new system is implemented in a limited area or with a small group of users,
allowing for testing and refinement before full implementation.
● Advantages:
○ Reduces risk
○ Provides valuable feedback
● Disadvantages:
○ Can be time-consuming
○ May not fully represent the entire system
Stage 7: Maintenance
Maintenance is an ongoing phase where the system is monitored, maintained, and updated as
needed. This includes bug fixes, performance enhancements, security patches, and responding
to user feedback. Proper maintenance ensures the system remains efficient, secure, and
adaptable to future business needs.
Role of System Analyst
An SDLC’s system analyst is, in some ways, an overseer for the entire system. They should be
totally aware of the system and all its moving parts and can help guide the project by giving
appropriate directions.
The system analyst should be:
● An expert in any technical skills required for the project
● A good communicator to help command his or her team to success
● A good planner so that development tasks can be carried out on time at each phase of
the development cycle
Thus, systems analysts should have an even mix of interpersonal, technical, management, and
analytical skills altogether. They’re versatile professionals that can make or break an SDLC.
Their responsibilities are quite diverse and important for the eventual success of a given project.
Systems analysts will often be expected to:
● ️ ather facts and information
G
● Make command decisions about which bugs to prioritize or what features to cut
● Suggest alternative solutions
● Draw specifications that can be easily understood by both users and programmers
● Implement logical systems while keeping modularity for later integration
4
● Be able to evaluate and modify the resulting system as is required by project goals
● Help to plan out the requirements and goals of the project by defining and understanding
user requirements
SDLC Models
1. Waterfall Model
It is the fundamental model of the software development life cycle. This is a very simple model.
The waterfall model is not in practice anymore, but it is the basis for all other SDLC models.
Because of its simple structure, the waterfall model is easier to use and provides a tangible
output. In the waterfall model, once a phase seems to be completed, it cannot be changed, and
due to this less flexible nature, the waterfall model is not in practice anymore. Do the
advantages and disadvantages of this model as homework.
2. Agile Model
The agile model in SDLC was mainly designed to adapt to changing requests quickly. The main
goal of the Agile model is to facilitate quick project completion. The agile model refers to a group
of development processes. These processes have some similar characteristics but also possess
certain subtle differences among themselves.
Advantages
● Is a very realistic approach to software development.
● Promotes teamwork and cross training.
● Functionality can be developed rapidly and demonstrated.
● Resource requirements are minimum.
Disadvantages
● Not suitable for handling complex dependencies.
● More risk of sustainability, maintainability and extensibility.
3. Iterative Model
In the Iterative model in SDLC, each cycle results in a semi-developed but deployable version;
with each cycle, some requirements are added to the software, and the final cycle results in the
software with the complete requirement specification.
Advantages
● Results are obtained early and periodically.
● Testing and debugging during smaller iterations is easy.
● It supports changing requirements.
● Better suited for large and mission-critical projects.
Disadvantages
● More resources may be required.
● More management attention is required.
● Not suitable for smaller projects.
5
4. Spiral Model
The spiral model in SDLC is one of the most crucial SDLC models that provides support for risk
handling. It has various spirals in its diagrammatic representation; the number of spirals
depends upon the type of project. Each loop in the spiral structure indicates the Phases of the
Spiral model.
Advantages
● Changing requirements can be accommodated.
● Allows extensive use of prototypes.
● Requirements can be captured more accurately.
Disadvantages
● Management is more complex.
● End of the project may not be known early.
● Not suitable for small or low risk projects and could be expensive for small projects.
5. V-Model (Validation and Verification Model)
The V-Model is a software development model that extends the traditional Waterfall model by
emphasizing testing and validation at each stage of development. For every development phase
(like requirement analysis, design, coding), there is a corresponding testing phase (like user
acceptance testing, system testing, integration testing, and unit testing). The model is called “V”
because the process visually resembles the letter V — development goes down the left side,
and testing goes up the right.
Advantages:
● Each phase has a corresponding test phase, ensuring better quality.
● Defects can be detected early.
● Clear project milestones and deliverables.
● Simple and easy to understand for small projects.
Disadvantages:
● Very rigid — once a phase is complete, it’s hard to go back.
● Not ideal for projects where requirements may change.
● No early prototypes or working software until late stages.
6. Incremental Model
The Incremental Model builds the system gradually. The software is divided into smaller parts or
modules (increments), each developed and delivered separately. Each increment provides part
of the required functionality, and after each one, feedback can be gathered to refine the next.
Development and delivery occur in steps, and the full product evolves over time.
6
Advantages:
● Delivers useful software early, even if incomplete.
● Easier to test, debug, and manage smaller parts.
● Flexible — changes can be made between increments.
● Lower initial delivery cost.
Disadvantages:
● Requires good planning and design upfront.
● Integration of increments can become complex.
● May require more effort and resources in the long term.
● Not suitable for systems needing complete functionality upfront.
7. Big Bang Model
The Big Bang Model involves very little planning and follows a chaotic development process.
Developers begin coding with little to no requirements. The hope is that everything will come
together when coding is done. It is mostly used for small projects, academic exercises, or in
situations where requirements are unclear.
Advantages:
● Simple and flexible.
● Minimal planning required.
● Can be useful for learning or experimenting.
Disadvantages:
● Extremely risky and unpredictable.
● No structured process — testing and validation are often an afterthought.
● Poor for large or long-term projects.
● Very hard to manage resources and time.
Real-Life Example: Online Food Ordering System
1. Planning:
○ A restaurant chain decides to develop an online food ordering system to allow
customers to place orders through a website and mobile app.
2. Analysis:
○ The restaurant gathers feedback from customers and staff, identifying the need
for easy menu navigation, secure payments, and real-time order tracking.
7
3. Design:
○ Developers create wireframes and database structures, planning how
customers will browse the menu, add items to their cart, and make payments.
4. Development:
○ Programmers write code for the website and mobile app, integrating payment
gateways, order tracking, and restaurant inventory management.
5. Testing:
○ The system is tested to check if orders are correctly processed, payments go
through without errors, and customers receive real-time order updates.
6. Implementation:
○ The online ordering system is launched, and restaurant staff are trained to
manage online orders efficiently.
7. Maintenance:
○ Regular updates are released to fix bugs, improve app speed, and add new
features like promo codes and loyalty rewards.