Системные характеристики
СХ-1: Приложение является консольным.
СХ-2: Приложение разрабатывается на языке программирования PHP (причина выбора языка PHP отражена в пункте О-3 раздела «Ограничения», особенности и важные настройки интерпретатора PHP отражены в пункте ДС-1 раздела «Детальные спецификации»).
СХ-3: Приложение является кроссплатформенным с учётом пункта О-4 раздела «Ограничения».
Пользовательские требования
ПТ-1: Запуск и остановка приложения.
ПТ-1.1: Запуск приложения производится из консоли командой «phpconverter.php SOURCE_DIR DESTINATION_DIR [LOG_FILE_NAME]» (описание параметров приведено в разделе ДС-2.1, реакция на ошибки при указании параметров приведена в разделах ДС-2.2, ДС-2.3, ДС-2.4).
ПТ-1.2: Остановка приложения производится выполнением команды Ctrl+C в окне консоли, из которого было запущено приложение.
ПТ-2: Конфигурирование приложения.
ПТ-2.1: Конфигурирование приложения сводится к указанию парамет-ров командной строки (см. ДС-2).
ПТ-2.2: Целевой кодировкой преобразования текстов является коди-ровка UTF8 (также см. О-5).
ПТ-3: Просмотр журнала работы приложения.
ПТ-3.1: В процессе работы приложение должно выводить журнал своей работы в консоль и лог-файл (см. ДС-4), имя которого опреде-ляется правилами, указанными в ДС-2.1.
ПТ-3.2: Формат журнала работы и лог файла указан в ДС-4.1, а реак-ция приложения на наличие или отсутствие лог-файла указана в ДС-4.2 и ДС-4.3 соответственно.
Бизнес-правила
БП-1: Источник и приёмник файлов
БП-1.1: Каталоги, являющиеся источником исходных и приёмником ко-нечных файлов, не должны совпадать (см. также ДС-2.1 и ДС-3.2).
БП-1.2: Каталог, являющийся приёмником конечных файлов, не может находиться внутри каталога, являющегося источником исходных фай-лов или его подкаталогов (см. также ДС-2.1 и ДС-3.2).
|
Атрибуты качества
АК-1: Производительность
АК-1.1: Приложение должно обеспечивать скорость обработки данных не менее 5 МБ/сек на аппаратном обеспечении, эквивалентном следующему: процессор i7, 4 ГБ оперативной памяти, средняя скорость чтения/записи на диск 30 МБ/сек. Также см. О-6.
АК-2: Устойчивость к входным данным
АК-2.1: Требования относительно форматов обрабатываемых файлов изложены в ДС-5.1.
АК-2.2: Требования относительно размеров обрабатываемых файлов изложены в ДС-5.2.
АК-2.3: Поведение приложения в ситуации обработки файлов с нарушениями формата определено в ДС-5.3.
Ограничения
О-1: Приложение разрабатывается на языке программирования PHP, использование которого обусловлено возможностью заказчика осуществлять поддержку приложения силами собственного IT-отдела.
О-2: Ограничения относительно версии и настроек интерпретатора PHP от-ражены в пункте ДС-1 раздела «Детальные спецификации».
О-3: Процедуры установки и настройки интерпретатора PHP выходят за рамки данного проекта и не описываются в документации.
О-4: Кроссплатформенные возможности приложения сводятся к способности работать под ОС семейства Windows и Linux, поддерживающих работу интерпретатора PHP версии, указанной в ДС-1.1.
О-5: Целевая кодировка UTF8 является жёстко заданной, и её изменение в процессе эксплуатации приложения не предусмотрено.
О-6: Допускается невыполнение АК-1.1 в случае, если невозможность обеспечить заявленную производительность обусловлена объективными внешними причинами (например, техническими проблемами на сервере заказчика).
|
Детальные спецификации
ДС-1: Интерпретатор PHP
ДС-1.1: Минимальная версия — 5.5.
ДС-1.2: Для работы приложения должно быть установлено и включено рас-ширение mbstring.
ДС-2: Параметры командной строки
ДС-2.1: При запуске приложения оно получает из командной строки три па-раметра:
SOURCE_DIR — обязательный параметр, определяет путь к каталогу с файлами, которые необходимо обработать;
DESTINATION_DIR — обязательный параметр, определяет путь к ка-талогу, в который необходимо поместить обработанные файлы (этот каталог не может находиться внутри каталога SOURCE_DIR или в его подкаталогах (см. БП-1.1 и БП-1.2));
LOG_FILE_NAME — необязательный параметр, определяет полное имя лог-файла (по умолчанию лог-файл с именем «converter.log» раз-мещается по тому же пути, по которому находится файл скрипта con-verter.php);
ДС-2.2: При указании недостаточного количества параметров командной строки приложение должно завершить работу, выдав сообщение об использовании (ДС-3.1).
ДС-2.3: При указании излишнего количества параметров командной строки приложение должно игнорировать все параметры командной строки, кроме указан-ных в пункте ДС-2.1.
ДС-2.4: При указании неверного значения любого из параметров командной строки приложение должно завершить работу, выдав сообщение об использовании (ДС-3.1), а также сообщив имя неверно указанного параметра, его значение и суть ошибки (см. ДС-3.2).
ДС-3: Сообщения
ДС-3.1: Сообщениеобиспользовании: «USAGE converter.php SOURCE_DIR DESTINATION_DIR LOG_FILE_NAME».
ДС-3.2: Сообщения об ошибках:
Directory not exists or inaccessible.
Destination dir may not reside within source dir tree.
Wrong file name or inaccessible path.
ДС-4: Журнал работы
ДС-4.1: Формат журнала работы одинаков для отображения в консоли и за-писи в лог-файл: YYYY-MM-DD HH:MII:SS имя_операции параметры_операции ре-зультат_операции.
ДС-4.2: В случае если лог-файл отсутствует, должен быть создан новый пу-стой лог-файл.
ДС-4.3: В случае если лог-файл уже существует, должно происходить добав-ление новых записей в его конец.