CDL Section 2 - SW Dev Processes Flashcards
What is the SW Dev Lifecycle (SDLC)?
The Process is used by software creators to design, develop, and test high-quality software products and applications.
REVIEW:
The different types of methods used in SDLC:
○ Waterfall (old school)
§ A development methodology where a linear process is visualized as moving down through phases. You go to next phase only when the one before it is fully complete.
§ Waterfall is a good choice when all requirements are very well known before a project begins
§ works well for small, well-defined projects.
§ Lengthy, expensive to re-engineer, no middle test phases, rigid
○ Agile
§ One of the newer and most popular methodologies that are based on frequent and small incremental releases (CI/CD)
§ Primarily based on the concept of short sprints, seeking to do as much as possible in a relatively short time, and without losing a focus on value
§ delivering software in very early stages, to gain valuable feedback from actual consumers of the software
§ better suited for fast-paced environments and when all the requirements are not known upfront.
§ Without a complete requirement-gathering phase at the beginning of the process, customer expectations may be unclear, and there is a good chance for scope creep
○ Prototyping
§ Designed with the idea to build an initial version of a product quickly in order to better understand requirements and scope.
§ By using this prototype, the client can get an actual feel of the system in a relatively short time, even though this effort may complicate larger projects.
○ Rapid App Development
§ Puts less emphasis on planning and more emphasis on process. It is a type of incremental model in which all components are developed in parallel.
○ Extreme Programming
§ An extension of Agile, with unit testing, code reviews, simplicity, as well as customer communication and feedback taken to the “extreme.”
What is Test-Driven Development (TDD)?
Software-development methodology where you write the test code before the actual production code.
Development is done iterations:
- Write tests
- Run tests (should fail)
- Write code
- Run tests (should pass)
- Refactor code
Tests that cover all possible input parameters, especially edge cases, are crucial in software development.
What is the “Refactoring” step in TDD?
At the beginning of task development, you usually do not know all the details, and you may have written code that is not optimal.
Now step back, look at the whole codebase, and clean it up by Refactoring.
What is Code Review?
The phase in the software development process that helps identify bugs and poor code practices, as well as improve design and overall readability of the code.
The main goal is to find bugs before code is deployed to production, or even to a test server.
Code review is triggered when you file or pull a merge request (in GitHub) i.e peer reviewed by other developers.