UI logo
The Webzine for Interaction Designers
uidesign.net
 
     
Page 2
David facilitating a UI Design Session
Feb 99 Book Review
Object Oriented Project Management with UML
buy this book now
by Murray Cantor, Wiley, 1998
ISBN 0-471-25303-0
Practical Analysis & Design for Client/Server & GUI Systems
buy this book now
by David A. Ruble, Yourdon Press, 1997
ISBN 0-13-521758-X

Read the Author's Feedback to this review

UI in the Bigger Picture

<< page 1

The next book doesn't have such a trendy title. The buzz words here are distinctly middle-aged and due to be pensioned off. Evidently the copy writers at Yourdon aren't so sharp, but how does the book measure up?

Practical Analysis & Design for Client/Server & GUI Systems

by David A. Ruble, Yourdon Press, 1997

The Foreword to this book by Ed Yourdon almost put me off reading it. He talks about Structured Analysis and Design and criticises the younger generation for ignoring it as out-dated and irrelevant. It would have been a pity, as I would have missed two key additions to the field of User Interface Design which sneaked into this general book on Client/Server development. The author introduces a measure of Window Cohesion, based on the measure of cohension for functional code, and also a Notation for Window Navigation - of which more later.

It is obvious from the title of the book that the author is more confident with User Interface Design than Cantor. As it happens, GUI is the subject of 3 of the 13 chapters. Chapter 6 describes developing an Interface Prototype, Chapter 10 is titled "Graphical User Interface Concepts" and Chapter 11 titled "External Interface Design" takes us into the area of documenting a UI Design and presenting it to the customer.

Outline

This book seeks to cover the whole topic of analysing, architecting, designing and documenting a Client/Server system of, what is now called, the "traditional" variety. That is to say, a system with a big multi-user database on the server and a lot of fat clients running a GUI application which accesses the database, in a safe controlled transactional manner. Building such a system involves a project and inevitably Project Management, and organisation does get a mention. In fact chapter 2 is almost dedicated to it.

Chapter 3 takes us through some basic revision on DFDs and Context models. Chapter 4 is about the Event model which I detail later. Chapter 5 covers the Information model along with Entity Relationship Diagrams and State Transition Tables. Chapter 7 on wrapping up analysis with some good stuff on documenting business issues and moving from profound to merely simple ignorance of a domain - a process which sees the number of issues rise, not fall. Chapter 8 is about Client/Server Architecture and 9 covers RDBMS design. With 12 covering an introduction to OO, that wraps up the quick tour. A book which brushes across all the issues in traditional Client/Server systems with a big database. So what is there in this book which is really interesting? Plenty!

Analysis and Design

Chapter 1 has some excellent insights on analysis and the characteristics of a good methodology. The author looks in turn at design and then analysis methodologies. For the UI designer, this was one particularly memorable point

Good design should encourage decision-making by helping to evaluate choices.

User Interface gets its first mention on page 22 as the author lays out his "Software Development Pyramid" with Interface Prototype very close to the top. He elaborates by saying, "I am a strong advocate of an early prototype....... On some projects, I have used prototyping ... to drive out business event requirements..."

Events

The real action starts in Chapter 4. We are told

Event Modelling is a way of defining the system's requirements from the User's point of view.

This begins to sound important! This Chapter goes on to detail a wholly different way to describe the requirements . There are no Use Cases in this methodology. The Event model is useful to the Interface Designer

the event model provides the business rationale for navigatoin and window content

The rest of Chapter 4 goes on to tell us how to build an Event Model and carefully detail what is an Event and how to recognise one. We are told how to analyse them with Event Matrices and classify them into types. There is a good section detailing strategies for uncovering events including how to interpret a User Interview and translate it into events. Unfortunately this section is all too brief. The section on classification of events is also too brief as it hints at patterns which apply to different kinds of events and acknowledges that pattern recognition is a key element in re-usablility. A lot more work could have been done here to expand all of this theory. The classification strategies continue with suggestions like sequence events by time, group by User Role and group by Object. The chapter finishes up with a brief discussion on dialogue level events and identifying when and where a detailed discussion with the User is necessary.

Interface Prototype

Leading on from the Event Model and the classification of events along with the information model, the book moves on to explain how to turn this into a prototype User Interface. This is being done early as part of the analysis. We are reminded that

Prototyping should always be done with a specific learning objective in mind

