UI logo
The Webzine for Interaction Designers
uidesign.net
 
     
Page 2
Book Reviews
This Month's Books
Designing Visual Interfaces - communication oriented techniques
Mullet & Sano
by Kevin Mullet & Darrell Sano, Sunsoft Press, Prentice Hall, 1995
ISBN 0-13-303389-9
Developing User Interfaces
Dan R. Olsen
by Dan R. Olsen Jr., Morgan Kaufmann, 1998
ISBN 1-55860-418-9
Design and Development of UI

<< Page 1

Developing User Interfaces

by Dan R. Olsen Jr., Morgan Kaufmann, 1998

Introduction

Browsing through this book, I felt that a lot of it was familiar. A quick look at the Endnotes told me why. The list of reference material read like 2' of my bookshelf. Titles by Alan Dix et al, Eberts, Don Norman, Deborah Mayhew, Jakob Nielsen and most noticably Foley, van Dam, Feiner and Hughes, Computer Graphics:Principles and Practice - what was that doing here?

The Preface tells us that this book is not intended for UI Designers but for coders. Curiously then, the first two chapters are about design.

The introductory chapter wastes our time with pointless background on the history of computers and then tells us about Computer Graphics, Human Factors, Usability, Object Oriented Software, a process for User Interface Design including background material from Don Norman. There is a page and a half on "Designing the Functional Model". I thought about how to summarise this for a long time and the best I could do was - Simplistic Nonsense. It is followed by two pages on presentation which is covered in much greater depth by Mullet & Sano. In summary, the process described tells us nothing. It certainly isn't a methodology.

Chapter 2 expands on the Functional Model nonsense from earlier. It gets better as we go into greater depth and a few good points are made. There is 12 pages on Task Analysis and a worked example for a Student Registration system. A very good point is made that most Users cannot abstract their job and are incapable of radically rethinking their working practices, while they may have some simple ideas for localised improvement. This is an important point for System Designers and Architects everywhere. The tail end of section 2.4 is also good. It advises programmers that UI Design is best done by UI Designers and these people are often not programmers but should be given respect for their own abilities in design, psychology, anthropology etc.. When we move onto Functional Design it all goes pear-shaped. A section entitled "Object-oriented functional design" - surely an oxymoron! Its hard to talk about good UI code design without talking about OO, but this is so superficial as to be largely useless.

Graphics

Chapter 3 gives an overview of computer graphics. This is laying the ground for talking about windows and widgets but it really doesn't belong here. The author could have assumed a basic understanding and should have given a reference to other material. Chapters 9 through 12 give a lot more detail on Graphics and really this doesn't belong on a book on UI Development and can be better found elsewhere such as the Foley et al book which is referenced.

UI Technical Architecture

Most of the book talks about UI Technical Architecture and Design for code implementations. It does so in a platform independent manner. The discussion pre-dates Java and therefore, the Java 1.1 Event Model is missing from the discussion, as too are Interfaces. The author consistently refers to Abstract Classes for interface definitions.

Chapter 4 covers the Event Model. Its aimed squarely at the absolute novice. 10 years ago this might have been useful but nowadays it is covered much more adequately elsewhere. The Main Event Loop is really a specific reference to older technology.

Chapter 5 introduces us to MVC architecture. It has some good elementary discussion of the benefits and uses examples like screen rendering and an E-CAD package to make its points. A lot of nonsense gets talked about MVC but this is refreshingly clear. The author then states that in this book he will couple View and Controller into one class. He could have made more of this and pointed out to us that it is usually done this way in reality. As he gets deeper into these architecture issues, there is a lot of unexplained OO Design and use of inheritance. This could mislead the novice. The lack of OO Diagrams makes it difficult to follow what is going on. Curiously, Design Patterns (from the Gang of 4) never get a mention. Surely a major oversight in a book on UI Architecture!

When it comes to notification, the author fails to point out that the notification mechanism is best delegated away from the model classes to avoid polluting them with mere plumbing. He also fails to provide any credible design for such a notification mechanism. Another hole in this book. Overall, Chapter 5 was just enough to confuse a novice and perhaps arm him with a dangerous level of insufficient knowledge.

Chapter 6 is an introduction to widgets and UI Look and Feel with discussion on topics like enable/disable, active/inactive, focus gained/lost. There is an overview of the advantages of parameterising the look into Resource Files.

Chapter 7 moves onto real development - composing widgets together to build an interface. There is also a discussion on layout strategies such as Struts and Springs. Chapter 8 looksat Input syntax and correctly points out that Finite State Machine just doesn't scale to UI problems. We are walked through the actions, events, and states for a collection of widget types such as Scrollbar, Menu, TextField, introducing PPS notation as a useful alternative to state machine.

Chapter 13 is about Cut, Copy and Paste. We get an introduction to Clipboards, Publisher/Subscriber architecture and Embedded Editing.

Chapter 14 covers Undo and Macros and introduces the concept of clearly bounded commands. There is no mention of Command Pattern, or any Object Model design offered. The chapter is divided by a curious section on Groupware - what is that doing in this book?

Summary

This book reflects the fact that the author has a mastery of a bunch of stuff related to computer screens and has chosen to collect it all together for teaching purposes. It just doesn't gel together. It is superficial and unfocused. It covers UI Design, UI Technical Architecture and Computer Graphics. You just can't write a book that broad in subject and remain platform non-specific in 1998. This book is 10 years too late.

The author has missed a real opportunity to address elementary UI Technical Architecture in depth. Coming as it does in 1998, it ought to contain references to Design Patterns which were invented for UI Toolkits and it ought to be riddled with Object Model diagrams explaining the designs that he is using.

I couldn't think of any good purpose for this book until I read a review at Amazon.com which suggested that it was useful as a college primer for a quarter introductory course. Even then I am unsure. There is sufficient bad advice on OO Design to give a novice the wrong impression.

Recommendation

1/5 - Too wide and no depth. Serious UI developers need to read this stuff in greater depth in specialist books.

<< Page 1

uidesign.net
hosted by likk.net
           
 
Copyright uidesign.net, 1999 - 2003.
The UI logo device and uidesign.net wordmark are trademarks of uidesign.net