1/78
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
what is the program development cycle?
the process of developing a program set out in five stages: analysis, design, coding, testing and maintenance
what is the analysis stage?
part of the program development lifecycle, a process of investigations, leading to the specification of what a program is required to do
how does the analysis stage often get broken down?
starts with a feasibility study, followed by investigation and fact finding to identify exactly what is required from the program
what is the design stage?
part of the program development lifecycle, it uses the program specification from the analysis stage to show how the program should be developed
what should be achieved by the end of the design stage?
the programmer should know what is to be done, all the tasks that need to be completed, how each task is to be performed and how the tasks work together
how can the outcomes of the design stage be formally documented?
using structure charts, state-transition diagrams and pseudocode
what is the coding stage?
part of the program development lifecycle, the writing of the program or suite of programs
what is the testing stage?
part of the program development lifecycle, the testing of the program to make sure that it works well under all conditions
how many times and with what kind of data is the testing stage of the program development lifecycle run?
run many times with different sets of test data
what does the testing stage of the program development lifecycle achieve?
tests that the program does everything it is supposed to do in the way set out in the program design
what is the maintenance stage?
part of the program development lifecycle, the process of making sure that the program continues to work during use
what does the maintenance stage of the program development lifecycle involve?
dealing with any problems that arise during use including correcting any errors that come to light, improving the functionality of the program or adapting the program to meet new requirements
what is the waterfall model?
a linear sequential program development cycle, in which each stage is complete before the next is begun
is there high or low customer involvement in a waterfall model? when are customers involved?
low customer involvement, only involved at the start and end of the process
what are the advantages of a waterfall model? (5)
easy to manage, understand and use;
stages do not overlap and are completed one at a time;
each stage has specific deliverables (the quantifiable goods or services that must be provided upon the completion of a project);
works well for smaller programs where requirement are known and understood;
well documented as full documentation is completed at every stage
what are the disadvantages of a 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
what is an iterative model?
a type of program development lifecycle 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
what kind of programs are produced by an iterative model and how often?
working programs are produced for part of the system at every iteration
what are the advantages of an 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 therefore no surprise when final system delivered
what are the disadvantages of an iterative model? (3)
whole system needs to be defined at start so it can be broken down into pieces to be developed at each iteration;
needs good planning overall and for every stage;
not suitable for short simple projects
what does RAD stand for?
rapid application development
what is rapid application development (RAD)?
a type of program development lifecycle in which different parts of the requirements are developed in parallel, using prototyping to provide early user involvement in testing
what is prototyping often used for in rapid application developments?
to show initial versions to customers to obtain early feedback
what kind of projects is rapid application development suitable for?
complicated projects that need developing in a short timeframe to meet the evolving needs of a business
what level of planning do rapid application development projects need?
minimal planning
what do rapid application development projects use?
reuses previously written code where possible, makes use of automated code generation where possible
what are the advantages of rapid application development? (4)
reduces overall development time;
rapid frequent customer feedback informs the development;
very flexible as requirements evolve from feedback during development;
as parts of the system are developed side by side, modification is easier because each part must work independently
what are the disadvantages of rapid application development? (3)
system under development needs to be modular (breaking a system into independent modules);
needs strong teams of skilled developers;
not suitable for short simple projects
what is a structure chart?
a modelling tool used to decompose a problem into a set of sub-tasks, it shows the hierarchy or structure of the different modules and how they connect and interact with each other
how is each module represented in a structure chart?
by a box
how are the parameters passed to and from the modules shown in a structure chart?
represented by arrows pointing towards the module receiving the parameter
what does the top level of a structure chart show?
the name for the whole task that is refined into sub-tasks or modules shown on the next level
how do structure charts show selection?
“if statements” are represented by diamond boxes
how do structure charts show repetition?
a semi-circular arrow pointing back to the same box it came out of and having an UNTIL statement next to it
what does FSM stand for?
finite state machine
what is a finite state machine (FSM)?
a mathematical model of a machine that can be in one state of a fixed set of possible states, one such state is changed to another by an external input, this is known as a transition state
what is a state-transition diagram?
a diagram showing the behaviour of a finite state machine (FSM)
what does a state-transition diagram show?
the conditions needed for an event or events that will cause a transition to occur, and the output or actions carried out as the result of that transition
how are states represented in a state-transition diagram?
as nodes (circles)
how are transitions represented in a state-transition diagram?
interconnecting arrows
how are events represented in a state-transition diagram?
as labels on the arrows
how are conditions showed in a state-transition diagram?
specified in square brackets after the event label
how is the initial state indicated in a state-transition diagram?
an arrow with a black dot
how is a stopped state indicated in a state-transition diagram?
by a double circle
what is a state-transition table?
a table showing every state of a finite state machine (FSM), each possible input and the state after the input
how does fault avoidance start?
with the provision of a comprehensive and rigorous program specification at the end of the analysis phase of the program development lifecycle, followed by the use of formal methods such as structure charts, state-transition diagrams and pseudocode at the design stage, at the coding stage, the use of programming disciplines such as information hiding, encapsulation and exception handling all help to prevent faults
can testing guarantee that large, complex programs are fault free under all circumstances?
no
what are syntax errors?
errors in the grammar of a source program in the coding phase of the program development lifecycle, programs are either compiled or interpreted so they can be executed, during this operation, the syntax of the program is checked and errors need to be corrected before the program can be executed
what does IDE stand for?
integrated development environment
what do most IDEs offer in reference to syntax errors?
suggestions about what syntax errors are present and how to correct them
what are logic errors?
errors in the logic of a program, meaning the program does not do what it is supposed to do, these errors are usually found when the program is being tested
what is a trace table?
a table showing the process of dry-running a program with columns showing the values of each variable as it changes
what is a run-time error?
an error found in a program when it is executed the program may halt unexpectedly
what is a patch?
a small program released by the developers to run with an existing program to correct an error or provide extra functionality
why should tests be documented?
to show that the program is robust and ready for general use
what is a test strategy?
an overview of the testing required to meet the requirements specified for a particular program, it shows how and when the program is to be tested
when is a test strategy set out?
in the analysis stage of the program development lifecycle
what is a test plan?
a detailed list showing all the stages of testing and every test that will be performed for a particular program
in what stage of the program development lifecycle does testing occur?
although there is a testing stage in the program development lifecycle, testing in some form occurs at very stage, from design to maintenance
what is a dry run?
a method of testing a program that involves working through a program or module from a program manually
what is a walkthrough?
a method of testing a program, a formal version of a dry run using pre-defined test cases
how are test plans often set out?
as a table
what is normal test data?
test data that should be accepted by a program
what is abnormal test data?
test data that should be rejected by a program
what is extreme test data?
test data that is on the limit of that accepted by a program
what is boundary test data?
test data that is on the limit of that accepted by a program or data that is just outside the limit of that accepted by a program
what is white-box testing?
a method of testing a program that tests the structure and logic of every path through a program module
what is black-box testing?
a method of testing a program that tests a module’s inputs and outputs
what is integration testing?
a method of testing a program that tests combinations of program modules that work together
what is stub testing?
the use of dummy modules for testing purposes
if any of the modules have not been written yet, what can integration testing include?
stub testing
what is alpha testing?
the testing of a completed or nearly completed program in-house by the development team
what is beta testing?
the testing of a completed program by a small group of users before it is released
in what order is testing after a program has been completed and is tested as a whole carried out in?
alpha testing is used first followed by beta testing
what is acceptance testing?
the testing of a completed program to prove to the customer that it works as required
what is corrective maintenance?
the correction of any errors that appear during use
what is perfective maintenance?
the process of making improvements to the performance of a program
what is adaptive maintenance?
the alteration of a program to perform new tasks
what are the categories that program maintenance can usually be divided into?
corrective maintenance, perfective maintenance, adaptive maintenance