In the quest for quality, software developers have long focused on improving the internal architecture of their products. Larry L. Constantine--who originally created structured design to effect such improvement--now joins with well-known consultant Lucy A. D. Lockwood to turn the focus of software development to the external architecture. In this book, they present the models and methods of a revolutionary approach to software that will help programmers deliver more usable software--software that will enable users to accomplish their tasks with greater ease and efficiency.
Recognizing usability as the key to successful software, Constantine and Lockwood provide concrete tools and techniques that programmers can employ to meet that end. Much more than just another set of rules for good user-interface design, this book guides readers through a systematic software development process. This process, called usage-centered design, weaves together two major threads in software development methods: use cases (also used with UML) and essential modeling. With numerous examples and case studies of both conventional and specialized software applications, the authors illustrate what has been shown in practice to work and what has proved to be of greatest practical value.
Click below for Web Resources related to this title:
forUse: The Authors' Web Site for Practitioners of Usage-Centered Design
I. TOWARD MORE USABLE SOFTWARE.1. Software for Use: Usage, Usability, and User Interfaces.
Changing Contexts.2. Built-in Usability: A Usage-Centered Design Approach.
Interfacing with Users.
Elements of a Usage-Centered Approach.
Coordinated Activity.3. In Principle: Rules and Principles of Usage-Centered Design.
Design as Dialogue.
Rules and Principles.
User Interface Design Principles.
Details, Details, Details.
II. ESSENTIAL MODELS FOR USABILITY.4. Users and Related Species: Understanding Users and User Roles.
Of Use and Users.
Real Users and Others.
User Role Models.
User Role Maps.
User Roles in Action.
Structured Role Models.5. Working Structures: Task Modeling with Essential Use Cases.
Work, Work, Work.
The Use Case Map.
Building Essential Use Case Models.
Application.6. Interface Architecture: Interface Contents and Navigation.
The Context Navigation Map.
III. CREATING THE VISUAL DESIGN.7. Designing the Dialogue: Layout and Communication.
From Abstraction to Expression.
Screen Real Estate.8. Practical Widgetry: Choosing and Designing Visual Components.
Buy or Build.
Selecting Selection Widgets.9. Innovative Interfaces: Creative Interface Engineering and Custom Components.
The Process of Innovation.
IV. COMPLETING THE DESIGN.10. Expressing Solutions: Implementation Modeling and Prototypes.
Prototypes and Prototyping.
Mapping the Models.
Implementation Modeling Illustrated.11. Help Me if You Can: Designing Help and Helpful Messages.
Even Experts Need a Lift.
Use Cases for Help.
Access and Presentation Techniques.
Special Techniques and Modalities.
Helpful Messages.12. Once a Beginner: Supporting Evolving Usage Patterns.
Skiing the Interface.
Designing for Progressive Usage.
Progressive Usage Applied.13. In Place: Fitting the Operational Context.
Putting Context in Place.14. Same Game, Different Fields: Special Applications, Special Issues.
Theme and Variation, Again.
Web Design for Use.
Web Wisdom Applied.
Embedded Systems Applications.
Other Special Interfaces.15. Usage-Centered Design Applied: The TeleGuida Case.
TeleGuida Users and Uses.
Toward a TeleGuida Prototype.
V. ASSESSMENT AND IMPROVEMENT.16. Better Next Time: Improvement by Inspection and Review.
Collaborative Usability Inspections.
Focused Inspections.17. By the Numbers: Measuring Usability in Practice.
User Interface Design Metrics.
Essential Usability Metrics Suite.
Metrics in Practice.18. Test Scores: Laboratory and Field Testing of Usability.
Testing, One, Two.
Why Test, Why Not.
VI. ORGANIZING AND MANAGING THE PROCESS.19. Code and You're Done: Implementing Interfaces.
Objects and Interfaces.
Visual Development of Visual Designs.20. Using Your Users: Users in the Development Process.
Use or Abuse of Users.
Requirements Dialogue, Requirements Dance.
Going to the Source.
Joint Essential Modeling.21. Getting Organized: Usability in the Larger Context.
Standards and Style Guides.
Experts and Expertise.
Cultural Fit.Appendix A. Suggested Readings.
Software Usability.Appendix C. Glossary.
Software for Use is a book for professionals under pressure, for those who work under the dual demands for high-quality software-based systems on the one hand and faster delivery with fewer resources on the other. This book shows how to use streamlined techniques to make software-based systems significantly more usable and useful regardless of whether these systems are installed on desktop computers, ensconced on large mainframe servers, embedded in industrial electronics, or accessed via the World Wide Web. It is written primarily for computer software and applications developers--the analysts, designers, engineers, and programmers who are responsible for producing software systems. In concept, perhaps, usability ought to be the bailiwick of usability specialists. In practice, however, developers of various stripes make the vast majority of the myriad decisions that shape and determine the ultimate usability of software-based products; it is for these frontline troops of the industry that this book was conceived.
Usage-centered design, the approach taken in this book, originated with our own frustrating experiences as users of software and our recurring dissatisfaction with software that was unnecessarily awkward and difficult to use. The wealth of established knowledge about human-computer interaction was somehow not being fully translated into more usable products. As we studied how software-based products were being developed, we began to understand where things were going wrong and what needed to be changed in order to deliver better systems.
Usage-centered design is a streamlined but systematic approach for devising software closely fitted to the genuine needs of users--software that is not only more useful and easier to use but also simpler and easier to construct. Usage-centered design is tailored to the high-pressure realities of modern software development. Using a few simple but powerful models, it provides a scheme for quickly understanding users in relation to systems, their working intentions in carrying out tasks, and the support they need from the system to perform those tasks. Its methods and models can be applied within almost any software development life cycle (SDLC) model and incorporated into almost any modern development practices, including various object-oriented (OO) approaches such as the Unified Modeling Language (UML). Usage-centered design is not partial to any one language or platform, being equally effective with rapid iterative development using the latest integrated visual development environments or with character-based control systems running on specialized hardware.
A major part of our message to designers and developers of every ilk is simple: Usability is not rocket science. It is often hard work and invariably requires great attention to detail, but, given a few basic conceptual tools, you, too, can learn how to recognize problems in usability and how to improve the usability of the systems you develop. Professor Woody Flowers of the Massachusetts Institute of Technology has given cameras to middle-school students, who then must photograph hard-to-use things and explain the problems. If untrained teenagers can manage the basics of usability, competent adults ought to be able to master the essentials.
Quite honestly, we think the model-driven approaches explained in this book can be of value to almost any professional with responsibility for product design and development, and that includes a full range of design specialists, from user interface and interaction designers to ergonomicists and human factors engineers, from graphic artists and industrial designers to human-computer interaction specialists and usability testers. In our experience, the most important prerequisite is not a particular academic degree or level of applied experience, but the willingness and ability to approach the material with an open mind.
In our own design work and teaching, our emphasis has always been on simple, powerful techniques that can be quickly learned and applied. For example, a free-lance designer specializing in Web-based applications learned about usage-centered design techniques in a short conference presentation and was able to apply them immediately in her work. After attending a one-hour lecture, a project leader at a computer peripherals company taught his group how to improve the user interfaces of their software through use case models. Around the world are companies successfully applying these techniques to problems as diverse as banking applications, industrial automation controls, and commercial software development tools.
We should not give the impression that usage-centered design is for everyone or for all problems. We use models as a kind of vaulting pole, to gain leverage and height in hurdling the problems of user interface design. In our experience, using simple models to understand a problem and potential solutions speeds up the process, but some newcomers to such techniques will find it difficult not to just skip up to the bar and leap before they look.
Although we both have backgrounds heavy in the human sciences, we draw a sharp distinction between interesting research issues and the realities of everyday decision making. Among academics and professionals are those who seem to believe that human-machine interaction can be understood only through cognitive and perceptual psychology, that a thorough grounding in the academic literature is a prerequisite for doing effective interaction design. Our own views are that many of the complexities and subtleties that loom so large for researchers and research laboratories are of lesser consequence in everyday decision making.
We consider the creative urge a vital force in good design, but we base it on a platform of sound engineering. Some professionals who think of user interfaces as a form of theater or consider design to be based primarily on artistic inspiration have had to struggle with the methodical nature of usage-centered design. On the other hand, the enthusiastic converts to our model-driven approach include designers and artists who have found that abstract models can inspire greater creativity.
In organizing the book, we have striven to live up to our subtitle, creating a practical guide that is more than an introduction even if perhaps less than a handbook. To this end, the book is organized into distinct sections. Of course, they are written with the expectation that most readers who want to understand the material thoroughly will take them in sequence. In particular, most of the later chapters depend to a substantial degree on the conceptual foundation laid in the first six chapters. In fact, if all you seek is a general understanding of usage-centered design, Sections I and II cover the core material. In Sections III and IV, we shift to the sundry and sometimes messy details of practical application. This is likely to be of particularly keen interest to developers, especially those with limited background in user interface design, but we would not recommend beginning with these sections.
In keeping with the practical, applied focus of the book, numerous small specific examples are used throughout the text. In addition, we have included two completely worked-out applications of usage-centered design. One, introduced in Chapter 4, is used for illustration throughout the middle chapters and concludes in Chapter 10; the other forms the whole of Chapter 15. If you are one of those "get-down-and-dirty" detail-oriented developers who cannot resist seeing how it all works out in the end, you might begin with the applied example in Chapter 15 before going back to build the necessary background by working through Chapters 4 through 14.
Because we see on-line documentation to be an integral feature of the user interface and a major factor in usability, we have devoted an entire chapter to help systems. Once familiar with the basics in Chapters 2 and 3 plus Section II, technical writers and documentation specialists should find much of interest in Chapter 11.
Professionals who already have a thorough background in human-computer interaction and user interface design and who are most interested in what makes usage-centered design unique may want to skip directly to the core material on the models and modeling techniques in Section II. Other material that has proved to be of particular interest to such professionals can be found in Chapter 12 on the progressive usage model and in Chapter 17 on usability metrics.
Managers, project leaders, and others who might be more interested in the management and organizational implications of usage-centered design than in its technical details might start with the first two chapters, then skim Section V on assessment and improvement, and finish off with Section VI on organizing and managing the process.
Despite its long gestation period, the material herein is still a work in progress. Just as it has been enhanced and extended through the contributions of our many students and clients, we anticipate it will also be advanced by you, our readers. As we tell every class we have ever taught, we want to hear from you. So, please tell us about your experiences in putting usage-centered design into practice, and we will keep improving on the usability of the process.