SE3352 Final Flashcards

1
Q

What are the steps in the software development lifecycle?

A

8 steps: Requirements elicitation, analysis, system design, object design, implementation, testing, deployment, maintenance

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

What is the result of the requirements elicitation step?

A

description of the system in terms of actors and use cases - in language that can be understood by the user

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

What does the software development lifecycle identify?

A
  • activities from inception to phasing out
  • applied modeling approach
  • methodology and development process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What does a sequence diagram describe?

A

Describes dynamic behavior between objects of a system

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

What does a class diagram describe?

A

Describes static structure of the system

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

What does a use case diagram describe?

A

Describes functional behavior as seen by the user

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

Rating a response or idea in some scale would be classified as a ________ question

A

“Closed ended “

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

UML models include? 4 types

A

“Behavioral (use cases), structural (class diagrams), statechart diagrams, sequence diagrams”

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

What is the format of a UC description?

A
UC Name
Participating Actors
Entry Conditions
Flow of Events
Exit Conditions 
Quality Requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What type of question should you use when you are looking for previously unknown information

A

Open Ended

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

Multiple choice, ranking and rating questions are what type of question?

A

Closed Ended

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

Name the Activity:

-performed (over time) for removing software errors not picked up in testing, enhancing software

A

Maintenance

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

What is JAD? What does a session look like?

A

Joint application development, PM’s users and developers working together with a leader and scribe over a 3 week period for 5–10 days with a schedule

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

What is the leader role in JAD?

A

To keep session on track, answer questions, record output, resolve issues and explain jargon

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

What Is the scribes skill set in JAD?

A

“Touch typing, case tool skills, software development knowledge”

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

Name the Activity:

-Defines the the design goals and decomposes the system into smaller sub systems

Result:

  • Clear Description of strategies
  • Subsystem decomposition
  • Deployment diagrams (hardware/software mapping of system)
A

System Design

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

Name the Activity:
-developers define solution domain objects to bridge the gap between analysis and deployment

Result:

  • Detailed object model
  • Has constraints
  • descriptions for each element
A

Object Design

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

What are the Methods of Requirements Elicitation

A

1) Interviews
2) Questionnaires
3) Task Analysis
4) Study documents/software systems
5) JAD - Joint Application Development

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

What are the Activities of Requirements Elicitation

A
  • Identify Actors
  • Identify Scenarios
  • Identify Usecases
  • Redefine Usecases
  • Identify relationships between use cases
  • Identify non-functional requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Questionnaires are passive.

A

True.

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

What are the three methods of Task Analysis?

A

Passive, Active, and Explanatory

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

What are the two types of Non Functional Requirements?

A

Quality requirements and constraints

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

JAD decreases ________ by 50%

A

Scope Creep

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

Who are the members of a JAD team?

A

Leader, Scribe, Customers, Devs

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

What are the 6 activities of requirements elicitation?

A
Identify Actors
Identify Scenarios
Identify UCs
Refine UCs
Identify relationships between UCs
Define Non Functional Requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What is the format of a UC description?

A
UC Name
Participating Actors
Entry Conditions
Flow of Events
Exit Conditions 
Quality Requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What are the components of a scenario?

A

name, actor, flow of events

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

What is a scenario?

A

An instance of a UC describing a concrete set of actions

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

What are the 4 tyes of scenarios?

A

As-is: describes a current system

visionary: describes a future system
evaluation: describes user tasks against which the system is to be evaluated
training: describes a tutorial used for introducing users to the system

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

What aspects of the use case are detailed in the refinement process?

A
  • elements (attributes, forms) that are manipulated by the system
  • low-level sequence of actor-system interactions (like GUI interactions)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

When would an include relationship be approptiate?

A

To factor out behavior common to 2+ UC

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

Why would you use an extend relationship?

A

To factor out optional/exceptional behavior

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

What are some benefits of implementing requirements traceability?

A
certification
change impact analysis
maintenance
reeingeering
reuse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

What are the activities of system design?

A
  1. Identify design goals
  2. Design subsystem decomposition
  3. Refine subsystem decompositions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

What are the 8 issues of system design?

A
  1. Identify design goals
  2. Design subsystem decomposition
  3. Identify concurrency
  4. Hardware/software mapping
  5. Persistent data management
  6. Global resource handling
  7. Software control
  8. Boundary conditions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

What is a component?

A

An encapsulated, reusable, and replicable part of software

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

What is bitcoin?

A

something something Blockchain something something something something Winkelvoss something something something US dollars, at least for now!

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

What do you call an interface that a component realizes?

A

A provided interface

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

What do you call an interface that a component needs to function?

A

A required interface

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

What is included in the <> section of a component?

A

A list of classes the realize the component (that help the component do its job)

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

