Unit 3: Software Development Flashcards
What are the two main types of software?
- Applications software
- Systems software
What are the 5 stages of software development?
- Analysis
- Design
- Development
- Testing
- Evaluation
- Maintenance
What happens in the Analysis stage of software development?
A systems analyst gathers information about:
- What the current system does, if there is one
- What the new system needs to do
This can be done through interviews, questionnaires, and making observations.
What is the output from the Analysis stage of software development?
A document called “System Specification” or “User Requirements”, which will define what the system will do.
What happens in the Implementation stage of software development?
- Coding and testing the software
- Writing user and technical documentation
- Installing the software for the user
What is the difference between Black Box testing and White Box testing?
.
What is Alpha Testing?
- Alpha testing is carried out by the developer’s in-house team and by the user.
- It can reveal errors or omissions in the definition of the system requirements.
What is Beta Testing?
- This is used when commercial software is being developed.
- The software is given to a number of potential users, who agree to use the software and report any faults.
What is Acceptance Testing?
Acceptance testing is the final testing with the intended user(s). It often involves ‘scenarios’ that the users follow to make sure that the system meets the requirements specification.
What are the 3 types of maintenance?
- Corrective maintenance
- Adaptive maintenance
- Perfective maintenance
What is Corrective maintenance?
Fixing bugs and errors in the program to ensure it maintains correct function.
What is Adaptive maintenance?
Over time, user requirements will change and the software will have to be adapted to meet new needs.
What is perfective maintenance?
Even if the software works well, there may be ways of perfecting it (e.g making it faster, easier to use, adding functionality)
What does the Waterfall model entail?
- Each stage is completed and documented before the next is begun.
- The customer does not see the end product until it is completed
- Any change to be made often means the product has to be started again
Describe 2 advantages of the waterfall model.
- Straightforward to manage
- Clearly documented
Describe 3 disadvantages of the waterfall model.
- Lack of flexibility
- No risk analysis
- Limited user involvement
What does the Spiral model entail?
- The four basic steps of analysis, design, implementation, and evaluation are followed
- The software project passes through these phases repeatedly
- Each successful loop round the spiral generates a new, more refined prototype until the software meets all the requirements.
Describe 3 advantages of the spiral model.
- Thorough risk-analysis and mitigation
- Caters to changing user needs
- Produces prototypes throughout
Describe 3 disadvantages of the spiral model.
- Expensive to hire risk assessors
- Lack of focus on code efficiency
- High costs due to constant prototyping
What does the agile model entail?
- Software is developed in rapid incremental cycles
- Each version builds on previous functionality
- Each version is thoroughly tested before release
Describe 3 advantages of the agile model.
- Produces high quality code
- Flexible to changing requirements
- Regular user input
Describe 2 disadvantages of the agile model
- Poor documentation
- Requires consistent interaction between user and programmer
What is extreme programming?
- A type of agile software development
- Frequent releases of the software are made in short development cycles
- It is intended to improve productivity and responsiveness to changing customer requirements.
Describe 2 advantages of extreme programming.
- Produces high quality code
- Constant user involvement means high usability
Describe 3 disadvantages of extreme programming.
- High cost of two people working on one project
- Teamwork is essential
- End-user may not be able to be present
What does rapid application development entail?
- Workshops and focus groups gather requirements rather than using a formal document
- Prototyping is used to continually refine the system in response to user feedback
- Each part of the system is produced within a strict time limit
- Software components are reused whenever possible
Describe 3 advantages of rapid application development.
- Caters to changing user requirements
- Highly usable finished product
- Focus on core features, reducing development time