Интерфейс: новые направления в проектировании компьютерных систем.

B. Теория работы интерфейса для SwyftCard.

Некоторые из принципов, рассмотренных в этой книге, впервые были опубликованы в 1984 году в руководстве для SwiftCard. Система SwiftCard, предназначенная для довольно успешного в то время Apple II, была (по сегодняшним стандартам) простой. Приложение к ее руководству имело необычное содержание. Вместе с обычным, традиционным изложением принципа работы электронной начинки этого устройства предлагалось теоретическое описание работы программного обеспечения, а также информация о теории работы пользовательского интерфейса. Это, пожалуй, был первый случай, когда информация такого рода сопровождала коммерческий продукт. В некотором смысле то приложение можно считать началом этой книги. Нижеследующий материал взят из второго издания руководства (Alzofon и Raskin, 1985).

Подходы, на основе которых была создана SwiftCard, разрабатывались с целью решения целого ряда проблем, которыми страдают почти все современные системы. Большинство из этих проблем сами по себе являются довольно небольшими, но в совокупности они приводят к тому, что процесс изучения и использования существующего программного обеспечения чрезмерно замедляется, что вызывает раздражение и усталость от использования компьютеров.

Например, мы всегда удивлялись, почему пользователю приходится форматировать диски. Разве компьютер не способен самостоятельно определить, форматирован диск или нет, и при необходимости выполнить форматирование? Кроме того, нам кажется, что клавиши для управления курсором работают слишком медленно, а если учесть то количество дополнительных команд, которое они требуют (для перемещения к следующему/предыдущему слову, предложению, абзацу, странице; для перемещения к началу или концу строки, документа или файла), то, на наш взгляд, они являются также и слишком сложными. ГУВ существенного улучшения не приносит, поскольку большая часть этих устройств заставляет пользователя убирать руки с клавиатуры, а также требует много экранного пространства для меню, полос прокрутки и других механизмов, связанных с использованием ГУВ. Необходимость работать с меню вместо того, чтобы сразу делать то, что нам необходимо, вызывает раздражение, а огромное число команд, которое используется в большинстве систем, ставит нас в затруднительное положение. Мы ненавидим дисковые системы, которые могут допустить потерю информации из-за обычных человеческих ошибок. Нас удивляет, что многие текстовые процессоры не успевают воспринимать информацию, вводимую с клавиатуры человеком.

SwiftCard демонстрирует собой, что хороший проект позволяет решить все эти, а вместе с ними и многие другие вопросы и проблемы, которые беспокоили нас в течение многих лет. Эта система способна работать на недорогом компьютере, имеющем только один диск, и требует минимальных ресурсов памяти. Наш продукт выполняет то, что требуется для большинства пользователей, однако без помощи операционной системы, без ценника с большими цифрами, без капризов в работе.

Основные принципы разработки включают много новшеств и учитывают опыт, использованный в других продуктах.

1. Концепция курсора с функцией LEAP, которая позволяет перемещаться к целевому объекту со скоростью, в среднем в три раза превышающей скорость работы самого лучшего общераспространенного устройства типа мышь.

2. Сам курсор состоит из двух частей, которые точно показывают места, где будет появляться вводимый текст и где будет происходить удаление. Этот же курсор сворачивается при перемещении так, чтобы было удобно удалять.

3. Ограниченный набор основных операций позволяет легко выполнять широкий диапазон задач.

4. Отказ от использования операционной системы позволяет выполнять все операции непосредственно из редактора без необходимости переходить в различные режимы.

5. Устранение режимов в целом способствует формированию привычек, поскольку пользователю не приходится задумываться, в каком состоянии находится система, чтобы определить доступные в этом состоянии команды. Это свойство называется безмодальностью.

6. Отказ от использования множества способов выполнения той или иной задачи – опять же для того, чтобы пользователю не приходилось задумываться о том, какой способ выполнения задачи выбрать. Этот принцип мы называем монотонностью. Так же как и безмодальность, монотонность способствует формированию привычек в использовании.

7. Акцент на формирование привычек сам по себе является основополагающим принципом, однако разработчики зачастую его неоправданно не учитывают. Мы считаем важным, чтобы после короткого периода обучения пользователь мог использовать систему, не задумываясь о ее работе.

8. Команда DISK позволяет снять сложности, которые обычно возникают при использовании дисковой операционной системы (DOS). Используется только одна простая команда. Она же позволяет защитить данные от наиболее частых ошибок, приводящих к потере информации. Возможность для создания такой команды дает метод, при котором один диск соответствует одному Тексту.

9. Создание зависимости скорости работы от частоты использования (чаще используемые задачи выполняются быстрее, реже используемые – медленнее).

10. «То, что вы видите, то вы и получите» (What you see is what you get). Другими словами, изображение на экране будет выглядеть так же и на бумаге. (Из-за ограничений в оборудовании Apple этот принцип, тем не менее, был нарушен для операции подчеркивания.)

11. Построение команд по методу «существительное-глагол». Сначала пользователь определяет, с чем он собирается работать (что дает время на проверку и при необходимости исправление), и затем применяет некоторое действие к выбранному объекту. В некоторых системах используется обратная последовательность («глагол-существительное») или даже смешиваются оба метода, что еще хуже.

