Final Flashcards

1
Q

use cases

A

the activities a system supports

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

entities

A

the kinds of objects that are involved in use cases (some kind of thing in or around the system)

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

attributes

A

the properties of the entities

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

what is the system boundary

A

the part of the system that will be built

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

quality attribute

A

an aspect of how well the system works

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

There is no prototyping in a pure ___ process

A

waterfall

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

What are drawbacks of the waterfall model?

A
  • non iterative
  • long wait
  • manufacturing process not creative process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the agile methods?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

what is the spiral method?

A

requirements -> analyze risk and prototype -> plan -> architecture -> analyze risk and prototype -> plan -> program designs -> analyze risk and prototype -> plan -> implement -> testing -> operation

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

what is the agile method?

A
  • stories
  • “spike” to evaluate and control risk
  • prioritize
  • write/run/modify unit tests
  • implement
  • system and acceptance tests
  • operation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

what does the waterfall method emphasize?

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

what does the spiral method emphasize?

A
  • risk management
  • exploring alternatives
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

what does the agile method emphasize?

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

what are weaknesses of the waterfall method?

A

-requirement/design mistakes can be costly

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

what are weaknesses of the spiral method?

A

-exploring alternatives can be costly

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

what are weaknesses of the agile method?

A

-continual rework can be costly

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

what is the style of the waterfall method?

A
  • highly controlled
  • high ceremony
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

what is the style of the spiral method?

A
  • moderately controlled
  • moderate ceremony
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

what is the style of the agile method?

A
  • rapid and organic
  • low ceremony
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

when should you choose waterfall?

A

for small systems whose requirements can be fully understood before any design or coding

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

when should you choose spiral method?

A

for larger systems with vague requirements and many alternatives for designing and coding

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

when should you choose agile method?

A

when creating systems where you can rapidly create something very small but useful, and then expand from there

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

method for a nuclear missile’s guidance system

A

spiral

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

method for web server

A

waterfall

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

method for people to request prayer

A

agile

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

method for a program that screen-scrapes google news to watch for swine flu outbreaks

A

regular person->agile

us government-> spiral

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

method for a program to steer the mars rover

A

spiral

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

method for a controller for a sprinkler system so the lawn gets less water on rainy days

A

agile

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

what is iterative improvement of a system?

A
  • get the whole system working pretty well
  • then add features throughout the system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

what is incremental improvement of a system?

A
  • get part of a system working really well
  • then add more parts to the system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

When is iterative development beneficial?

A

when you need to implement most of a system before you can get much value

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

when is incremental development beneficial?

A

when most of a system’s value is tightly concentrated in a small number of components

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

what are functional requirements?

A

requirements that tell what the system should do

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

how can functional requirements be written?

A

as unstructured text

as structured use cases

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

what is a requirements definition?

A

an external viewpoint of functional requirements

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

what is a requirements specification?

A

a system viewpoint of unstructured functional requirements

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

a ___ is stated from the viewpoint of somebody outside of the system

A

requirements definition

(the system is a black box with some interface and the emphasis is on the role of the system)

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

a ___ is stated from the viewpoint of somebody inside the system

A

a requirements specification

(the environment is accessed via inputs and outputs, the emphasis is on how the system works)

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

what are non-functional requirements?

A

requirements that describe how well the system should do stuff

-unstructured text or fit criteria

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

what is fit criteria?

A
  • exactly how good does the system need to be?
  • tightly related to important quality attributes
  • NOT IMAGINED
  • driven by customer needs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

what are use cases?

A

structured requirements definitions

describe an activity supported by the system

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

what is in a basic use case?

A

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?

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

what is the layout of a use case diagram?

A
  • stick man for user
  • ovals for use cases (italicize abstract use cases)
  • simple arrows when a UC calls another
  • open arrowhead for specialization
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

what is a UML class diagram?

A

a diagram that shows

  • entities
  • attributes
  • relationships
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

what are some notes on UML class diagrams?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

what is an entity-relationship diagram?

A

diagram that shows entities, attributes, and relationships

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