and that the Interface Prototype will for the first time draw the Users into the system development and give them a real interest in the outcome. The author also observes that you cannot finish the information or event models until this is done as change is inevitable. Prototyping also causes business issues to surface. This is the phase of moving from profound ignorance to simple ignorance. There follows some debate on the pros and cons of prototyping and some attempt to describe the detail involved. There is a hint of one or two strategies for determining the fidelity of the prototype required. Using a worked example, the author goes on to show us how the event model and the classification we obtained earlier can be used to determine the outline shape of the User Interface. This chapter is littered with strategies for, and patterns of, User Interface. They come thick and fast. without real recognition of their significance. This is a section which is worth reading carefully a few times over. Finally there is a section on reviewing with the Users - such a necessary step. Chapter 6 is excellent and I haven't seen any other book which tried to tackle practical UI prototyping in this way. The real pity with it is that it is rushed and too thin. There is so much more that could have been said here.

GUI Concepts

Chapter 10 comes back to UI and introduces the very interesting concept of Window Cohesion which is a measure of the number and type of business events which are managed within a window. Just like code cohesion, window cohesion gives us a measure of how re-usable a window will be, by indicating how detached or de-coupled it is from the rest of the system. The author has chosen to lift the names for the cohesion levels directly from the earlier work by Constantine and Yourdon for code cohesion. Programmers will find the language familiar. I found this section most thought provoking, as the author walks us through Functional, Sequential, Communicational, Procedural, Temporal, Logical and Coincidental cohesion. I wanted to go back and analyse some of my old designs and see how they measured up.

Before arriving at this interesting stuff, we have to wade through a lot of background. The Microsoft guidelines get a mention and so does Galitz. This stuff has been covered in a lot more depth elsewhere. The usual set of rules are regurgitated. The text is interspersed with some more strategies and patterns but you have to read carefully to extract these. The author firmly lays out his belief that Object-Action is best. Hmmm.

External Interface Design

Chapter 11 takes us to documenting the UI Design. A good design specification of the windows, navigations and data descriptions, we are told, makes an excellent tool for communicating the design proposal to the Users. Take note - all you Use Case fans! The author introduces a 7 piece document including Window Navigation Diagram, Window Layout, Window Description, Window Mini-spec & Field description. This collection he calls his External Interface Design. I recognised this. I call it a High Level Design.

A Notation for Navigation

To draw a Window Navigation Diagram, the designer needs a notation to describe the windows and the inter-window navigation. We are introduced to a technique derived from Entity Relationship Diagrams - not my own favourite choice but the industry has needed something like this and I think the development of a notation similar to an object modelling notation is long overdue.

We are then given a walk-through of window type e.g. Main Window, Pop-up Window, MDI Frame etc.. I thought that this was a little too operating system specific and it only helps to confuse at this stage. It may have been clearer simply to leave it out.

Unit of Work

If you don't develop line of business applications which talk to databases, you may never have had to consider anything more complex than a file "save". If you do develop big business apps then you'll know that the database transaction scoping is a real issue. Ruble tackles it here by showing how the transaction scoping - the unit of work - can be determined whilst documenting the navigation. He overlays the unit of work onto the Window Navigation Diagram. I found this a clear and well-thought-out technique. There are a few more tips in the form of strategies and pattern observations, if you read carefully.

Chapter 11 concludes with a section on testing UI. This section describes how UI testing can move to ever increasing scope from characters and graphics through field lengths out to window navigation and business events. It then makes the very, very important point that the testing should be performed in reverse order! How often have you been told that a label is mis-spelled or a field is too short but when you ask, did the transaction happen or is the business logic complete, the test team can't tell you yet!

Summary

A very thought-provoking book which is aging fast due to lack of OO content. However, it does add significantly to the body of work on UI Design. Unfortunately, tries to cover too big a field in insufficient depth. It does provide an interesting alternative to Use Cases for describing and capturing the requirement. The author is firmly in the Object-Action UI Camp and it shows too often. Pity. If you're involved in a "traditional Client/Server" project using a big database at the server end, then this is an important book for you.

For me the best part was the final chapter. The 10 Myths of Client/Server Development. They are real! Don't get caught. The cartoons are good too. :-)

Recommendation

4/5 - Well enough written, hopefully someone will pick up the UI ideas in this book and take them further.

The author can be contacted at http://www.ocgworld.com

The authors feedback to this review can be read on the Feedback page.

<< 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