Please enable JavaScript.
Coggle requires JavaScript to display documents.
Program Development Methodologies, image - Coggle Diagram
Program Development Methodologies
waterfall
definition
a linear sequential program development cycle, where each stage is completed before the next begins.
Arrows going down represent the fact that the results from one stage are input to the next stage
Benefits
works well for smaller projects
stages are processed and completed one at a time-simple and no overlapping
simple to understand
easy to manage since there are fixed stages in the model with each stage having specific results
drawbacks
Working software is produced in the late part of the lifecycle
which is why it is a Bad model for projects that are:
complex
long
can't accommodate changing requirements
integration is done at the end which lead to not identifying potential technical or business issues early
RAD
definition
a type of program development cycle in which different parts of the requirements are developed in parallel
analysis, design, coding, testing and maintenance
It uses prototyping to provide early user involvement in testing
Prototyping: a process of masking an early sample, model, or release of a product built to test a concept or process
It is often used to show initial versions to customers to obtain early feedbacks
suitable for complicated projects that need developing in short timeframe
RAD places a strong emphasis on obtaining continuous feedback from end-users throughout the development process.
Reuses previously written code where possible
high customer involvement since customers can use prototypes during development
benefits
Cost-Effectiveness
minimizing the risk of investing resources in developing features that may not be needed or desired by users.
the ability to quickly adapt to changes can reduce the overall project cost by avoiding expensive delays
Improved Quality
promotes frequent testing and validation of prototypes, leading to higher-quality software
Flexibility and Adaptability
-emphasizes iterative development and close collaboration with stakeholders, enabling teams to adapt to changing requirements and priorities more easily.
Time-saving
promotes rapid prototyping, reduces time to market, enables iterative development
Early Detection of Issues
-By producing working prototypes early in the development cycle, RAD enables teams to identify and address potential issues, at an early stage. - reduces the likelihood of costly rework later in the project.
drawbacks
Dependency on User Involvement
RAD heavily relies on user feedback and involvement throughout the development process. If stakeholders are unavailable or indecisive, it can hinder progress and cause delays.
Resource Intensive
RAD requires a highly skilled and dedicated team of developers, designers, and stakeholders who can collaborate effectively in a fast-paced environment.
Limited Applicability
RAD may not be suitable for all types of projects. It's most effective for projects where requirements are not well-defined initially and where rapid prototyping and frequent user feedback are essential.
Complex Management
RAD can lead to complex and poorly structured code if not managed properly.
Risk of Project Failure
If not managed properly, the fast-paced nature of RAD can increase the risk of project failure, especially if there's a lack of clear direction, communication, or coordination among team members and stakeholders.
Iterative
Definition
The iterative model is a type of software development life cycle model that focuses on an initial, basic implementation that gradually adds more complexity and a broader feature set until the final system is complete.
It creates a subset of models then expands the model and runs the development cycle again.
Benefits
Working programs are developed early
Easier to test and fix bugs
More flexible as it allows alteration of the requirements
Customers are highly involved therefore the end product won't be a surprise
Drawbacks
not suitable for short simple projects
whole system needs to be defined at start, so it can be broken down into
pieces to be developed at each iteration
needs good planning overall and for every stage
The need for continuous collaboration and communication among team members and stakeholders, as well as the potential for scope creep if requirements are not well-defined or controlled. Overall, iterative models are well-suited for projects where requirements are not fully understood upfront and where flexibility and adaptability are important.
Principles
Incremental development as the program development lifecycle is repeated
working programs are produced for part of the system at every iteration
high customer involvement, as part of the system can be shown to the customer after every iteration