Girl with laptop Site banner




 Home > Improve Your UI Design Process with Object-Oriented Techniques
 
  Improve Your UI Design Process with Object-Oriented Techniques
By Gordana Lamb
Originally published in Visual Basic Developer by Pinnacle Publishing, April 2001

With the proliferation of personal computers and Internet use among general population, the importance of easy-to-learn and interactive user interfaces has risen dramatically in the past few years. Yet, despite the promise of user-friendly and intuitive software, we still have a way to go in creating software products that make people’s lives easier and computing experiences more pleasant.

Personally, I think that one of the largest obstacles to user-friendly software is the fact that too many project managers and software developers simply underestimate the importance of good user interface (UI) design. And it seems to me that modern software development tools like Visual Studio actually contribute to the problem because they make user interface layout so easy that it’s easy to omit the design phase altogether. Even when the issue of user interface comes up, developers tend to focus mostly on the visual presentation of the interface - things like the screen layout and types of controls - instead of addressing usability and functionality from a user’s point of view. Granted, good visual design is part of the equation, but the initial good impression may quickly change to frustration if the product does not fit the business needs or user expectations on how it should work.

The key to successful computer-human interface is providing an environment that allows users to focus directly on business tasks and processes rather than computer-oriented aspects such as running applications or finding and saving files. Applying object-oriented principles and methodologies to user interface design can help us achieve this goal because object orientation usually reflects how users perceive and think about the business world around them.

In most graphical computer environments today, users still work with a number of separate applications – for example, they need to open Microsoft Word if they would like to write a memo and Microsoft Excel if they would like to prepare a budget. And, if we want to change this, we need to start moving away from a traditional application-oriented UI design to a more object-oriented model that allows us to focus on our memos and budgets, not the tools we need to create them. That way, we can concentrate on our business tasks rather than having to learn how applications work and where the files are stored on our computer systems. Table 1 outlines some of the differences between the traditional application-oriented and object-oriented approach to user interface design.

Application-oriented UI Object-oriented UI
Icons represent applications or minimized windows. Icons represent business objects.
Work environment consists of applications with primary and secondary windows. Work environment consists of a collection of related objects and object views.
Users must start an application and follow its structure before they can work on their tasks. Users interact with software representation of business objects to perform their tasks.
Each application has a complex menu bar that is shared among application components and represents all possible actions. Each object view has its own menu bar or context-sensitive menu containing actions that only apply to the selected object.
Application title bar shows the file name and the application name. Object title bar shows the object instance name and the view name.
Any changes to window properties need to be saved explicitly. Any changes to object properties are saved automatically. All changes are immediately reflected in all object views.

Table 1 Differences between the traditional application-oriented and object-oriented approach to user interface design.

Object-oriented UI design is based on an iterative process of decomposing a business domain by objects rather than by functions through multiple design cycles. In each iteration, you will perform the following steps:
1. Identify main business objects that describe entities and processes in the company environment.
2. Define views that will be used to present those objects to users
3. Determine interactions between business objects required to accomplish specific tasks.

Step One - Identify the object model

A business object is a software representation of a real-world item, either physical or conceptual. Business objects may represent places, roles of people, transactions, events, physical items, business processes or abstract concepts. Good requirements analysis will provide you with important clues to what your initial set of business objects and their properties should be. One of the methods commonly used for identifying business objects is to underline all the nouns and noun phrases in your requirements or use cases and then create a list of possible business object candidates. In the first iteration, you should focus on a small set of main objects - adding supporting objects only as you “drill down” into the details and refine your design. As you go through this process, always keep in mind that you are working on the interface design and not on defining programming objects required for software implementation.

Step Two - Define Views

Once objects and their properties have been defined, you will need to determine what types of views will be required for each object. Views are simply different ways of displaying the content and properties of objects to users. Views are presented in windows and allow users to interact with each object. You can start with five basic view types (although complex business application may have many others): icon, property, container, composed and information.

Icon views are used to represent instances of an object.
Property views are usually the primary views associated with each business object.  They display object properties and allow users to make changes to those properties.  In object-oriented interface design, menus are object specific and always start with a name of the object represented in the view.  Many commercial and custom applications tend to put a File item on the menu bar even though they never use any files. Contrary to a popular belief among developers, File item does not always have to be the first item on your window’s menu. Even the classic Microsoft Windows Interface Guidelines – now out of print - states that some of the menus like File, Edit, View and Help are not required in all applications.  