what are some notes on entity-relationship diagrams (ERDS)

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

what is a dataflow diagram?

A

a diagram that shows the flow of information

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

what are the ovals in a dataflow diagram?

A

a “function” provided by the system

an inward arrow is a paramter

an outward arrow is an output

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

what are the rectangles in a dataflow diagram?

A

the actor

(a person, place, or thing that can do stuff and/or initiate events)

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

what are the half-rectangles in a dataflow diagram?

A

a data store

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

what is a message sequence diagram?

A

A diagram that shows the flow of control

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

what are some notes on message sequence diagrams?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
54
Q

what is a state chart?

A

a chart that shows change over time

55
Q

what are some notes on state charts

A
  • one box per state
  • arrow shows a possible state transition
  • filled circles show where you start
  • nested filled circle shows where you stop
56
Q
A
57
Q

what are 6 techniques to understand requirements?

A
  • paper prototyping
  • low fidelity prototyping
  • high fidelity prototyping
  • stakeholder review
  • formal analysis
  • manual analysis
58
Q

what is the general idea of prototyping?

A
  1. depict what you think the system should look like
  2. test the prototypes with customers or preferably users
  3. fix up the prototypes and use what you learn to implement the real system
59
Q

what is a low-fidelity prototype?

A

a throwaway prototype implemented with a tool

60
Q

what is a high-fidelity prototype?

A

a prototype implemented on the target platform but not fully functional but destined to be incorporated into the final product.

61
Q

what is a stakeholder review?

A
  1. sit down with stakeholders
  2. engineers present their understanding of the requiremnets
  3. stakeholders correct this understanding
  4. everybody discusses/argues/negotiates
  5. engineers revise requirements

*repeat, if encessary

62
Q

what is manual analysis?

A

systematically check consistency

-if the unstructured text says that the systistem should support x, is this consistent with what the use cases are saying?

63
Q

what is formal analysis?

A
  1. define two formal models
    - describing the requirement definition
    - describing the requirement specification
  2. automatically check if the specification satisfies the definition
    - valuable but very expensive and thus not really used by many engineers in practice
    - provable guarantee (or your money back!)
    - models are expressed in mathematical notation and mathematically checked for consistency.
64
Q

what is paper prototyping especially good for?

what is paper prototyping weak for?

A

good: evaluating visual requirements
bad: often misses interactions between use cases

65
Q

what are low/high fidelity prototypes good for or weak for?

A

good: evaluating visual requirements
bad: a little expensive, need design skills

66
Q

what are stakeholder reviews good/bad for?

A

good: evaluating fit to context
bad: costs customer time

67
Q

what is manual analysis good/bad for?

A

good: checking for consistency
bad: easy to miss errors

68
Q

what is formal analysis good/bad for?

A

good: can guarantee formally specifiable properties
bad: expensive, need formal skills

69
Q

which of the following is best for finding out what laws the system must comply with?

  • paper prototyping
  • low fi prototyping
  • stakeholder review
  • formal analysis
  • manual analysis
A

stakeholder reiew

70
Q

what is architecture?

A

shows pieces of a system and their relationship

71
Q

what is a componenet?

A

self-contained piece of a system with clearly defined interfaces

72
Q

what is a connector?

A

a linkage between componenets via an interface

73
Q

what is important about drawing architectures

A
  • all the usual diagramming notations apply
  • but with emphasis on internals of the system rather than their relationship to the user
74
Q

what is a client-server?

A

server: component that provides service
client: component that interacts with user and calls server

75
Q

what is peer-to-peer?

A

peer: component that provides services and may signal other peers

76
Q

what is publish-subscribe?

A

publish: when a component advertises that it can send certain events
subscribe: when a component registers to receive certain events

77
Q

what is a pipe and filter?

A

filter: component that transforms data
pipe: connector that passes data between filters
(ex. yahoo pipes filtering of rss feeds)

78
Q

what is layering?

A

layer: component that provides services to the next layer; component hides lower layers

79
Q

