csci 387 quiz 1 Flashcards
5 main categories for properties of good software
functionality concern, reliability concern, usability concern, portability concern, maintainability concern
the functionality concern pertains to
suitability, accuracy, interoperability, and security
the reliability concern pertains to
maturity, fault-tolerance, recoverability, performance, and resource utilization
the usability concern pertains to
understandability, attractiveness
the WaterFall Method steps
requirements/analysis design coding testing maintenance
WaterFall advantages
- records
- client knows what to expect
- employee turnover yields minimal project impact
WaterFall disadvantages
- can’t go back
- faulty requirements lead to a doomed project
- error or change means you have to start from the beginning
- only tested at the end
- doesn’t account for client’s evolving needs
Spiral Lifecycle stages
identification of objectives, constraints, alternatives
risk analysis, its mitigation, and evaluation of alternatives
execution and testing
review progress, plan for next phase
Spiral Lifecycle advantages
high risk analysis leads to more risk avoidance, good for large and mission-critical projects, strong approval and documentation control, additional functionality can be added later, software produced early in software life cycle
Spiral Lifecycle disadvantages
costly, risk analysis requires specific expertise, success depends on risk analysis, doesn’t work well for smaller projects
Agile Manifesto values
individuals and interactions, working software, customer collaboration, responding to change
Agile Lifecycle emphasizes
test-driven development (TDD) to reduce mistakes
according to the agile manifesto, ? has/have the biggest impact on success (individuals and interactions over processes and tools)
people (strong individuals are stronger on a team)
simpler is (worse/better)
better
working software over comprehensive documentation
code should document itself, knowledge of code kept within team; produce no doc unless its need is immediate and significant
customer collaboration over contract negotiations
get regular customer feedback - use the contract to specify customer interaction
responding to change over following a plan
plan will change, so keep the plan realistic (rough idea of timeline, requirements)
Extreme Programming
one of the most well-known agile methods
- on-site customer (“user stories”)
- planning game (plan together, use abstract accounting)
- metaphors
- small releases (multiple iterations)
- testing (test before you code, unit tests, acceptance tests)
- simple design
- refactoring (regularly rewrite code)
- pair programming
- collective ownership (errors are the fault of the whole team)
- continuous integration
- coding standards
- sustainable pace
SCRUM practices
product and release backlog story point burn-down chart velocity chart SCRUM meeting
product and release backlog
a list of features to be implemented in the project and when they should be finished by
story point
easiest to compare/estimate time by reference; “one story point” would be the time it takes to complete the simplest task
burn-down chart
estimated will be negative, linear line; divides up tasks by story points in sprints; is real burndown is above estimated, you are behind; below means ahead
velocity chart
in each spring, how many story points we finished
why do we subdivide problems/projects?
more productive; divide-and-conquer; decouple unrelated parts so each can evolve separately
projection vs partitioning: explain projection
helps us understand the components in the context of their use, relative to other parts of the system; each component can be done individually; separation of concerns; shared interface (API)
projection vs partitioning: explain partitioning
communication overhead, failure prone, “chain organization” (one link fails, whole project fails)
benefits of projection
increase productivity, decrease amount of communication necessary, failure resilient, learn all aspects of code, ownership visibility, customer friendly, requirements traceability
shared infrastructure
needs to be discovered; may be a relational database, data items, or “services”
problem types
- transforming one virtual object to another
- modifying a virtual object
- automatically controlling behavior of a physical object
- manually controlling behavior of a physical object
- observing behavior of a physical object
typical system requirements
- map input data to output data as said by given rules
- allow repository editing
- automatically control a physical object/device
- interactively control a physical object/device
- monitor and display information about an object