Figure 1. Container, property and icon views for a car rental application

Notice that our container and property windows in Figure 1 do not include any OK, Cancel or Save buttons that are common in many Windows applications.  They are not required here because any changes to the object properties are saved automatically when you close the window.  Even today, it’s been my experience that most non-technical users are confused by the idea that you have to explicitly save changes made on the screen and that trying to explain the difference between internal memory and hard drive to them makes things even worse.  There is really no reason why we have to impose the internal workings of a computer on our users.  We should have our software adjust to the way users think, not the other way around.  Because most users intend to save their changes 95 percent of the time when they close the window, saving all of the changes should be a default action.  For those few times when they need to cancel their changes, we can provide an “Undo Changes” menu item that will restore all object properties to their previous values.

Container views allow users to work with collections of business objects, arrange individual objects in a particular order, or move and copy objects between containers. There are many standard containers in Windows environment such as folders, Recycling bin, Outlook inbox, and so on. The Car List container shown in Figure 1 allows users to filter the entire car inventory by location, category and make, display individual car properties, create new car object instances and perform other business function specific to this application. Composed views present information from multiple objects by combining their properties into a single presentation. For example, a car rental agreement can combine customer and car properties in a single view.  Information views provide help, tutorials and other information that can assist users as they work with objects. Help should be available both for each object as a whole and for individual object properties where appropriate.

When designing business applications, we frequently need to provide users with multiple views of the same object. Different views make it easier for users to accomplish their tasks because they are tailored for a specific purpose. Multiple views also allow users to work with multiple instances of the same object at the same time. Both views in Figure 2 are displaying the properties of the Parking Lot object - one as a table and the other as a graph. The important thing about creating multiple views of the same object is to make sure that they are dynamic and well integrated. When a user makes changes to a Parking Lot table, those changes need to be immediately reflected in the graph view.


Figure 2. Multiple views of the parking lot properties for a car rental application

Step 3 - Determine Object Interactions

The final step in your interface design is to determine what actions can modify or manipulate the properties for objects and what interactions between business objects are required to accomplish specific tasks. Again, requirements analysis and use cases scenarios will provide us with information on how business objects will interact.

Both object-oriented interfaces and standard Windows applications rely on the object-action style of user interaction where users first select an object and then decide on an action to perform. However, Windows applications also implement the action-object interaction via indirect methods such as application menus or typing commands. When designing object-oriented user interfaces, our goal is to enable users to directly interact with business objects and other interface elements on the screen. As we migrate our applications toward object-oriented components, indirect methods will be replaced by more dynamic pop-up menus and direct object manipulation.

Pop-up menus are more appropriate in object-oriented design than application menus because they only display actions that are specific for each object or view, reducing user confusion. They eliminate unnecessary mouse movements across the screen and do not take up any screen space as they are displayed only when requested by users.

Direct manipulation is an important aspect of object-oriented user interface design and includes techniques like property inspection and drag and drop. Property inspection allows users to drill down into an object and display or modify its properties by double-clicking on the object or right-clicking on the object and selecting Properties from a pop-up menu. Drag and drop involves selecting an object with a mouse, dragging it to another location and then dropping it by releasing a mouse. As part of our design process, we need to determine what business objects will participate in drag and drop operations and what the default actions are for each object. It is common to have different meanings associated with the same drag and drop operation based on the target destination.

One of the most important things when implementing direct manipulation is to provide visual clues and dynamic feedback about the relationships between actions and results. Changing the visual state of the source object indicates to the user which object is being manipulated. Attaching a transparent image or an outline of the object to the pointer while the object is dragged provides a feedback about the object movements and you should change the mouse pointer to reflect whether the target object accepts the dragged object.

Call to Action

With all the changes in technology, it can only be expected that we will be able to extend direct manipulation techniques in the future to make users’ work more productive and enjoyable. As desktop and mobile computing technologies continue to evolve, using an object-oriented approach can help us face new challenges in the design and development of flexible and effective user interfaces.

 

 

 
  © 2004 Visual Byte Inc. All rights reserved.