Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Development Ideologies - Coggle Diagram
Software Development Ideologies
Waterfall
Definition
Stages of a project are carried out sequentially
If changes are made developers have to go back through all stages between the current stage and where the change has been made
Emphasis on detailed requirements set out at the start which are then fixed throughout the project
User is only involved in the analysis stage
Suitability
when user requirements are well understood and defined
Static, low risk projects
Not innovative or complex projects
larger projects can be decomposed to stages with their own waterfalls
Benefits
Well structured and understood
Easier to plan with clear lines of responsibility
Drawbacks
Lack of flexibility
dependant on accuracy and depth of requirements
Project may take so long that requirements are out of date with customer needs or technological advancements.
Lack of user involvement
May not be able to fully articulate their needs
may not fully understand capability of technology
may not understand risk of being early adopters
Testing is towards the end so there may not be sufficient time to address any issues found
No risk analysis
Spiral Model
Definition
Same steps as Waterfall but with project cycles
Each cycle produces a prototype used to inform the next cycle
Focuses on risk analysis and management
Split into 4 stages
Determine objectives
Identify and mitigate risks
Development and testing
Planning for next cycle
Project is dropped if at any point risks are deemed unmanageable
Suitability
Large-scale; high-risk
Large Budgets
New tech or multiple companies
Benefits
Produces prototypes that can adapt to changing user need or developing risks
mitigation of risks
Drawbacks
Need to employ specialist risk analyser adding to costs
Prototyping increases costs
Lack of focus of code efficiency
Agile Methodologies
Definition
Building of prototypes, testing, gathering users feedback and incorporating this into a new prototype asap
Stages of development are non-linear
Requirements
Model kept simple
Rapid user feed back
Understanding that requirements may change
Incremental changes
Just enough analysis at the start to make sure system is understood by both the client and the developers
Suitability
When users requirements are not initially clear
Usually small/medium projects through larger projects can be decomposed
Benefits
regular user input so highly usable
High code quality
Suitable for most projects
Drawbacks
Poor documentation
Constant communication with users
May get side-tracked with continuously adding new requirements and features
Extreme programming
Definition
Agile approach
Focused on code refinements and high quality
frequent released of working versions in short development cycles
Representative of the user joins the development team to provide feedback
Paired programming: Two programmers to a computer (one to program and the other to critique)
Suitability
small/medium projects that require high usability and excellent code quality
Benefits
High Code quality so less bug and time spent bug fixing
lots of user involvements means high usability
Drawbacks
Team work is essential
Poor quality documentation
Client may not be able to commit to providing constant feedback
Scope Creep
Rapid Application Development
Definition
Agile Approach
Based around prototyping
Prototype: system version that lacks functionality but allows users to give more constructive feedback
less rigid plan more adaptive process
RAD = refinement of objectives ; XP = refinement of code
Suitability
Projects were initial requirements are unclear
When high usability is needed
Benefits
Highly usable due to constant user feedback
caters to changing user requirements
Focus on core features can reduce development time
Drawbacks
Poor quality documentation
Fast pace may reduce code quality and efficiency
User may not want to be actively/constantly involved
Continuous changed from users increases development time