Software Architecture that supports Usability är en ambitiös genomgång av ett stort antal olika definitioner av användbarhet, grundläggande modeller och termer.
“Below are the usability attributes that most authors agree:
- Learnability, which is composed of two complementary aspects: how quickly users can learn to use the system for the first time and how easy it is to remember how to operate the system after not having used it for some time.
- Efficiency of use, which refers to how efficiently the user performs a task using the system, that is, this attribute measures the efficiency of the software system used by the user. Note that this attribute is not the same as the classical quality attribute of efficiency, understood as system efficiency.
- Reliability of use. Again, this parameter is not to be confused with system reliability. It refers to the reliability of the user performing a task using the system. Therefore, this attribute refers to the errors made by the user when using the system, not the system errors.
- Satisfaction is the most subjective attribute and refers precisely to the user’s subjective view of the system.
However, we found that these usability attributes are very far removed from software design, that is, the effect that these attributes have on software architecture cannot be determined directly. Therefore, the approach that we followed was to decompose these attributes into intermediate levels of concepts that are increasingly closer to the software solution. The first one of these concepts was the usability properties. They represent particular usability issues that HCI researchers have proposed to help developers to build usable systems. We compiled these design heuristics and principles that different authors suggest for developing more usable systems arrived at the following usability properties for a software system:
- Keeping the user informed. The system should inform users at all times so that they know what is going on.
- Error management. The system should provide a way to manage errors. This can be done by error correction or error prevention.
- Consistency. The system should be consistent in all aspects of interaction, that is, in the interface and in the way we provide functionality.
- Guidance. We should provide informative, easy-to-use and relevant guidance and support both in the application and in the user manual to help the user understand and use the system.
- Minimize cognitive load. Systems should minimize the cognitive load, e.g., humans have cognitive limitations, and systems should bear these limitations in mind.
- Explicit user control. Users should feel that they are in control of the interaction.
- Natural mapping. The system should provide a clear relationship between what the user wants to do and the mechanism for doing it.
- Ease of navigation. Systems should be easy to navigate.
- Accessibility. Systems should be accessible in every way that is required. This property includes internationalization, multi-channeling and accessibility for disabled people.”