Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Безгодков_ВКР.doc
Скачиваний:
52
Добавлен:
26.03.2015
Размер:
21.47 Mб
Скачать
  1. 1 Конструкторский раздел

    1. 1.1 Анализ предметной области и постановка задачи

Анализ предметной области позволяет сформулировать ряд требований выдвигаемых заказчиком к программному продукту, которые можно разделить на три уровня [1]:

  1. Бизнес-требования,

  2. Требования пользователей,

  3. Функциональные и нефункциональные требования.

Бизнес-требования содержат высокоуровневые цели организации или заказчиков программного обеспечения. Как правило, их высказывают те, кто финансирует проект, покупатели программного продукта, менеджер реальных пользователей или отдел маркетинга.

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

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

Бизнес-правила включают корпоративные политики, правительственные постановления, промышленные стандарты и вычислительные алгоритмы. Они не являются требованиями к программному обеспечению. Однако они часто налагают ограничения, определяя, кто может выполнять конкретные варианты использования, или диктовать, какими функциями должен обладать программный комплекс, подчиняющийся соответствующим правилам. Иногда бизнес-правила становятся источником атрибутов качества, которые реализуются в функциональности.

Нефункциональные требования дополняют функциональные требования. Нефункциональные требования могут содержать:

  • дополнительное описание функций продукта, выраженное через описание его характеристик, важных для пользователей или разработчиков;

  • описание взаимодействия между системой и внешним миром;

  • ограничения дизайна и реализации.

Разработка требований включает три этапа:

  1. Сбор предполагаемых требований путём опроса потенциальных пользователей о разрабатываемом продукте и анализ конкурентных продуктов;

  2. Определение требований путём их материализации в виде письменного документа, интерактивного прототипа пользовательского интерфейса или в какой-либо иной форме;

  3. Анализ требований путём выделения в них общностей и различий с последующим разбиением на важнейшие характеристики.

      1. 1.1.1 Межсетевые экраны вPOSIX-совместимых ОС.

Netfilter— это межсетевой экран (брандмауэр), встроеный в ядроLinuxверсий 2.4 и 2.6.Netfilterсостоит из двух больших групп компонентов, первая — компоненты включенные в состав ядра (и выполняющиеся в пространстве ядра), вторая — это команды и утилиты выполняющиеся в пространстве пользователя, сюда можно отнести командуiptables, ряд вспомогательных утилит, библиотеки, страницы справочного руководства и скрипты.

Iptables— название пользовательской утилиты (запускаемой из командной строки) предназначенной для управления системойnetfilter. С её помощью системные администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов.

Некоторые авторы под словом netfilterимеют в виду только те элементы межсетевого экрана, которые непосредственно являются частью стека протоколов ядра, а всё прочее (систему таблиц и цепочек) называютiptables. Из‑за не совсем ясной терминологии, иногда весь проект (внутриядерный межсетевой экран вместе с пользовательской утилитой) просто именуется «netfilter/iptables».

До появления iptables, для обеспечения возможностей межсетевого экрана в Linux использовались проекты ipchains в Linux 2.2 и ipfwadm в Linux 2.0, в свою очередь основанный на ipfw из системы BSD. Проекты ipchains и ipfwadm изменяли работу стека протоколов ядра Linux, поскольку до появления netfilter в архитектуре ядра не существовало возможностей для подключения дополнительных модулей управления пакетами. iptables сохранил основную идею ipfwadm — список правил, состоящих из критериев и действия, которое выполняется если пакет соответствует критериям. В ipchains была представлена новая концепция — возможность создавать новые цепочки правил и переход пакетов между цепочками, а в iptables концепция была расширена до четырех таблиц, разграничивающих цепочки правил по задачам: фильтрация, NAT‑трансляция, и модификация пакетов. Также iptables расширил возможности Linux в области определения состояний, позволяя создавать межсетевые экраны работающие на сеансовом уровне.

      1. 1.1.2 Группы пользователей

Для разрабатываемого продукта выделен один класс потенциальных пользователей: системные администраторы. Вне зависимости от квалификации, все они должны иметь доступ к одинаковому функционалу и справочному материалу. Предполагается, что даже начинающий администратор POSIX-совместимой ОСимеет представление о сетевых технологиях.

