Unified Process Flashcards
What is iterative development
series of short mini projects - iterations
each iteration gives a tested, integrated and executable system
Steps in iteration development
requirements analysis design implementations integration and system test
What is the output of an iteration
not experimental prototype but a production subset of the final system
each iteration tackles new requirements and extends the system
key ideas of central unified process ideas?
iterative development is number one tackle high risk items early continuous engagement of uses core architecture in early iterations test apply use cases continuously model with UML carefully manage requirements control changes
name and explain the unified process phases
Inception - define project scope
elaboration - plan, specify features, baseline architecture
construction - build it
Transition - transfer to user community
what are artefacts
docs, diagrams, code that track progress
everything is optional
best kept electronically on website
which artefacts can be started/created at inception phase
use case model vision supp specification glossary SW dev plan development case
waterfall vs agile
waterfall - well documented, traceability, change control, few risks, sequential, late integration and testing
Iterative - little documentation, light process, risk driven, continuous integration and testing
prototyping framework
build system to clarify requirements
Rapid application development framework
well defined 60-90 day projects
incremental framework
deliver increasing functionality at each iteration
spiral (boehm) framework
similar set of tasks applied for each turn of the spiral
component based framework
aimed at producing and reusing OO components
Agile framework
embrace change and adapt to it and keep things simple
Process model
framework of tasks applied during software engineering
How do iterative methods attempt to reduce risk
bringing out versions early
Benefits of iterative development
early reduction of risk early visible progress early feedback managed complexity get robust architecture handle evolving requirements allow for changes learn and apply lessons withing dev process
What does prototyping help to investigate
technical issues work flow and task design screen layouts, UI, information display difficult, controversial, critical areas match between engineering and customer specification
benefits of prototyping
helps to investigate different things within the project
demonstrate proof of concept
more concrete than a narrative
Why should we prototype
enable evaluation and feedback improves communication between a team testing ideas out - encourages reflection answer questions explore alternatives
Horizontal prototype
wide range of functions, little detail
e.g. test UI before backend is developed
vertical prototype
provide a lot of detail for a few features/functions
Throw away prototypes
address high risk issues - uncertainty in requirements, UI design, alternative implementation strategies, tech platform
Only enough effort to help address specific issues
great for trying alternative ideas
Evolutionary prototypes
early version of the actual software will evolve into the final product quality is important can be put to limited use implementing and validating well understood requirements
How to make sure that the system works on demo day
no last minute code changes demo a stable version rehearse entire demo resist temptation to change the demo test any peripherals that are needed
how to prepare for a demo
list and test tasks that will be demoed
plan what to say
plan what to say during each test
ensure that each team member participates
rehearse and time the demo
think of questions and prep answers for them