1/19
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
What is the SDLC
Software Development Life Cycle - the distinct phases that programmers work through when developing a solution to a problem
What is a methodology?
The arrangement of the phase and how programmers move from one phase to another
What are the 5 methodologies?
Waterfall, rapid application development, spiral, agile, extreme programming
Waterfall
Each phase has a well-defined start and end point with identifiable deliverables - sometimes developers have to rework earlier stages due to knowledge gained as development progresses. Waterfall is suitable for projects where the requirements are well understood and unlikely to change.
Stages of waterfall
analysis, design, implementation, testing, deployment, maintenance
RAD - Rapid Application Development
involves producing successive prototypes of the software until a final version is produced and approved. Designed coded, tested and evaluated with the end user, who may decide that they are happy with the system of that they want further improvements, which will start a new cycle (iteration). Needed for projects where rapid delivery is required and where requirements can be developed on the go. NOT suitable for projects where code efficiency is very important
Advantages of waterfall
simple to understand, clear stages and milestones, suitable for well defined projects, NOT suitable for complex projects
Disadvantages of waterfall
inflexible, expensive to fix late problems, long development cycle, carries a lot of risk, less user collaboration, requirements must be very well understood
Stages of RAD
requirement planning, design and prototyping, construction/iterative development, deployment, maintenance
Advantages of RAD
fast development, low cost, lots of user involvement, flexible, incremental development, allowing for constant feedback and adaptation, requirements do not need to be entirely clear from the start, less documentation upfront
Disadvantages of RAD
Dependant on team collaboration, potential lack of quality, not suitable for small projects, can lead to scope creep (uncontrolled changes in requirements), focus on usability rather than how the product works (not code efficient), scales poorly for large projects
Spiral
Risk driven, suitable for large, complex projects where requirements may change and risk management is essential.
Stages of spiral
determine objective, identify and resolve risk, development and test (detailed design, code, unit test, integration test, acceptance test), plan next iteration in a spiral.
Advantages of spiral
flexible, allows for risk management, strong customer involvement, incremental releases
Disadvantages of spiral
complex, time consuming, expensive as can require more resources due to risk management, not suitable for small projects
Agile
Group of methodologies that focus on the idea that requirements will change. Suitable for small to medium sized projects with changing requirements and high customer involvement. Focus is not on heavy upfront documentation, and focuses more on high quality code.
Stages of agile
requirements, (design, development, testing, deployment, evaluate repeated in each sprint, which could last 1-4 weeks), launch
Advantages of agile
highly adaptable, frequent communication, quality focus, customer collaboration, emphasises programming, so quality of end code likely to be high
Disadvantages of agile
requires experienced team members, intensive collaboration can lead to burnout, may lack documentation, scope creep, processes such as paired programming can be expensive
Extreme programming
Framework that aims to produce very high-quality code and encourages common practises that focuses on values of simplicity, communication, feedback, courage, respect. Considered to be agile as it encourages regular, small, iterative software releases.