Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование и разработка информационных систем. Учебное пособие для СПО

.pdf
Скачиваний:
4
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
21
1) спецификации требований;
2) управление требованиями клиента.
К тому же наиболее дорогостоящим является исправление ошибок, допущенных на этапе формирования требований.
Процесс сбора требований весьма сложен по следующим причинам.
1. Пользователи часто не знают конкретно, чего они хотят
от ИС, за исключением наиболее общих положений, им трудно сформулировать свои пожелания, они могут предъявлять нере­альные требования, так как не подозревают, какова стоимость их реализации.
2. Пользователи и разработчики, как правило, принадле-
жат к различным мирам, говорят на разных языках и имеют раз­личный опыт, мотивацию и цели. Поэтому разработчики могут просто не понимать или понимать неадекватно требования поль­зователей.
3. Реакция пользователя на каждый когда-либо разрабаты-
ваемый фрагмент программного обеспечения обычно двояка: «О, это здорово, мы можем реально использовать это, молод­цы!» «Да, но как насчет..? Нельзя ли было..? А что будет, ес­ли..?».
Причина этого кроется глубоко в природе программного обеспечения как интеллектуального неосязаемого процесса. Проблема усугубляется тем, что команды разработчиков крайне редко предоставляют пользователям какие-либо сведения для обсуждения и взаимодействия до окончания разработки про­граммного кода.
Итак, для корректного формирования требований необхо­димо знать методы их сбора и иметь средства их описания, по­нятные и пользователям, и разработчикам (см. гл. 2).
1.1.3. Методы сбора требований
Для достижения лучшего понимания потребностей поль­зователя надо переместиться из области битов и байтов, где многие разработчики чувствуют себя более комфортно, в об­ласть, где нужно общаться с реальными людьми и понимать
22
проблемы реального мира. Существует множество методов для понимания требований пользователей и заинтересованных лиц:
– мозговой штурм и отбор идей;
– обыгрывание ролей;
– интервьюирование и анкетирование;
– сценарии;
– прототипирование.
Выбор конкретного метода будет зависеть от типа ИС, опыта и уровня подготовки команды разработчиков, заказчика, масштаба проблемы, используемой технологии и уникально­сти ИС. Рассмотрим некоторые из них.
Мозговой штурм — проведение совещаний, на которые люди, знакомые с предметной областью, высказывают идеи без какой-либо их фильтрации. Предполагается, что все высказан­ные идеи фиксируются, но никак не комментируются. Уже вы­явленное требование, даже если оно кажется абсурдным, может потом быть переформулировано или по ассоциации может вы­звать формулирование следующих требований. Поэтому, чем больше человек участвует в мозговом штурме, тем лучше.
Обыгрывание ролей, или ролевые игры, очень продук- тивно в качестве выявления требований, поскольку требует де­тального представления последовательности действий потенци­ального пользователя (например, кассира, менеджера, админи­стратора) и, следовательно, осознания их текущих потребностей как потенциальных пользователей.
Интервьюирование и анкетирование. При применении этого метода сначала надо выявить всех лиц, заинтересованных в проекте. Например, в процессе формирования требований для системы банкоматов участвуют:
1) обычные клиенты банка, пользующихся услугами бан-
коматов;
2) представители других банков, имеющих взаимные со-
глашения с данным банком о совместном использовании банко­матов;
3) руководители филиалов банка, получающих информа-
цию из системы управления банкоматами;
23
4) сотрудники филиалов банка, вовлеченные в повседнев-
ную работу системы банкоматов, обрабатывающие рекламации клиентов и т. д.;
5) администраторы баз данных, ответственные за связь
банкоматов с базой данных клиентов;
6) руководители службы безопасности банка, обеспечи-
вающей защиту системы банкоматов;
7) отдел маркетинга банка, использующий систему бан-
коматов как средство маркетинга;
8) разработчики аппаратных и программных средств, от-
ветственные за сопровождение и модернизацию аппаратных и программных средств.
Сценарии особенно полезны для детализации уже сфор­мулированных требований, поскольку описывают последова­тельность интерактивной работы пользователя с системой.
Сценарий начинается с общего описания, затем постепен­но детализируется для создания полного описания взаимодей­ствия пользователя с системой. В большинстве случаев сценарий включает описание:
– состояния системы в начале сценария;
– нормального протекания событий;
– исключительных ситуаций и способов их обработки;
– состояния системы после завершения сценария, а также информацию о других действиях, которые можно осуществлять во время выполнения сценария.
1.1.4. Функциональные и нефункциональные
требования
Требования к программной системе часто классифициру­ются как функциональные (системные) и нефункциональные (качественные).
Функциональные (системные) требования отвечают на вопрос «ЧТО должна делать ИС». Это перечень функций, кото­рые должна выполнять система, причем должно быть указано, как система реагирует на те или иные входные данные, как она ведет себя в определенных ситуациях и т. д. В некоторых случа­ях указывается, что система не должна делать. Пример функци-
24
онального требования к библиотечной системе университета, предназначенной для заказа книг и документов из других биб­лиотек.
1. Пользователь должен иметь возможность проводить
поиск необходимых ему книг и документов или по всему мно­жеству доступных каталожных баз данных.
2. Система должна предоставлять пользователю подхо-
дящее средство просмотра библиотечных документов.
3. Каждый заказ должен быть снабжен уникальным иден-
тификатором (NUM_ID), который копируется в формуляр поль­зователя для постоянного хранения.
Эти функциональные требования определяют свойства, которыми должна обладать система. Они взяты из документа, содержащего пользовательские требования, и показывают, что функциональные требования могут быть описаны с разным уровнем детализации (сравните первое и третье требования).
Чтобы избежать проблем из-за неоднозначности толкова­ний, требования должны быть прописаны максимально четко.
Рассмотрим второе требование к библиотечной системе и обратим внимание на выражение «подходящее средство про­смотра документов». Библиотечная система может представлять документы в широком спектре форматов. В требовании подра­зумевается, что система должна предоставить средства для про­смотра документов в любом формате. Но вполне возможно, что под «подходящим средством» разработчики и пользователи по­нимают разные средства. В этом случае система не устроит пользователя, разработчикам придется её переделывать, что уве­личит стоимость системы.
Нефункциональные требования отвечают на вопрос, как должна работать ИС, описывают характеристики системы и ее окружения. Здесь также может быть приведен перечень ограни­чений, накладываемых на действия и функции, выполняемые системой, например, временные ограничения, ограничения на процесс разработки системы, стандарты и т. д.
Все нефункциональные требования можно разбить на три большие группы.
1. Требования к продукту. Описывают эксплуатацион-
ные свойства программного продукта. Это требования к произ-
25
водительности системы, объему необходимой памяти, надежно­сти (определяет частоту возможных сбоев в системе), переноси­мости системы на разные компьютерные платформы и удобству эксплуатации.
2. Организационные требования. Отображают политику
и организационные процедуры заказчика и разработчика ПО. Они включают стандарты разработки программного продукта, требования к реализации ПО (То есть к языку программирова­ния и методам проектирования), выходные требования, которые определяют сроки изготовления программного продукта, и со­путствующую документацию.
3. Внешние требования. Учитывают факторы, внешние
по отношению к разрабатываемой системе и процессу ее разра- ботки. Например:
– требования, определяющие взаимодействие данной си­стемы с другими системами;
– юридические требования, следование которым гаранти­рует, что система будет разрабатываться и функционировать в рамках существующего законодательства;
– этические требования, гарантирующие, что система бу­дет приемлемой для пользователей или заказчика.
Нефункциональные требования по своей природе каче- ственные, но должны выражаться через количественные пока­затели, которые можно объективно измерить. В табл. 1.1 приве­дены показатели, с помощью которых можно специфицировать качественные требования к ПО.
Таблица 1.1
Количественные показатели качественных требований
Показатель
Единицы измерения
Скорость
Количество выполненных транзакций в секунду; время реакции на действия пользователя; время обновления экрана
Размер
Килобайты; количество модулей памяти
26
Показатель Единицы измерения
Простота эксплуа­тации
Время обучения персонала; количество статей в справочной системе
Надежность
Средняя продолжительность времени между дву­мя последовательными проявлениями ошибок в си­стеме; вероятность выхода системы из строя; коэффициент готовности системы
Устойчивость к сбоям
Время восстановления системы после сбоя; процент событий, приводящих к сбоям; вероятность порчи данных при сбоях
Переносимость
Процент машинно-зависимых операторов; количество машинно-зависимых подсистем
Пример некорректной формулировки требования: система должна быть простой в эксплуатации для опытного оператора и сводить количество его ошибок к минимуму. Это требование лучше сформулировать так: опытному оператору должны быть доступны все системные функции после двух часов обучения работе с данной системой. После такого обучения среднее число ошибок оператора не должно превышать двух за рабочий день.
1.1.5. Методы описания требований
Как уже отмечалось, главная проблема формирования тре­бований — взаимопонимание между пользователями и разра­ботчиками.
В настоящее время данная проблема решается при помощи языка UML, разработанного специально для обеспечения связи между участниками проекта. Некоторые аспекты языка нацеле­ны на установку связи между потребителями и разработчиками; другие — на общение проектировщиков системы и разработчи­ков баз данных; третьи — на связи между разработчиками, со­здающими разные части системы. Предлагая набор хорошо определенных диаграмм и точно определенные пояснения к ним, UML позволяет всем участникам проекта в любой момент пони­мать, что происходит в системе, и сводит к минимуму риск не-
27
правильного понимания. Де-факто данный язык уже является стандартом при проектировании ИС.
Конкретно для описания требований обычно используют диаграммы прецедентов. Основные положения языка приведены в гл. 2.
1.1.6. Специфицирование требований
Учитывая, что системе будут предъявлены сотни, если не тысячи требований (например, при разработке системы управле­ния самолетом «Боинг 777» было 300 000 требований), очень важно организовать их. Поскольку невозможно удерживать в памяти более нескольких десятков фактов, для успешного взаи­модействия различных участников процесса необходимо обес­печить документирование требований. Требования следует за­писать так, чтобы они были доступны для ознакомления — это может быть документ, модель, база данных или листок на доске объявлений.
При специфицировании требований производится и их анализ на полноту и непротиворечивость. В случае, если выпол­нение какого-либо требования невозможно при выполнении другого, приходится либо аннулировать то из них, которое име­ет меньший приоритет, либо смягчить одно или оба требования, чтобы их выполнение стало реальным.
1.1.7. Аттестация требований
Аттестация должна продемонстрировать, что требования, действительно, определяют ту систему, которую хочет иметь заказчик.
Во время процесса аттестации должны быть выполнены различные типы проверок документации требований.
1. Проверка правильности требований. Пользователь мо-
жет считать, что система необходима для выполнения некото­рых определенных функций. Однако дальнейшие размышления и анализ могут привести к необходимости введения дополни­тельных или новых функций. ИС может быть предназначена для разных пользователей с различными потребностями, и поэтому
28
набор требований будет представлять собой некоторый компро­мисс между требованиями пользователей системы.
2. Проверка на непротиворечивость. Спецификация тре-
бований не должна содержать противоречий. Это означает, что в требованиях не должно быть противоречащих друг другу огра­ничений или различных описаний одной и той же системной функции.
3. Проверка на полноту. Спецификация требований
должна содержать требования, которые определяют все систем­ные функции и ограничения, налагаемые на систему.
4. Проверка на выполнимость. На основе знания суще-
ствующих технологий требования должны быть проверены на возможность их реального выполнения. Здесь также проверяют­ся возможности финансирования и график разработки системы.
При аттестации надо ответить на множество вопросов, например, это:
– потребность или требование;
– то, что «хорошо бы иметь», или то, что «должно быть»;
– постановка задачи или речь идет о формулировке решения;
– цель системы или одно из условий контракта;
– действительно ли нужно программировать на языке Java? И кто будет это делать;
– кому не нравится наша новая система и где был этот че­ловек, когда мы приходили сюда раньше?
После того как спецификация требований признана удо­влетворительной как руководством предприятия-разработчика, так и заказчиком, она используется как фундамент, на базе кото­рого строится ТЗ, рассчитываются основные параметры проек­та — величина, стоимость, трудозатраты, длительность выпол­нения.
1.1.8. Управление требованиями
Требования задают возможности, которые должна предо­ставлять система, так что соответствие или несоответствие неко­торому множеству требований часто определяет успех или не­удачу проекта. К сожалению, требования имеют свойство изме­няться с течением времени либо по мере их уточнения, либо по
29
мере возникновения новых. Поэтому имеет смысл не только за­писать и упорядочить требования, но и отслеживать их измене­ния. Иными словами, можно определить управление требовани­ями следующим образом.
Управление требованиями это систематический подход к выявлению, организации и документированию требований к си­стеме, а также процесс, в ходе которого вырабатывается и обес­печивается соглашение между заказчиком и выполняющей про­ект группой по поводу меняющихся требований к системе.
Управление требованиями — это важная составляющая управления проектом, оно подразумевает:
– идентификацию требований. Каждое требование долж­но быть однозначно определено, поскольку оно может пересе­каться с другими требованиями. Пересечение требований можно обнаружить с помощью оперативного контроля;
– управление процессом внесения изменений. Это ряд опе­раций, которые оценивают воздействие на систему вносимых изменений, а также стоимость изменений;
– стратегию оперативного контроля. Определяет отно­шения между требованиями, а также между требованиями и проектированием системы;
– поддержку CASE-средств. Управление требованиями предполагает обработку большого объема информации о требо­ваниях. В этом процессе могут использоваться разнообразные инструментальные средства, например, электронные таблицы или простые системы баз данных.
Для оперативного контроля над требованиями необходи­ма, как минимум, информация о:
– источнике требования — связывает требование с лица- ми, которые предложили эти требования, и с логическим обос­нованием этих требований. Если предложено изменение в тре­бованиях, эта информация используется для определения лиц, которые могут обосновать эти изменения;
– требованиях — связывает требования внутри специфи- кации. Эта информация используется для оценки количества требований, которые затрагивают предложенные изменения;
– структуре системы — связывает требования с систем­ными модулями, которые реализуют требования. Эта информа-
30
ция используется для оценки влияния предложенных изменений на систему и ее реализацию.
Информация для оперативного контроля часто представ­ляется в виде специальных матриц, которые связывают требова­ния с лицами, предложившими эти условия, требования между собой и требования с системными модулями. Если матрица опе­ративного контроля связывает требования между собой, то каж­дое требование представлено в матрице как строкой, так и столбцом. Тогда, если между требованиями существует зависи­мость, это указывается в ячейках на пересечении строк и столб­цов, соответствующих этим требованиям. Пример простой мат­рицы зависимостей между требованиями показан в табл. 1.2.
Символ И (использование) на пересечении строки и столбца показывает, что требование в строке использует сред­ства, определенные в требовании представленном столбце. Сим­вол С (связь, зависимость) означает, что существует некоторая взаимосвязь между требованиями. Например, оба требования входят в один и тот же системный модуль.
Таблица 1.2
Матрица оперативного контроля
1.1
1.2
1.3
2.1
2.2
3.1
1.1 И
С И
И
1.2
И И С 1.3 С С
С
2.1
С И
2.2 И С И
3.1
И И
Матрицы оперативного контроля (см. табл. 1.2) использу­ются для управления небольшим набором требований, они ста­новятся громоздкими и неудобными для больших систем со многими требованиями. Для таких систем информацию опера-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]