Architecture Flashcards

1
Q

architecture

A

way of organizing code

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

information hiding

A

the less a part of a program knows about other parts of a program, the easier it is to change. Basis of architecture.

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

encapsulation

A

idea of designing self-contained abstractions with well-defined interfaces that separate different concerns in a program.

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

programming languages offer encapsulation support through things like

A

functions and classes, which encapsulate data and functionality together.

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

scoping

A

another programming language encapsulation method; hides variables and other names from other parts of program outside a scope.

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

cross-cutting concerns

A

things like features and functionality that span multiple different components of a system, or even an entire system. A big ball of mud or spaghetti code.

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

cross-cutting concerns can lead to

A

difficulties in program comprehension and long-term design degradation, all of which reduce productivity and increase the risk of defects.

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

technical debt

A

the degree to which an implementation is out of sync with a team’s understanding of what a product is intended to be.

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

Unified Modeling Language (UML)

A

series of notations for expressing the architectural design of a system before implementing it.

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

architectural styles

A

patterns of interactions and information exchange between encapsulated components.

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

client/server

A

data is transacted in response to requests.

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

pipe and filter

A

data is passed from component to component, and transformed and filtered along the way.

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

Model-view-controller (MVC)

A

data is separated from views of the data and from manipulations of data.

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

Peer to peer (P2P)

A

components transact data through a distributed standard interface.

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

Event-driven

A

components “broadcast” events and others “subscribe” to notifications of these events.

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

component (first fundamental unit of architecture)

A

refers to any abstraction—any code, really—that attempts to encapsulate some well defined functionality or behavior separate from other functionality and behavior. have interfaces that decide how it can communicate with other components

17
Q

connectors (second fundamental unit of architecture)

A

abstractions (code) that transmit information between components. They’re brokers that connect components, but do not necessarily have meaningful behaviors or states of their own. function calls, api calls, events, requests, etc.

18
Q

architectural mismatch

A

Even with carefully selected architectures, systems can still be difficult to put together.

19
Q

when a mismatch occurs

A

connecting two styles can require dramatic amounts of code to connect, imposing significant risk of defects and cost of maintenance.

20
Q

coupled

A

the user interface needs to know a lot about the data, its meaning, and its structure in order to render it meaningfully.

21
Q

refactoring

A

changing the architecture of an implementation without changing its behavior.