csci 387 quiz 1 Flashcards

1
Q

5 main categories for properties of good software

A

functionality concern, reliability concern, usability concern, portability concern, maintainability concern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

the functionality concern pertains to

A

suitability, accuracy, interoperability, and security

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

the reliability concern pertains to

A

maturity, fault-tolerance, recoverability, performance, and resource utilization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

the usability concern pertains to

A

understandability, attractiveness

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

the WaterFall Method steps

A
requirements/analysis
design
coding
testing
maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

WaterFall advantages

A
  1. records
  2. client knows what to expect
  3. employee turnover yields minimal project impact
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

WaterFall disadvantages

A
  1. can’t go back
  2. faulty requirements lead to a doomed project
  3. error or change means you have to start from the beginning
  4. only tested at the end
  5. doesn’t account for client’s evolving needs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Spiral Lifecycle stages

A

identification of objectives, constraints, alternatives
risk analysis, its mitigation, and evaluation of alternatives
execution and testing
review progress, plan for next phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Spiral Lifecycle advantages

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Spiral Lifecycle disadvantages

A

costly, risk analysis requires specific expertise, success depends on risk analysis, doesn’t work well for smaller projects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Agile Manifesto values

A

individuals and interactions, working software, customer collaboration, responding to change

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Agile Lifecycle emphasizes

A

test-driven development (TDD) to reduce mistakes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

according to the agile manifesto, ? has/have the biggest impact on success (individuals and interactions over processes and tools)

A

people (strong individuals are stronger on a team)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

simpler is (worse/better)

A

better

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

working software over comprehensive documentation

A

code should document itself, knowledge of code kept within team; produce no doc unless its need is immediate and significant

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

customer collaboration over contract negotiations

A

get regular customer feedback - use the contract to specify customer interaction

17
Q

responding to change over following a plan

A

plan will change, so keep the plan realistic (rough idea of timeline, requirements)

18
Q

Extreme Programming

A

one of the most well-known agile methods

  1. on-site customer (“user stories”)
  2. planning game (plan together, use abstract accounting)
  3. metaphors
  4. small releases (multiple iterations)
  5. testing (test before you code, unit tests, acceptance tests)
  6. simple design
  7. refactoring (regularly rewrite code)
  8. pair programming
  9. collective ownership (errors are the fault of the whole team)
  10. continuous integration
  11. coding standards
  12. sustainable pace
19
Q

SCRUM practices

A
product and release backlog
story point
burn-down chart
velocity chart
SCRUM meeting
20
Q

product and release backlog

A

a list of features to be implemented in the project and when they should be finished by

21
Q

story point

A

easiest to compare/estimate time by reference; “one story point” would be the time it takes to complete the simplest task

22
Q

burn-down chart

A

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

23
Q

velocity chart

A

in each spring, how many story points we finished

24
Q

why do we subdivide problems/projects?

A

more productive; divide-and-conquer; decouple unrelated parts so each can evolve separately

25
Q

projection vs partitioning: explain projection

A

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)

26
Q

projection vs partitioning: explain partitioning

A

communication overhead, failure prone, “chain organization” (one link fails, whole project fails)

27
Q

benefits of projection

A

increase productivity, decrease amount of communication necessary, failure resilient, learn all aspects of code, ownership visibility, customer friendly, requirements traceability

28
Q

shared infrastructure

A

needs to be discovered; may be a relational database, data items, or “services”

29
Q

problem types

A
  1. transforming one virtual object to another
  2. modifying a virtual object
  3. automatically controlling behavior of a physical object
  4. manually controlling behavior of a physical object
  5. observing behavior of a physical object
30
Q

typical system requirements

A
  1. map input data to output data as said by given rules
  2. allow repository editing
  3. automatically control a physical object/device
  4. interactively control a physical object/device
  5. monitor and display information about an object