Chapter 12 - Software Development Flashcards
Program development lifecycle
Process of developing a program set out in 5 stages: analysis, design, coding, testing, maintenance
Analysis
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
Design
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
Coding
Part of program development lifecycle
The writing of the program or suite of programs
Testing
Part of program development lifecycle
Testing of a program to make sure it works under all conditions
Maintenance
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
Waterfall model
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
Iterative model
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
RAD
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
Structure chart
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.
FSM
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
State-transition diagram
Diagram showing the behaviour of a finite state machine
State-transition table
Table showing every state of a finite state machine, each possible input and the state after the input
Trace table
Table showing the process of dry-running a program with columns showing the values of each variable as it changes
Run-time error
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
Test strategy
Overview of the testing required to meet the requirements specified for a particular program. Shows how and when the program is to be tested
Test plan
Detailed list showing all the stages of testing and every test that will be performed for a particular program
Dry run
Method of testing a program that involves working through a problem/module manually
Walkthrough
Method of testing a program. Formal version of a dry-run using pre-defined test cases
Normal test data
Test data that should be accepted by a program
Abnormal test data
Test data that should be rejected by the program
Extreme test data
Test data that is on the limit of that accepted by a program
Boundary test data
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
White-box testing
Method of testing a program that tests the structure and logic of every path through a program module