В качестве способа получения информации выбран опрос потенциальных пользователей и дискуссии с ними [1].

      1. 1.1.3 Бизнес-требования

Языки программирования, которые можно использовать для реализации проекта, должны иметь компиляторы или интерпретаторы в ОС семейства Linux, давать возможность взаимодействия сiptables, поддержку межпроцессного взаимодействияивозможность выполнения на веб-сервере. Это такие языки какC, Perl, Python, PHP.

Протокол удалённого соединения: HTTPS.

Авторизация пользователей должна проводиться по конфигурационным файлам (по сочетанию логина и пароля, по IP-адресу или имени хоста).

Необходимо учесть возможность блокирования удалённого доступа посредством изменения настроек брандмауэра и предупреждать пользователя в подобных ситуациях.

Только один пользователь одновременно может иметь доступ к изменению конфигурации.

      1. 1.1.4 Требования пользователей

Одним из способов представления требований пользователей являются диаграммы вариантов использования (диаграмы прецедентов, use case diagrams) [10], являющиеся частью языкаUML.

UML— язык графического описания для объектного моделирования в области разработки программного обеспечения.UMLявляется языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемойUMLмоделью.UMLбыл создан для определения, визуализации, проектирования и документирования в основном программных систем [8].

Основная задача - представлять собой единое средство, дающее возможность заказчику, конечному пользователю и разработчику совместно обсуждать функциональность и поведение системы [1]. Цель этого общения — выявить и формализовать требования к создаваемой системе.

Сложность разработки программного комплекса заключается во взаимодействии с пользователем, обработке его запросов, контроле корректности и безопасности. Это видно из полученных вариантов использования (см. рисунок 1 и таблицы 1-12). Применение вариантов использования позволяет выявить ту функциональность, с помощью которой пользователи будут выполнять конкретные задачи. Так удастся избежать появления функций, которые в ходе сбора информации могут казаться весьма полезными, однако которые не будет использоваться из-за того, что они не связаны напрямую с решением рабочих задач.

Рисунок 1 — Диаграмма вариантов использования

Таблица 1 — Вариант использования «Авторизация»

Название

Авторизация

Описание

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

Частота использования

Является очень часто используемым.

Входные условия

Запущеные веб-сервер и браузер

Выходные условия

Загрузка главной страницы

Нормальное направление

1.0 Авторизация

  1. Пользователь вводит логин и пароль в поля формы и отправляет данные на сервер;

  2. Скрипт авторизации на веб-сервере, сравнивает введёные данные с сохранёнными на сервере;

  3. Создаётся сеанс работы с пользователем; пользователю выдаётся сообщение об успешной авторизации;

  4. Пользователь ждёт 2 секунды или нажимает на ссылку;

  5. Скрипт на веб-сервере проверяет доступность серверного демона;

  6. Пользователю отображается главная страница программного комплекса с меню навигации и информацией о статусе серверного демона;

Альтернативные направления

1.1 Провал авторизации (этап 3)

  1. Пользователю выдаётся сообщение о провале авторизации;

  2. Пользователь ждёт 2 секунды или нажимает на ссылку, возвращаясь к пункту 1 нормального направления варианта использования.

Исключения

1.0.И.1 Серверный демон недоступен (этап 5)

  1. Пользователю отображается главная страница с сообщением об ошибке. Часть пунктов меню неактивна.

Таблица 2 — Вариант использования «Таблица правил»

Название

Таблица правил

Описание

Пользователь просматривает таблицу правил

Частота использования

Является наиболее часто используемым.

Входные условия

Авторизация в программном комплексе

Выходные условия

Отображение страницы со списком правил

Нормальное направление

1.0 Просмотр таблицы правил

  1. Пользователь запрашивает страницу с таблицей правил.

  2. Скрипт на веб-сервере запрашивает таблицу правил.

  3. Серверный демон собирает информацию и возвращает её скрипту веб-сервера.

  4. Скрипт веб-сервера анализирует полученную информацию, формирует страницу (полная таблица правил, инструменты для фильтрации и модификации) и отправляет её пользователю;

  5. Пользователь определяет фильтры для частичного просмотра таблицы;

  6. Скрипты, встроенные в веб-страницу, изменяют отображение информации в соответствии с фильтрами.

