Система моделирования работы машины Тьюринга

Автор: Пользователь скрыл имя, 10 Мая 2013 в 00:46, курсовая работа

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

В 1936 г. английский математик Алан Тьюринг опубликовал в трудах Лондонского математического общества статью «О вычислимых числах в приложении к проблеме разрешения», которая наравне с работами Поста и Черча лежит в основе современной теории алгоритмов. Тьюрингом в качестве математической модели для описания алгоритмов было предложено абстрактное вычислительное устройство, которое впоследствии было названо машина Тьюринга (МТ).

Файлы: 1 файл

Записка МТ!(печать!!).doc

— 760.00 Кб (Скачать)

1.3 Построение структурной схемы

В основе структурного подхода  к разработке ПС лежит алгоритмическая декомпозиция, когда система разбивается на функциональные подсистемы, которые, в свою очередь, делятся на подфункции, подразделяемые на задачи и так далее. Процесс разбиения продолжается вплоть до конкретных процедур (алгоритмов). При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. Разработка  системы идет по принципу «сверху-вниз» [9].

Структурная схема «Машины Тьюринга» представлена на рисунке  6.

Рисунок  6 – Структурная схема программной системы

Автоматизированную систему «Машины Тьюринга» можно представить в виде следующих подсистем:

- управления, которая представляет собой иерархическое меню и позволяет организовать связь с другими подсистемами;

- создания алгоритма, включающую в себя подсистемы ручного составления алгоритма или загрузки базового;

- семантического анализа, которая отвечает за проведение семантического анализа и выдачу сообщений в случае нахождения ошибок;

- визуализации, отвечающей за отображение процесса выполнения алгоритма;

- файловой, позволяющей сохранять (загружать) алгоритм, сохранять трассу;

- справочной, выдающей информацию о разработчиках и сведения о системе.

 

1.4 Спецификация системы

Требования (спецификации) – свойства, которыми должно обладать ПО для адекватного определения функций, условий и ограничений выполнения ПО, а также объемов данных технического обеспечения и среды функционирования [10].

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

Функциональные требования определяют назначения и функции ПО.

Нефункциональные требования определяют условия выполнения ПО и доступа к данным.

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

1.4.1 Функциональная спецификация

Функциональная спецификация –  перечень всех функций, которые выполняет  пользователь, и наиболее важных функций  системы с привязкой к информационной  
среде [10].

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

1.4.2 Спецификация качества

Основные требования по показателям качества к программной  системе [9]:

  1. Корректность. В первую очередь программа должна правильно работать.
  2. Надёжность – способность ПС выполнять возложенные на нее функции при поступлении требований на их выполнение в течение заданного интервала времени, включающая в себя отказоустойчивость, безопасность, защищённость от случайных или преднамеренных воздействий.
  3. Эффективность – отношение уровня услуг, предоставленных программной системой пользователю при заданных условиях к объёму использованных ресурсов, оценивающееся временем выполнения кода, загруженностью процессора, объёмом требуемой памяти, временем отклика.
  4. Удобство использования. ПС должна быть легкой в использовании, причем именно тем типом пользователей, на которых она рассчитана. Это включает в себя интерфейс пользователя и адекватную документацию. Причем, пользовательский интерфейс должен быть не интуитивно, а профессионально понятным пользователю.
  5. Полезность. Данная программа позволяет моделировать работу машины Тьюринга– универсального вычислительного устройства, на котором, в теории, могут быть реализованы любые алгоритмы.

1.4.3 Перечень исключительных ситуаций

Составной частью функциональной спецификации является описание исключительных ситуаций.

 Исключительная ситуация –  это ситуация, при которой система  не может выполнить те функции,  которые ожидает пользователь, или  ситуация, которая приводит к  денормализации работы всей системы [10].

Перечень исключительных ситуаций представлен в таблице 3.

Таблица 3 – Перечень функций, выполняемых системой

Назначение п/с

Назначение исключительной ситуации

Реакция системы 

Справочная

Отсутствие файла справки

  1. Выдача сообщения «Файл отсутствует»
  2. Блокировка пункта меню

Файловая

Файл не найден

Выдача сообщения «Файл не найден»

Файл другой структуры

Выдача сообщения «Файл другой структуры»


 

1.5 UML-проект