12. Другой общий принцип заключается в том, что в системе трудно что-либо испортить или стереть. Это возможно, но очень трудно. Ошибки не происходят случайно или по невнимательности пользователя.

13. Включение средств программирования и коммуникации в среду общего назначения, внутри которой выходные данные помещаются в область редактирования или поиска.

14. Необходимость учета в плане работы времени на проведение длительных (в течение нескольких месяцев) тестирований и наладки. Покупатели системы не должны использоваться в качестве субъектов тестирования.

Вышеизложенное является только упрощенным наброском (описание системы насчитывает около 50 страниц), но мы надеемся, что это даст вам некоторое представление о том, что привело нас к идее сделать систему SwiftCard такой, какая она есть.

Библиография.

Где-то я мог неправильно интерпретировать или понять смысл цитируемых мной работ. Заранее прошу меня извинить за любые ошибки такого рода.

Accot, Johnny, and Shumin Zhai. «Beyond Fitts' Law: Models for Trajectory-Based HCI Tasks» (www.dgp.toronto.edu/~accot/Common/Articles/CHI97/chi.html, 1997).

Alzofon, David, David Caulkins, Jef Raskin, and James Winter. Canon Cat How-To Guide (Tokyo: Canon, 1987).

Alzofon, David, and Jef Raskin. SwyftCard, 2d ed. (Menlo Park, CA: Information Appliance, 1985).

Anderson, J. R. Rules of the Mind (Hillsdale, NJ: Lawrence Erlbaum Associates, 1993).

Apple Computer. Inside Macintosh, Vol. 1 (Cupertino, CA: Apple Computer, 1985).

Apple Computer. Human Interface Guidelines: The Apple Desktop Interface (Reading, MA: Addison-Wesley, 1987).

Ashlar. Vellum 3D Manual (Sunnyvale, CA: Ashlar, 1995).

Asimov, Isaac. I Robot (New York: Bantam Books, 1977).

Baars, Bernard J. A Cognitive Theory of Consciousness (Cambridge, U.K: Cambridge University Press, 1988).

Business Week. «Special Report on Information Appliances» (22 Nov. 1993), p. 110.

Buxton, William. «Chunking and Phrasing and the Design of Human-Computer Dialogs,» Information Processing 86: Proceedings of the IFIP 10th World Computer Congress (Amsterdam: North-Holland, 1986).

Card, Stuart K., Thomas P. Moran, and Allen Newell. The Psychology of Human-Computer Interaction (Hillsdale, NJ: Lawrence Erlbaum Associates, 1983).

Cohen, Jonathan D., and Jonathan W. Schooler, eds. Scientific Approaches to Consciousness (Hillsdale, NJ: Lawrence Erlbaum Associates, 1997).

Collins, Richard. Flying 121:10, p. 67 (October 1994).

Cooper, Alan. About Face (Foster City, CA: IDG Books Worldwide, 1995).

Dennett, Daniel C. Consciousness Explained (Boston: Little, Brown, 1991).

Dijksterhuis, E. J. The Mechanization of the World Picture (London: Oxford University Press, 1961).

Drori, Offer. «The User Interface in Text Retrieval Systems,» SigCHI Bulletin 30:3 (1998).

Eriksson, H., and P. Magnus. UML (Unified Modeling Language) Toolkit (New York: John Wiley & Sons, 1998).

Garrison, Peter. Flying 121:12, p. 112 (December 1994).

Garrison, Peter. «Drifting Off Centerline,» Flying 122:1, p. 43 (January 1995).

Gray, Wayne D., Bonnie E. John, and Michael E. Atwood. «Project Ernestine: Validating a GOMS Analysis for Predicting and Explaining Real-World Task Performance,» Human-Computer Interaction, 8:3, pp. 237–309 (1993).

Grudin, J. «The Case Against User Interface Consistency,» Communications of the ACM, pp. 1164–1173 (1989).

Hewlett-Packard. User Interface Design Rules for the New Wave Office System (Cupertino, CA: Hewlett-Packard Personal Software Division, 1987).

Hotchkiss, B. «The Car Column,» Pacifica Tribune, 12 Nov. 1997, p. 14A.

Horton, William. The Icon Book (New York: John Wiley, 1994).

IBM. System Application Architecture, Common User Access, Panel Design and User Interaction (Boca Raton, FL: IBM, 1988).

Jacobson, Robert, ed. Information Design (Cambridge, MA: MIT Press, 1999).

John, Bonnie E. «Why GOMS?» Interactions: pp. 80–89 (October 1995).

Johnson, J., and G. Englebeck. «Modes Survey Results,» SigCHI Bulletin 20:4, pp. 38–50 (1989).

Kaplan, Justin, ed. Bartlett's Familiar Quotations, 16th ed. (Boston: Little, Brown, 1992).

Knuth, Donald E. Literate Programming (Stanford, CA: Center for the Study of Language and Information, 1992).

Lammers, Susan. Programmers at Work (Redmond, WA: Microsoft Press, 1986).

