архитектура / Лабор. работа 4 по Архит_и_проект ПО
.docЛабораторная работа 4
Автоматический синтез программ
Цель работы: приобрести практические навыки в реализации алгоритмов синтеза программ по непроцедурным спецификациям задач.
Контрольные вопросы
1. Что понимается под автоматическим синтезом программ?
2. Какие подходы к автоматическому синтезу программ сложились в настоящее время?
3. Назовите системы программирования, использующие элементы синтеза программ?
4. Что понимается под "спецификацией задачи"?
1. Методические указания
Лабораторная работа посвящена применению методов искусственного интеллекта в автоматизации программирования. В ней реализуется такой подход к программированию, при котором компьютер применяется уже на этапе постановки задачи, а не только на этапе кодирования программы. Базовые алгоритмы автоматического синтеза и оптимизации программ рассмотрены на лекциях по данному курсу.
2. Задания к лабораторной работе
Разработать простейшую систему автоматического синтеза программ (САСП) для решения задач в заданной предметной области. Предметная область представляет собой некоторый геометрический объект.
Варианты заданий.
1.Трапеция.
2.Треугольник.
3.Квадрат и прямоугольник.
4.Окружность.
5.Эллипс.
6.Параллелограмм.
7.Ромб.
8.Многоугольник, вписанный в окружность.
9.Цилиндр.
10.Призма.
11.Пирамида.
12.Шар.
13.Кольцо.
14.Сегмент круга.
15.Параллелепипед.
16.Усечённая пирамида.
17.Конус.
18.Усечённый конус.
19.Шаровый сегмент.
20.Шаровый сектор.
21.Окружность, вписанная в треугольник.
22.Треугольник, вписанный в окружность.
23.Правильный пятиугольник.
24.Пятиконечная звезда.
25.Правильный шестиугольник.
3. Порядок выполнения работы
-
Заданную фигуру изобразить графически. Всем элементам фигуры присвоить символические имена.
-
Составить все отношения вычислимости, связывающие параметры фигуры.
-
Вычислительную модель заданной предметной области изобразить графически в виде семантической сети.
-
Описать вычислительную модель аналитически в виде совокупности предложений вычислимости.
-
Спецификацию решаемых задач описать в виде оператора задачи. Разработать интерфейсное окно для введения оператора задачи в систему автоматического синтеза программ.
-
Выполнить структурное или объектно-ориентированное проектирование САСП. Результаты проектирования (иерархическую структуру САСП с моделью централизованного управления, IPO - диаграммы или модели ООП) оформить в соответствии с требованиями применяемой технологии.
-
Методом сетевого планирования составить сетевой график выполнения программистских работ, произвести его временную разметку, оценить необходимые людские ресурсы с учётом параллельности действий программистов. Сравнить полученные общие сроки выполнения проекта при параллельной и последовательной его реализации.
Провести хронометраж реальных временных затрат (в днях) на реализацию всех работ, т.е. разработку и отладку всех программных модулей, связанных с созданием САСП.
-
Разработать на любом языке программирования систему автоматического синтеза программ. Для выбранного языка программирования построить генерируемый шаблон программы. Подключить к системе синтеза систему программирования, соответствующую применяемому языку программирования (Pascal, С++, Java, C#).
-
Провести исследования процесса автоматического синтеза программ для разных формулировок задач на языке спецификаций.
4. Содержание отчёта
-
Постановка задачи с графическим представлением геометрической фигуры. Отношения вычислимости.
-
Вычислительная модель предметной области
-
Совокупность предложений вычислимости.
-
Результаты структурного или объектно-ориентированного проектирования САСП .
-
Результаты сетевого планирования работ над проектом САСП. Хронометраж затрат на разработку каждого модуля САСП.
-
Система автоматического синтеза программ.
-
Результаты автоматической генерации программ.