UML ( Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью. UML был создан для определения, визуализации, проектирования и документирования в основном программных систем. UML не является языком программирования, но в средствах выполнения UML-моделей как интерпретируемого кода возможна кодогенерация. [11].

 

Название п/с

Название функции

Информационная среда

Входные данные

Выходные данные

Название

Тип, ограничения

Название

Тип, ограничения

1 Справочная

1.1 Выдать сведения о разработчиках

Сведения о разработчиках

МЕМО

Визуальное отображение информации

_____

1.2 Выдать сведения о системе

Сведения о возможностях системы

файл, формат *.hlp

Код ошибки

Целое

2 Файловая

2.1 Сохранить алгоритм в файл

Имя файла

Строка *.MT

Файл алгоритма

Текстовый

Алгоритм

Алгоритм

2.2 Загрузить алгоритм из файла

Имя файла

Строка *.МТ

Алгоритм

Алгоритм

Файл алгоритма

Текстовый

Код ошибки

Целое

2.3 Сохранить трассу в файл

Имя файла

Строка *.tr

Файл трассы

Текстовый

Трасса

Трасса

3 Создания алгоритма

3.1 Задать символ алфавит

Алфавит

Алфавит

Алфавит

Строка

Символ

Стандарт ASCII

Код ошибки

Целое

3.2 Редактировать ячейку

Номер ячейки, содержимое

Ячейка

Содержимое ячейки

Строка

Код ошибки

Целое

3.3 Добавить строку

Номер текущей строки

Целое, в пределах таблицы

Алгоритм

Алгоритм

Признак добавления

Перед текущей строкой

После текущей строки

3.4 Удалить строку

Номер строки

Целое, в пределах таблицы

Алгоритм

Алгоритм

4 Моделирования МТ

         

4.1 Семантического анализа

4.1.1Выполнить семантический анализ

Алгоритм

Алгоритм

Код ошибки

Целое

4.2 Настройки параметров

4.2.1 Выбрать режим демонстрации

Список режимов демонстрации

Пошаговый

Текущий режим демонстрации

Перечислимый тип

Автоматический с задержкой

Вывод конечного 

результата

4.2.2 Задать величину задержки (для  
автоматического режима)

Диапазон

Вещественное

Текущее значение

Вещественное

4.2.3 Показать трассу

Трасса

Строка

Трасса

Текстовый

4.2.4 Задать операнды

На ленте

Символ

Лента

Строка

В десятичной форме

Целое

4.2.5 Редактировать ленту

Ячейка ленты, содержимое

Символ (1, *)

Лента

Строка

4.3 Визуализации

4.3.1 Подсветка в таблице

Ячейка таблицы

______

Визуальное отображение

_____

4.3.2 Подсветка на ленте

Ячейка ленты

______

Визуальное отображение

_____


 

Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.

UML позволяет также  разработчикам программного обеспечения  достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение (generalization), объединение (aggregation) и поведение), и больше сконцентрироваться на проектировании и архитектуре.