what are omitted in a data flow diagram for architectures?

A

-the functional ovals

80
Q

what is functional decomposition?

A
  • break each requirement into functions, then break functions recursively into sub-functions (one component per function or sub-function)
  • each function computationally combines the output of subfunctions

ex ticket price = sum of fees

81
Q

what is data-oriented decomposition?

A
  • identify data structures in requirements, break data structures down recursively (one component per data structure)
  • each data structure contains part of the data (ex. purchase info = ticket + biling info. ticket info = two stations and a ticket type, billing info= contact info + credit card info. contact info = name, address, phone)
82
Q

what is object-oriented decomposition?

A
  • identify data structures aligned with functions in requirements, break down recursively (one class component per data + function package)
  • each component contains part of the data + function

OO decomposition is essentially the same as functional decomposition aligned with data decomposition

83
Q

what is process-oriented decomposition?

A
  • break requirements into steps, break steps in substeps recursively (one component per sub-step)
  • each substep completes one part of a task (e.g. one component to authenticate user, another to display purchase info for editing, another to store results away)
84
Q

what is feature-oriented decomposition?

A
  • break each requirement into services, then break services into features (one component per service or feature)
  • each feature makes the service a little better
  • ex: service does authetnication but one feature has UI, another gives an openID programmatic interface, another gives validation, another does logging
85
Q

what is event-oriented decomposition?

A
  • break requirements into systems of events, recursively break eents into sub-events and state changes (each component receives and sends certain events, and manages certain state changes)
  • each component is like a stateful agent
    (e. g. in the larger ticketing system, the mainframe signals the tiket printing system and the credit card company; the tiket printer notifies mainframe when it mails ticket to user)
86
Q

what are the 3 ways to evaluate architectural designs?

A
  1. compare against quality attributes
  2. check for problematic failure modes
  3. walk through use cases
87
Q
A
88
Q

What are the concerns of classes?

A
  • one class to one entity
  • one class member to one attribute
  • functions together with code they modify
89
Q

what is coupling?

A

when one module is involved in another module’s concern

90
Q

what is cohesion

A

when a module is devoted to its concern

91
Q

coupling reduces ____

A

maintainability

92
Q

what are the levels of coupling?

A
  • content coupling
  • common coupling
  • control coupling
  • stamp coupling
  • data coupling
  • uncoupled
93
Q

what is content coupling

A

A modifies B

94
Q

what is common coupling?

A

A and B both read/write the same data

95
Q

what is control coupling

A

A calls B

96
Q

what is stamp coupling?

A

a provides structured data to B

97
Q

what is data coupling

A

A provides unstructured data to

B

98
Q

Cohesion increases ___

A

maintainability

99
Q

What are the levels of cohesion?

A
  • functional/informational cohesion
  • communicational cohesion
  • procedural cohesion
  • temporal cohesion
  • logical cohesion
  • coincidental cohesion
100
Q

what is functional/informational cohesion?

A

A and B work together for just one purpose

101
Q

what is communicational cohesion?

A

A and B use the same data

102
Q

What is procedural cohesion?

A

A executes then B executes and A & B have vaguely related purpose

103
Q

what is temporal cohesion?

A

A executes, then B executes, but A & B do not have any related purpose

104
Q

what is logical cohesion

A

Either A or B might be executed

105
Q

What is the law of demeter?

A

In particular, an object should avoid invoking methods of a member object returned by another method. For many modern object oriented languages that use a dot as field identifier, the law can be stated simply as “use only one dot”. That is, the code a.b.Method() breaks the law where a.Method() does not. As an analogy, when one wants a dog to walk, one does not command the dog’s legs to walk directly; instead one commands the dog which then commands its own legs.

106
Q

How should you add feature or reuse code?

A

use composition over inheritance

107
Q

in general, use ___ to add features or to reuse code, and use ___ to add a new version of an entity

A

in general, use composition to add features or to reuse code, and use inheritance to add a new version of an entity

108
Q

An ___ is polymorphism in action

A

interface

109
Q

