Chapter 12 - Software Development Flashcards

1
Q

Program development lifecycle

A

Process of developing a program set out in 5 stages: analysis, design, coding, testing, maintenance

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

Analysis

A

Part of program development lifecycle
Process of investigation, leading to the specification of what a program is required to do. Involves creating a requirements specification which clearly sets out and defines the problem being solved

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

Design

A

Part of program development lifecycle
Uses the program specification from the analysis stage to show how the program should be developed. Can be done through structure charts, state-transition diagrams and pseudocode

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

Coding

A

Part of program development lifecycle
The writing of the program or suite of programs

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

Testing

A

Part of program development lifecycle
Testing of a program to make sure it works under all conditions

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

Maintenance

A

Part of program development lifecycle
Process of making sure that the program continues to work during use and throughout its life. Involves dealing with arising problems, correcting errors, improving functionality or adapting the program to meet new requirements

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

Waterfall model

A

A linear sequential program development cycle, in which each stage is completed before the next is begun. Most suitable for smaller projects with a short timescale

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

Iterative model

A

Type of program development cycle in which a simple subset of the requirements is developed, then expanded or enhanced, with the development cycle being repeated until the full system has been developed. Most suitable for projects for which the major requirements are known but some details are likely to evolve or change over time

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

RAD

A

Rapid Application Development
Type of program development cycle in which different parts of the requirements are developed in parallel, using prototyping to provide early user involvement in testing. Most suitable for complicated projects that need developing in a short timeframe,e to meet the evolving needs of a business

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

Structure chart

A

Modelling tool used to decompose a problem into sub-tasks. Shows hierarchy/structure of the different modules and how they connect & interact with each other. Each module is represented by a box and the parameters passed to and from the modules are shown by arrows. Each level of the chart is a refinement of the level above. Show selection.

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

FSM

A

Finite State Machine
Mathematical model of a machine than can be in one state of a fixed set of possible states. One state is changed to another by an external input (transition). Behaviour of an FSM is shown using a state-transition diagram

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

State-transition diagram

A

Diagram showing the behaviour of a finite state machine

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

State-transition table

A

Table showing every state of a finite state machine, each possible input and the state after the input

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

Trace table

A

Table showing the process of dry-running a program with columns showing the values of each variable as it changes

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

Run-time error

A

An error found in a program when it is executed, the program may halt and unexpectedly go into an infinite loop and need to be stopped by brute force. If the program is being tested in an IDE then this type of error may be managed and a suitable error message produced

Eg. Zero error

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

Test strategy

A

Overview of the testing required to meet the requirements specified for a particular program. Shows how and when the program is to be tested

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

Test plan

A

Detailed list showing all the stages of testing and every test that will be performed for a particular program

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

Dry run

A

Method of testing a program that involves working through a problem/module manually

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

Walkthrough

A

Method of testing a program. Formal version of a dry-run using pre-defined test cases

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

Normal test data

A

Test data that should be accepted by a program

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

Abnormal test data

A

Test data that should be rejected by the program

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

Extreme test data

A

Test data that is on the limit of that accepted by a program

23
Q

Boundary test data

A

Test data that is on the limit of that accepted by a program/data that is just outside the limit of that rejected by a program

24
Q

White-box testing

A

Method of testing a program that tests the structure and logic of every path through a program module

25
Black-box testing
Method of testing a program that tests a module’s inputs and outputs
26
Integration testing
Method of testing a program that tests combinations of program modules that work together
27
Stub testing
Use of dummy modules for testing purposes, useful when not all the modules in integration testing have been written
28
Alpha testing
Testing of a completed/nearly completed program in-house by the development team
29
Acceptance testing
Testing of a completed program, to prove to the customer that it works as required
30
Beta testing
Testing of a completed program by a small group of users before it is released
31
Corrective maintenance
Correction of any errors that appear during use
32
Perfective maintenance
Process of making improvements to the performance of a program
33
Adaptive maintenance
Alteration of a program to perform new tasks
34
Stages in the program development lifecycle (5)
Analysis Design Coding Testing Maintenance
35
Purpose of a program development lifecycle
Do develop a successful program that is going to be used by others to perform, a specific task or solve a given problem. The development needs to be well ordered and clearly documented
36
Principles of the waterfall model (3)
Linear, each stage is completed before the next is begun Well documented as full documentation is completed at every stage Low customer involvement, only at the start and end of the process
37
Benefits of the waterfall model (4)
Easy to manage, understand and use Stages do not overlap and are completed one at a time Each stage has specific deliverables Works well for smaller programs where requirements are known and understood
38
Drawbacks of the waterfall model (4)
Difficult to change the requirements at a later stage Not suitable for programs where the requirements could be subject to change Working program is produced late in the lifecycle Not suitable for long, complex projects
39
Principles of the iterative model (3)
Incremental development as the program development lifecycle is repeated Working programs are produced for part of the system at every iteration High customer involvement, part of the system can be shown after every iteration
40
Benefits of the iterative model (4)
Some working programs developed quickly at an early stage in the lifecycle Easier to test and debug smaller programs More flexible as easier to alter requirements Customers involved at each iteration so no surprises when final system delivered
41
Drawbacks of iterative model (3)
Whole system to be defined at start, so it can be broken down to pieces + developed at each iteration Needs good planning overall and for every stage Not suitable for short simple projects
42
Principles of RAD development (3)
Minimal planning Reuses previously written code and automated code generation where possible High customer involvement, customers can use the prototypes during development
43
Benefits of RAD (4)
Reduced overall development time Rapid frequent customer feedback informs the development Very flexible as requirements evolve from feedback during development Parts of system are developed side by side so modification is easier as each part must work independently m
44
Drawbacks of RAD (3)
System under development needs to be modular Needs strong teams of skilled developers Not suitable for short, simple projects
45
RAD diagram
46
Iterative model diagram
47
Waterfall model diagram
48
Construction of state-transition diagrams (6)
States are represented as nodes (circles) Transitions are represented as interconnecting arrows Events are represented as labels on arrows Conditions can be specified in square brackets after the event label The initial state is indicated by an arrow with a black dot A stopped state in indicated by a double circle
49
Types of test data (4)
Normal test data Abnormal test data Extreme test data Boundary test data
50
Types of testing during development of a program (3)
White box testing Black box testing Integration
51
Types of testing after completing the program (3)
Alpha testing Beta testing Acceptance testing
52
Program maintenance categories (3)
Corrective maintenance Perfective maintenance Adaptive maintenance
53