OO Software Lifecycles (PPT 2) Flashcards Preview

Object Oriented Analysis and Design > OO Software Lifecycles (PPT 2) > Flashcards

Flashcards in OO Software Lifecycles (PPT 2) Deck (12):

What is the basic development process?

-Requirements Gathering
-Requirements Analysis
-System Design
-Component Testing
-System Testing


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?

-Risk Analysis
-Analysis, Design, Implementation, etc

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.