UML содержит стандартный набор  диаграмм и нотаций для моделирования самых разнообразных видов систем: систем программного обеспечения, технических средств и организационно-экономических систем [12]:

  • диаграммы вариантов использования (use case diagrams);
  • диаграммы классов (class diagrams);
  • диаграммы поведения системы (behavior diagrams):
  • диаграммы состояний (statechart diagrams);
  • диаграммы деятельностей (activity diagrams;
  • диаграммы взаимодействия (interaction diagrams):
  • диаграммы последовательности (sequence diagrams);
  • кооперативные диаграммы (collaboration diagrams);
  • диаграммы реализации (implementation diagrams):
  • диаграммы компонентов (component diagrams);
  • диаграммы размещения (deployment diagrams).

1.5.1 Диаграмма вариантов использования

Диаграмма вариантов использования  описывает функциональное назначение системы, т.е. то, что система будет делать в процессе своего функционирования. Диаграмма вариантов использования является исходным концептуальным представлением или концептуальной моделью системы в процессе ее проектирования и разработки [12].

Суть данной диаграммы состоит  в следующем: проектируемая система  представляется в виде множества  сущностей или актантов, взаимодействующих  с системой с помощью так называемых вариантов использования. При этом актантом или действующим лицом  называется любая сущность, взаимодействующая с системой извне. Это может быть человек, техническое устройство, программа или любая другая система, которая может служить источником воздействия на моделируемую систему так, как определит сам разработчик. В свою очередь вариант использования служит для описания сервисов, которые система предоставляет актанту.

Диаграмма вариантов использования  разработанной системы представлена на рисунке 7. На данной диаграмме актант – пользователь, который имеет возможности загружать алгоритм из файла, сохранять алгоритм и трассу в файл. Пользователю предоставляются возможности создать алгоритм вручную или выбрать один из базовых алгоритмов, запустить алгоритм в одном из режимов демонстрации. Также пользователь может задать значения операндов в выбранном формате и посмотреть справочную информацию.

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

Вариант использования: Задать дополнительный символ алфавита.

Краткое описание.  Дает возможность пользователю добавить символ в алфавит, если это необходимо для реализации алгоритма. Пользователь щелчком мыши по кнопке «+», расположенной рядом с таблицей алгоритма, открывает окно для ввода нового символа.

Актант. Пользователь.

Предусловия. Компьютер пользователя включён, на экране – главное окно программы «Машина Тьюринга».

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

  1. На экране появляется форма ввода имени символа с полем ввода «Введите символ» и с кнопкой «Оk».
  2. Пользователь вводит символ и нажимает кнопку «Оk».

А1: Введен символ, уже имеющийся в алфавите.

А2: Введено более одного символа.

А3: Символ не введен и нажата кнопка «Ok»

Альтернативы.

А1: Введен символ, уже имеющийся  в алфавите.

Система выводит сообщение «Данный  символ уже присутствует!» и отображает главное окно приложения.

А2: Введено более одного символа.

Система выводит сообщение «Введите ОДИН символ!» и ожидает повторного ввода символа.

А3: Символ не введен и нажата кнопка «Ok»

Рисунок  7 – Диаграмма вариантов  использования

А3.1 Система закрывает форму для ввода символа и выводит на экран главную форму приложения.

Постусловия. При успешном завершении на экране – главное окно приложения с обновленным алфавитом и новым столбцом в таблице алгоритма.

Вариант использования: Загрузить алгоритм из файла.

Краткое описание.  Дает возможность пользователю загрузить сохраненный ранее алгоритм. Пользователь открывает окно загрузки нажатием кнопки «Загрузить алгоритм» на главной форме приложения или выбрав команду «Загрузить алгоритм» в меню «Файл».

Актант. Пользователь.

Предусловия. Компьютер пользователя включён, на экране – главное окно программы «Машина Тьюринга».

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

  1. На экране появляется окно загрузки.
  2. Пользователь выбирает нужный файл или вводит имя файла вручную и нажимает кнопку «Открыть».

А1: Нажата кнопка «Отмена»

  1. Система заполняет таблицу в соответствии с загруженным (выбранным) алгоритмом

А2: Загрузка алгоритма неверной структуры.

А3: Имя файла не существует.

Альтернативы.

А1: Нажата кнопка «Отмена»

А1.1: Система закрывает окно загрузки и выводит на экран главную форму приложения.

А2: Загрузка алгоритма неверной структуры.

А2.1: Система выводит сообщение  «Неверная структура файла». На экране отображается главное окно приложения.

А3: Имя файла не существует.

А3.1: Система выводит сообщение  «Файл не найден…». На экране отображается окно загрузки.

Постусловия. При успешном завершении на экране – главное окно приложения с таблицей, заполненной в соответствии с выбранным алгоритмом.

Вариант использования: Задать операнд в десятичной форме.

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

Актант. Пользователь.

Предусловия. Компьютер пользователя включён, на экране – главное окно программы «Машина Тьюринга».

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

  1. Пользователь ставит галочку в поле «Задать в десятичной форме»
  2. Система активизирует два текстовых поля для ввода значений операндов.
  3. Пользователь вводит значения и нажимает кнопку « >> ».
  4. Система заполняет ленту операндами в символьной форме

А1: Не заданы значения операндов.

А2: Введено не числовое значение.

А3: Введены значения, превышающие  размерность ленты.

Альтернативы.

А1: Не заданы значения операндов.

А1.1: Система выводит сообщение  «Введите число!».

А2: Введено не числовое значение.

Информация о работе Система моделирования работы машины Тьюринга