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
Describe White Box Testing (Structural Testing)
- Tests the structure of the code for correct values so that each section of the code operates as it should
- All of the possible routes through the program are tested
- Testing is carried out by the programmer who created the code
- Weakness - will not detect missing functions – you cannot test what isn’t there! The test is accurate only if the tester knows what the program is supposed to do
Describe Black Box Testing (Functional Testing)
- Involves looking at the programs inputs and ouputs
- A test plan is created and the software is tested without the testers being aware of the internal structure of the software (can be carried out by the company and by end-users)
- Weakness - Test cases are challenging to design without having clear functional specifications and there is a high probability of repeating tests already performed by the programmer
Describe Alpha Testing
- Users are given the software to test out the system
- User Acceptance Testing takes place and the user give feedback on the funcionality of the software
- Carried out by the software developers in-house testing team
- Weaknesses - Only business requirements are covered in Alpha testing
Describe Beta Testing
- Involves giving the new software package to a number of potential user who agree to use the system and report any problems to the developers
- Feedback from users is used to inform the next stage of development
- Weaknesses – beta testing should not be done too early in development as there is a chance of ‘bad mouthing’ about the product