What are services derived from?

A

use cases

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

Does the subsystem interface specify interaction and information flows within a subsystem?

A

NO

-the interface specifies flows to and from subsystem BOUNDARIES

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

What is the implication of having high coupling between two subsystems?

A

Modifications to one subsystem is likely to have an impact on the other

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

What is the desirable combination of coupling and coherence levels?

A

Minimum coupling, maximum coherence

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

What is a horizaontal division of a layer called?

A

a partition

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

What are the 2 types of dependencies in a layered architectural style?

A
  • compile time dependency (A uses B)

- runtime dependency (A calls B)

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

What is the difference between relaxed-layered style and strict-layered style?

A
  • Strict: layer can use only the layer directly below it

- Relaxed: layer can use all layers below it

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

What are the disadvantages of a layered architectural style?

A
  • passing through many layers can hurt performance
  • debugging through layers is difficult
  • getting the layers right is difficult
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

What are tha dvantages of a layered architectural style?

A
  • information hiding
  • layers are not strongly coupled to higher layers
  • low complexity
  • easy to replace entire layer
  • layers easy to reuse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

What are the advantages of MVC style?

A
  • decouples data access and presentation
  • views and controllers can easily be added, removed or changes
  • UI can be changed at runtime
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

What are the disadvanatges of MVC style

A
  • views and controller often hard to seperate
  • frequent updates slow data display
  • interface components are highly dependent on model components
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
52
Q

When are objects inherently concurrent?

A

If they can receive events at the same time

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

A component must be as small as a class

A

False, a component can range in size from relatively small class to the size of a large subsystem

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

What is a node?

A

A software or hardware resource that can host software or related files

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

An object model describes?

A

Entities manipulated by the system

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

A sequence diagram describes?

A

for each use case, the sequence of interactions among objects participating.

57
Q

What occurs after an analysis model is completed

A

System Design

58
Q

A layer has these two restrictions

A

Depends only on services from lower layers, and has no knowledge of higher layers

59
Q

Can partitions in the layer architectural style provide services to other partitions?

A

yeah they can, why the frig couldn’t they

60
Q

A component must be as small as a class

A

False, a component can range in size from relatively small class to the size of a large subsystem

61
Q

Are all nodes hardware?

A

No, they can be hardware or software that provides an environment that can execute components

62
Q

A set of names operations that share a common purpose are?

A

Services

63
Q

When are subsystem interfaces defined?

A

During object design

64
Q

A programmer using Ember Datastore instead of interacting directly with the DB is an example of?

A

Reducing decoupling

65
Q

A layer has these two restrictions

A

Depends only on services from lower layers, and has no knowledge of higher layers

66
Q

Can partitions in the layer architectural style provide services to other partitions?

A

yeah they can, why the frig couldn’t they

67
Q

What can an artifact manifest?

A

An artifact can manifest components, packages, classes and any packageable element

68
Q

Are all nodes hardware?

A

No, they can be hardware or software that provides an environment that can execute components

69
Q

T/F: In client/server architecture, the server does not know anything about the interface of the client

A

True - The client knows the interface of ther server

70
Q

What are the advantages of client/server architecture?

A
  • portable
  • location transparency
  • high performance
  • scalability
  • flexibility
  • reliability
71
Q

What is the difference between thin-client model and fat-client model?

A

In thin-client, only the presentation layer is implemented in client. Conversely in fat-client, some or all of the application processing occurs in the client

72
Q

What is a multi-tier client/server model?

A

Each layer is a seperate process, which may run on a different processor

73
Q

When would you use a thin-client model?

A
  • computationally intensive apps with little data management
  • legacy systems
  • data-intensive applications with little processing
74
Q

When would you use a multi-tiered client/server model?

A
  • apps with hundreds of thousands of users
  • when both data and application are volatile
  • when data from multiple sources are integrated
75
Q

When would you use a fat-client model?

A
  • when procesing is provided in the client by off-the-shelf software
  • apps with computationally intensive data processing
  • mobile apps
76
Q

When would it make sense to use a databse over a file system?

A

If data is used by concurrent writers and readers

77
Q

When would it make sense to use a file system over a database?

A

Whn data is used by many readers, but only a single writer

78
Q

What are the two axes of an access matrix?

A

Actors, classes

79
Q

What is an access control list?

A

A list that associates actor/operation pairs w/ each class

80
Q

What does decentralized design entail?

A

Multiple control objects

81
Q

What are the pros and cons of centralized design?

A

Pro: change in control structure is very easy
Con: control object is a possible bottleneck

82
Q

What are the pros and cons of decentralized design?

A

Pro: fits w/ object oriented development
Con: responsibility is spread out

83
Q

What are the 2 types of explicit control?

