Final Flashcards
use cases
the activities a system supports
entities
the kinds of objects that are involved in use cases (some kind of thing in or around the system)
attributes
the properties of the entities
what is the system boundary
the part of the system that will be built
quality attribute
an aspect of how well the system works
There is no prototyping in a pure ___ process
waterfall
What are drawbacks of the waterfall model?
- non iterative
- long wait
- manufacturing process not creative process
What are the agile methods?
- extreme programming
- scrum (30 day iterations: multiple self-organizing teams; daily scrum coordination
- crystal: a collection of approaches based on the notion that every project needs a unique set of policies and conventions
what is the spiral method?
requirements -> analyze risk and prototype -> plan -> architecture -> analyze risk and prototype -> plan -> program designs -> analyze risk and prototype -> plan -> implement -> testing -> operation
what is the agile method?
- stories
- “spike” to evaluate and control risk
- prioritize
- write/run/modify unit tests
- implement
- system and acceptance tests
- operation
what does the waterfall method emphasize?
- simplicity
- traceability
what does the spiral method emphasize?
- risk management
- exploring alternatives
what does the agile method emphasize?
- flexibility
- immediacy
what are weaknesses of the waterfall method?
-requirement/design mistakes can be costly
what are weaknesses of the spiral method?
-exploring alternatives can be costly
what are weaknesses of the agile method?
-continual rework can be costly
what is the style of the waterfall method?
- highly controlled
- high ceremony
what is the style of the spiral method?
- moderately controlled
- moderate ceremony
what is the style of the agile method?
- rapid and organic
- low ceremony
when should you choose waterfall?
for small systems whose requirements can be fully understood before any design or coding
when should you choose spiral method?
for larger systems with vague requirements and many alternatives for designing and coding
when should you choose agile method?
when creating systems where you can rapidly create something very small but useful, and then expand from there
method for a nuclear missile’s guidance system
spiral
method for web server
waterfall
method for people to request prayer
agile
method for a program that screen-scrapes google news to watch for swine flu outbreaks
regular person->agile
us government-> spiral
method for a program to steer the mars rover
spiral
method for a controller for a sprinkler system so the lawn gets less water on rainy days
agile
what is iterative improvement of a system?
- get the whole system working pretty well
- then add features throughout the system
what is incremental improvement of a system?
- get part of a system working really well
- then add more parts to the system
When is iterative development beneficial?
when you need to implement most of a system before you can get much value
when is incremental development beneficial?
when most of a system’s value is tightly concentrated in a small number of components
what are functional requirements?
requirements that tell what the system should do
how can functional requirements be written?
as unstructured text
as structured use cases
what is a requirements definition?
an external viewpoint of functional requirements
what is a requirements specification?
a system viewpoint of unstructured functional requirements
a ___ is stated from the viewpoint of somebody outside of the system
requirements definition
(the system is a black box with some interface and the emphasis is on the role of the system)
a ___ is stated from the viewpoint of somebody inside the system
a requirements specification
(the environment is accessed via inputs and outputs, the emphasis is on how the system works)
what are non-functional requirements?
requirements that describe how well the system should do stuff
-unstructured text or fit criteria
what is fit criteria?
- exactly how good does the system need to be?
- tightly related to important quality attributes
- NOT IMAGINED
- driven by customer needs
what are use cases?
structured requirements definitions
describe an activity supported by the system
what is in a basic use case?
name : succinct and meaningful
actor: who “does” the activity
preconditions: true before the activity
postconditions: true after the activity
flow of events: what steps do the actor and the system perform during the scenario?
what is the layout of a use case diagram?
- stick man for user
- ovals for use cases (italicize abstract use cases)
- simple arrows when a UC calls another
- open arrowhead for specialization
what is a UML class diagram?
a diagram that shows
- entities
- attributes
- relationships
what are some notes on UML class diagrams?
- one box per kind of entity, listing attributes ((italicize abstract entities, attributes)
- lines without arrowheads show references (like member variables)
- lines with open arrowheads for specialization
- lines with regular arrowheads can be used to indicate dependencies
what is an entity-relationship diagram?
diagram that shows entities, attributes, and relationships
what are some notes on entity-relationship diagrams (ERDS)
- one box per kind of entity
- list entities on branches
- lines with a diamond show relationships (diamond label indicates role)
- number/variables on line show cardinality
what is a dataflow diagram?
a diagram that shows the flow of information
what are the ovals in a dataflow diagram?
a “function” provided by the system
an inward arrow is a paramter
an outward arrow is an output
what are the rectangles in a dataflow diagram?
the actor
(a person, place, or thing that can do stuff and/or initiate events)
what are the half-rectangles in a dataflow diagram?
a data store
what is a message sequence diagram?
A diagram that shows the flow of control
what are some notes on message sequence diagrams?
- one box per entity involved (ie. two users interacting with each other would mean two boxes. Each box has a dashed line showing its lifetime
- arrows show messages (also draw an arrow back if theres a return value)
- conditionals are written with brackets [] (loops can be enclosed in a shaded box)