SYSTEM DEVELOPMENT LIFE CYCLE
PROJECT: is a planned undertaking that has beginning and end that produces a
desired result or product.
System Development Project: describes a planned undertaking that produces a new
information. Some system development are very large, requiring thousands hours of
work by many people and spanning several calender years.
One of the key fundamental concepts of information system development is the system
development life cycle. Businesses and organization uses information system to
support all the many processes that a business needs to carry out its functions.
INTRODUCTION TO SYSTEM DEVELOPMENT LIFE CYCLE (SDLC)
The System Development Life Cycle (SDLC) is a structured approach used for
developing information systems. It provides a systematic process for planning, creating,
testing, and deploying information systems, ensuring that high-quality systems are
delivered that meet or exceed customer expectations.
It is also the the process of building, deploying, using and updating an information
system.
In today’s diverse development environment, many different approaches to developing
systems are used, and they are based on different SDLS’s. SDLS approaches are
classify into:
1. Predictive approach: is an approach that assumes that the development project
can be planned and organize in advance and that the new information system
can be developed according to the plan. They used in building systems that are
well understood and defined. Eg. A company want to convert it old mainframe
inventory system to a newer network client/server system. In this type of project
the staff already understand the requirements very well and no new no new
processes needed to be added.
2. Adaptive approach: is used when the exact requirements of a system or the
user is needs are not well understood. In this situation, the project can not be
planned completely in advance but must be modified as it progresses.
In practice any project could have and most do have both predictive and adaptive
elements.
The SDLC consists of distinct phases, each with specific tasks and deliverables.
Understanding these phases helps in managing the complexity of system development
projects and improving project success rates.
1. Planning:
Purpose: To define the scope, objectives, and feasibility of the project.
Activities: define the problem, Project initiation, feasibility analysis, project scheduling,
resource allocation, staff the project and lunch the project.
Deliverables: Project charter, feasibility study report, project plan.
2. Analysis:
Purpose: To gather detailed requirements and analyze business needs.
Activities: Requirement gathering (interviews, surveys, document analysis),
requirement analysis, build a prototype for discovery of requirements, generate and
evaluate alternatives, requirement documentation and review recommendation with
management.
Deliverables: System requirements specification (SRS), use cases, process diagrams.
3. Design:
Purpose: To create detailed system designs based on requirements gathered and
decision made during analysis..
Activities: System architecture design, database design,(user and system) interface
design, specification of system components, integrated network design.
Deliverables: Design documents, data models, UI/UX prototypes.
4. Implementation
Purpose: To build, develop, test and install the system based on design specifications.
Activities: Coding, integration of system components, development of databases,
creation of system interfaces.
Deliverables: Source code, database schema, developed system modules.
5. Testing:
Purpose: To ensure the system works as intended and is free of defects.
Activities: Unit testing, integration testing, system testing, user acceptance testing
(UAT).
Deliverables: Test plans, test cases, test scripts, defect reports.
6. Deployment:
Purpose: To deliver the system to the users and make it operational.
Activities: System installation, data migration, user training, deployment planning.
Deliverables: Deployed system, user manuals, training materials.
7. Maintenance:
Purpose: To monitor, support, and enhance the system post-deployment and support
the users.
Activities: Bug fixing, system updates, performance tuning, new feature integration.
Deliverables: Maintenance reports, system updates, enhancement specifications.
Types of SDLC Models
Different SDLC models have been developed to address various project requirements
and constraints. Each model has its strengths and weaknesses, making them suitable
for different types of projects.
v Waterfall Model:A linear and sequential approach where each phase must be
completed before the next one begins. After a project drops over the water fall
into the next phase, there is no going back. It requires rigid planning and final
decision making at each step of the development project.
Strengths: Simple, easy to understand, well-suited for projects with clear requirements.
Weaknesses: Inflexible, difficult to accommodate changes, high risk if initial
requirements are not well-understood.
Use Case: Suitable for projects with well-defined requirements and low uncertainty.
v V-Model (Validation and Verification Model): An extension of the Waterfall
model that includes corresponding testing phases for each development stage.
Strengths: Emphasizes verification and validation, ensures early detection of defects.
Weaknesses: Similar to Waterfall, it can be rigid and challenging to handle changes.
Use Case: Suitable for projects where quality and reliability are critical.
v Iterative Model: Develops the system through repeated cycles (iterations),
allowing refinement through each iteration until the system is closer to what is
ultimately needed.
Strengths: Flexible, allows for changes and refinements, reduces risk through early
iterations.
Weaknesses: Can lead to scope creep, requires careful project management.
Use Case: Suitable for complex projects where requirements may evolve over time
v Spiral Model: it is the first adaptive approach to SDLC. it Combines iterative
development with risk assessment. Each iteration involves planning, risk
analysis, engineering, and evaluation.
Strengths: Focuses on risk management, iterative refinement, and client feedback.
Weaknesses: Can be complex to manage, requires significant risk assessment
expertise.
Use Case: Suitable for large, high-risk projects where risk management is a priority.
v Agile Model: Emphasizes flexibility, collaboration, and customer feedback. Uses
iterative cycles called sprints to develop system increments.
Strengths: Highly flexible, adaptive to changes, focuses on customer satisfaction.
Weaknesses: Requires strong team collaboration, can be challenging in fixed-budget
projects.
Use Case: Suitable for dynamic projects where requirements are expected to change
frequently.
v DevOps Model: Integrates development (Dev) and operations (Ops) to improve
collaboration, automate processes, and enhance the delivery pipeline.
Strengths: Enhances collaboration, continuous delivery, and deployment, quick
feedback loops.
Weaknesses: Requires cultural shift, high initial set up and integration costs.
Use Case: Suitable for projects aiming for continuous integration and delivery
A SYSTEM ANALYST is a professional who specializes in analysing, designing, and
implementing information systems. They act as a bridge between business problems
and technology solutions, ensuring that business needs are met with appropriate
technical solutions. System analysts work to improve system efficiency, integrate new
technologies, and enhance business processes through effective use of information
systems.
Roles of a System Analyst
Ø Requirement Gathering and Analysis: Collecting and documenting the
requirements of the business or project.
Activities: Conducting interviews, surveys, and workshops with stakeholders to
understand their needs.
Ø System Design: Creating detailed specifications and design plans for system
components.
Activities: Developing data flow diagrams, system models, and technical specifications.
Ø Feasibility Analysis: Assessing the technical, financial, and operational feasibility
of proposed systems.
Activities: Conducting cost-benefit analysis, risk assessment, and feasibility studies.
Ø System Integration: Ensuring that new systems integrate seamlessly with existing
systems.
Activities: Designing interfaces, data migration plans, and integration testing.
Ø Project Management: Planning, coordinating, and managing system development
projects.
Activities: Developing project plans, timelines, resource allocation, and monitoring
progress.
Ø Quality Assurance and Testing: Ensuring the system meets the required
standards and functions correctly.
Activities: Developing test plans, conducting tests, and managing defect tracking.
Ø Training and Support: Providing training and support to end-users and technical
staff.
Activities: Creating user manuals, conducting training sessions, and offering ongoing
support.
Skills Of A System Analyst
Ø Technical Skills:
Proficiency in Programming Languages: Understanding of languages such as Java, C#,
Python.
Database Management: Knowledge of SQL, Oracle, and database design principles.
System Design Tools: Familiarity with tools like UML (Unified Modeling Language), ERD
(Entity-Relationship Diagrams).
Ø Analytical Skills:
Problem-Solving: Ability to analyze complex problems and develop effective solutions.
Critical Thinking: Evaluating various options and making sound decisions based on
analysis.
Ø Communication Skills:
Interpersonal Communication: Effectively communicating with stakeholders at all levels.
Technical Writing: Documenting requirements, designs, and test plans clearly and
concisely.
Ø Project Management Skills:
Planning and Scheduling: Developing and managing project plans and schedules.
Resource Management: Allocating and managing resources efficiently.
Ø Business Skills:
Domain Knowledge: Understanding the specific industry and business processes.
Cost-Benefit Analysis: Evaluating the financial impact of system solutions.
Ø Interpersonal Skills:
Collaboration: Working effectively with cross-functional teams.
Negotiation: Mediating between stakeholders with different viewpoints.
Types of System Analysts
1. Business System Analysts:
Focus: Bridging the gap between business needs and IT solutions.
Responsibilities: Understanding business processes, identifying opportunities for
improvement, and designing systems that enhance business efficiency.
2. Technical System Analysts: Providing technical expertise and support for system
development.
Responsibilities: Developing technical specifications, coding, and ensuring systems are
technically sound.
3. Functional System Analysts: Specializing in specific functions within an
organization, such as finance or HR.
Responsibilities: Understanding functional requirements and ensuring the system meets
these needs.
4. Infrastructure System Analysts: Ensuring the underlying IT infrastructure supports
business operations.
Responsibilities: Analyzing network, hardware, and software needs, and ensuring
system scalability and performance.
5. Data System Analysts: Managing and analyzing data to support decision-making.
o Responsibilities: Designing data models, ensuring data quality, and implementing data
management solutions.
Methodology:
It provides the guide line to follow for completing every activity in the SDLC, including
tools, models and techniques. Some methodologies are home made, some are
purchased from consulting firms or other vendors. Methodology contains instruction
about how to use models, tools and techniques.
MODELS
Representation of an important aspect of real world. Eg to talk about the aerodynamics
of a plane, it is useful to have a small model that show the plane’s overall shape in three
dimension. Sometimes a drawing showing the cross sectional details of the wing of the
plane is what is needed. Some models are physically similar close to the real product,
some are graphical representation of important details, while some are abstract
mathematical representation.
Models used in system development include: inputs, outputs, processes, datas, object
interaction, locations, networks and devices,
Some models of system components are:
Flow chart, data flow diagram, entity relation ship diagram, structure chart, use case
diagram, class diagram, sequence diagram.
TOOLS
Is a software support that helps create models or other components required in the
project. Tools might be simple drawing programs for creating diagrams. They might
include database application that stores information about the project.
Some tools in system development are:
– Project management application
– drawing/graphics application
– Word processor/ text editor
– Computer aided system engineering (CASE) tools
– Integrated development environment.
– Database management application
– Code generator tool
TECHNIQUES
Is a collection of guidelines that help an analyst complete a system development activity
or task. It often includes step by step instructions for creating a model. Sometimes it
applies to an entire life cycle phase and helps you create several models and other
documents.
Some techniques commonly use in system development are:
– Strategic planning techniques
– Project management techniques
– User interviewing techniques
– Software testing techniques
– Data modelling techniques
– Relational database design techniques
– Structured analysis techniques
– Structured design techniques
– Structured programming techniques
Methodology includes:
Collection of techniques that are used to complete activities within each phase of
SDLC.
The activity include the completion of variety of models as well as other documents and
deliverables.
System developers use software tools to help them complete activities.