Software Development Flashcards
What is black box testing?
Looking at the program specification and creating a set of test data that covers all inputs and outputs.
What is white box testing?
The program code is studied and tests are devised to test each possible path.
State a disadvantage of white box testing
Missing functionality will not be detected, as you can not test what is not there.
What is alpha testing?
Testing carried out by the software developer’s in-house testing team. This reveals not only errors in the program, but also omissions from the specification where developers overlooked or misunderstood the requirements.
What is beta testing?
The program is giving to potential users to test and report any problems. This exposes the product to real use and can detect problems not anticipated by the developers.
What is the waterfall model?
Everything within one stage must be completed before you can move on to the next stage. If any changes need to be made, you can move back a stage to make them. The client is only involved at the start in the analysis stage, and at the end in the evaluation stage.
What are the main drawbacks of the waterfall model?
The client has very little involvement during the actual development, so it’s hard to get feedback, and the structure of the model makes it hard to adapt to any change in requirements.
What is the spiral model?
The software is developed in iterative cycles, where a prototype is developed that is then shown to the client for feedback. The feedback is then used in the next development cycle. At the start of each cycle there is a risk assessment, if the project at any point is found to be too risky it is cancelled.
What is the agile model?
The development is an iterative process, by the end of each cycle a prototype is created and shown to the client for feedback. The stages of development may be completed in a non-linear fashion. Some may be done at the same time while others are down multiple times. This allows for different parts of the software to be at different stages in the development cycle.
What is the main advantage of the spiral and agile models?
You are able to easily get feedback from the client as they are regularly shown prototypes of the software.
What is extreme programming?
A type of agile development where frequent releases of the software are made and the development cycles are kept short. The client can then give feedback and changes can be made.
The development team consists of pairs of programmers. The aim of paired programming is to produce high-quality code, as the code is written by one person and critiqued by the other so is improved as it is written.
What is rapid application development?
Workshops and focus groups are used to gather user requirements rather than having the client create their own list
Prototypes are regularly created in order to get feedback from the client
Each part of the system is create in a strict time limit, each part doesn’t have to be perfect just good enough
Reusing any software components which have already been used
What are the main advantages of extreme programming and RAD models?
They are good for projects with unclear initial requirements, as they are able to quickly produce prototypes that can be shown to the user for feedback. that feedback can then be used to get a better understanding of the requirements.
What are the main four stages of software development?
Analysis
Design
Implement
Evaluation
What are the main advantages of the waterfall model?(2 things)
It is easy to manage due to its linear structure.
The entire development process is clearly documented.