A
  1. Procedure driven control: control resides in program code (simple but hard to maintain)
  2. Event driven control: control resides within dispatcher calling functions using callbacks (flexible, good for GUI)
84
Q

non-procedural and declarative languages are part of what control type

A

Implicit Control Design

85
Q

What are the pros and cons to Centralized Design

A

Pro: Changing control structure is easy

Con: Single control object is a possible performance bottleneck

86
Q

What are the pros and cons of Decentralized Design

A

Pro: fits well into object oriented design

Con: Responsibility is spread out since there are multiple control objects

87
Q

What do you call cheese that isn’t yours?

A

Nacho Cheese!

88
Q

How many mexicans does it take to screw in a lightbulb?

A

Only Juan

89
Q

Have you ever had a dream that, that, um, that you had, uh, that you had to, you could, you do, you wit, you wa, you could do so, you do you could, you want, you wanted him to do you so much you could do anything?

A

?

90
Q

Name the pattern:

used when off the shelf components offer functionality you would like to reuse, but has an incompatible interface

A

Adapter Patter - used when an existing class needs be used with an interface that does not match your needs

91
Q

What are the Consequences of Adapter?

A
  • client and legacy work together without modification
  • adapter works with legacy and subclasses
  • adapters need to be written for each specialization (inefficient)
92
Q

If i have the function shape(x,y,w,h) and want to try and integrate its functionality into a new function shape(x1,x2,y1,y2) what pattern should I use?

A

Adapter

93
Q

What solutions does the Composite Pattern Provide?

A

1) develops a system in which a component is an object or collection of objects
2) represents recursive composition of objects
3) client ignores differences between compositions of objects and individual objects

94
Q

This idea can be best implemented with what pattern?

A file system can have individual files, as well as a folder holding files. Folders can also be nested

A

Composite pattern:
Client interacts with Folder system (Component)
with a file class (leafs) and folder class (composite) extending Folder system.

The folder system can have many children composites, in this case many child folders.

95
Q

Define the Component participant of the composite pattern

A
  • declares interface for objects
  • implements default behaviour common to all classes
  • declares the interface for accessing and managing child composites
96
Q

What are the Consequences of Composite?

A
  • primitive objects composed into more complex objects
  • to clients, primitive and composite objects are uniform, there is no difference to the client
  • adding components is easy, client code doesn’t need to be changed since clients deal with component interface
97
Q

When should you use the Proxy Pattern?

A
  • Controlling access to an object, and there needs to be a reference to this object
  • e.g. open a word doc, only want to see images that can be seen, anything else you don’t want open to increase document efficiency
98
Q

Media viewing in large documents is generally handled best with was pattern?

A

Proxy

99
Q

What is a virtual proxy?

A

memory intensive object creation (objects not created unless needed)

100
Q

What is a protection/smart proxy?

A

controls access to resources (access rights)

101
Q

What is a remote proxy?

A

local representation for object in a different address space

102
Q

Define the Subject participant in proxy

A
  • real subject service
  • implemented by real subject and proxy so it can be used
  • the interface that the proxy (and realsubject) is connected to
103
Q

What is the intent of proxy?

A

-place holder for another object to control access to it

104
Q

consequences of proxy

A
  • remote proxy can hide the fact that objects reside in different address spaces
  • virtual proxy can perform optimizations to create objects
  • protection/smart proxies allow additional tasks when accessed
105
Q

YOUR MOM IS A DIGITAL CURRENCY

A

THAT IS ALSO YOUR DAD’S DIGITAL CURRENCY OWNED BY THE WINCKLEVOSS TWINS

106
Q

When do we use the mediator pattern?

A
  • sets of objects need to communicate with each other in well defined, but complex ways
  • reusing objects is difficult because they refer to other objects
  • behaviour is customizable
107
Q

A car website wants to design a part selection utility. This will be based on a product list, family list, model list, and partNo list as well as an okay button. There should be a select-part interface, and a concrete class to handle the interactions between the interface and the parts… what pattern best handles this?

A

Mediator Pattern

108
Q

Difference between concrete mediate and mediator participants?

A

concrete mediator handles all of the processing of the colleagues while the mediator is the interface that the user can interact with

109
Q

Do colleague classes (mediator objects) communicate with each other?

A

No, they use the concrete mediator to communicate with each other

110
Q

What are the consequences of mediator?

A
  • limits subclassing, localized behaviour to one class (the concrete mediator)
  • decouples colleagues, promotes loose coupling between colleagues (loose coupling is good for modification)
  • simplifies object protocols (replaces many-many interactions)
111
Q

When do we use the Observer Pattern used?

A

-change of state in an object must be reflected by other objects, objects can’t be tightly coupled (think of our lab with addition, multiplication, and division of two numbers A and B)

