Software Dev and Design Flashcards
What is SDLC?
Software Development Life Cycle
Name the 6 Steps for SDLC?
1 - Requirements and analysis 2 - Design 3 - Implementation 4 - Testing 5 - Deployment 6 - Maintenance
What stage support and bug fixes in SDLC?
6 - Maintenance
What stage is coding and development done in SDLC.
3 - Implementation
Name three development methods?
Waterfall
Agile
Lean
List 7 phases of waterfall method?
○ System requirements ○ Software requirements ○ Analysis ○ Program design ○ Coding ○ Testing ○ Operations
What is the different between Waterfall and Agile methods?
Waterfalll is a one way system and and new features have to be incorporated in the next iteration
Agile can run in sprints and providers quicker development
List 7 principals of Lean method.
○ Eliminate waste ○ Amplify learning with short sprints ○ Decide late as possible ○ Deliver fast as possible ○ Empower the team ○ Build integrity in ○ Optimise the whole
List some waste (7 in total)
□ Partially done work □ Extra processes □ Extra features □ Task switching □ Waiting □ Motion □ Defects
Name two design patterns
Observer design pattern
Model-View-Controller (MVC)
Benefits of version control (5)
Enables collaboration - multiple can work on the files
Accountability and visibility - know who made what changes
Work in isolation - build new features independently
Safety - changes can be reverted
Work anywhere - files are stored centrally or in a repository
Name 3 version control types
Local
Central
Distributed
Name 3 stages of GIT
Working Directory
Repository
Staged
Name 3 states of GIT
Modified
Staged
Committed
Benefits of branching (5)
- Work on a feature independently while still benefitting from a distributed version control system
- Work on multiple features concurrently
- Experiment with code ideas
- Keep production, development, and feature code separately
- Keep the main line of code stable
What is fast merge?
Works only when there are no conflicts. Changes are done on different files.
Name some principals of clean coding (5 available)
Formatting Variable names are clean Functions at the top Modular Comments are used
List the goals of code review (7)
- Is easy to read
- Is easy to understand
- Following coding best practices
- Uses correct formatting
- Free of bugs
- Has comments and documentation
- Is clean
Why should code be reviewed? (4)
- Shares knowledge and best practice
- Author learns from mistakes
- Share knowledge of the code
- Increases quality of code
List types of code review processes (4)
Formal
Change based
Over the shoulder
Email pass arround
List two categories of testing
Functional
Non-functional
Describe unit testing
Tests small pieces of code
Name two test frameworks
UnitTest
PyTest
What is Test Driven Development?
Creating small bits of code ensures they are fit for purpose and catch bugs locally.
List the process of TDD pattern
- Create a new test (capture requirements the code needs to meet)
- Run tests to see if any fail for unexpected reasons (and fix the tests)
- Write app code to pass the new test
- Run tests to see if any fail (fix the app code)
- Refractor and improve application code
Benefits of TDD (3)
- Makes developers think about requirements
- Clarifies constraints of code
- Mandates highly testable code