1.2.3 Software development Flashcards
What are the key stages of a software lifecycle?
Analysis, design, implementation, installation, evaluation
What happens during the analysis stage of a SDLC?
The requirements of the system that solves the problem must be established.
What data will be captured during analysis?
- What data will be required in the program e.g. users
- Procedures that the program will need e.g. what where when how + error handling
- Future - development plans
- Problems with any existing system
What happens during the design stage of an SDLC?
Designs are created for data input, storage, processing, GUI, security and output.
Hardware that the system will need must also be considered
How could data for the analysis section be collected?
- Questionnaires
- Interviews
How would processing be designed?
The algorithms and modules of the solution designed and explained
How would data storage be designed?
Identifying a structure that willl be used to hold the data such as tree or queue, or a file or database.
How this data will be accessed, how program will interact with structure
How would the input and output be designed?
What data is to be input / output
How frequently data will be input / output
Method used to input / output data
What happens during the implementation stage of an SDLC?
The program is coded. The problem is split into multiple modules which each perform a single task and combine to make the full program.
Technical guides are also created.
What happens during the testing stage of an SDLC?
The program is vigorously tested for bugs against a test plan. Any errors that are found can be corrected.
Valid, invalid and boundary data must be tested.
What is black box testing?
Testing independent of the code.
Looking at the program specification and designing a series of inputs that will test each feature based on the spec.
Tests how well the solution fits its requirements
What is white box testing?
Testing dependent on code.
The code is studied and data is input that will test each possible path at least once.
Tests the functionality of the code
What is a benefit of black box testing?
It can test functions that are not present in the code whereas white box can only test what is in the code.
What is alpha testing?
Carried out by developer’s team. Finds large errors such as omission of system requirements.
What is beta testing?
When a pre release version of the program is sent out to a number of potential users who report back any issues they have with the program. Exposes the product to real life use and can detect small issues and issues that were not anticipated by developers.
What happens during the evaluation stage of an SDLC?
Post implementation review, often after the system has been active for a while. This is feedback from the end users which covers:
The systems performance against anticipated objectives
Assessment of each aspect against criteria
Errors
Unexpected benefits and problems
What happens during the maintainence stage of an SDLC?
The program is changed to fix issues or to adapt to a user’s changing requirements
What is perfective maintenance?
When you assume that a program always has room for improvement and constantly work on updates - e.g. Microsoft
What is adaptive maintenance?
When a system must adapt based on changing needs within a company
What is corrective maintenance?
When you correct problems that surface after the system has been running for a short time
Describe the waterfall lifecycle model.
Each SDLC step is completed, one at a time from beginning to end.
Each step leads onto the next.
User is involved at the start of the process but has no more input until evaluation stage
Possible to go back one stage at a time but must then work down again
Describe the spiral lifecycle model.
Uses SDLC steps iterative stages. User involved in analysis and evaluation only.
Once first analysis has been complete, steps are followed to produce prototype.
Prototype evaluated and changed with more evaluation each time until final product is finished.
When is the spiral model most commonly used?
For large projects that take years to deliver.
Describe the agile model.
SDLC steps not completed in linear order. Similar to spiral model.
Enough requirement gathering done at beginning for developers to understand the end product.
Involves creating lots of prototypes and constantly evaluating and gathering input from user.
e.g. analysis for one section, design and evaluate then move onto next section