Chapter 2: The Software Development Lifecycle Flashcards Preview

Computer Science GCSE > Chapter 2: The Software Development Lifecycle > Flashcards

Flashcards in Chapter 2: The Software Development Lifecycle Deck (33):
1

What are the 6 steps of the Software Development Lifecycle?

1. Feasibility Study: Is it possible?
2. Analysis: Gathering data and making a plan
3. Design: Refining the plan
4. Implementation: Setting the system up
5. Evaluation: Comparing the finished product to the specification
6. Maintenance: Maintaining the software

2

TELOS and the 5 types of Feasibility

1. Technical: Does the technology exist?
2. Economic: Does it make sense from a financial view?
3. Legal: Are there any copyright issues that may stop the production?
4. Operational: Does it work? Will people use it?
5. Schedule: Does it fit within the timescale?

3

Analysis

Gathering data and analysing it to identify the system requirements and make the Requirements Specification

4

Ways of gathering data for Analysis include... (4)

1. Interview possible users
2. Use questionnaires to get data from larger groups of people
3. Observe how people currently work
4. Get examples of existing documentation

5

After gathering data for Analysis, the developer would... (3)

1. Use data flow diagrams to create a loose idea of how the system fits together
2. Make a data dictionary to capture how each data item would look (e.g. data type, format, etc.)
3. Make a Specification or User Requirement. This is used to create the Design and is what the finished product is compared against during Evaluation

6

The software design will include... (5)

1. A more detailed Data Dictionary, defining any data, its data type, format and validation. This includes any file structures
2. Input screens or user interface
3. Output screens and reports
4. Main algorithms in the form of flowcharts and pseudocode
5. A formal Test Plan to ensure that the software is tested objectively

7

Implementation entails... (3)

1. Coding and testing the software
2. Writing technical documentation for whoever has to maintain and support the code, and a user guide
3. Installing the software if it was written for a particular client

8

Evaluation

Checking that the software meets the Requirements Specification. Includes Acceptance Testing for software created for a specific client

9

CAP and the 3 types of Maintenance

1. Corrective: fixing bugs
2. Adaptive: making changes to the software as the user's requirements change
3. Perfective: improving the performance or usability of the software (e.g. runtime diagnostics, layout)

10

Waterfall Model

A series of separate stages, where each completed stage provides specific inputs to the next. Essentially a one-off, linear model. Good for large groups

11

Pros and Cons of the Waterfall Model (3 | 3)

Pros:
1. Self-contained steps are easy to manage
2. Defined processes and outputs for each step
3. Good for managing large groups of developers working in parallel

Cons:
1. Requirement changes mean going back to an already completed stage
2. Changes can be costly in both money and time
3. The lack of customer involvement after Analysis means that issues are not addressed until Evaluation

12

Cyclical Model

Similar to the Waterfall Model, with structured stages, but stages form a continuous cycle. Good for big pieces of software (e.g. MS Office)

13

What is the extra pro of the Cyclical Model over the Waterfall Model?

Maintenance logically starts the next cycle, which maps better onto the actual lifecycle of a complex piece of software

14

Spiral Model

Instead of doing each stage once, the software goes through several iterations after the Feasibility stage is completed. Successive passes through the stages produce a more refined prototype until the software is complete

15

Pros and Cons of the Spiral Model (3 | 2)

Pros
1. Well-defined steps are easy to manage
2. Interim prototypes highlight issues quickly so the end product is more likely to satisfy the client
3. The iterative nature means that changes can be incorporated easily

Cons
1. Building prototypes and getting feedback takes time, so the overall timescale is longer
2. The longer timescale means that there is a higher cost

16

Agile Model

Similar to the Spiral Model, but the developers form small multitasking teams and the customer is involved at every stage of production

17

What is the extra pro and extra con of the Agile Model over the Spiral Model?

Pro: Small multitasking groups makes the team flexible to changing requirements, which works well in rapidly changing environments

Con: Only suitable for smaller development teams

18

Prototype

A simple version of the software, intended as a model to get feedback, which in turn moves the development forward

19

Pros and Cons of using Prototypes (3 | 3)

Pros
1. The client can give better feedback
2. The developer can get meaningful feedback before developing the product too far
3. The product can be changed based on feedback during development, rather than risking misunderstanding the client

Cons
1. Making prototypes costs more money
2. It is also more time-consuming
3. The client can move the goal-posts, possible extending the timescale of development

20

What are the types of testing in order? (6)

1. Using tracing algorithms
2. Unit/Module testing
3. Integration testing
4. Alpha testing
5. Beta testing
6. Acceptance testing

21

Unit/Module testing

Testing an individual module of the software

22

Integration testing

Testing the modules together as an integrated system

23

Alpha testing

Getting other developers to peer review the software before release

24

Beta testing

Review of commercial software by sample customers who provide feedback on how the software performs in the real world

25

Acceptance testing

Formally testing the software with the client to prove that it meets the Requirements Specification so that the project can be considered completed and the developer paid

26

Test plan

A formal set of tests designed to use all possible types of input and all paths through the program, making sure that the output is as expected

27

The 5 types of data to test for are...

1. Valid
2. Invalid
3. Erroneous
4. Extreme
5. Boundary

28

Valid data

Data that should be allowed by the program, which conforms to the validation rules

29

Invalid data

Data that is of the correct data type but does not conform to the validation rules and should be rejected by the program accordingly

30

Erroneous data

Data that is of the incorrect data type. Should be rejected

31

Extreme data

The data values at either end of the allowed range

32

Boundary data

Data either side of the range limits, including the extremes and the inputs just outside them

33

Order the following four stages from a simplified waterfall model:
- Implementation
- Testing
- Design
- Analysis

1. Analysis
2. Design
3. Implementation (development)
4. Testing