Lecture 16: Cohesion and Coupling, Users and Usability Flashcards

1
Q

What are the ways to measure independence?

A

Cohesion and coupling

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

What is cohesion?

A

A measure of the relative functional strength of a model
Higher cohesive systems have increased readability and reusability
Cohesive if methods are similar in many aspects

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

What are the types of cohesion?

A

Functional (best)
Communicational/Informational (almost as good)
Procedural
Temporal
Logical
Coincidental (worst)

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

What is coincidental cohesion?

A

Difficult to describe the module’s functions or activities
Module performs series of unrelated activities

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

What is logical cohesion?

A

Modules which perform logically related activities are directed by the calling program or an internal control variable

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

What is temporal cohesion?

A

Modules which perform activities related by time, must be done together
Functions are weakly related to each other

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

What is procedural cohesion?

A

Performs more than one function, which are problem related and carried out in a time related sequential order

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

What is communicational/informational cohesion?

A

Performs more than one function on the same data
Related sequentially (time) and procedurally

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

What is functional (best) cohesion?

A

Modules that perform exactly one function, a single well-defined task

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

What is coupling?

A

A measure of the relative interdependence among modules
Changes in one place may require changes somewhere else

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

What are the types of coupling?

A

Data (best)
Stamp
Control
External
Common
Content (worst)

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

What is content coupling?

A

Two modules are content coupled if one directly references the contents of the other

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

What is common coupling?

A

Two components have and use write access privileges to the same global data

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

What is external coupling?

A

Modules use or pass data and/or control signals to external systems or devices

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

What is control coupling?

A

Two components are control coupled if one passes an element of control to the other component

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

What is stamp coupling?

A

Components pass data structures (classes) as parameters

17
Q

What is data (best) coupling?

A

Two components are data coupled if all parameters (data items) are used by the called routine

18
Q

What should user interfaces strive for?

A

Usability

19
Q

How do we ensure UI is usable?

A

Recruit users to test
Collect feedback
Understand the users’ goals, experience, etc.

20
Q

Why should we ensure UI is usable?

A

Reduced training and support costs
Reduced time to learn
Reduced development costs
Better prioritization

21
Q

What is usability for UI design?

A

How easy is it to accomplish a prescribed task using the product?
Learnability, Discovers, Efficiency, Error Handling

22
Q

What is utility for UI design?

A

Ability of a product to perform a task or tasks

23
Q

What is likeability for UI design?

A

How the user feels, styling and flash

24
Q

What are the principles for UI design?

A
  1. Always test with users
  2. Identify tasks and design your UI around them
  3. Make tasks as simple as possible
  4. Give hints about what should be done next
  5. Provide clear and concise feedback
  6. Effective error handling
  7. Ensure users can get out, go back, and undo
  8. UI should be uncluttered as much as possible
  9. Design for multiple user groups
  10. Provide help
  11. Be consistent