0% found this document useful (0 votes)
8 views

Assignment 1 SCD

Uploaded by

shanikummar7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Assignment 1 SCD

Uploaded by

shanikummar7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Assignment#1

Submitted By Zeeshan Farooq


20011598-026

Course Software Construction And Develp

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:

1. Sequential Approach: Waterfall follows a linear and sequential approach to software


development. Each phase (requirements, design, implementation, testing, deployment,
maintenance) is completed sequentially, and progress flows downward like a waterfall.

2. Documentation Intensive: It emphasizes extensive documentation at each stage of the


process. Detailed requirements, design documents, and test plans are created upfront before
moving to the next phase.

3. Predictability: Waterfall provides a predictable and structured framework for project


management. Project milestones and deliverables are well-defined, making it easier to plan
and manage large-scale projects.

4. Limited Flexibility: The sequential nature of Waterfall makes it less flexible to


accommodate changes once the project has started. Changes in requirements or scope are
difficult to implement without impacting the entire project timeline.

Advantages of Waterfall:

• Clear project requirements upfront.

• Well-defined project milestones and deliverables.

• Suitable for projects with stable and predictable requirements.

• Easier to manage for small, straightforward projects.

• Emphasis on documentation aids in knowledge transfer and maintenance.

Disadvantages of Waterfall:

• Limited flexibility to accommodate changes during development.

• 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.

• Limited stakeholder involvement until late stages of development.

• Difficulty in responding to changing customer needs or market conditions.


Agile Methodology:

1. Iterative and Incremental: Agile is an iterative and incremental approach to software


development. It breaks the project into small, manageable iterations or sprints, with each
iteration delivering a potentially shippable product increment.

2. Customer Collaboration: Agile emphasizes frequent collaboration and feedback from


customers and stakeholders throughout the development process. This ensures that the
product meets evolving user needs and requirements.

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.

4. Continuous Improvement: Agile promotes a culture of continuous improvement, where


teams regularly reflect on their processes and practices to identify areas for improvement
and make adjustments accordingly.

Advantages of Agile:

• Flexibility to accommodate changing requirements and priorities.

• Customer collaboration leads to a better understanding of user needs and higher customer
satisfaction.

• Faster time-to-market due to iterative development and incremental delivery.

• 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.

• Dependency on self-organizing teams and effective communication can be challenging for


some organizations.

You might also like