В работе предложена итерационно-рекурсивная модель вычислительного процесса программ, которая может являться теоретической основой для разработки учебно-исследовательской САПР верификации и тестирования программ. На основе изложенного выдвигаются требования и формулируются задачи создания САПР и ее применение в учебном процессе по изучению основ программирования. Они преследуют следующее:
• изучение основ программирования логики вычислительных процессов вне зависимости от конкретного языка программирования (изучение конкретного языка программирования составляет основу грамотности и, несмотря на его важность, носит
вспомогательный характер);
• унификацию структурных единиц вычислительных процессов, например: программирование сложных условий-предикатов, организацию циклов и их стандартизацию, выделение процедур и написание головных программ, реализацию интервальных формул: итеративных и рекуррентных;
• построение графо-аналитических моделей путем выделения линейных и условных
вершин с последующим объединением их в параллельные структуры (графоаналитические модели являются основой документирования вычислительных процессов при передаче программного продукта от исполнителя к заказчику);
• построение покрытий логических условий-предикатов на основе алгебротопологических методов (комплексные покрытия являются математическим описанием структурных единиц вычислительных процессов и служат машинноориентированной базой верификации вычисляемых переменных – параметров программ);
• применение учебно-исследовательской САПР (УИ САПАР) позволит унифицировать труд преподавателей, повысить его эффективность и качество через объективность оценки обучаемого.
При построении УИ САПР следует выделить главное и вспомогательное. Вспомогательным является разработка различного рода сервисных программ, таких, как оболочек, баз данных контрольных примеров с соответствующим уровнем защиты, групповых журналов, статистической обработки и т.п.
Главным является построение базы знаний в виде специализированного программного обеспечения, включающего в себя:
• разработку методов структурирования и построения на их основе графоаналитических моделей;
• построение параллельных структур, вычисляющих те или иные переменные, с вы-
делением в особые классы циклов и процедур;
• построение комплексных кубических покрытий, включающих в себя логику
управления вычислительным процессом и сами вычисления значений переменных –
операционную часть вычислительного процесса;
• автоматизацию построения комплексных покрытий на основе метода ветвей и границ (основная сложность построения таких покрытий лежит в области различного
рода и типа циклов и их сочетания между собой, порождающих как итерационные,
так и рекурсивные вычислительные процессы, анализ которых представляет собой
проблемную и весьма трудоёмкую переборную задачу);
• автоматизацию процессов верификации вычислений через покрытия и перекрестное
тестирование вычислительных процессов для программ, спроектированных на различных алгоритмических языках и, возможно, для различных вычислительных
платформ (в особую задачу следует выделить верификацию программ относительно
«эталонного» (квазиэталонного) вычислительного процесса, построенного по техническому заданию либо для виртуальной вычислительной машины на основе сокращенной системе команд по RISC-технологии, либо на универсальном алгоритмическом языке).
Построение УИ САПР позволит перейти к разработке обучающих систем в области программирования и, после проведения соответствующих исследований, – к проектированию и разработке промышленных САПР верификации и тестирования программ
практической сложности, что на сегодняшний день является актуальной проблемой. В
настоящее время разработаны отдельные подсистемы УИ САПР (построение графоаналитической модели программы, построение комплексных покрытий, моделирование
простых логических неисправностей, структурирование программ и др.) и проводятся
дальнейшие теоретические исследования и практические разработки.
|