Landauer, Thomas K. The Trouble with Computers (Cambridge, MA: MIT Press, 1995).

Laurel, Brenda, ed. The Art of Human-Computer Interface Design (Reading, MA: Addison-Wesley, 1990).

Lewis, C., and D. A. Norman. «Designing for Error,» in D. Norman and S. Draper, eds… User Centered System Design (Hillsdale, NJ: Lawrence Erlbaum Associates, 1986).

Linzmayer, Owen. Apple Confidential (San Francisco: No Starch Press, 1999).

Loftus, Elizabeth F. Eyewitness Testimony (Cambridge, MA: Harvard University Press, 1979).

Loftus, Elizabeth F. Memory (Reading, MA: Addison-Wesley, 1980).

Mackenzie, I. S. «Movement Time Prediction in Human-Computer Interfaces,» in R. M. Baecker, W. A. S. Buxton, J. Grudin, and S. Greenberg, eds., Readings in Human-Computer Interaction, 2d ed., pp. 483–493 (Los Altos, CA: Kaufmann, 1995).

Malone, Michael S. Infinite Loop (Chicago: Doubleday, 1999).

Mayhew, Deborah. Principles and Guidelines in Software User Interface Design (Englewood Cliffs, NJ.: Prentice-Hall, 1992).

Microsoft. The Windows Interface Guidelines for Software Design (Redmond, WA: Microsoft Press, 1995).

Miller, George A. «The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information,» Psychological Review 63, pp. 81–97 (1956).

Moore, J. S., and R. S. Boyer. «A Fast String Searching Algorithm,» Communications of the Association for Computing Machinery 20:10, pp. 762–772 (1977).

Norman, Donald A. «Categorization of Action Slips,» Psychology Review 88:1, pp. 1-15 (1981).

Norman, Donald A. «Design Rules Based on Analyses of Human Error,» Communications of the ACM 26:4, p. 255 (1983).

Norman, Donald A. The Psychology of Everyday Things (New York: Basic Books, 1988).

Norman, Donald A. The Invisible Computer (Cambridge, MA: MIT Press, 1998).

Penrose, Roger. The Emperor's New Mind (London: Oxford University Press, 1989).

Raskin, Jef. «Looking for a Humane Interface: Will Computers Ever Become Easy to Use?» Communications of the ACM 40:2, p. 98 (Feb. 1997).

Raskin, Jef. «The Quick-Draw Graphics System.» Ph.D. diss. (State College, PA: Pennsylvania State University, 1967).

Raskin, Jef. «FLOW: A Teaching Language for Computer Programming,» Computers and the Humanities 8:4 pp. (July 1974).

Raskin, Jef. «Computers by the Millions,» SIGPC Newsletter 5:2 (1982).

Raskin, Jef. «Systemic Implications of an Improved Two-Part Cursor,» Proceedings of CHI 89: Human Factors in Computing Systems, Austin: 30 April 1989, pp. 167–170 (New York: ACM Press, 1989).

Raskin, Jef. «Down with GUIs,» Wired pp. (December 1993).

Raskin, Jef. «Intuitive Equals Familiar,» Communications of the ACM 37:9, pp. (September 1994).

Raskin, Jef, and James Winter. U.S. Patent No. 5,019,806, Method and Apparatus for Control of an Electronic Display, 1991.

Reason, James. Human Error (Cambridge, U.K.: Cambridge University Press, 1990).

Shneiderman, Ben. Designing the User Interface (Reading, MA: Addison-Wesley, 1987, 1998).

Sellen, A., G. Kurtenbach, and W. Buxton. «The Prevention of Mode Errors Through Sensory Feedback,» Human Computer Interaction 7:2, pp. 141–164 (1992).

Shannon, Claude E., and Warren Weaver. The Mathematical Theory of Communication (Urbana: University of Illinois Press, 1949, reprinted 1963).

Smith, S. F., and D. J. Duell. Clinical Nursing Skills, 3rd ed. (East Norwalk, CT: Appleton & Lange, 1992).

Stallman, Richard. GNU Emacs Manual, 9th ed. (Cambridge, MA: Free Software Foundation, 1993).

Tesler, Larry. «The Smalltalk Environment,» Byte (August 1981).

Tesler, Larry, and Timothy Mott. Report on the Xerox Palo Alto Research Center Gypsy Typescript System (Palo Alto, CA: Xerox, 20 April 1975).

Thomas, Lewis. The Lives of a Cell (New York: Viking Press, 1974).

Tognazzini, Bruce. Tog on Interface (Reading, MA: Addison-Wesley, 1992).

Tolkien, J.R.R. (Douglas Anderson, ed.) The Annotated Hobbit (Boston: Houghton Mifflin, 1988).

Tufte, Edward. The Visual Display of Quantitative Information (Cheshire, CT: Graphics Press, 1983).

Tullis, Thomas S. «Predicting the Usability of Alphanumeric Displays,» Ph.D diss., Rice University, 1984.

de Unamuno y Jugo, Miguel. The Tragic Sense of Life, Chapter 9 (1913).

Weinberg, Gerald M. The Psychology of Computer Programming (New York: Van Nostrand Reinhold, 1971).