1.2.3 Flashcards
SDLC - Software development lifecycle
Feasibility (solvable?)
Requirements
Analysis and design
Implementation (Coding)
Testing
Deployment
Evaluation
Maintenance
5 Software development methodologies
Waterfall
Rapid application development
Extreme programming
Agile
Spiral
waterfall lifecycle
cascading effect from one phase to another
Each phase has a well-defined start and end point with identifiable deliverables
A slight evolution of the waterfall model allows you to move back to a previous stage as well as forwards
waterfall - pros
Simplicity makes it easy to manage.
Everyone on the project is very clear on their responsibilities at each stage.
Clear deliverables.
Easy to see if a project is running to schedule.
waterfall - cons
Carries a lot of risk.
The user doesn’t get to see the product for the first time until the project is near its end.
Misunderstanding requirements can lead to a project that is not easy to fix.
Requirements must be very well understood, so this model is not suitable for complex projects.
waterfall - consider
Ease of management can make it suitable for large-scale development projects, assuming they are well-understood and carry little risk.
spiral model
risk-driven development methodology
each project has its own set of unique risks associated with it and wholly dependant on the project and its unique risks
adopts elements of one or more other methodologies like waterfall or RAD
better thought of as a process model generator, where decisions on the software development methodology are made based on the risks identified
It is a common misconception that the spiral model is a fixed process that must be followed in the correct order.
spiral - pros
Risk management is at the heart of this model.
Excellent for projects that contain a high level of risk.
spiral - cons
Complex nature of risk analysis increases costs – risk management is a highly specialised skill.
If risk analysis is done badly, the project suffers.
spiral - consider
Suitable for large-scale problems and those that involve a high degree of risk, especially where the user doesn’t fully understand their requirements upfront.
AGILE methodologies
focus on the idea that requirements will shift and change during development – this can only be dealt with by producing software in an iterative way
the product is built in a series of iterations known as sprints
every sprint should ideally be a bite- sized piece of focused work, taking no longer than a few weeks
sprint - short, time-boxed periods when a team has focused goals to complete a set amount of work.
agile - pros
Emphasises programming, so the quality of end code is likely to be very high.
Core principles and processes promote respect and collaboration, leading to a very productive development team.
agile - cons
Requires a team of programmers working in close collaboration – unlikely to work well if the team is widely distributed geographically.
Client must be able to commit to having a full-time representative working with the development team.
Some of the processes involved in extreme programming such as paired programming can be quite costly.
agile - consider
When the emphasis of a project is on the quality of finished code, agile and extreme programming processes are ideal.
exteme programming
considered an agile framework in that it encourages regular, small, iterative software releases
It aims to produce very high-quality code and promote developers’ quality of life by encouraging them to adopt a set of common practices that focus on the values of:
Simplicity
Communication
Feedback
Courage
Respect