Mod 10 Flashcards

1
Q

What are the 5 factors of usability?

A
  1. Ease of learning
    How fast can a user, who has never seen the user interface before, learn it sufficiently well to accomplish basic tasks?
  2. Efficiency of use
    Once an experienced user has learned to use the system, how fast can they accomplish tasks?
  3. Memorability
    If a user has used the system before, can they remember enough to use it effectively the next time or does the user have to start over again learning everything?
  4. Error frequency and severity
    How often do users make errors while using the system, how serious are these errors, and how do users recover from these errors?
  5. Subjective satisfaction
    How much does the user like using the system?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are some methods of usability engineering?

A
  • Gathering requirements
  • Developing and testing prototypes
  • Evaluating design alternatives
  • Analyzing usability problems
  • Proposing solutions
  • Testing the product with users
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the three important response time limits?

A
  • 0.1 second
    This is about the limit for a system to respond so that an interaction feels instantaneous to a user.
  • 1.0 second
    This is about the limit for a user’s flow of thought to remain uninterrupted.
    If the delay is longer than a second, the user will consciously notice the delay.
  • 10 seconds
    This is about the limit for keeping the user’s attention focused on the actions at hand.
    If the delay is longer than 10 seconds, the user will begin to think about other tasks.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the guideline for content depth?

A

Identify instances where user must traverse five or more levels in order to perform a particular action and reduce the depth of these user flows. Use “bread crumbs” to help maintain user orientation.

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

What are the response time guidelines?

A
  • For shorter delays between 2 and 10 seconds, just displaying a busy cursor is sufficient.
  • For delays longer than 10 seconds, consider displaying a progress bar displaying percent-completion of the task. If there isn’t a way to determine percent-completion, displaying messages about the actions being done is helpful to the user.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the guideline for input devices?

A

Gauge the number of times your web app requires the user to shift between input devices. Try to minimizes these shifts. (1 key on keyboard = 1s, 1 click = 1s, changing method = .5s, moving mouse, 1.5s)

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

What is a cheap way to do usability testing?

A

Use a ** paper prototype**!

  • Sketch out the user interface on paper.
  • Have some users interact with the paper as if it is the computer.
  • If something is confusing to people who are using your paper prototype, then change the design.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are three important metrics of web apps for performance?

A
  1. Response time
    The time between sending a request and receiving a response.
    For example, when a user creates a new movie in our example movie app, this is the time between them hitting the button to add the movie and receiving a response about the movie being added by the web app.
  2. Throughput
    The number of operations completed per unit time.
    For example, if a web app completes 500 requests (from any number of web browsers) per second, then its throughput is 500 per second.
  3. Reliability
    The percentage of operations successfully completed.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is local computation?

A

The most important technique for scalable web apps. Whenever a computation uses a very large amount of data, we should aim to move the computation to the data, instead of moving the data to the computation.

Retrieve only the data we need.
Retrieve only the properties we need.
Whenever possible, compute the result where the data resides and send the computed result over the network to where it is needed.

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

Explain the technique of minimal size messages.

A

Since communicating requests and responses over the internet is a major component of the response time of a web app, sending requests and responses with minimal size helps improve the performance and scalability of a web app.

  1. reduce the size of static content. (minifier for HTML, CSS, JS, npm, npm run build for react SPA.
  2. Minimize the size of messages is by using a concise data format such as JSON instead of XML
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explain the technique of caching.

A

Caching means that after we fetch or compute some data, we save it so that we don’t have to fetch or compute it again. Caching is a general technique used in all types of apps. In web apps, we can use caching in the browser, the web server, and the DBMS.

Specifically, the browser can act on the following HTTP response headers to decide when and how to cache static content:
- Cache-Control or Expires header tells the browser whether the document should be cached and for how long
- Etag or Last-Modified header provides info to see if the document has changed or not.

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

What are two architectures for scaling a web app?

A
  1. Scale-Up
    Scaling up means expanding capacity by using a server machine that is more powerful, i.e., it has a faster CPU or more CPU cores, more memory, etc.
    Scaling up can work up to a certain point because there is a limit on how powerful a single server machine can be.
  2. Scale out
    Scaling out means expanding capacity by adding more instances of the server.
    Scaling out is usually more cost-effective because instances can be added or removed as the loads goes up and down.
    Scaling out can also make the app more fault-tolerant. If one instance fails, the other instances can still process requests.
    As developers, we must write our apps keeping in the mind the possibility of scaling out. (no storing state on an instance)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the difference between authentication and authorization?

A

Authentication is about verifying that you are who you say you are while authorization is able specifying what you are allowed to do and access (once we know who you are).

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

What are the CIA security areas?

A
  1. Confidentiality - keep secrets secret!
  2. Integrity - don’t allow data to be damaged
  3. Availability - users should be able to get data quickly and reliably
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How do we handle the logging of urls?

A

We must assume urls are being logged (likely on the web server) and not send any confidential information in a parameter.

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

How do we handle Man-in-the-middle threats?

A

This refers to the possibility of someone logging data as it moves between the browser and server. We protect from this using encryption.

The solution is to encrypt all data during communication by using the HTTPS protocol. This requires configuring the server with a digital certificate issued by a certificate authority or CA. Browsers trust certificates issued by a known CA.

17
Q

How do we handle network attacks?

A

Using a firewall to control the network traffic based on security rules about access inside a trusted network and access from the untrusted network.

18
Q

How do we handle injection attacks?

A

Injection attacks involve inserting something into the web app code that doesn’t belong there.

One defense against these attacks is to always validate and clean all inputs before using it. Note that we cannot rely on validation done only on the browser side because a malicious user can change the JavaScript code that is downloaded to the browser and bypass the validation.