Software Development Lifecycle & Methodologies Flashcards
8 cards from real CSM practice questions. Tap to flip, then mark Knew It or Still Learning โ missed cards come back until you master them.
Read the first 8 Software Development Lifecycle & Methodologies flashcards as text
Which of the following is the first phase of the Software Development Lifecycle?
Answer: Requirement gathering
The Requirement Gathering phase is the foundational first step in the Software Development Lifecycle (SDLC). During this phase, project managers and business analysts work closely with stakeholders to understand, document, and define the functional and non-functional requirements of the software system. This crucial step ensures that the development team clearly understands what needs to be built before any design or coding begins.
What does Agile methodology primarily focus on?
Answer: Iterative development and flexibility
Agile methodology is characterized by its emphasis on iterative, incremental development, where projects are broken down into small, manageable cycles called sprints. This approach prioritizes flexibility, continuous feedback, and rapid adaptation to changing requirements, rather than rigid upfront planning. Agile aims to deliver working software frequently and respond quickly to customer needs.
What is the purpose of the Testing phase in the SDLC?
Answer: To test the software for bugs and defects
The Testing phase in the SDLC is dedicated to systematically evaluating the software to identify and uncover any bugs, errors, or defects. This involves executing various types of tests, such as unit, integration, system, and acceptance testing, to ensure the software meets its specified requirements and functions correctly. The primary purpose is to validate the software's quality, reliability, and performance before release.
Which SDLC methodology is most commonly used for projects that require frequent changes and adaptations?
Answer: Agile
Agile methodology is particularly well-suited for projects that anticipate or require frequent changes and adaptations throughout their lifecycle. Its iterative and incremental nature allows teams to respond quickly to evolving requirements and feedback, making adjustments in short development cycles. This flexibility contrasts with more rigid models like Waterfall, which struggle with changes once a phase is completed.
What is the benefit of using version control systems (VCS) in the development process?
Answer: It allows developers to track and manage code changes
Version Control Systems (VCS), such as Git or SVN, are essential tools in software development because they enable developers to track, manage, and revert changes made to source code over time. They facilitate collaboration among multiple developers by providing a centralized repository for code, resolving conflicts, and maintaining a complete history of all modifications. This ensures code integrity and simplifies teamwork.
What is the main difference between Waterfall and Agile methodologies?
Answer: Waterfall is linear, while Agile is iterative
The fundamental difference between Waterfall and Agile methodologies lies in their approach to project execution. Waterfall is a linear, sequential model where each phase must be completed before the next begins, making it rigid and less adaptable to changes. Agile, conversely, is an iterative and incremental approach, breaking projects into small cycles and allowing for continuous feedback and adaptation throughout the development process.
Which SDLC phase involves making the software available for use by the end-users?
Answer: Deployment
The Deployment phase in the Software Development Lifecycle (SDLC) is when the developed and thoroughly tested software is released and made available for use by the end-users. This involves activities such as installation, configuration, data migration, and making the application accessible in its production environment. Successful deployment ensures the software is operational and ready to deliver value.
What does the Continuous Integration (CI) process in Agile involve?
Answer: It ensures code changes are regularly integrated and tested
In Agile, Continuous Integration (CI) is a practice where developers frequently merge their code changes into a central repository, often multiple times a day. Each integration triggers an automated build and a suite of tests to quickly detect and address integration errors. This ensures that the codebase remains stable and functional, reducing the risk of major integration issues later in the development cycle.