Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PGTU / 5 семестр / Надежность / Nadezhnost_4-ya_redaktsia.doc
Скачиваний:
336
Добавлен:
29.03.2015
Размер:
12.07 Mб
Скачать

Подготовка внешних спецификаций

Внешнее проектирование может быть представлено в виде двух эта­пов: предварительного и детального внешнего проектирования. В случае если спецификации организованы иерархически, этим двум этапам соот­ветствуют просто контрольные точки в процессе нисходящего проектиро­вания системы. Первый шаг в разработке внешних спецификаций – обри­совать основные компоненты (или то, что находится на верхнем уровне), второй шаг – обрисовать компоненты, третий – внешние функции (функ­ции пользователя) и, наконец, детали всех функций пользователя.

Предварительное внешнее проектирование включает три первых шага. Система проектируется до такого уровня, когда уже выделены все функции пользователя, но их точные синтаксис, семантика и выходные ре­зультаты остаются еще не определенными. Этим преследуются две цели: во-первых, внутри продолжительного процесса внешнего проектирования устанавливается контрольная точка для руководства; во-вторых, стано­вится возможной проверка правильности промежуточного уровня проекта и сопоставление его с поставленными целями.

Правильно составленные внешние спецификации – объемный до­ку­мент. Чтобы справиться с таким большим документом, лучше всего при­менить иерархическую организацию. С успехом применяется метод, кото­рый состоит в том, чтобы разбить спецификации на основные компо­ненты, затем просто компоненты и, наконец, функции. Допустим, одна из основ­ных компонент – управляющий библиотекой. В рамках этой основ­ной компоненты примером компоненты может быть администратор сек­ретно­сти. В рамках этой компоненты примером функции будет запрос СООБЩИТЬ О НАРУШЕНИЯХ СЕКРЕТНОСТИ.

Детальный внешний проект каждой функции пользователя должен освещать следующие вопросы:

1. Описание входных данных. Точное описание синтаксиса (напри­мер, формат, допустимые значения, области изменения) и семантики всех данных, вводимых пользователем. Этими данными могут быть и команда, и ответ на подсказку, и введенная пластиковая карта, и аналоговый сигнал.

2. Описание выходных данных. Точное описание всех результатов функции (например, реакция терминала, сообщения об ошибках, отчеты, управляющие сигналы). Должна быть описана функциональная связь входных данных с выходными; это значит, что читатель спецификаций должен быть в состоянии представить себе выходные данные, порождае­мые каждым конкретным вариантом входных. Для каждой функции должны быть указаны также результаты для всех (по возможности) непра­вильных входных данных.

3. Преобразования системы. Многие внешние функции не только по­рождают выходные данные, но изменяют также состояние системы. Здесь должны быть описаны все такие преобразования системы, но при этом следует помнить, что речь идет о внешних спецификациях, поэтому преоб­разования должны быть описаны с точки зрения пользователя. Например, тестовая система имеет команду «выполнить тестирование», которая ис­пользуется студентом, чтобы начать написать тест. Эта функция имеет два выходных результата: результат, который выводится на терминал сту­дента, и результат, который выводится на терминал преподавателя. Она вызывает также преобразование системы: изменяется база данных резуль­татов тестирования.

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

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

6. Замечания по программированию. Внешние спецификации должны описывать продукт с точки зрения пользователя и избегать огра­ничений на внутреннее устройство системы. Однако иногда бывает необ­ходимо подсказать или сообщить какие-то идеи относительно внутреннего проектирования функции. Практиковать это следует как можно реже, но, если это необходимо, соответствующую информацию следует сообщать в этом разделе.

Соседние файлы в папке Надежность