И. Соммервилл - Инженерия программного обеспечения (1133538), страница 84
Текст из файла (страница 84)
Такого рода сведения позволят разработчикам зафиксировать, пользователи с каким уровнем знаний имеют проблемы с интерфейсом. Если проект интерфейса уже создан и прошел оцснивапие в бумажном виде, анкеты можно использовать даже до полной реализации системы. При наблюдении пользователей за работой оценивается, как они взаимодействуют с системой, какие используют сервисы, какие совершают ошибки и т.п.
Вместе с наблюдениями могут проводиться семинары, на которых пользователи рассказывают о своих по. пытках решить тс или иные проблемы и о том, как они понимают систему и как нспользу. ют се для достижения целей. Видеооборудование относительно недорого, поэтому к непосредственному наблюдению можно добавить видеозапись пользовательских семинаров для последующего анали. за. Полный анализ видеоматериалов дорогостолщий и требует специально оснащенного комплекта с несколькими камерами, направленными на пользователя и на экран. Однако видеозапись отдельных действий пользователя может оказаться полезной для обнаружения проблем. Чтобы определить, какие именно действия вызывают проблемы у пользователя, следует прибегнуть к другим методам оценивания.
Анализ видеозаписей позволяет разработчику установить, много ли движений ру. ками вынужден совершать пользователь (в некоторых системах пользователю постоянно приходится переходить с клавиатуры на мышь), и обнаружить неестественные движения глаз. Если при работе с интерфейсом требуется часто смещать зрительный фокус, пользователь может совершить больше ошибок и пропустить какие. либо части изображения.
Вставка в программу кода, собирающего статистические данные при использова. нин системы, улучшает интерфейс несколькими способами, Обнаруживаются наибо. лес часто используемые операции. Интерфейс изменяется так, чтобы эти операции выбирались более быстро по сравнению с другими. Например, в вертикальном нли выпадающем меню наиболее часто используемые команды должны находиться вверху списка.
Такой код также позволит обнаружить и изменить команды, способствующие появлению ошибок. ге~ Наконец, в каждой программе должны быть несложные средства, с помощью которых пользователь сможет передавать разработчикам сообщения с жалобами". Такие средства убеждают пользователей в тои, что с их мнением считаются. А разработчики интерфейса и другие специалисты могут получить быструю обратную связь относительно отдельных проблем интерфейса. Ни один нз этих далеко не сложных методов оценки пользовательского интерфейса нс является надежным и не гарантирует решения всех проблем интерфейса.
Вместе с тем перед выпуском системы эти методы можно применить в группе добровольцев, не затрачивая значительных средств. При этом обнаруживается и исправляется большинство проблем в интерфейсе пользователя. 324 Часть П1. Проектирование 16.7. Рассмотрите сообщения об ошибюи, генерируемые операционными системами Мб УУюбоиз, Опи, Мас08 или какой-либо другой.
Как их можно улучшить? 16.8. Составьте икату по сбору данных об интерфейсе какой. либо известной вам программы (например, текстового редаюора). Если есть возможность, распространите эту анкету среди других пользователей и попытайтесь оценить результаты анкетирования. Что вы узнали об интерфейсе программы из анкету 16.9. Обсудите, этично ли разрабатывать программные системы, не согласовав с конечными пользователями те влементы системы, которые они будут контролировать, 16.10. С какими зтическими проблемами сталкиваются разработчики интерфейсов, когда пытаются согласовать запросы конечных пользователей системы с требованиями организации, которая оплачивает разработку данной системы2 328 куасть 1У. Критические системы 1. Рпбоэмслогэбнасть- свойство системы выполнять свои функции в любое время вксплуатации.
2. Бктоэжатнасть — свойство системы корректно (так, как ожидает пользопатшть) раба. тать весь заданный период эксплуатации. Я. Бетоялкяосжь — свойство системы, гарантирующее, что она безопасна для людей и окружающей среды. 4. Зпнзитбгкнапаь- свойство системы противостоять случайным или намеренным вторжениям в нее. Спюсобнааь систвмы щщиппь свбв от шумбньк или нюмвренаи вторквний Способность сисшмы выполнять работу твк, кэк првпьсмотрвю Рис. 1б.1.
Сасиимляютбив нпдежяакжи сштемм Способность систвмы выпалнкть требуемую рвбву Сжюабнасть системы функцнонировшь бзз штзсщОфйчваюи пасвщсший Работоспособность и безотказность систем обсуждаются в главе 17, Эти показатели носят вероятностный характер и мокнут быть выражены количественно. Безопасность и защищенность редко выражаются в виде числовых показателей, ио их можно сравнинать по относительной шкале уровней. Например, безопасность уровня 1 меньше безопасности уровня 2, которая, в свою очередь, меньше безопасности уровня Я, и т.д.
Известно, что компьютерные системы имеют недостатки, т.е. беэ явных причин ино. гда выходят из строя, и не всегда ясно, что требуется для восстановления их работоспособности. Программы, выполняемые на таких компьютерах, работают неверно, порой искажая данные. Необходимо учиться жить с этими недостатками, не теряя веры в то, что существуют персональные компьютеры, которые обычно работают нормально. Функциональную надежность компьютерных систем можно определить степенью до. верня к ним, т.е.
уверенностью, что система будет работать так, как предполагается, и что сбоев не будет. Это свойство нельзя оценить количественно. Для этого используются такие относительные термины, как "ненадежные", "очень надежные" или "сверхнадежные", отражающие различную степень доверия к системе. Надежность и полезность — это, конечно, разные вещи. Программа текстового редактора. которую я использовал при написании книги, является не оченыидежной, но весьма полезной системой. Зива это, я часто сохранял работу.
многократно ее копируя. Этими действиями я компенсировали недостатки системы, снижзя риск потери информации в случае ее отказа. Существует четыре основные составляющие функциональной надежности программных систем (рнс. 16.Ц, неформальные определения которых приведены ниже. 16.
Надеисцость систем 329 Дополнительные меры, повышающие функциональную надежность системы, могут резко увеличивать стоимость ее разработки. На рис. 16.2 показана зависимость между стоимостью разработки и различными уровнями функциональной надежности. Здесь подразумевается, что функциональная надежность содержит все составляющие: работоспособность, безотказность. безопасность и защищенность. Экспоненциальный характер зависимости "стоимость-надежность" не позволяет говорить о возможности создания систем со стопроцентной надежностью, так как стоимость их создания была бы очень большой. Наааз Средам Висояю Отзь Сзврз- Нэдкакюь Рис 16.2.
Зависимость между езннсиоеиюю разрл6ооти лиигеим и ее надежностью Высокие уровни функциональной надежности могут быть достигнуты только за счет уменьшения эффективности работы системы. Например, надежное программное обеспечение предусматривает дополнительные, часто избыточные, коды для проверки нештатных состояний системы. Это усложняет систему и увеличивает объем памяти, необходимый для ее эффективной работы. Но в ряде случаев надежность более важна, чем эффективность системы. 1. Ненадежные системы члены отнаюним невоетребовлннеевии.тели к системе нет доверия пользователя, она не будет востребована.
Более того, пользователи могут отказать. ся от других программных продуктов той же компании-разработчика, поскольку будут также считать их ненадежными. 2. Сэиамоеою отказа еиемемм мозсет 6мть огромна. Для некоторых приложений, таких, как системы управления реакторами или системы навигации, стоимость последсг. вий отказа может превышать стоимость самой системы. 6. Трудно мадерниеировать нютдежную лизиму для новмииния ее надемтннгаи. Обычно есть возможность улучшить неэффективную систему, так как в этом случае основные усилия будут затрачены на модернизацию отдельных программных модулей. Систему, к которой нет доверия, трудно улучшить, поскольку ненадежность "распределена" по всей системе.
4. Сугреенгвуюог еозмозпюети каиненеиуювлта недостаточную вффекэгивность сиагммы. Если программная система работает неэффективно. то это постоянный фактор, к кото. 330 ~Масть ТУ. Критические системы рому пользователь может приспособиться, построив свою работу с его учетом. Ненадежность системы, как правило, проявляется внезапно. Ненадежное программное обеспечение может нарушить работу всей системы, в которую оно интегриро. вано, и разрушить данные пользователя без предупреждения, что может иметь серьезные последствия. 5. Нелодгжкие системы лгогут бить п~лгчиной поомри информации. Сбор и хранение данных — дорогостоящая процедура, часто данные стоят больше, чем компьютерная система, на которой они обрабатываются. Дублирование данных для предотвраще.