Methodologies
Factors to consider before choosing
- Clarity of user requirements
- Reliability
- Time available
- How well you know the technology
- Complexity
- Clients schedule

Fixed
Waterfall
Key ideas
- Move in a step by step process from one phase to the next
- Should be approved by the sponsors before moving onto the next stage
Pros and Cons
Pros
- Requirements are set out early on
- Since requirements are frozen this means that it will be easier to develop, as there are no changes during development
Cons
- Long time before visible evidence can be shown, of the product working
- Lack of flexibility as requirements can only be changed at the end, in post development
Parallel Development
Key ideas
- Main project is divided into sub-projects that can be worked on in parallel
- All sub-projects are implemented together to create final product
- Similar to waterfall, except design and implementation are done in parallel
Pros and Cons
Pros
- Shorter development cycle
- Requirements are less likerly to change since development cycle is a shorter time frame
- Faster than waterfall
Cons
- Implementation is complex with all the sub-projects
- Sub-projects may effect another, and cause unexpected outcomes
- Deciding what can be a sub-project can be hard
Rapid Application Development - RAD
- More flexible
- Lets users test the product though its development cycle to get feedback
- Use of tools and techniques such as:
- CASE (Computer-Aided Software Engineering)
- JAD (Joint Application Development) sessions
- Visual programming languages
- Code generators
Interactive Development - RAD approach
Key ideas
- First prototype has the minimum amount of features
- The prototype is then analysed by stakeholders, and more functionality is added
- This repeats until all stakeholders are happy with the product
- All that is needed is all is that is added
Pros and Cons
Pros
- Users get to test a prototype of the system early
- Feedback helps refine the system
Cons
- Superficial analysis may cause problems
- Overlooked featurs may be harder to add later
Throwaway Prototyping - RAD approach
Key ideas
- Prototypes with features are presented, users then determine if its something they actually want
- Prototype is then thrown away, then they create a new final product withh the features that were tested earlier
Pros and Cons
Pros
- Uncertainty is minimised
- Important features are understood and can be implemented well
Cons
- May take longer due to prototyping
Agile
- typically 1-4 week cycles
- It is a way of thinking
Manifesto
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Principles
Extreme Programming - XP - Agile
Key ideas
- Focus on customer satisfaction
- Good communication with devs programmers and customers
- Good for small projects divided into modules
Pros and Cons
Pros
- Very fast
- Good if goals are unclear
Cons
- Requires motivation, since you will be removing and making stuff at a fast pace
- Lost of user involvment
- High learning curve, to know what you are making
- Best for small projects
Scrum - Agile
Key ideas
- Similar to XP
- BEST if ideas constantly fluxing
- Divided into small teams
- Series of iterations is made (sprint)
- Build in small chunks
- Regular meeting to check progress and to plan
Object-oriented methodology
- Attempts to focus development between data and processing, and how it is incorporated into the model
- Focus on OOP (Object orientated programming)
- Focus on classes and how they interact
- Uses Unified Modelling Language (UML)
- Focus on how the user will interact with the program (use case driven)
- Focus on the Architecture
- Functional (external) view: How will it behave from the users point of view
- Structural (static) view: How the classes will work
- Behavioural (dynamic) view: How the system works internally
- Continuous testing (Iterative and Incremental)
UML
This helps with the structure of the system
It will help by showing system diagrams





