1.2.3 - Software Development Flashcards
8 Stages of Software Development Lifecycle
- Feasibility
- Requirements
- Analysis and Design
- Implementation
- Testing
- Deployment
- Evaluation
- Maintenance
5 Software Development Methodologies
- Waterfall
- Rapid Application Development
- Spiral Model
- Agile Methodology
- Extreme Programming
Extreme Programming
- 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.
Waterfall Model
- 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.
Rapid Application Development
- 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.
Spiral Model
- The spiral model has 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.
Agile Development Methodologies
Methods designed to cope with changing requirements by producing software in an iterative manner, i.e, producing versions that build based on more requirements that are met
What is an example of an agile development methodology
Extreme Programming
Advantages of Extreme Programming
- 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
Disadvantages of Extreme Programming
- The client has to ensure that they are represented on the development team to accept completed code and to discuss any potential changes
- Emphasis on coding rather than design results in a lack of documentation, making it unsuitable for larger projects
Advantages of Waterfall Model
- 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
Disadvantages of Waterfall Model
- 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
Advantages of Spiral Model
- 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
Disadvantages of Spiral Model
- Highly skilled development team needed to perform risk analysis
- Development costs can be high due to number of prototypes being created and increased customer collaboration
Advantages of Rapid Application Development
- 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
- The requirements do not all need to be stated at the start so therefore it is more flexible