Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодУказ-КР.doc
Скачиваний:
4
Добавлен:
15.08.2019
Размер:
140.8 Кб
Скачать
    1. Задания повышенной сложности

  1. Контроль диаграмм потоков данных.

Диаграммы потоков данных (DFD) является одним из основных средств моделирования функциональных требований программных систем, с помощью которых эти требования разбиваются на функциональные компоненты (процессы) и представляются в виде сети, связанной потоками данных.

Обычно DFD подвергают следующим видам контроля:

Контроль синтаксиса и типов элементов. Например:

  • по синтаксису: любой функциональный элемент диаграммы должен иметь по крайней мере один входной и один выходной поток; два элемента данных не могут быть непосредственно связаны;

  • по типам: функциональный элемент всегда используется для представления процедурного компонента; поток данных всегда должен быть представлен компонентом данных;

Контроль полноты и состоятельности: все элементы диаграмм должны быть правильно идентифицированы. Например, контролируют неименованные и несвязанные потоки данных, процессы и хранилища; источники и стоки данных (внешние сущности).

Контроль диаграмм по уровням - вертикальное и горизонтальное балансирование диаграмм.

Задание:

  • разработать набор правил, позволяющих контролировать DFD;

  • разработать, тестировать и отладить приложение, выполняющее функции ввода, контроля и коррекции DFD.

  1. Автоматическая генерация кода.

Одним из средств, используемых для описания функций, выполняемых программой, являются таблицы решений. Таблицы решений используются для описания программ, выполняющих, в основном, проверку и обработку независимых вариантов.

Таблица решений состоит из двух частей: описания условий и описания действий.

Задание:

  • разработать правила для автоматической генерации программы на языке программирования по таблице решений;

  • разработать приложение, которое позволяет вводить, проверять правильность заполнения и корректировать таблицы решений, а также генерирует по ней соответствующую программу.

  1. Сети Петри.

Сети Петри - удобный инструмент для исследования систем, который позволяет моделировать, анализировать, а также получать важную информацию о структуре и динамическом поведении моделируемой системы.

Задание.

Разработать, тестировать и отладить приложение, которое:

  • вводит описание графа сети Петри с клавиатуры или из файла;

  • выводит граф сети Петри на экран или в файл;

  • вводит начальную маркировку;

  • выполняет сеть Петри в автоматическом или автоматизированном режиме.

  1. Средства автоматизации проектирования компиляторов.

Функциональные требования

Ввод, коррекция и хранение описаний синтаксиса в виде БНФ, КС-грамматик Ввод может осуществляться из соответствующей базы данных (файла) или с клавиатуры в нескольких режимах (например: ввод словарей терминальных и других символов, а затем – правил грамматики; или ввод правил и определение классов символов - по умолчанию).

Анализ описаний (определение класса грамматики).

Тестирование описаний, например: построение порождаемых цепочек с заданными характеристиками; построение синтаксических деревьев для заданных цепочек.

Комплексирование описаний, построение описания из компонентов (описаний), хранящихся в соответствующей базе данных.

Преобразование описаний к определенному виду, например, преобразование КС-грамматик, разбиение грамматик на подграмматики и т.п.

Кодогенерация синтаксического анализатора заданного вида по описанию КС-грамматики, автоматическая или автоматизированная (позволяющая вмешаться в процесс генерации с целью его коррекции или коррекции данных и программ).

Поддержка тестирования и отладки программы синтаксического анализатора: точки прерывания, пошаговое моделирование работы, визуализация и коррекция данных и т.д.

Дополнительные требования

Реализовать два режима использования средств автоматизации: режим обучения и режим использования.

Организовать базу данных для хранения описаний, дополнительной информации (например, тестов), синтаксических анализаторов и т.д.

Совместимость с заданием «Конечный преобразователь»

  1. Конечный преобразователь

Функциональные требования

Ввод, коррекция и хранение описаний лексем в виде БНФ, автоматных КС-грамматик Ввод может осуществляться из соответствующей базы данных (файла) или с клавиатуры.

Контроль класса грамматики.

Тестирование описаний, например: построение порождаемых цепочек с заданными характеристиками.

Комплексирование описаний, построение описания из компонентов (описаний), хранящихся в соответствующей базе данных.

Кодогенерация лексического анализатора заданного вида по автоматной КС-грамматике, автоматическая или автоматизированная (позволяющая вмешаться в процесс генерации с целью его коррекции или коррекции данных и программ).

Поддержка тестирования и отладки программы лексического анализатора: точки прерывания, пошаговое моделирование работы, визуализация и коррекция данных и т.д.

Дополнительные требования

Совместимость с заданием «Средства автоматизации проектирования компиляторов».

Реализовать два режима использования средств автоматизации: режим обучения и режим использования.

Организовать базу данных для хранения описаний, дополнительной информации (например, тестов), лексических анализаторов и т.д.

  1. Синтаксически-ориентированный редактор

Синтаксически-ориентированный редактор должен повысить надежность ввода текст исходных модулей на заданном языке программирования.

Это может быть достигнуто сокращением числа вводимых программистом символов (например, использованием "горячих" клавиш для ввода ключевых слов), а также отслеживанием структуры программы (или операторов) при ее вводе.

Пример

Пусть нажатие клавиш Alt+b приводит к записи в текст ключевого слова begin. Известно, что begin является началом составного оператора (для примера выбран язык Паскаль), конец которого обозначается ключевым словом end.

Тогда при нажатии клавиш Alt+b в тексте может появиться конструкция:

begin

- (местоположение курсора)

end;

При нажатии клавиш Alt+i в тексте может появиться конструкция:

if - (местоположение курсора)

then

else и т.д.

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

Задание

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

Разработать, тестировать и отладить программу, выполняющую функции редактора и основанную на принятом наборе правил.

Приложение 1 Шаблон варианта использования

Вариант использования:

  1. Краткое описание

(a) <краткое описание варианта использования>

  1. Список ролей

(a) <список ролей пользователей варианта использования>

  1. Предусловие

(a) <предусловие>

  1. Основной поток событий

(a) Вариант использования стартует, когда <пользователь>, <производит действие>

(b) <поток событий шаг №1>

(c) ...

(d) <поток событий шаг №N>

(e) Конец варианта использования

  1. Альтернативный поток событий

(a) <альтернативный поток 1>. Если на шаге <n> основного потока <пользователь совершает определенное действие>, то

i. <описание потока>

ii. Вариант использование возвращается к шагу <m>

  1. Постусловие

(a) <постусловие>

  1. Специальные требования

(a) <специальные и нефункциональные требования>

Приложение 2. Шаблон сценария тестирования

Сценарий тестирования:

  1. Название

(a) Название сценария

  1. Функция

(a) Тестируемая функция

  1. Предусловие

(a) <предусловие>

  1. Шаги теста

(a) Описание взаимодействия пользователя и системы

  1. Постусловие

(a) Описание действий по окончанию теста

18