112
Q

Microsoft Excel’s graphing tools is best described using what pattern?

A

Observer Pattern

113
Q

If i need to enter a decimal number, and in return i want my program to return a binary, octal, and hex version of the decimal back, what is the best pattern to use?

A

Observer Pattern

114
Q

What is the difference between an observer and a concrete observer participant?

A

the observer defines the updating interface for objects that should be notified of subject changes while the concrete observer handles the processing of the state of the subject. Ex: concrete observer will add two numbers, and pass the addition to the observer which will then update the interface.

115
Q

consequences of observer

A
  • lets you vary subjects and observers independently
  • reuse subjects without reusing observers, and vise versa
  • loose cooupling
  • add observers without modifying subjects or other observers
116
Q

When is the Strategy Pattern Used?

A
  • Strategy is helpful when implementation is a choice at runtime
  • define a family of algorithms, encapsulate each in a class, and make them interchangeable
117
Q

a program using different sorting algorithms is best designed with what pattern?

A

Strategy pattern

118
Q

Describe the “Context” participant in the strategy pattern

A
  • configured with a concrete strategy object

- maintains a reference to strategy object which can select the concrete strategy

119
Q

Consequences of strategy?

A
  • concreteStrategy can be substituted transparently from context
  • context decides which strategy is best
  • new algorithm classes can be added without modifying existing structure
  • loose coupling between context and subjects
120
Q

When do we use Chain of Responsibility

A
  • you want to decouple the sender/receiver in the a request
  • dynamic addition of handlers
  • sender can “launch and leave” the request until a handler handles the request
  • multiple objects can react to a request and you want to order them in a first case to last case list
121
Q

What pattern fits best?
Scenario: you are trying to design a payment approval program where different titles have different payment amounts that they can approve. When sending in a purchase request, a manager can approve $200, director approves $1000, VP approves $10,000 and lastly, the president approves $50,000.

A

Chain of Responsibility Pattern

122
Q

is there recursion in chain of responsibility? if so where?

A

Yes, in the handler class, it will be recursive calling concrete handlers one after another in the list until the request has been processed.

123
Q

what are the consequences of Chain of Responsibility:

A
  • multiple handlers may be able to handle requests which means order matters when building the list
  • sender doesn’t know how many handlers there are
  • only one handler handles request
  • some requests may not be handled
  • lost of handlers doesn’t affect sender
124
Q

When do we use Factory Method Pattern?

A
  • a class can’t determine the type of object to create

- a class wants its subclasses to be the ones to specify the type of a newly created object

125
Q
What type of pattern would I use in this scenario: 
an application can open documents, but the application doesn't know which document to open, so has a class that selects the document type. in our example, we will have 3 document types, text, drawing, and xml docs.
A

Factory Patter should be used, which aggregation between Document and Application, along with a concrete document factory that selects the concrete document to use in the application which can open, close, create, and save any type of document.

126
Q

US DOLLARS?

A

AT LEAST FOR NOW!!!!!!!

127
Q

Describe the creator participant in the factory method pattern.

A

creator:
- declares the factory method, returns the object of a certain product type
- defines default implementation of the factory that gets the concrete product
- calls factory to create the product

128
Q

what is the intent of factory method pattern?

A

define an interface for creating an object, but let subclasses decide which product class to instantiate. Factory method lets a class defer instantiation to subclasses.

129
Q

Consequences of Factory Method?

A
  • Eliminates need to bind application specific classes to code.
  • code only deals with product interface, and works with all user defines concrete product classes.
130
Q

Review all Participant classes in each pattern to understand functionality

A

you will get 100% on this, CMON!

131
Q

What is the Least Technical Activity in Software Development?

A

Requirement Elicitation.

132
Q

What is requirement elicitation?

A

Definition of system in terms understood by client.

133
Q

Questions to ask for Functional Requirements

A
  • what does the software do?
  • what does the layout look like?
  • how does the software interact to external conditions?
  • how can the system be modified?
  • possible interactions between system/environment?
134
Q

What are the two groups of non-functional requirements?

A

1) Quality Requirements

2) Constraint Requirements

135
Q

What are the Quality Requirements (URPS) ?

A

1) Usability
2) Reliability
3) Performance
4) Supportability

136
Q

Constraint Requirements (iiOPL)

A

1) implementation
2) interface
3) operations
4) packaging
5) legal

137
Q

What are the Requirement Elicitation Methods? (IQTSJ)

A

1) Interviewing
2) Questionnaires
3) Task Analysis
4) Study of Documents
5) JAD - joint application development

138
Q

Interviews (SDPCP)

A

1) select interviewees
2) design interview
3) prepare for interview
4) conduct interviews
5) post interview followup