Analysis: Goals and design principles

Goals, Design Principles and Requirement Script

    The unified modeling language - or UML - is used for software engineering projects. It can help us define our use cases by means of a use case diagram. These are also very helpful when it comes to communicating our use cases to stakeholders or software developers. We can use UML to visualize the entire design of our software. We recommend you look into the link we provide you with below the video to understand how we use this modeling language to define use cases.


    Design principles are very useful when you come to designing a prototype or even a product. These are generally applicable guidelines that address issues of behavior, form and content. Essentially, there are a set of rules based upon our values as designers and our experiences in trying to live up to those values. The pyramid on the right side shows you the importance of different values and principles and, as you can see, the design values are those everything regarding our software is based on.

    Conceptual principles help define what a product is and how it fits into the broad context of the use required by its users. Behavioral principles define how a product should behave in different situations and interface level principles are strategies for visual communication of behavior and information.


    When we have a design and a concept, we should check if we have considered all the heuristics. For this purpose we can use this visual presentation where every heuristic is depicted with checkpoints. As you can imagine, this is only an extract but you can find the whole graphic in the paper linked below this video. This paper also shows results of a study testing the usefulness of this proposed checklist for avoiding usability gaps even with non-trained developers. When we write down requirements for our product, we have to ask what our users need and what they want to achieve.


    Requirements consist of the actions our users take, the objects that are available on the user and the context. But be careful: we're not talking about functions or features here. These are the solutions for the user's problems the tools the requirements can be fulfilled with. We've already written the narratives, which are our use cases, now, i ask you how do you extract your requirements? Here's an example for you:


    Thanks for the attention and see you next time!

Use cases (UML)

Specify your application functional requirements based on your personas and goals in a formal way. Use UML Use Case Diagrams (see Chapter 2 Miles, 2006) to describe the functional requirements of your application (e.g., buying, listening, rating, searching).

Consider paths from starting the app until performing a certain action/goal (for example, in case of a music application, listening to a specific track). Consider deviations from that path (like, for a music application, "music not found", "music not offline available", or "song preview").

Ensure that the requirements match different application functionalities (e.g. media library, media store, playback functionalities). These are of course dependent on the original idea of the app. Use a graphic tools of your choice or an online tool like Miró

Templates

UML diagrams by Miró

Task 6.1.

Document (e.g. in .ppt) your UML use-cases in a folder iteration-2/Analysis in the GitHub master branch.

Usability requirements and goals

Use your scenarios to create usability requirements and goals. The functional requirements you have already defined in the UML use cases. Check if these requirements are fullfilled with your current prototype. Feel free to adjust your requirements if needed. Note that, usability goals are user oriented and operationally defined.

Further reading

Chapter 6: The Foundations of Design: Scenarios and Requirements by Cooper (2007), book chapter in About Face 3

Principles

Search and familiarize yourself with a set of suitable design principles that reflect the usabilty requirements and goals you specified above. Do not just (or worse: define as not applicable) the buzz-phrased principles, rather read them (and their sub-categories) in detail.

It is suggested to orientate yourself to the Nielsen's 10 Usability heuristics, and read other rules as information.

Further reading

Chapter 5: Usability Heuristics by Nielsen (1993), book chapter in Usability Engineering

Chapter 8: Synthesizing Good Design: Principles and Patterns by Cooper (2007), book chapter in About Face 3

Heuristic Evaluation on Mobile Interfaces: A New Checklist by Gómez et al. (2014), paper

8 golden rules of Interface Design by Shneiderman, online article

First Principles of Interaction Design by Tognazzini, online article

Task 6.2.

Document (e.g. .ppt) your (new) requirements, usability goals and exemplify how the principles were accounted for and improvements needed in a folder iteration-2/analysis in the GitHub master branch.