Software Development Flashcards
What are the stages of Software Development
- Analysis - Business Case, Requirements gathering and documentation
- Design - Specifications of products made
- Development - Development of code, prototypes and working solutions
- Testing - Testing build versions. Until issues and bugs are addressed
- Deployment - Deploy new systems live, settling in time.
- Maintenance - Hand over to the support and maintenance team
Describe the Waterfall Development Methodology Description and Diagram
- Each step is completed one at a time from beginning to end
- Each step has a specific output that leads to the next step
- The developers can go back to previous stages if necessary but they then have to work back down through the following stages
- To make changes later would result in high cost implications to the work that has already been completed
Describe the RAD (Rapid application) Methodology Description
- Creates an initial ‘incomplete’, partially functioning prototypes which is continually built-upon
- User feedback is then used to generate requirements for the next iteration
- This makes use of parallel development of tasks to speed up development
- This is produced with a strict time limit
Describe the Agile Method Description and Diagram
- Uses Iternations and each version builds on the prior with increased functionality
- This method is useful for projects with unclear initial requirements because if a user spot a missing requirement or new feature, they may add it into a future iteration
Describe the Spiral Development Methodology Description and Diagram
- This method focuses on four key stages repeatedly -
- Analyses/ Determining Objectives
- Identifying risks
- Development and Testing
- Evaluating the next iteration
- If the project is found to be too risky at any point, the project is terminated
What are the Two Variants of Agile Development Method
- Extreme Programming (XP)
- Scrum method
What is Extreme Programming
- Extreme Programming uses pair programmers meaning that the programmer works with the user to develop the product together
- At the start of each planning phase they determine that will be developed and at the end they feedback to each other
- This produces high quality code but there is a high cost of two people working on one project
What is Scrum method
- The Scrum method has three different roles -
- Product Owner – responsible for the business aspect
- Scrum Master – looks after the team’s performance and the quality of the product
- The Team - addresses any issues or problems together
- The projects are run as a series of goals called Sprints, each one taking about a month. At the end of each Sprint there is a Sprint review which allows the team to get feedback from the user before moving onto the next Sprint
What are the Advantages, Disadvantages and Uses of the Waterfall Development Methodology
Advantages
- Straightforward to manage
- Clearly documented
Disadvantages
- Lack of flexibility
- No risk analysis
- Limited user involvement
Uses
- Static, low-risk projects which need little user input, such as a piece of general-purpose software
What are the Advantages, Disadvantages and Uses of the Agile Development Methodology
Advantages
- Produces high quality code
- Flexible to changing requirements
- Regular user input
Disadvantages
- Poor documentation
- Requires consistent interaction between user and programmer
Uses
- Small to medium projects with unclear initial requirements
What are the Advantages, Disadvantages and Uses of the Extreme Programming Development Methodology
Advantages
- Produces high quality code
- Constant user involvement means high usability
Disadvantages
- High cost of two people working on one project
- Teamwork is essential
- End-user may not be able to be present
Uses
- Small to medium projects with unclear initial requirements requiring excellent usability
What are the Advantages, Disadvantages and Uses of the Spiral Development Methodology
Advantages
- Thorough risk-analysis
- Caters to changing user needs
- Produces prototypes throughout
Disadvantages
- Expensive to hire risk assessors
- Lack of focus on code efficiency
- High costs due to constant prototyping
Uses
- Large, risk-intensive projects with a high budget
What are the Advantages, Disadvantages and Uses of the Rapid Action Development Methodology
Advantages
- High level of user involvement
- Highly usable finished product
- Focus on core features, reducing development time
Disadvantages
- Poorer quality documentation
- Fast pace may reduce code quality
Uses
- Small to medium, low-budget projects with short time-frames
Define an algorithm
A set of instructions used to solve a problem
What are the different types of Testing Strategies
- White box testing
- Black box testing
- Alpha testing
- Beta testing