Chapter 2: The Software Development Lifecycle Flashcards

1
Q

What are the 6 steps of the Software Development Lifecycle?

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

TELOS and the 5 types of Feasibility

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

Analysis

A

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

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

Ways of gathering data for Analysis include… (4)

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

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

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

The software design will include… (5)

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

Implementation entails… (3)

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

Evaluation

A

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

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

CAP and the 3 types of Maintenance

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

Waterfall Model

A

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

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

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

A

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

Cyclical Model

A

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

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

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

A

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

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

Spiral Model

A

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

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

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

A

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

Agile Model

A

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

17
Q

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

A

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
Q

Prototype

A

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

19
Q

Pros and Cons of using Prototypes (3 | 3)

A

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
Q

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

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

Unit/Module testing

A

Testing an individual module of the software

22
Q

Integration testing

A

Testing the modules together as an integrated system

23
Q

Alpha testing

A

Getting other developers to peer review the software before release

24
Q

Beta testing

A

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

25
Q

Acceptance testing

A

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
Q

Test plan

A

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
Q

The 5 types of data to test for are…

A
  1. Valid
  2. Invalid
  3. Erroneous
  4. Extreme
  5. Boundary
28
Q

Valid data

A

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

29
Q

Invalid data

A

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
Q

Erroneous data

A

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

31
Q

Extreme data

A

The data values at either end of the allowed range

32
Q

Boundary data

A

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

33
Q

Order the following four stages from a simplified waterfall model:

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