Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Development Methodologies :desktop_computer: (Waterfall Model/…
Software Development Methodologies :desktop_computer:
Waterfall Model/ linear-sequential life cycle model :umbrella_with_rain_drops:
A model that is split into clear phases that have a well defined starting and end point.
Advantages
: :check: Simple to understand use and manage because each stage is separated with well defined outcomes. :check: phases are completed one at a time, with well understood milestones. :check: results are well documented.
Best Use For
: Small scale projects where requirements are clearly understood and technology is not dynamic and understood. Short projects. Not good for complex tasks or tasks with changing requirements. Customer Relationship Management (CRM) systems, Human Resource Management Systems (HRMS), Supply Chain Management Systems
How does it work?
Earliest SDLC method for software development. Uses a linear sequential flow (a phase in begins only if the previous phase is complete -phases do not overlap.) The user can give feedback at the analysis stage, when the specification document is agreed.
Disadvantages
: :green_cross: Customer does not see the product until it is finished. :green_cross: If changes are needed to be made, the project usually has to be started again since it is difficult to go back and change something. :green_cross: No working software is produced until late in the cycle.
Rapid Application Development (RAD)
How does it work?
An agile method. Workshops and focus groups are used to gather requirements. Successive prototype versions of the software are produced until the final product is made. Each prototype is designed, implemented and tested before the user can evaluate it. This is an example of iterative development.
Advantages
: :check: prototypes allow for measurable progress. :check: quick to make prototypes as more software developers move into multi-discipline rolls. :check: software components are re-used saving time.
Spiral Model :lollipop:
The spiral is similar to waterfall, RAD and iterative methods but it has risk at its heart. Spiral takes accounts of risks while they arise in the project.
How does it work?
Phases of determining objectives, identifying and resolving risks. develop the next version of the software and review and plan the next stage are continued in each successive loop around the spiral creates a newer and improved prototype until the software meets the user's requirements. The number of phases varies depending on the project risks.
Advantages:
:check: the project is easy to manage because it has well defined steps. :check: issues are identified early on as software is developed quite early on -it is very good at risk handling :check: it is flexible and users can give feedback on each prototype and add functionality which can be easily implemented. :check: customer satisfaction as the end results is more likely to be what the user wants and users can see the product at early stages.
Disadvantages:
:green_cross: takes a long time to develop, and therefore is more costly. :green_cross: unclear to predict how long it will take to finalise the software :green_cross: more complex than other models (waterfall). :cross: Very dependable on risk analysis which is a highly specialised skill.
Best used for:
Good for large and complex models, with changing requirements. projects where the users are unsure what their needs and possibilities are. Large projects which take years to develop and technologies may change and develop in that time.
Agile methodologies (for changing requirements)
Extreme Programming
: :speech_balloon: An iterative methods where iterations are very short (e.g. a week) and the user is embedded inside the development team so that they can give instant feedback into the next iteration and new requirements can be instantly added.
Paired Programming
:silhouettes: : A method used in extreme programming where two programmers help each other to produce high quality code quickly. They take turns in driving (writing the programme) and analysing the code. This is quite expensive.
How does it work?
Software is developed in rapid incremental cycles. Each version builds on previous functionality and thoroughly tested before release.
Best used for
: Small, time-critical projects.
Advantages
: :check:User is continuously shown the developing product which increases their satisfaction, working products are given out frequently (weeks rather than months) :check: customers, developers and testers are always working with each other. :check: software is easy to adapt and late changes can be implemented. :check: limited planning is needed to get started.
Disadvantage:
:green_cross:: Less thorough design and documentation :green_cross: The finished product may end up completely different to what the user wants at the end. :green_cross: Only good for experienced programmers who can make good decisions.