Lecture 16: Cohesion and Coupling, Users and Usability Flashcards
What are the ways to measure independence?
Cohesion and coupling
What is cohesion?
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
What are the types of cohesion?
Functional (best)
Communicational/Informational (almost as good)
Procedural
Temporal
Logical
Coincidental (worst)
What is coincidental cohesion?
Difficult to describe the module’s functions or activities
Module performs series of unrelated activities
What is logical cohesion?
Modules which perform logically related activities are directed by the calling program or an internal control variable
What is temporal cohesion?
Modules which perform activities related by time, must be done together
Functions are weakly related to each other
What is procedural cohesion?
Performs more than one function, which are problem related and carried out in a time related sequential order
What is communicational/informational cohesion?
Performs more than one function on the same data
Related sequentially (time) and procedurally
What is functional (best) cohesion?
Modules that perform exactly one function, a single well-defined task
What is coupling?
A measure of the relative interdependence among modules
Changes in one place may require changes somewhere else
What are the types of coupling?
Data (best)
Stamp
Control
External
Common
Content (worst)
What is content coupling?
Two modules are content coupled if one directly references the contents of the other
What is common coupling?
Two components have and use write access privileges to the same global data
What is external coupling?
Modules use or pass data and/or control signals to external systems or devices
What is control coupling?
Two components are control coupled if one passes an element of control to the other component
What is stamp coupling?
Components pass data structures (classes) as parameters
What is data (best) coupling?
Two components are data coupled if all parameters (data items) are used by the called routine
What should user interfaces strive for?
Usability
How do we ensure UI is usable?
Recruit users to test
Collect feedback
Understand the users’ goals, experience, etc.
Why should we ensure UI is usable?
Reduced training and support costs
Reduced time to learn
Reduced development costs
Better prioritization
What is usability for UI design?
How easy is it to accomplish a prescribed task using the product?
Learnability, Discovers, Efficiency, Error Handling
What is utility for UI design?
Ability of a product to perform a task or tasks
What is likeability for UI design?
How the user feels, styling and flash
What are the principles for UI design?
- Always test with users
- Identify tasks and design your UI around them
- Make tasks as simple as possible
- Give hints about what should be done next
- Provide clear and concise feedback
- Effective error handling
- Ensure users can get out, go back, and undo
- UI should be uncluttered as much as possible
- Design for multiple user groups
- Provide help
- Be consistent