Альтернативные направления

Нет.

Исключения

Нет.

Таблица 3 — Вариант использования «Конструктор команд iptable

Название

Конструктор команд iptables

Описание

Пользователь составляет команду для утилиты iptablesиз составных частей.

Частота использования

Является часто используемым.

Входные условия

Авторизация пользователя.

Выходные условия

Изменённая таблица правил

Нормальное направление

1.0 Конструирование команды iptables

  1. Пользователь запрашивает страницу конструктора;

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

  3. Серверный демон так же последовательно собирает необходимую информацию с помощью системных утилит и возвращает её скрипту веб-сервера;

  4. Скрипт формирует страницу со всеми доступными опциями и списком правил;

  5. Пользователь выбирает необходимые опции с помощью ниспадающих списков;

  6. Скрипты на веб-странице постоянно модифицируют страницу в соответствии с выбором пользователя;

  7. Пользователь отправляет данные на сервер для выполнения;

  8. Скрипт веб-сервера собирает из выбранных опций команду и отправляет её демону;

  9. Демон выполняет команду;

  10. Скрипт веб-сервера формирует страницу конструктора заново с учётом произведённых изменений (переход на пункт 2).

Альтернативные направления

1.1 Недостаточно опций для требуемого правила (этап 5)

  1. Пользователь переходит к варианту использования «Просмотр списка модулей», прерывая текущий вариант использования.

Исключения

1.0.И.1 Недостаточно модулей для создания правил (этап 3)

  1. Скрипт веб-сервера формирует страницу с сообщением об ошибке и ссылкой-приглашением к варианту использования «Просмотр списка модулей» и завершает вариант использования.

Таблица 4 — Вариант использования «Просмотр списка модулей»

Название

Просмотр списка модулей

Описание

Пользователь просматривает список доступных и активных модулей и изменяет их состояние.

Частота использования

Используется редко.

Входные условия

Авторизация пользователя.

Выходные условия

Изменённое состояние окружения сервера

Нормальное направление

1.0 Просмотр списка модулей

  1. Пользователь запрашивает страницу со списком модулей;

  2. Скрипт веб-сервера запрашивает информацию об установленных и активных модулях ядра, используемых iptables у серверного демона;

  3. Серверный демон собирает необходимую информацию с помощью системных утилит и возвращает её скрипту веб-сервера;

  4. Скрипт веб-сервера формирует страницу со списком модулей, их статусами и краткой справочной информацией о них;

  5. Пользователь запрашивает изменение статуса одного из модулей;

  6. Скрипт веб-страницы асинхронно отправляет запрос на веб-сервер;

  7. Скрипт веб-сервера перенаправляет запрос серверному демону;

  8. Серверный демон выполняет запрос, проверяет статус выбранного модуля и возвращает его обратно;

  9. Скрипт веб-сервера асинхронно отправляет короткий ответ скрипту веб-страницы;

  10. Скрипт веб-страницы меняет отображение статуса выбранного модуля.

Альтернативные направления

Нет.

Исключения

1.0.И.1 Не удалось изменить статус модуля (этап 10)

1. Скрипт веб-страницы выдаёт сообщение об ошибке.

Таблица 5 — Вариант использования «Использование системных утилит»

Название

Использование системных утилит

Описание

Пользователь выполняет системные утилиты диагностики и администрирования из ограниченного набора «первой необходимости»

Частота использования

Используется со средней частотой.

Входные условия

Авторизация пользователя.

Выходные условия

Результат выполнения утилит в виртуальном терминале.

Нормальное направление

1.0 Использование системных утилит

  1. Пользователь открывает заранее сформированную страницу с полем выходной информации и набором полей ввода для формирования команд;

  2. Пользователь выбирает одну из доступных команд и вводит опции для неё вручную;

  3. Для фильтрации вывода пользователь подключает утилиту grepи вручную вводит опции фильтрации;

  4. Отправление запроса пользователя происходит асинхронно;

  5. Скрипт веб-сервера обрезает возможные внедрения кода и передаёт команду серверному демону;

  6. Демон выполняет проверку корректности в зависимости от того, какая утилита используется, выполняет команду и возвращает результат и/или сообщения об ошибках;

  7. Скрипт веб-сервера асинхронно возвращает данные;

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

