{ "@context": "https://schema.org", "@type": "Organization", "name": "Brainscape", "url": "https://www.brainscape.com/", "logo": "https://www.brainscape.com/pks/images/cms/public-views/shared/Brainscape-logo-c4e172b280b4616f7fda.svg", "sameAs": [ "https://www.facebook.com/Brainscape", "https://x.com/brainscape", "https://www.linkedin.com/company/brainscape", "https://www.instagram.com/brainscape/", "https://www.tiktok.com/@brainscapeu", "https://www.pinterest.com/brainscape/", "https://www.youtube.com/@BrainscapeNY" ], "contactPoint": { "@type": "ContactPoint", "telephone": "(929) 334-4005", "contactType": "customer service", "availableLanguage": ["English"] }, "founder": { "@type": "Person", "name": "Andrew Cohen" }, "description": "Brainscape’s spaced repetition system is proven to DOUBLE learning results! Find, make, and study flashcards online or in our mobile app. Serious learners only.", "address": { "@type": "PostalAddress", "streetAddress": "159 W 25th St, Ste 517", "addressLocality": "New York", "addressRegion": "NY", "postalCode": "10001", "addressCountry": "USA" } }

Final Flashcards

(134 cards)

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
method for people to request prayer
agile
26
method for a program that screen-scrapes google news to watch for swine flu outbreaks
regular person-\>agile us government-\> spiral
27
method for a program to steer the mars rover
spiral
28
method for a controller for a sprinkler system so the lawn gets less water on rainy days
agile
29
what is iterative improvement of a system?
- get the whole system working pretty well - then add features throughout the system
30
what is incremental improvement of a system?
- get part of a system working really well - then add more parts to the system
31
When is iterative development beneficial?
when you need to implement most of a system before you can get much value
32
when is incremental development beneficial?
when most of a system's value is tightly concentrated in a small number of components
33
what are functional requirements?
requirements that tell what the system should do
34
how can functional requirements be written?
as unstructured text as structured use cases
35
what is a requirements definition?
an external viewpoint of functional requirements
36
what is a requirements specification?
a system viewpoint of unstructured functional requirements
37
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)
38
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)
39
what are non-functional requirements?
requirements that describe how well the system should do stuff -unstructured text or fit criteria
40
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
41
what are use cases?
structured requirements definitions describe an activity supported by the system
42
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?
43
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
44
what is a UML class diagram?
a diagram that shows - entities - attributes - relationships
45
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
46
what is an entity-relationship diagram?
diagram that shows entities, attributes, and relationships
47
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
48
what is a dataflow diagram?
a diagram that shows the flow of information
49
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
50
what are the rectangles in a dataflow diagram?
the actor (a person, place, or thing that can do stuff and/or initiate events)
51
what are the half-rectangles in a dataflow diagram?
a data store
52
what is a message sequence diagram?
A diagram that shows the flow of control
53
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)
54
what is a state chart?
a chart that shows change over time
55
what are some notes on state charts
- one box per state - arrow shows a possible state transition - filled circles show where you start - nested filled circle shows where you stop
56
57
what are 6 techniques to understand requirements?
- paper prototyping - low fidelity prototyping - high fidelity prototyping - stakeholder review - formal analysis - manual analysis
58
what is the general idea of prototyping?
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
what is a low-fidelity prototype?
a throwaway prototype implemented with a tool
60
what is a high-fidelity prototype?
a prototype implemented on the target platform but not fully functional but destined to be incorporated into the final product.
61
what is a stakeholder review?
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
what is manual analysis?
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
what is formal analysis?
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
what is paper prototyping especially good for? what is paper prototyping weak for?
good: evaluating visual requirements bad: often misses interactions between use cases
65
what are low/high fidelity prototypes good for or weak for?
good: evaluating visual requirements bad: a little expensive, need design skills
66
what are stakeholder reviews good/bad for?
good: evaluating fit to context bad: costs customer time
67
what is manual analysis good/bad for?
good: checking for consistency bad: easy to miss errors
68
what is formal analysis good/bad for?
good: can guarantee formally specifiable properties bad: expensive, need formal skills
69
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
stakeholder reiew
70
what is architecture?
shows pieces of a system and their relationship
71
what is a componenet?
self-contained piece of a system with clearly defined interfaces
72
what is a connector?
a linkage between componenets via an interface
73
what is important about drawing architectures
- all the usual diagramming notations apply - but with emphasis on internals of the system rather than their relationship to the user
74
what is a client-server?
server: component that provides service client: component that interacts with user and calls server
75
what is peer-to-peer?
peer: component that provides services and may signal other peers
76
what is publish-subscribe?
publish: when a component advertises that it can send certain events subscribe: when a component registers to receive certain events
77
what is a pipe and filter?
filter: component that transforms data pipe: connector that passes data between filters (ex. yahoo pipes filtering of rss feeds)
78
what is layering?
layer: component that provides services to the next layer; component hides lower layers
79
what are omitted in a data flow diagram for architectures?
-the functional ovals
80
what is functional decomposition?
- 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
what is data-oriented decomposition?
- 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
what is object-oriented decomposition?
- 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
what is process-oriented decomposition?
- 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
what is feature-oriented decomposition?
- 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
what is event-oriented decomposition?
- 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
what are the 3 ways to evaluate architectural designs?
1. compare against quality attributes 2. check for problematic failure modes 3. walk through use cases
87
88
What are the concerns of classes?
- one class to one entity - one class member to one attribute - functions together with code they modify
89
what is coupling?
when one module is involved in another module's concern
90
what is cohesion
when a module is devoted to its concern
91
coupling reduces \_\_\_\_
maintainability
92
what are the levels of coupling?
- content coupling - common coupling - control coupling - stamp coupling - data coupling - uncoupled
93
what is content coupling
A modifies B
94
what is common coupling?
A and B both read/write the same data
95
what is control coupling
A calls B
96
what is stamp coupling?
a provides structured data to B
97
what is data coupling
A provides unstructured data to B
98
Cohesion increases \_\_\_
maintainability
99
What are the levels of cohesion?
- functional/informational cohesion - communicational cohesion - procedural cohesion - temporal cohesion - logical cohesion - coincidental cohesion
100
what is functional/informational cohesion?
A and B work together for just one purpose
101
what is communicational cohesion?
A and B use the same data
102
What is procedural cohesion?
A executes then B executes and A & B have vaguely related purpose
103
what is temporal cohesion?
A executes, then B executes, but A & B do not have any related purpose
104
what is logical cohesion
Either A or B might be executed
105
What is the law of demeter?
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
How should you add feature or reuse code?
use composition over inheritance
107
in general, use ___ to add features or to reuse code, and use ___ to add a new version of an entity
in general, use composition to add features or to reuse code, and use inheritance to add a new version of an entity
108
An ___ is polymorphism in action
interface
109
In incremental development you should spend extra effort on what?
-reducing coupling in parts of the system near future incremental work
110
in iterative development, you should spend extra effort on what?
-reducing coupling AND increasing cohesion in parts of the system near future iterative work
111
when should you use incremental development?
- when much of the system's value resides in one subsection - when one part of the system must be completed logically before another
112
when should you use iterative development?
- 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
When should you use a builder DP?
when instantiating an object requires filling it with parts or otherwise lengthy configuration
114
when should you use an adapter DP?
use to overcome incompatability (converts one interface to another by wrapping)
115
When to use a facade DP?
when calling a subsystem requires a frequent series of complex lines of code
116
when do you use a memento?
if you want to return to a certain state later (ie. a blog, editer, etc.)
117
when do you use an interpreter?
when you want to parse and act on instructions written in a certain syntax use to add scriptability
118
when do you use an observer?
when watching for another object to change state use in any event-driven design
119
what is the template method?
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
what is the factory method?
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
what is the strategy method?
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
what is the decorator method
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
what is composite pattern?
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
what is the visitor pattern?
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
what is the iteration timing for scrum/XP agile?
scrum: 1 month XP: 1-2 weeks
126
key practices of DSDM
- ambassadors - workshops
127
what are the principles of XP?
- 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
xp practices
- planning game - small release - no super heros - simple design - improvement (refactor)
129
what is a spike?
an expiremtnal implementation to estimate difficulty
130
what is an activity graph?
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
what is the personal software process (PSP)
- record size of component - record time taken - refer for future predictions
132
what is an algorithmic estimation model?
COCOMO -input: description of proj + team output; estimate effort
133
what is a machine learning estimation model?
(CBR) - gather descriptions of old projects + time taken - run program that creates a model - now have custom algorithmic method
134
what is cocomo?
- assess complexity - compute # app points - asses productivity - compute effort