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):

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


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?



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


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


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


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


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



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


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)


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


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

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

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


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)


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


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


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

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

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


Agile Model

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


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



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


Pros and Cons of using Prototypes (3 | 3)

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

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


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


Unit/Module testing

Testing an individual module of the software


Integration testing

Testing the modules together as an integrated system


Alpha testing

Getting other developers to peer review the software before release


Beta testing

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


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


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


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

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


Valid data

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


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


Erroneous data

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


Extreme data

The data values at either end of the allowed range


Boundary data

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


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

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