In incremental development you should spend extra effort on what?

A

-reducing coupling in parts of the system near future incremental work

110
Q

in iterative development, you should spend extra effort on what?

A

-reducing coupling AND increasing cohesion in parts of the system near future iterative work

111
Q

when should you use incremental development?

A
  • when much of the system’s value resides in one subsection
  • when one part of the system must be completed logically before another
112
Q

when should you use iterative development?

A
  • when the systems value is spread out over much of the system
  • when the whole system needs to work at least a bit before you can build up
113
Q

When should you use a builder DP?

A

when instantiating an object requires filling it with parts or otherwise lengthy configuration

114
Q

when should you use an adapter DP?

A

use to overcome incompatability

(converts one interface to another by wrapping)

115
Q

When to use a facade DP?

A

when calling a subsystem requires a frequent series of complex lines of code

116
Q

when do you use a memento?

A

if you want to return to a certain state later

(ie. a blog, editer, etc.)

117
Q

when do you use an interpreter?

A

when you want to parse and act on instructions written in a certain syntax

use to add scriptability

118
Q

when do you use an observer?

A

when watching for another object to change state

use in any event-driven design

119
Q

what is the template method?

A

In the template method of this design pattern, one or more algorithm steps can be overridden by subclasses to allow differing behaviors while ensuring that the overarching algorithm is still followed.

120
Q

what is the factory method?

A

Factory pattern deals with the instantiation of objects without exposing the instantiation logic. In other words, a Factory is actually a creator of objects which have a common interface.

121
Q

what is the strategy method?

A

In computer programming, the strategy pattern (also known as the policy pattern) is a behavioural software design pattern that enables an algorithm’s behavior to be selected at runtime. The strategy pattern

defines a family of algorithms,

encapsulates each algorithm, and

makes the algorithms interchangeable within that family.

122
Q

what is the decorator method

A

In object-oriented programming, the decorator pattern (also known as Wrapper, an alternative naming shared with the Adapter pattern) is a design pattern that allows behavior to be added to an individual object, either statically or dynamically, without affecting the behavior of other objects from the same class.[1] The decorator pattern is often useful for adhering to the Single Responsibility Principle, as it allows functionality to be divided between classes with unique areas of concern.

123
Q

what is composite pattern?

A

In software engineering, the composite pattern is a partitioning design pattern. The composite pattern describes that a group of objects is to be treated in the same way as a single instance of an object. The intent of a composite is to “compose” objects into tree structures to represent part-whole hierarchies. Implementing the composite pattern lets clients treat individual objects and compositions uniformly.

124
Q

what is the visitor pattern?

A

In object-oriented programming and software engineering, the visitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add new operations to existing object structures without modifying those structures. It is one way to follow the open/closed principle.

125
Q

what is the iteration timing for scrum/XP agile?

A

scrum: 1 month

XP: 1-2 weeks

126
Q

key practices of DSDM

A
  • ambassadors
  • workshops
127
Q

what are the principles of XP?

A
  • communication: talk with customers/developers
  • simplicity - keep it simple and grow when required
  • feedback - let users provide feedback
  • courage - speak the truth with respect
128
Q

xp practices

A
  • planning game
  • small release
  • no super heros
  • simple design
  • improvement (refactor)
129
Q

what is a spike?

A

an expiremtnal implementation to estimate difficulty

130
Q

what is an activity graph?

A

graph that shows dependencies of a project’s activities

  • filled circles for start/finish
  • one circle per milestone
  • labelled arrows indicate activities (dashed == null)
131
Q

what is the personal software process (PSP)

A
  • record size of component
  • record time taken
  • refer for future predictions
132
Q

what is an algorithmic estimation model?

A

COCOMO

-input: description of proj + team

output; estimate effort

133
Q

what is a machine learning estimation model?

A

(CBR)

  • gather descriptions of old projects + time taken
  • run program that creates a model
  • now have custom algorithmic method
134
Q

what is cocomo?

A
  • assess complexity
  • compute # app points
  • asses productivity
  • compute effort