1.2.3 - Software Development Flashcards

(35 cards)

1
Q

Software definition

A

Programs that run on a computer system - can be categorised as application or system

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

5 software development stages

A

Analysis
Design
Implementation
Evaluation
Maintenance

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

Analysis description

A

Information gathered about current system and what the new system needs to do
- interviews with users
- questionnaires
- observe current systems
- look at existing documentation
Document produced that defines what the system will do

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

Design description

A

A description of the type/format/validations on data
Database design
How the data will be processed
How the software will be tested

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

Implementation description

A

Coding and testing software
Writing user and technical documentation
Installing software for user
Testing

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

4 types of testing

A

Black box testing
White box testing
Alpha testing
Beta testing

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

Black box testing description

A

Carried out independently of code, checks that ALL types of valid input give a valid output and that invalid inputs do not error

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

White box testing

A

Tests each path through the code at least once checking that it does the right thing

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

Alpha testing description

A

Carried out by in-house team and user to reveal any missing requirements

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

Beta testing description

A

Software given to a number of potential users who will report any faults - often to check the software is user-friendly

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

Evaluation description

A

Software is checked to make sure it does everything required in document from analysis

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

Three types of maintenance

A

Corrective
Adaptive
Perfective

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

Corrective maintenance

A

Fixing bugs that have been found

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

Adaptive maintenance

A

Changing based on the user’s changing needs

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

Perfective maintenance

A

Improvements that are unnecessary but will improve experience

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

5 development methodologies

A

Waterfall lifecycle
Agile
Extreme programming
Spiral model
Rapid application development

17
Q

Waterfall lifecycle description

A

Each stage is completed before the next one is begun

18
Q

Waterfall lifecycle advantages

A

Simple to understand and use
Stages are self-contained
Works well for small projects with well understood and fixed requirements

19
Q

Waterfall lifecycle disadvantages

A

Minimal user involvement
No working software produced until late
Customer does not see end product until completed
Any change often means restarting

20
Q

Waterfall lifecycle uses

A

Projects where:
- requirements are clear and fixed
- technology well understood
- short

21
Q

Spiral model description

A

Four steps (analysis, design, implementation, evaluation) completed repeatedly until software meets requirements. Then maintenance happens
Each loop develops a prototype

22
Q

Spiral model advantages

A

Easy to manage
Software produced early
Lots of user feedback at each prototype
End result fits requirements better

23
Q

Spiral model disadvantages

A

Time-consuming getting feedback every prototype
More costly due to time
Not suitable for smaller projects

24
Q

Spiral model uses

A

Projects where:
- unsure of needs
- requirements are complex
- large projects
- medium to high-risk

25
Agile model description
Rapid incremental prototyping Each version builds on previous functionality and thoroughly tested
26
Agile model advantages
Minimal planning required Rapid delivery of useful software Constant user input Easily adapted for changes
27
Agile model disadvantages
Lack of documentation Not suitable for novice programmers - too fast Project can fail if customer does not give good input
28
Agile model uses
Projects where - New changes need to be made - user's needs are constantly changing
29
Extreme programming description
Agile methodology with very short cycles, intended to improve productivity and responsiveness to customer requirements changing
30
Rapid application development description
Workshops and focus groups rather than formal documents Prototyping used 'Good enough' solution found as strict time frame Components reused whenever possible
31
Issues with large projects
Personnel changes Requirements changing Technology advances Cost
32
Algorithm definition
Set of instructions to solve a problem or complete a task in a finite number of steps
33
Features of good algorithms
Correct output for all valid inputs Allows for invalid inputs Must terminate Efficient Readbale
34
Features of good programs
Comments Consistent standard for identifiers Properly indented Modules perform single task Module no longer than a page
35
Method of following algorithms
Trace table