OO Software Lifecycles (PPT 2) Flashcards
What is the basic development process?
- Requirements Gathering
- Requirements Analysis
- System Design
- Implementation
- Component Testing
- Integration
- System Testing
- Installation
- Maintenance
What is the waterfall approach?
It is a very strict approach where each step of the development cycle is followed to completion before moving onto the next
What can change during the design and analysis approach?
- Customers change their mind
- Change to environment, such as new technology or laws changing
- Misunderstood the requirements so have to go back
What is late design breakage?
This is when the process of integrating and testing finally begins, major unforeseen and undetected problems arise, causing a delay in the planned end date and work being redone.
What is a incremental, iterative, risk driven approach?
This is when the process is done in cycles, with smaller versions of the system being constantly developed and then evaluated.
What are the steps in one cycle of the iterative approach?
- Planning
- Risk Analysis
- Analysis, Design, Implementation, etc
- Evaluation
Each cycle usually lasts between 2-6 weeks
How can each Iterative cycle be described?
As a mini-waterfall approach
What are some differences between Waterfall and Iterative approaches?
- A section is fully completed before moving on in waterfall whereas everything has smaller but more even increases in an Iterative approach.
- Each iterative cycle is a mini waterfall
- Iterative promotes early design breakage whereas Waterfall promotes late design breakage
What are some aims of the iterative approach?
- Accommodate changing requirements
- Serious misunderstandings are made evident early as the highest risk issues are dealt with at the beginning.
- Training element for people as everyone begins work early
- Gives a competitive edge as reduced functionality version can be released sooner to guard the market
- Build confidence and credibility in the system as users can see it working
- More realistic assessment of project status as you can see the progress with each system
What are Agile methods?
They are very ‘radical’ practices which aim to make the customer a part of the team. This includes test-driven development and continuous integration, as well as pair-programming
What are some Agile principles?
- Embrace changing requirements to meet user’s needs
- Deliver software early and often
- Value working code over comprehensive documentation
- Favour communication and collaboration over following a prescriptive process
Which method is better?
There isn’t a method which is better, cannot use a one size fits all approach. Both have benefits for different systems.