Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

архитектура / Лабор. работа 4 по Архит_и_проект ПО

.doc
Скачиваний:
14
Добавлен:
03.03.2016
Размер:
34.82 Кб
Скачать

Лабораторная работа 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. Порядок выполнения работы

  1. Заданную фигуру изобразить графически. Всем элементам фигуры присвоить символические имена.

  2. Составить все отношения вычислимости, связывающие параметры фигуры.

  3. Вычислительную модель заданной предметной области изобразить графически в виде семантической сети.

  4. Описать вычислительную модель аналитически в виде совокупности предложений вычислимости.

  5. Спецификацию решаемых задач описать в виде оператора задачи. Разработать интерфейсное окно для введения оператора задачи в систему автоматического синтеза программ.

  6. Выполнить структурное или объектно-ориентированное проектирование САСП. Результаты проектирования (иерархическую структуру САСП с моделью централизованного управления, IPO - диаграммы или модели ООП) оформить в соответствии с требованиями применяемой технологии.

  7. Методом сетевого планирования составить сетевой график выполнения программистских работ, произвести его временную разметку, оценить необходимые людские ресурсы с учётом параллельности действий программистов. Сравнить полученные общие сроки выполнения проекта при параллельной и последовательной его реализации.

Провести хронометраж реальных временных затрат (в днях) на реализацию всех работ, т.е. разработку и отладку всех программных модулей, связанных с созданием САСП.

  1. Разработать на любом языке программирования систему автоматического синтеза программ. Для выбранного языка программирования построить генерируемый шаблон программы. Подключить к системе синтеза систему программирования, соответствующую применяемому языку программирования (Pascal, С++, Java, C#).

  2. Провести исследования процесса автоматического синтеза программ для разных формулировок задач на языке спецификаций.

4. Содержание отчёта

  1. Постановка задачи с графическим представлением геометрической фигуры. Отношения вычислимости.

  2. Вычислительная модель предметной области

  3. Совокупность предложений вычислимости.

  4. Результаты структурного или объектно-ориентированного проектирования САСП .

  5. Результаты сетевого планирования работ над проектом САСП. Хронометраж затрат на разработку каждого модуля САСП.

  6. Система автоматического синтеза программ.

  7. Результаты автоматической генерации программ.