Mod 10 Flashcards
What are the 5 factors of usability?
- Ease of learning
How fast can a user, who has never seen the user interface before, learn it sufficiently well to accomplish basic tasks? - Efficiency of use
Once an experienced user has learned to use the system, how fast can they accomplish tasks? - 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? - 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? - Subjective satisfaction
How much does the user like using the system?
What are some methods of usability engineering?
- Gathering requirements
- Developing and testing prototypes
- Evaluating design alternatives
- Analyzing usability problems
- Proposing solutions
- Testing the product with users
What are the three important response time limits?
- 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.
What is the guideline for content depth?
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.
What are the response time guidelines?
- 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.
What is the guideline for input devices?
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)
What is a cheap way to do usability testing?
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.
What are three important metrics of web apps for performance?
- 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. - 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. - Reliability
The percentage of operations successfully completed.
What is local computation?
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.
Explain the technique of minimal size messages.
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.
- reduce the size of static content. (minifier for HTML, CSS, JS, npm, npm run build for react SPA.
- Minimize the size of messages is by using a concise data format such as JSON instead of XML
Explain the technique of caching.
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.
What are two architectures for scaling a web app?
- 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. - 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)
What is the difference between authentication and authorization?
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).
What are the CIA security areas?
- Confidentiality - keep secrets secret!
- Integrity - don’t allow data to be damaged
- Availability - users should be able to get data quickly and reliably
How do we handle the logging of urls?
We must assume urls are being logged (likely on the web server) and not send any confidential information in a parameter.