Программные системы функционируют в определенной социальной и организационной среде, поэтому учет этого факта приводит к повышению комфортности конечного пользователя при ее использовании и, в конечном итоге, к увеличению спроса.
Для определения среды функционирования системы и учета ее в требованиях разработчик должен «погрузиться» в эту среду, каждодневно наблюдая и фиксируя все реальные действия, выполняемые (потенциальными) пользователями, такой подход называется этнографическим [9].
Данный подход позволяет обнаружить неявные требования к системе, которые отражают реальные аспекты ее функционирования и которые часто не определяются другим способом. Наблюдение за каждодневным функционированием организации позволяет выявить ее реальную штатную и топологическую структуру, определить функции организации и их распределение по подразделениям и сотрудникам, установить формы документов, используемых в организации. Этнографический подход позволяет выявить социальные и организационные факторы, влияющие на работу, описать работы, способ выполнения которых определяется, например, их характером, квалификацией и опытом исполнителя.
|
|
Этнографический подход используется для выявления требований обычно совместно с другими методами. На рис. 3.5 приведена схема одной из возможных комбинаций методов:
· Для сбора начальных требований к системе используется этнографический подход.
· Начальные требования обсуждаются и уточняются на совместных семинарах.
· Для дальнейшей работы по выявлению и уточнению требований строится прототип системы.
Рис. 3.5
Вопросы для самоконтроля
1. Каковы источники возникновения требований?
2. В чем разница между пользовательским и системным требованием?
3. В чем достоинства и недостатки разделения требований на пользовательские и системные требования?
4. В чем основные отличия в проведении интервью и совместных семинаров?
5. Как определяются роли во время сеансов ”мозговой штурма”?
6. Что такое вариант использования?
7. Как определить иерархию различных точек зрения?
8. Каковы основные требования к документированию пользовательских требований?