Альтернативные направления

Нет.

Исключения

Нет.

Таблица 6 — Вариант использования «Просмотр конфигурации»

Название

Просмотр конфигурации

Описание

Пользователь просматривает файл конфигурации

Частота использования

Является редко используемым.

Входные условия

Авторизация пользователя.

Выходные условия

Файл конфигурации МСЭ.

Нормальное направление

1.0 Просмотр файла конфигурации

  1. Пользователь запрашивает страницу сохранения;

  2. Скрипт веб-сервера запрашивает конфигурацию у серверного демона;

  3. Серверный демон возвращает информацию, сформированную утилитой сохранения;

  4. Скрипт веб-сервера формирует страницу, содержащую поле ввода с файлом конфигурации;

Альтернативные направления

Нет.

Исключения

Нет.

Таблица 7 — Вариант использования «Сохранение конфигурации»

Название

Сохранение конфигурации

Описание

Сохранение текущей конфигурации шлюза в виде файла на машине пользователя.

Частота использования

Является редко используемым.

Входные условия

Авторизация пользователя, нахождение пользователя на странице просмотра конфигурации.

Выходные условия

Файл конфигурации, выданный пользователю для сохранения.

Нормальное направление

1.0 Сохранение конфигурации

  1. Пользователь нажимает кнопку сохранения;

  2. Скрипт веб-сервера запрашивает конфигурацию у серверного демона;

  3. Серверный демон возвращает информацию, сформированную утилитой сохранения;

  4. Скрипт веб-сервера выдаёт информацию пользователю в виде файлового потока, без формирования страницы.

Альтернативные направления

Нет.

Исключения

Нет.

Таблица 8 — Вариант использования «Загрузка конфигурации»

Название

Загрузка конфигурации

Описание

Загрузка файла конфигурации с машины пользователя и его применение.

Частота использования

Является редко используемым.

Входные условия

Авторизация пользователя, нахождение пользователя на странице просмотра конфигурации.

Выходные условия

Изменение конфигурации МСЭ в соответствии с полученными данными.

Нормальное направление

1.0 Загрузка конфигурации

  1. Пользователь выбирает файл и опции добавления, после чего отправляет его на сервер через форму;

  2. Скрипт веб-сервера анализирует структуру полученного файла и передаёт его серверному демону;

  3. Серверный демон передаёт файл утилите восстановления, после чего запрашивает обновлённую конфигурацию у утилиты сохранения и возвращает её скрипту веб-сервера;

  4. Скрипт веб-сервера вновь формирует страницу просмотра конфигурации в соответствии с произведёнными изменениями.

Альтернативные направления

Нет.

Исключения

1.0.И.1 Анализ структуры выявил ошибки (этап 2)

  1. 1. Скрипт веб-сервера возвращает сообщение об ошибке и прекращает вариант использования.

Таблица 9 — Вариант использования «Просмотр руководства»

Название

Просмотр руководства

Описание

Пользователь просматривает справочное руководство программного комплекса.

Частота использования

Является редко используемым.

Входные условия

Авторизация пользователя.

Выходные условия

Справочная информация.

Нормальное направление

1.0 Просмотр руководства

  1. Пользователь открывает страницу справочного руководства;

  2. Пользователь выбирает необходимый раздел руководства с помощью оглавления;

  3. В зависимости от выбора, скрипт веб-сервера формирует страницу, используя файлы руководства.

Альтернативные направления

Нет.

Исключения

Нет.

Таблица 10 — Вариант использования «Разделы руководства»

Название

Разделы руководства

Описание

Просмотр раздела справочного руководства.

Частота использования

Используется со средней частотой.

Входные условия

  1. Авторизация пользователя;

  2. Использование контекстной справки или выбор пункта оглавления справочного руководства.

Выходные условия

Справочная информация.

Нормальное направление

1.0 Просмотр раздела справочного руководства.

  1. Скрипт веб-сервера формирует страницу, используя файлы руководства.

Альтернативные направления

1.1 Необходимость более детальной информации (этап 1).

  1. Пользователь переходит по ссылке-приглашению к варианту использования «Просмотр системной справки».

