Введение
Практический каждый проект внедрения корпоративных информационных систем требует их доработки. Для чего готовится документ функциональной спецификации на разработку, содержащий в себе описание исходного требования, верхнеуровневое понимание решения, а также технические детали реализации [1]. Документ готовится вне зависимости от применяемой методологии имплементации, не исключением являются Agile-подходы. В спецификации должен быть соблюден баланс бизнес и технических составляющих: пользователи должны увидеть свои исходные требования к системе и сформировать общую картину решения, в то время как разработчики – найти технические детали, достаточные для старта программирования решения.
Обычно эта задача решается за счет выделения в документе спецификации бизнес и технических частей, тем самым каждый из заинтересованных получает требуемую для работы информацию. К сожалению, нет какого-либо регламентированного подхода, описывающего структуру и содержание спецификации, поэтому в каждом проекте наполнение документа уникально. С технической точки зрения документ спецификации должен содержать описание всех необходимых атрибутов пользовательских экранов и алгоритмов их заполнения, изменения и очистки. Правил по записи алгоритмов в спецификации так же нет, поэтому основное требование состоит в том, чтобы разработчику была понятна логика техрешения.
Чем опытнее функциональный консультант, тем более детальнее он описывает алгоритмы выборки данных, приближая их к языку программирования ERP-системы. И, наоборот, новичок указывает минимум деталей в форме близкой к краткому тексту. Существует несколько подходов, как можно описать алгоритмы обработки данных. При этом они сильно зависят от зрелости и опытности технических специалистов, участвующих в ERP-проекте [2]. Давайте проанализируем несколько методов и дадим им оценку.
Цель и задачи
Цель статьи состоит в обзоре способов описания алгоритмов выборки данных в спецификациях на разработку ERP-систем. Чем качественнее написана функциональная спецификация, тем меньше алгоритмических ошибок ожидается при ее реализации. Достижение этой цели потребует выполнения следующих задач:
- рассмотрение способов описания алгоритмов;
- анализ SQL-запросов для использования в спецификациях на разработку;
- оценивание методов описания алгоритмов.
1. Алгоритмы в спецификациях на разработку ERP-систем
ERP-система является транзакционной, то есть ориентированной на обработку больших массивов данных. Преимущественно в системах подобного класса используются реляционные базы данных, таблицы в которых взаимосвязаны между собой по принципу «сущность-связь». Следовательно, вся информация, необходимая для пользователей хранится в таблицах баз данных и отображается в экранные формы программ по запросу. Подготовка функциональных спецификаций требует описания алгоритмов выборки данных, иными словами логики выбора информации из таблиц баз данных. Существует несколько способов, как можно описать подобные алгоритмы в спецификациях на разработку:
- ссылка на поле таблицы баз данных без указания деталей;
- применение SQL-запросов;
- использование SQL-запросов и прочих команд языков программирования.
Первый и самый распространенный метод описания алгоритмов заполнения полей в спецификации на разработку представляет собой явную ссылку на поле таблицы баз указания деталей, откуда изымается значение. Форма записи в этом случае принимает вид (1):
<Таблица>-<Поле>. (1)
Таким способом пользуются новички, так как приведенное описание не содержит технических деталей алгоритмов: входные данные, ограничения и прочие параметры. Более того, если программная разработка является сложной, то достаточно непросто передать всю логику обработки только используя (1), приходится пользоваться кратким текстом для описания алгоритма, что порождает разночтение. Пример использования (1) дан в таблице 1. Как видно из таблицы, описание правил заполнения схоже по принципу с оператором присвоения в языках программирования: слева указывается переменная, а справа – передаваемая ей значения, с той лишь разницей, что переменная характеризует поле на экране программы.
Таблица 1. Пример описания логики заполнения поля на основе ссылки
Следующим подходом для указания логики заполнения полей служит применение языка структурированных запросов SQL (Structured Query Language). Структура SQL единообразна и не зависит от языка программирования. Среда программирования может слегка менять синтаксис SQL, добавляя в него специфичный диалект, однако принципиальный разночтений он не дает. Команд обработки данных в языке SQL немного. Примеры самых частых из них приведены на рис. 1. В спецификациях на разработку в 90% случаев используется оператор SELECT, все остальные применяются гораздо реже.
Полный текст статьи: https://corpinfosys.ru/archive/2018/issue-2/140-2018-2-sqlspecifications