зированных тестов. Конечно, автоматизированные тесты в рамках под-
ходов TDD и BDD можно генерировать с помощью правила
R
SE
→
SY
.
В этом случае тесты будут зависимы от правил генерации кода, что не
позволит находить ошибки в правилах
R
PR
→
SE
и
R
SE
→
SE
. Ошибка в
правиле высокого уровня может привести к одновременной генерации
ошибочного кода программы и ошибочного теста.
В соответствии с изложенным корректным вариантом является
ручная разработка тестов на основе требований к системе. Предла-
гаемый подход позволяет облегчить работу проектировщика, но не
облегчает работу тестировщика.
Реализация требований постановки задачи.
Рассмотрим, как
требования I–IV реализуются в рамках предложенного подхода.
Требование I.
Проектировщик задает требования к системе в ви-
де дерева целей проектирования. При перепроектировании системы
дерево целей может изменяться с использованием правила
R
PR
→
PR
.
На основании трека проектировщик может отследить цепочки правил,
которые соответствуют изменившимся требованиям. Таким образом,
проектировщику будет предоставлено множество правил, в которые
он потенциально должен внести изменения. К сожалению, этот под-
ход не позволяет системе “подсказать” проектировщику новые прави-
ла, которые он должен добавить в систему в связи с изменившимися
требованиями. После изменения необходимых правил проектировщик
проводит перегенерацию кода системы.
Требование II
. Элементы технологий подключаются на этапе пре-
образования из семантики в синтаксис с использованием правила
R
SE
→
SY
. Если проектировщику необходимо провести замену би-
блиотеки, то он изменяет соответствующие правила, что приводит к
генерации текста программы с вызовом новой библиотеки.
Требование III
. Независимость от целевого языка программирова-
ния обеспечивается правилом
R
SE
→
SY
. Изменение указанного пра-
вила позволяет изменить целевой язык программирования, например
перейти от С++ к С#. При этом логика работы программы, задавае-
мая правилами более высоких уровней, остается неизменной. Однако,
если проектировщику требуется изменение парадигмы целевого язы-
ка (например, с объектно-ориентированной на функциональную), то
это может потребовать внесения изменений в правила более высоких
уровней
R
PR
→
SE
и
R
SE
→
SE
.
Требование IV
. Для реализации поясняющего компонента в моде-
ли используется трек, с помощью которого можно отследить цепочку
правил, приводящих к генерации определенного фрагмента кода
t
i
на
основании цели проектирования
g
i
через промежуточные элементы
семантического метаграфа.
84 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2014. № 5