Исключения

Нет.

Таблица 11 — Вариант использования «Просмотр системной справки»

Название

Просмотр системной справки

Описание

Просмотр системной справки.

Частота использования

Является редко используемым.

Входные условия

Авторизация пользователя.

Выходные условия

Справочная информация.

Нормальное направление

1.0 Просмотр системной справки.

  1. Пользователь переходит на страницу системной справки и выбирает название справочного раздела;

  2. Скрипт веб-сервера запрашивает соответствующий раздел у серверного демона;

  3. Серверный демон делает запрос к справочной утилите, формирует результат и возвращает его;

  4. Скрипт веб-сервера формирует заново страницу системной справки, размещая на ней справочную информацию.

Альтернативные направления

1.1 Вызов в качестве контекстной справки (этап 1).

  1. Скрипт веб-сервера сразу переходит ко второму этапу нормального направления варианта использования.

Исключения

Нет.

Таблица 12 — Вариант использования «Выход»

Название

Выход

Описание

Аннулирование авторизации.

Частота использования

Является редко используемым.

Входные условия

Авторизация пользователя.

Выходные условия

Аннулирование авторизации.

Нормальное направление

1.0 Выход

  1. Пользователь выбирает пункт меню «Выход»;

  2. Скрипт веб-сервера изменяет завершает сеанс пользователя;

  3. Пользователь ждёт 2 секунды или нажимает на ссылку, возвращаясь к форме авторизации.

Альтернативные направления

Нет.

Исключения

Нет.

      1. 1.1.5 Функциональные и нефункциональные требования

Были выявлены следующие требования к функциональности программного комплекса:

  • возможность ввода команд по аналогии с командной строкой и с помощью компоновки опций;

  • наличие набора часто используемых команд;

  • наличие примеров конфигурации и возможность автоматического применения этих примеров;

  • использование защищённого соединения.

Существующие нефункциональные требования к комплексу администрирования:

  • отображение таблицы команд несколькими способами;

  • наличие контекстной справки;

  • сохранение истории авторизации и операций;

  • возможностьиспользования программного комплекса в образовательных целях.

      1. 1.1.6 Требования к производительности

Требования к производительности определяют, насколько быстро и качественно программный комплекс должен выполнять определённые функции. Они определяют такие параметры, как скорость (например, время отклика базы данных), пропускная способность (количество транзакций в секунду), мощность (нагрузка при совместном использовании) и распределение по времени (интенсивные запросы реального времени). Жёсткие требования к производительности сильно влияют на стратегию разработки программного обеспечения, поэтому необходимо определить задачи, касающиеся производительности, для соответствующей операционной среды [1].

Все функции программного продукта, не зависящие от скорости действий пользователя, можно разбить на пять функциональных видов:

  • авторизация;

  • отображение справочной информации;

  • выполнение команды;

  • отображение таблицы правил;

  • служебные функции.

Производительность всех функций зависит от пропускной способности линии связи между сервером и компьютером пользователя, а также от загруженности веб-сервера. Предполагается использование минимальной конфигурации, указанной в таблице 12.

Таблица 12 — Требования к аппаратному обеспечению

Компонент, характеристика

Минимально допустимое значение

Процессор, частота

233 МГц

Оперативная память

64 Мб

Свободное место на жёстком диске

10 Мб

Пропускная способность линии связи

56 Кбит/с

Выполнение команд также зависит от скорости работы утилиты iptablesи размера обрабатываемых таблиц.

Авторизация связана с чтением зашифрованных данных (паролей) и зависит от метода шифрования.

Отображение таблицы правил зависит от скорости работы утилит и от способа отображения: в случае графической визуализации быстродействие будет значительно ниже, чем при отображении результата работы команды iptables-save.

Быстродействие служебных функций (сохранение и чтение конфигурационных файлов) зависит от скорости работы системы.

Общие требования к быстродействию представлены в таблице 13.

Таблица 13 — Требования к производительности программного комплекса

Функциональная нагрузка

Задержка выполнения

Авторизация

2-4 сек

Отображение справочной информации

4-6 сек

Выполнение команды

< 3 сек

Отображение таблицы правил

5-12 сек

Служебные функции

< 2 сек