Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПорядокВыполнения-КР.doc
Скачиваний:
9
Добавлен:
09.02.2015
Размер:
182.27 Кб
Скачать

Перечень разделов пояснительной записки к курсовой работе

1. СОДЕРЖАТЕЛЬНАЯ (ИСХОДНАЯ) ПОСТАНОВКА ЗАДАЧИ

2. АНАЛИЗ И ПРИМЕР РЕШЕНИЯ ЗАДАЧИ

2.1. Анализ задачи

2.2. Пример решения задачи

3. ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ

3.1. Исходные данные

3.2. Ограничения на исходные данные

3.3. Результирующие (выходные) данные

3.4. Связь выходных данных с исходными данными

4. СПЕЦИФИКАЦИЯ ПРОГРАММЫ

4.1. Исходные данные

4.1.1. Перечень и основные характеристики исходных данных

4.1.2. Ограничения на исходные данные

4.1.3. Место и форма представления исходных данных

4.2. Функции программы по обработке исключительных ситуаций

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

4.3.1. Состав выходных данных

4.3.2. Место и форма представления выходных данных

4.4. Сценарий диалога

4.4.1. Общая схема диалога

4.4.2. Описание сцен диалога

5. РАЗРАБОТКА СТРУКТУР ДАННЫХ И АЛГОРИТМОВ

5.1. Алгоритмы

5.2. Модель структур данных

5.3. Структура программы и интерфейс модулей

6. ПРОГРАММА НА ЯЗЫКЕ ТУРБО ПАСКАЛЬ

7. ИСПЫТАНИЯ ПРОГРАММЫ

8. АНАЛИЗ РЕЗУЛЬТАТОВ И ВЫВОДЫ

Рис. 1

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

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

Содержание разделов

В разд. 1 «Содержательная (исходная) постановка задачи» даётся постановка задачи в содержательных терминах (в терминах «предметной области»). На практике задачи формулируются именно таким образом. Учебные задания могут формулироваться уже с некоторой степенью формализации (в контексте некоторых математических моделей), поэтому используем термин исходная постановка задачи (ИПЗ).

ИПЗ должна следовать тексту полученного задания и, возможно, включать дополнительные указания или пояснения, данные преподавателем устно. При этом ИПЗ может расширяться за счёт включения в неё дополнительных сведений, разъясняющих понятия и терминологию исходного текста задания. В этих случаях окончательный вариант ИПЗ согласовывается с преподавателем.

Основное назначение разд. 2 «Анализ и пример решения задачи»  выявить особенности, неясности, неточности и возможную неполноту ИПЗ (например, что-то может подразумеваться в контексте предметной области), чтобы формальная постановка задачи (см. далее) была точной, полной и понятной. Для этого в 2.1 «Анализ задачи» анализируется ИПЗ, чтобы определить основное содержание задания: выявить основные понятия, термины, математические и информационные объекты, фигурирующие в формулировке ИПЗ, определить входные и выходные данные задачи и содержательные соотношения между ними. Как правило, при таком анализе задачи крайне полезным оказывается «придумывание» и выполнение набора простых примеров решения задачи. Примеры выполняются «вручную», т. е. с помощью карандаша и бумаги. Набор таких примеров с необходимыми пояснениями приводится в 2.2 «Пример решения задачи». Это делается, во-первых, для выявления неясностей, неточностей и пробелов в ИПЗ, а во-вторых, для демонстрации достигнутого в результате анализа задачи уровня понимания её сути и основных её особенностей. Примеры должны, с одной стороны, иметь ясный содержательный смысл, а с другой  оперировать с теми математическими и информационными объектами (данными), которые используются в ИПЗ и её дальнейшей формализации.

«Формальная постановка задачи» (разд. 3) должна быть точной (иметь единственную интерпретацию), полной (ничто не должно быть упущено) и понятной.

В качестве формализма используется, как правило, математический аппарат, основанный на таких понятиях, как множества, последовательности, кортежи, отношения, функции, графы, другие алгебраические и геометрические понятия и объекты. Формальная постановка задачи (ФПЗ) охватывает в первую очередь основную «вычислительную» часть задания и, как правило, не учитывает особенности выполнения этого задания на компьютере, в том числе всё, что связано с так называемым интерфейсом (для учёта этой стороны дела вводится понятие спецификация – см. далее). ФПЗ должна быть выполнена с такой степенью формализации, чтобы гипотетический исполнитель (например, человек, снабженный необходимыми ресурсами: карандашом, бумагой, временем, возможно, в ограниченном количестве), понимающий язык, на котором сформулирована ФПЗ, смог бы решить поставленную задачу. Конечно, не во всякой задаче её вычислительная часть и её интерфейс (т. е. всё, что связано с взаимодействием программы с внешним окружением, в том числе с человеком, решающим задачу с помощью этой программы) легко отделяются друг от друга. Предполагается, что в заданиях на курсовую работу такое разделение возможно.

