2.2 Problem solving and programming Flashcards
What is a software development lifecycle?
A framework which defines the steps carried out at each stage of a piece of software being developed.
What does every software development lifecycle consist of?
A detailed plan outlining how to develop, maintain, replace, alter or enhance software.
What are the 5 stages of a SDLC?
Requirement analysis, design, implementation, testing, evolution.
What do you do during the requirement analysis stage of an SDLC?
Gather information about who will use your program and what it will need to do in order to meet their requirements.
How might you gather data about the requirements for your program?
Questionnaires, interviews, reports
What do you do during the design stage of an SDLC?
Design multiple solutions for the problem and evaluate them to find the best one for the situation.
Then create a design specification which outlines the input, output, user interface, backup, security and testing.
What do you do during the implementation stage of an SDLC?
Write the code, and install relevant hardware. Create technical and user guides.
Which two stages of an SDLC overlap and why?
Design and implementation because as you write the code, you may have to redesign certain parts due to unforeseen errors or changes to requirements.
What do you do during the testing stage of an SDLC?
Test that the program meets all of the requirements and that it has no bugs.
What three types of data should you use to test a program?
valid, invalid, extreme and erroneous
What do you do during the evolution stage of an SDLC?
Update the program to include new requirements, work on newer hardware, or to fix errors that arise when it has been running.
What is perfective maintenance?
When you assume that a program always has room for improvement and is never complete, therefore updating the software regularly to improve performance or usability.
What is an example of perfective maintainance?
A clearer user interface, more efficient code, more advanced controls
What is adaptive maintenance?
When you update a program to adapt to a user’s changing needs.
What is an example of adaptive maintenance?
A company offers a new product for their customers and the system needs to be changed to include this.
A company has introduced a new online system which needs to be linked to the original system.
What is corrective maintenance?
When you update a program to fix problems that may have occurred.
What is an example of corrective maintenance?
A user discovers a bug that is preventing them from completing a task and so the bug needs to be fixed.
What are the 5 different software development lifecycle models that are commonly used?
Waterfall model Spiral model Agile modelling Extreme programming Rapid Application Development
Outline the waterfall model
Each step of the SDLC are followed, one after another, from beginning to end.
Each step must be fully completed before the next can begin however it is possible to go back a step and make minor changes.
Give 3 benefits of using the waterfall model.
- Structured nature means it is easy to keep customer updated of the progress and estimate an accurate completion date
- It can be adapted for many different industries
- The people working on the project can change and the outcome will stay the same because they are following a set plan
Give 2 cons of using the waterfall model.
- Unsuitable for long projects as the idea does not change once it has been created, which means that it would quickly become outdated
- The customer has very limited input which means that the program cannot adapt to potential changing requirements
When would it be suitable to use the waterfall model?
If the customer has a very clear idea of what they want that is unlikely to change, and would like the project completed under a strict budget inside a set time frame.
What must a developer create in order to properly test a program?
A detailed test plan
What are the 4 methods of testing a program?
- White box testing
- Black box testing
- Alpha testing
- Beta testing
What is black box testing?
When the program is tested and the structure/function of the program is not known by the tester.
(Testing without reference to the internal structure of the program)
What is white box testing?
When the program is tested and the structure/function of the program is known by the tester.
(Testing with reference to the internal structure of the program)
Who may carry out white box testing?
Someone on the development team of the program.
Who might carry out black box testing?
An independent tester.