Assignment 1 SCD
Assignment 1 SCD
Section A
Date 12-06-2024
Q#1 Describe the software development life cycle (SDLC) and explain the different phases
involved in it.?
The Software Development Life Cycle (SDLC) is a structured process used by software
development teams to design, develop, test, deploy, and maintain software applications. It
encompasses several phases, each with its own set of activities, deliverables, and objectives.
Here's an overview of the typical phases involved in the SDLC:
1. Requirement Analysis: This phase involves gathering and analyzing requirements from
stakeholders, including clients, users, and business analysts. The goal is to define the scope
of the project, identify user needs, and document functional and non-functional
requirements.
2. Planning: In this phase, the project team develops a comprehensive project plan that
outlines the project scope, schedule, budget, resources, and quality objectives. Key
activities include defining project milestones, allocating resources, and establishing
communication channels.
3. Design: The design phase focuses on transforming the requirements gathered in the
previous phase into a detailed blueprint for the software solution. This includes designing
the system architecture, data models, user interface, and software components. Design
documents such as system specifications, architectural diagrams, and mockups are created
during this phase.
4. Implementation (Coding): During the implementation phase, developers write code based
on the design specifications. This involves translating the design into executable code using
programming languages, frameworks, and development tools. The code is typically
organized into modules and components to facilitate testing and maintenance.
5. Testing: The testing phase involves verifying and validating the software to ensure that it
meets the specified requirements and quality standards. Testing activities may include unit
testing, integration testing, system testing, performance testing, and user acceptance testing.
Defects and issues identified during testing are logged, prioritized, and addressed by the
development team.
6. Deployment (Release): Once the software has been thoroughly tested and approved for
release, it is deployed to the production environment. This may involve installing the
software on servers, configuring databases, and setting up user accounts. Deployment
activities are carefully planned and coordinated to minimize disruption to users and ensure
a smooth transition to the new system.
7. Maintenance and Support: After the software is deployed, it enters the maintenance
phase, where it is monitored, maintained, and supported over its lifecycle. This includes
addressing bug fixes, performance optimizations, security updates, and user support
requests. Maintenance activities aim to ensure the ongoing reliability, availability, and
usability of the software.
8. Evaluation and Feedback: Throughout the SDLC, it's essential to gather feedback from
stakeholders, users, and team members to evaluate the success of the project and identify
areas for improvement. Lessons learned from each project iteration can inform future
development efforts and contribute to process improvement.
Q#2 Compare and contrast the Waterfall and Agile software development methodologies.
Discuss their advantages and disadvantages?
Waterfall Methodology:
Advantages of Waterfall:
Disadvantages of Waterfall:
• High risk of project failure if requirements are not accurately captured upfront.
• Long delivery cycles can lead to delayed feedback and slower time-to-market.
3. Adaptive to Change: Agile is highly adaptive to change, allowing for flexibility and
responsiveness to changing requirements, priorities, and market conditions. Requirements
can evolve and be refined throughout the project.
Advantages of Agile:
• Customer collaboration leads to a better understanding of user needs and higher customer
satisfaction.
• Early and frequent feedback helps identify and address issues sooner.
• Higher team morale and motivation due to increased autonomy and ownership.
Disadvantages of Agile:
• Lack of upfront planning may lead to scope creep or uncertainty about project timelines.
• Requires active involvement and commitment from customers and stakeholders throughout
the project.
• Continuous changes and iterations can increase project complexity and management
overhead.
• May not be suitable for projects with strict regulatory requirements or fixed deadlines.