Раздел ФПЗ состоит из подразделов «Исходные данные», «Ограничения на исходные данные», «Результирующие (выходные) данные» и «Связь выходных данных с исходными данными».

«Исходные данные» включают перечень всех данных, необходимых для решения задачи, их содержательные и формальные характеристики (с использованием принятого формального аппарата). «Ограничения на исходные данные» содержат ограничения, накладываемые на допустимые значения исходных данных и на соотношения между ними, вытекающие из существа задачи и средств формализации. При нарушении этих ограничений, как правило, задача либо не имеет нужного смысла, либо не может быть решена (принципиально или эффективным способом). «Результирующие (выходные) данные» в рамках принятого формализма содержат перечень всех выходных данных, составляющих результат решения задачи, их содержательные и формальные характеристики.

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

Для примера рассмотрим задачу сортировки заданной последовательности (a(1), a(2),…, a(n)). Существует много алгоритмов решения этой задачи. Нужное описание должно определять, как связаны начальное и конечное состояния последовательности, но не действия для достижения требуемого конечного состояния (что соответствовало бы некоторому конкретному методу сортировки). Обозначим начальное состояние последовательности как (A(1), A(2),…, A(n)). Пусть требуется её отсортировать (упорядочить) по возрастанию. Тогда конечное состояние последовательности можно охарактеризовать следующими двумя предикатами:

(a(1), a(2),…, a(n)) = Перестановка(A(1), A(2),…, A(n));

( k2..n: a(k  1) < a(k)).

Если необходимо, предикат Перестановка также может быть выражен с использованием кванторов существования , всеобщности  и счёта . Отметим, что из хорошего формального описания связи выходных данных с исходными данными в большинстве случаев извлекается алгоритм решения задачи.

В разд. 4 «Спецификация программы» дается формальная постановка задачи для решения на компьютере, учитывающая его особенности и особенности взаимодействия (интерфейса) человека, решающего задачу с помощью программы, с компьютером. При выполнении курсовой работы следует учесть особенность назначения разрабатываемой (учебной) программы. Конечно, основное её назначение – реализация действий, определяемых в ИПЗ. Однако для студента, выполняющего курсовую работу, важно убедиться самому в работоспособности своей программы (в том числе путём тестирования и отладки) и затем убедить в этом преподавателя, оценивающего работу студента. С этой точки зрения программа должна быть написана так, чтобы процесс её тестирования и анализа результатов происходил максимально организованно, результативно и комфортно для человека, тестирующего и оценивающего качество программы. Это означает, что программа должна выполнять тестирующие функции для своего «вычислительного» ядра и фактически является так называемым драйвером тестирования. Это необходимо учесть при разработке спецификации.

«Исходные данные» содержат перечень и описание основных характеристик исходных данных – назначение, тип; ограничения на величину, на количество исходных данных (с учетом характеристик компьютера); место и форму представления исходных данных (как правило, типы файлов и форматы представленных в них данных).

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

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

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

Разд. 5 «Разработка структур данных и алгоритмов» должен содержать описание результатов процесса разработки алгоритмов программы и выбора представления структур данных. В качестве средств описания алгоритмов могут быть использованы псевдокод или схемы программ.

При разработке алгоритмов рекомендуется применять метод пошаговой детализации. Разработка структур данных выполняется на основе определенных в ФПЗ абстрактных структур данных и операций над ними, полученных при проектировании алгоритма, и заканчивается описанием данных средствами языка Паскаль.

Разработка алгоритмов должна начинаться со словесного описания основного алгоритма программы, которое содержит перечень предъявляемых к нему основных требований. Эти требования должны быть представлены при помощи средств описания алгоритмов. Далее применяется метод пошаговой детализации, т. е. последовательно рассматриваются операторы алгоритма и, при необходимости, детализируются. Этот процесс рекомендуется заканчивать, когда становятся очевидными «элементарные» операции над структурами данных или алгоритмы реализации операторов. Результатом данного этапа проектирования программы являются: алгоритмы работы программы и ее блоков и список «элементарных» операций над структурами данных.

Исходными данными для разработки представления структур данных являются: описание структур данных, определенных исходной и формальной постановками задачи, и список «элементарных» операций над структурами данных, полученный при разработке алгоритмов.

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

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

Разд. 6 содержит программу на языке С++.

В разд. 7 «Испытания программы» приводятся наборы тестовых данных (включая эталонные результаты) и полученные на них результаты выполнения программы.

В разд. 8 даётся анализ результатов и делаются выводы по результатам тестирования и отладки.

ПРИМЕР ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ

Приведен пример выполнения задания и оформления пояснительной записки к курсовой работе.