Software Development Life Cycle Flashcards

1
Q

Define SDLC

A

A systematic process that structures the development of software to deliver a project.

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

What is the difference between Verification and validation?

A

Verification - testing the software to ensure it functions like intended from the developers designs.
Validation - validated the software based on client requirements.

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

Compare the waterfall and incremental schemes

A

Incremental over waterfall
-less costly when requirements are changed
-client feedback is continously incorporated
Waterfall over incremental
-Greater distinction between stages of development
-Known requirement means more robust code
-Little to no room for error (more likely to get it right the first time)

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

Testing comes into what part of the SDLC?

A

verification and validation

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

What does it mean to verify?

A

-ensuring the code produces the correct outputs from the inputs
-formatting code to make it readable and neat is helpful

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

What does it mean to validate?

A

-ensuring the code meets the clients requirements by functioning according to the criteria
-functionality
-performance
-usability

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

What are the three types of testing?

A

Component testing -
System testing - components integrated into a systems are tested
Customer testing - user testing in target environment which may reveal undetected bugs

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

Define unit testing and give an example

A

-A unit may be a class or function
-Call the function with test argument
-Compare result to expected result and report back

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

Define an edge case and give examples

A

unit test cases that are unexpected or rare
-Rare or old user platform
-Upper and lower limits of range
-heavy internet traffic

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

Give examples of corner cases

A

Multiple conditions in action
-Testing an unusual input (e.g. empty list)

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

What is useful in the edge testing code?

A

Using a docstring to explain what the programme should deliver

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

Define system testing

A

components integrated to create a complete system that are tested to find any faults by developers
-checking components and units are compatible

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

Define release testing

A

requirements based testing that focuses on performance, usage and scenario testing

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

In terms of debugging, why is testing important?

A

testing reveals bugs in the operation code.
-bugs are high risk as they can cause finincial loss or even loss of life
-it is cost effective to identify bugs in the early stages of testing/code development

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

How can we prevent bugs?

A

Code review and legibility
-Pair programming
-Defensive programming

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

Define version control

A

A system that tracks changes to software base files over time

17
Q

How can primitive version control be enforced?

A

Consecutive file naming

18
Q

Give examples of version control systems (VCS)

A

Git:
-decentralised VCS, links can be used to access files
-Subversion
-Mercurial
-Perforce
-Microsoft Team foundation VC

19
Q

If there a multiple users on a VCS, how can users work offline?

A

By the use of local repositries, local changes are synced to the main VC server

20
Q

Give the advantages of VCS

A

-No permanent work connection needed
-Every local repositry has the latest version of code base
-Whole projects can be restored

21
Q

Summarise the waterfall method

A

Key distinct stages that are cascade from one to the other.
-SMART and risk managed
-Specification is frozen
-Used for systems that have a detailed upfront spec

22
Q

Summarise the incremental method

A

A cyclic method
-Agile
-Regular team meetings
-Continuous validation
-fluid specification
-urgent solutions are prioritised

23
Q

Describe agile

A

Agile is an iterative approach that emphasises flexibility and customer needs
-agile intends to minimise waste and maximise efficiency

24
Q

What are the 5 key principles of agile?

A

Customer involvement - customers should evaluate new iterations
Embrace change - expect system requirements to change
Incremental delivery - software is developed in increments where spec is changed at every step
Maintain simplicity - work to eliminate complications
People not process- skills of the developement team should be organised