SDLC-Life-Cycle
SDLC-Life-Cycle
The System Development Life Cycle (SDLC) is a systematic process used to develop, implement, and
maintain information systems effectively. It provides a structured framework to ensure that systems
meet business requirements, are developed within budget, and operate efficiently after deployment.
Phases of SDLC
3. System Design:
The system design phase focuses on creating a detailed plan for the new system. This
includes designing input/output screens, reports, databases, and processes. The design
specifies how the system will operate and provides detailed instructions for programmers.
These specifications ensure that all aspects of the system are clearly defined for
development.
4. System Development:
During system development, the design is transformed into a physical system. Programmers
write code using suitable programming languages and prepare technical documentation for
the system. This phase results in a working system that is ready for testing and
implementation.
5. System Testing:
System testing ensures that the developed system functions as intended. It is tested for
errors and evaluated to confirm that it meets user requirements. The system is used
experimentally to verify that it operates according to its specifications and provides the
desired results.
6. System Implementation:
In this phase, the system is installed and integrated into daily operations. Activities include
distributing the software to user sites, training users, and managing the transition from the
old system to the new one. This process, known as System Conversion, must be handled
carefully to avoid data loss or corruption during implementation.
7. System Maintenance and Review:
The final phase involves maintaining the system to ensure its continued effectiveness. This
includes correcting errors, upgrading features, and adapting to changing user needs. System
maintenance provides ongoing support and ensures that the system continues to meet
organizational requirements.
Feasibility Study
A feasibility study is the most important activity in the system analysis phase. It analyzes the
proposed system from different aspects to determine how practical or beneficial the system will be
for the organization. It answers whether the system is feasible to design or not.
1. Economic Feasibility:
Focuses on the cost-effectiveness of the system. It calculates approximate costs
(development and operational) and evaluates the benefits of the system.
2. Technical Feasibility:
Assesses the availability of hardware, software, and support equipment for the complete
development of the system.
3. Operational Feasibility:
Concerns the smooth operation of the system and identifies potential problems during
system operations after deployment.
4. Behavioral Feasibility:
Examines user and societal acceptance of the new system. Traditional employees may resist
upgrading to a new system.
5. Social Feasibility:
Determines whether the proposed system will be acceptable to the people it affects.
6. Management Feasibility:
Determines whether the proposed system will be acceptable to the management.
7. Schedule (Time) Feasibility:
Involves splitting the project into tasks and estimating the time and resources required to
complete each task. It determines deadlines and schedules tasks accordingly.
8. Legal Feasibility:
Addresses legal aspects of the system. If the system violates laws or regulations, it cannot
proceed. This includes considerations like copyright law, foreign law, trade regulations, and
tax laws.
A Software Project Manager is a professional responsible for planning, organizing, leading, and
controlling software development projects. They ensure that the project is completed within the
defined scope, timeline, and budget while meeting quality standards. The SPM acts as a bridge
between stakeholders, development teams, and upper management, ensuring smooth
communication and collaboration.
The roles of an Software Project Manager can be divided into Managing People and Managing
Projects:
1. Managing People
• Leadership:
Acts as the project leader, inspiring and guiding the team toward project goals.
• Stakeholder Communication:
Serves as a liaison between clients, stakeholders, and the development team. Represents the
project as its spokesperson in meetings.
• Reporting Hierarchy:
Establishes and oversees a reporting structure to streamline communication and decision-
making.
2. Managing Projects
• Project Planning:
Defines the project scope, goals, and deliverables. Develops detailed project schedules,
budgets, and resource plans.
• Execution and Monitoring:
Oversees all project management activities, tracks progress, and ensures compliance with
timelines and standards. Conducts risk analysis and takes preventive actions.
• Problem-solving:
Identifies and resolves project issues, proactively addressing challenges to ensure smooth
progress.
• Deliverables:
Ensures the final product aligns with stakeholder expectations and meets the agreed-upon
requirements.
Note: A Software Project Manager balances technical expertise, leadership, and organizational skills
to ensure the project's success while maintaining team satisfaction and stakeholder trust.
A stakeholder in a project is any individual, group, or organization that has an interest in, influence
on, or is impacted by the project's outcome, either directly or indirectly. Stakeholders can be internal
(within the organization) or external (outside the organization), and their involvement may vary
depending on their roles and the nature of the project.
A system analyst is a key person in the system development process who analyses the existing
system and designs, implements, and evaluates a new system that addresses the limitations of the
existing one.
Core Analyzes how systems serve business Designs and develops high-quality
Responsibility needs and suggests improvements. software.
Works with large data sets — scraping, Builds new software or adds features to
Data Handling visualizing, and ensuring system existing ones (desktop, web, mobile, or
compatibility. cloud).
Experience and Typically more experienced and higher Typically less experienced and lower
Pay paid. paid.
1. Knowledge of Organization:
A system analyst must understand how various functions of an organization operate. They
should have a thorough knowledge of the organization's structure, the relationships among
its departments, and its day-to-day operations.
2. Technical Knowledge:
A system analyst should have good knowledge of new technology and be well-trained in
relevant areas of computer science. They must be familiar with both the hardware and
software aspects of computers and their development processes. Understanding
programming concepts and techniques is crucial to designing systems that can be
implemented effectively.
5. Problem-Solving Skills:
A system analyst must have extensive experience in solving problems. They should be adept
at using appropriate analytical tools to address issues as necessary.
1. Defining Requirements:
This involves understanding users' requirements by interviewing them to determine what
information is being used in the current system, how it is being used, and what their
expectations are for the proposed system.
2. Prioritizing Requirements:
Each user in the organization may have specific needs, but it may not be possible to fulfill
everyone's requirements. Therefore, the system analyst must prioritize the requirements of
various users to ensure the most critical ones are addressed first.
5. Solving Problems:
A system analyst must study problems in depth and suggest alternative solutions to the
management. They need to consider the difficulties in implementing each alternative and
the benefits, so the management can select the best solution.
6. Drawing Up Specifications:
The system analyst's job is to create functional specifications for the system to be designed in
a way that users can understand. The specifications must be non-technical for managers and
users, while being precise and detailed enough for system implementers. These
specifications should also account for potential future expansions.
1. Facilitates Communication:
The SDLC process ensures constant communication between the developer and the client
during the development phase.