Software Dev and Design Flashcards

1
Q

What is SDLC?

A

Software Development Life Cycle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Name the 6 Steps for SDLC?

A
1 - Requirements and analysis
2 - Design
3 - Implementation
4 - Testing
5 - Deployment
6 - Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What stage support and bug fixes in SDLC?

A

6 - Maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What stage is coding and development done in SDLC.

A

3 - Implementation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Name three development methods?

A

Waterfall
Agile
Lean

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

List 7 phases of waterfall method?

A
○ System requirements
○ Software requirements
○ Analysis
○ Program design
○ Coding
○ Testing
○ Operations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the different between Waterfall and Agile methods?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

List 7 principals of Lean method.

A
○ Eliminate waste
○ Amplify learning with short sprints
○ Decide late as possible
○ Deliver fast as possible
○ Empower the team
○ Build integrity in
○ Optimise the whole
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

List some waste (7 in total)

A
□ Partially done work
□ Extra processes
□ Extra features
□ Task switching
□ Waiting
□ Motion
□ Defects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Name two design patterns

A

Observer design pattern

Model-View-Controller (MVC)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Benefits of version control (5)

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Name 3 version control types

A

Local
Central
Distributed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Name 3 stages of GIT

A

Working Directory
Repository
Staged

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Name 3 states of GIT

A

Modified
Staged
Committed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Benefits of branching (5)

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is fast merge?

A

Works only when there are no conflicts. Changes are done on different files.

17
Q

Name some principals of clean coding (5 available)

A
Formatting
Variable names are clean
Functions at the top
Modular
Comments are used
18
Q

List the goals of code review (7)

A
  • Is easy to read
  • Is easy to understand
  • Following coding best practices
  • Uses correct formatting
  • Free of bugs
  • Has comments and documentation
  • Is clean
19
Q

Why should code be reviewed? (4)

A
  • Shares knowledge and best practice
  • Author learns from mistakes
  • Share knowledge of the code
  • Increases quality of code
20
Q

List types of code review processes (4)

A

Formal
Change based
Over the shoulder
Email pass arround

21
Q

List two categories of testing

A

Functional

Non-functional

22
Q

Describe unit testing

A

Tests small pieces of code

23
Q

Name two test frameworks

A

UnitTest

PyTest

24
Q

What is Test Driven Development?

A

Creating small bits of code ensures they are fit for purpose and catch bugs locally.

25
Q

List the process of TDD pattern

A
  1. Create a new test (capture requirements the code needs to meet)
  2. Run tests to see if any fail for unexpected reasons (and fix the tests)
  3. Write app code to pass the new test
  4. Run tests to see if any fail (fix the app code)
  5. Refractor and improve application code
26
Q

Benefits of TDD (3)

A
  • Makes developers think about requirements
  • Clarifies constraints of code
  • Mandates highly testable code