Lecture 8 and 9: Reusability and Client-Server Architecture Flashcards

1
Q

What are some pros of reusability?

A

Simplifies design, prevents shortcuts, improves quality

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

What are some cons of reusability?

A

Takes extra time, sometimes management primarily rewards ‘visibility’, costs money

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

What is a framework?

A

Reusable software that implements a generic solution to a generalized problem
Provides common facilities applicable to different applications

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

What is a framework slot?

A

Certain classes or methods are missing
Developer can insert code

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

What is a framework hook?

A

Optional functionality, allowance made for developer to provide it
Allow for flexibility without altering the core code

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

What is a product line?

A

Set of products built on a common technology base (e.g. Windows 10 Home, Ultimate, Business, etc.)

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

What is a distributed system? What are the key aspects?

A

System of discrete networked components, distribute workload across multiple devices
Attributes: Have concurrency, lack a global clock, can encounter independent failure of components, coordinate by passing messages

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

What is a client-server architecture?

A

One kind of a distributed application or system
Server: Program that provides a service for other programs
Client: Program that accesses one or more servers to obtain services
Communication Channel: Generally a computer network, client must initially know sever, but not vice versa

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

What is a basic client-server sequence?

A
  1. Server starts running: creates a socket, binds socket to an address, waits/listens for clients
  2. Client requests something from the server: creates a socket, attempts to connect to the server
  3. Server accepts connection
  4. Send and receive data (read and write)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the advantages of client-server?

A

Work can be distributed among different machines
Client can access server from a distance
Client and server can be designed separately, so they can both be simpler
Data can be kept centrally at the server
Server may be accessed simultaneously by multiple clients

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

What is a thin client?

A

Client is as small as possible, most of the work is done on the server, the client is easy to download

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

What is a fat client?

A

As much work as possible delegated to clients, server can handle more clients

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