1.2.3 - Software Development Flashcards
1
Q
8 Stages of Software Development Lifecycle
A
- Feasibility
- Requirements
- Analysis and Design
- Implementation
- Testing
- Deployment
- Evaluation
- Maintenance
2
Q
5 Software Development Methodologies
A
- Waterfall
- Rapid Application Development
- Spiral Model
- Agile Methodology
- Extreme Programming
3
Q
Extreme Programming
A
- A software development methodology that involves paired programming with a focus on high quality code.
- It is designed to allow development to respond to changing user requirements.
- Programs made using this are regularly reviewed/iterative process.
4
Q
Waterfall Model
A
- Follows a series of stages in order (Analysis/Design/Development/Test).
- Progress to the next step is not made until the previous step is completed.
5
Q
Rapid Application Development
A
- Prototype is created and evaluated
- Feedback used to inform next iteration
- Any changes are made and the process is repeated until the prototype becomes final product.
6
Q
Spiral Model (HINT - “DOIMR -DTP”)
A
- The spiral model is a ‘Risk-Driven’ development process with four quadrants (Determine Objectives, Identify and Manage Risk, Develop and Test, Plan next iteration).
- Client feedback then informs future developments and prototypes which feedback into future revisions.
7
Q
Agile Development Methodologies
A
- Methods designed to cope with changing requirements by producing software in an iterative manner
- Main Example - Extreme, RAD, Spiral
8
Q
What is an example of an agile development methodology
A
Extreme Programming
9
Q
Advantages of Extreme Programming
A
- Pair programming ensures the code in each iteration is well-tested, robust and of good enough quality to be used in the final product
- New requirements can be adopted throughout
- An end user is integral throughout
- Code is created quickly and modules become available for use by the client as they are completed
10
Q
Disadvantages of Extreme Programming
A
- If the developers are split geographically it can cause issues when it is time for code review.
- Emphasis on coding rather than design results in a lack of documentation, making it unsuitable for larger projects
- Heavy time input from the client to feedback and guide the project
11
Q
Advantages of Waterfall Model
A
- Tends to suit large scale projects with static/stable base requirements
- Focuses on the end user at the start and then they may be consulted at different points throughout the project
- Progress of system development is easily measurable
12
Q
Disadvantages of Waterfall Model
A
- It can be inflexible and limits changing requirements
- If a change does occur in the requirements the lifecycle cannot respond easily, often at the cost of
time and money - System performance cannot by tested until the system is almost fully coded
13
Q
Advantages of Spiral Model
A
- Large amount of risk analysis ensures the riskiest parts of the project are identified and dealt with first so issues are addressed early in project development
- A software prototype is created early in the life cycle and refined with each spiral iteration
14
Q
Disadvantages of Spiral Model
A
- Highly skilled development team needed to perform risk analysis
- Development costs can be high due to number of prototypes being created and increased client collaboration
15
Q
Advantages of Rapid Application Development
A
- Reduced development time due to “time boxing”; each subtask being given a strict time limit
- Increased user involvement so issues can be identified and fixed early / more likely to meet client requirements
- Simple but working deliverable can be released to market very quickly
- Not all requirements need to be stated at the start so therefore it is more flexible