Unit 3 Software Development Flashcards
Analysis
Stakeholders state what they require from the finished product. This information is used to clearly define the problem and the system requirements. Requirements may be defined by:
- Analysing strengths and weaknesses with current way this problem is being solved
- Considering types of data involved including inputs, outputs, stored data and amount of data
Design
The different aspects of the new system are designed, such as:
- Inputs: volume, methods, frequency
- Outputs: volume, methods, frequency
- Security features: level required, access levels
- Hardware set-up: compatibility
- User interface: menus, accessibility, navigation
A test plan may also be designed at this stage.
Development and testing
The design from the previous stage is used to split the project into individual,
self-contained modules, which are allocated to teams for programming.
Alpha testing
Alpha testing is carried out in-house by the software development teams within the company. Bugs are pinpointed and fixed.
Beta testing
Beta testing is carried out by end-users after alpha testing has been completed. Feedback from users is used to inform the next stage of development.
White box testing
This is a form of testing carried out by software development teams in which the test plan is based on the internal structure of the program. All of the possible routes through the program are tested.
Black box testing
This is a form of testing where the software is tested without the testers being aware of the internal structure of the software and can be carried out both within the company and by end-users. The test plan traces through inputs and outputs within the software.
Implementation
Once the testing stage has been used to make the appropriate changes to the software, it is installed onto the users’ systems.
Evaluation
After the implementation stage, the effectiveness of the software is evaluated against the system requirements defined at the analysis stage to evaluate its suitability in solving the problem. Different criteria are considered, including robustness, reliability, portability and maintainability.
Maintenance
Any errors or improvements that could be made to the software are flagged up by the end-users. Programmers will regularly send out software updates to fix any bugs, security issues or make any needed improvements.
Waterfall lifecycle
The waterfall model is based on a series of stages which are completed in sequence, from start to finish.
The analysis stage includes a feasibility study in which designers evaluate the feasibility of the project using ‘TELOS’: Technical, Economic, Legal, Operational, Scheduling
If a change needs to be made within a project being developed using the waterfall model, programmers must revisit all levels between the current stage and the stage at which a change needs to be made. This makes the model inflexible and so unsuitable to projects with changing requirements. This also means that users have little input as they are only involved at the very beginning and end of the waterfall lifecycle, during the analysis and evaluation stage.
Agile methodologies
The problem is broken down into sections which are developed in parallel. The design and analysis phase often occur together. Different sections of software can be at different stages of development. A working prototype is delivered early on and prototypes are built upon and improved in an iterative manner so that new prototypes are delivered regularly throughout the course of the development cycle.
Extreme programming
This is an agile model in which the development team consists of a pair of programmers alongside a representative end-user. The model is built on ‘user stories’: system requirements are specified by the end-user and used when designing the program. 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. Programmers work no longer than forty hours a week with the aim that quality is not compromised. Each iteration through the cycle generates what is called a ‘working version’ of the program which means it could function as the final product.
Spiral model
The spiral model is built on four key stages
with the focus of effectively managing risk-heavy projects:
- Analysing system requirements
- Pinpointing and mitigating risks
- Development, testing and
implementation
- Evaluating to inform the next iteration
If the project is found to be too risky at any point, the project is terminated. However hiring risk assessors to analyse the risks involved can be expensive, which makes this methodology suited to only very large-scale projects.
Rapid application development
RAD is an iterative methodology which uses partially functioning prototypes which are continually built-upon. User requirements are initially gathered using focus groups and used to develop an ‘incomplete’ version of the solution which is given to the user to trial. User feedback is then used to generate the next, improved prototype and this continues until the prototype matches the requirements of the end-users at which point it becomes the final product.
Algorithm
An algorithm is a set of instructions used to solve a problem. They are core to computer science and can be used to tackle a wide range of problems