2.1. Содержание пояснительной записки
Пояснительная записка должна отражать этапы работы специалиста по информационным системам над конкретной проблемой.
1) Обзор литературы (состояние вопроса).
2) Описание предметной области.
3) Описание используемых инструментальных средств для разработки программного обеспечения
3) Разработка информационной модели.
4) Синтез алгоритма и его исследование.
5) Программная реализация.
6) Выводы и практические рекомендации.
Конечно, предлагаемую схему расположения материала в дипломной работе ни в коем случае нельзя рассматривать как догму. Но еще раз подчеркнем: дипломная работа не должна сводиться только к демонстрации навыков программирования. Ее автор должен показать умение приложить знание теории информационных систем в реальных практических задачах.
2.2. Оформление пояснительной записки.
Пояснительная записка оформляется на листах бумаги стандартного формата А4 (210х297). Текст размещается на одной стороне листа. Пояснительная записка переплетается с прозрачной обложкой.
Все страницы имеют сквозную нумерацию, начиная с титульного листа. На титульном листе номер не проставляется.
Расположение материала в пояснительной записке следующее.
1. Титульный лист;
2. Задание на дипломную работу;
3. Реферат (одна страница);
4. Оглавление с постраничной разметкой;
5. Введение с кратким обзором по рассматриваемому вопросу и мотивировкой выбора направления данной работы; (обзор можно вынести и в отдельную главу).
6. Основная часть работы, содержащая разделы:
<Предметная область, информационная модель>
<Описание алгоритма>
<Описание программного обеспечения>
7. Заключение;
8. Библиографический список;
9. Приложения — материалы (чертежи, таблицы, графики, блок-схемы, распечатки большого формата и т.п.), включение которых в основной текст по каким-либо причинам признано необязательным.
Ориентировочный объем пояснительной записки составляет примерно 40 – 60 страниц шрифтом Times New Roman (размер 12 пунктов) через 1,5 интервала.
2.3. Описание алгоритма.
К сожалению, в общем случае нельзя дать однозначных рекомендаций по описанию алгоритмов. Когда-то были популярны блок-схемы алгоритмов (в ГОСТе они называются схемами алгоритмов). Сейчас они используются при внешнем, наиболее грубом описании алгоритма. Ведь в них даже нет адекватного средства для наглядного изображения оператора цикла: "для k от 1 до N с шагом 1 выполнить".
Постепенно пришли к выводу, что наиболее полным формальным описанием алгоритма является программа. В то же время из формального описания алгоритма на языке программирования бывает трудно понять содержательный смысл выполняемых действий (даже при использовании комментариев в тексте программы). Поэтому описание алгоритма должно быть прежде всего неформальным, рассчитанным на читателя-человека, а не машину. В качестве классического образца можно предложить книги Д.Кнута (см. например, [5]), где формальной записи алгоритма на языке MIX предшествует ясное неформальное изложение с использованием математической символики. Можно также использовать в качестве образца описание алгоритмов, представленных в [1; 6; 7].
Следует подробно описывать алгоритм не всей программы, а только нетривиальной ее части, понимание которой может вызвать затруднения. Так, не нужно детализировать описание начального диалога программы с пользователем, когда запрашиваются некоторые параметры и проверяется их принадлежность некоторому диапазону.
В описании алгоритма не следует использовать внутренних имен функций и модулей, из которых состоит программа. Следует давать им названия, отражающие смысл. При описании программного обеспечения желательно дать таблицу соответствия содержательных и формальных имен. Например, если в программе, функция, выполняющая оценку точности решения, носит имя accur(), то в описании алгоритма следует использовать осмысленное название "модуль оценки точности". В тексте программы в свою очередь должен быть комментирующий текст, поясняющий читателю назначение функции accur().
Еще отметим, что не во всякой дипломной работе можно говорить об алгоритме в строгом смысле этого слова. Допустим, разрабатывается программа на языке Пролог. Тогда алгоритм скрыт в используемых языковых средствах, и уместнее говорить о сценарии работы программы. Это же касается использования прикладных программных пакетов, предназначенных, например, для моделирования динамических систем. В общем, термин "алгоритм" можно использовать и в этом случае, но понимать его в расширительном смысле, как алгоритм взаимодействия пользователя с прикладной программной системой. Синонимами здесь будут такие термины как "сценарий", методика", "последовательность действий".
Итак, выбор адекватного языка описания алгоритма представляет собой нетривиальную задачу и должен производиться взвешенно. Здесь полезны обсуждения с руководителем и консультантом.
2.4. Описание программного обеспечения.
Требования к объему и детализации описания программного обеспечения зависят от задач и характера дипломной работы, от объема разрабатываемых программ. Программное обеспечение должно быть описано в соответствии с основными требованиями ГОСТов, составляющих Единую систему программной документации (ЕСПД) [2]. В реальной практике в ТЗ (техническое задание) включается раздел "Требования к программной документации", в котором определяется состав документов, передаваемых Заказчику вместе с программным обеспечением: например, "Руководство системного программиста", "Руководство оператора", "Программа и методика испытаний" и т.д. В документах имеются повторяющиеся разделы (например, "Назначение программы"), поэтому в дипломной работе нецелесообразно педантично воспроизводить форму этих документов. Достаточно продемонстрировать умение описывать программное обеспечение так, что из пунктов описания легко потом скомпоновать документы, определенные ТЗ. При наиболее полном описании разработанного программного обеспечения рекомендуем раскрыть в дипломной работе следующие пункты (они выбраны из ЕСПД).
1) Общие сведения о программе (программном комплексе — далее это уточнение будет опускаться).
Здесь указываются:
· обозначение и наименование программы;
· программное обеспечение, необходимое для функционирования программы;
· языки программирования, на которых написана программа;
· основные характеристики: объем и время работы программы.
Остановимся подробнее на последнем пункте. Объем программы измеряется дважды: во-первых, определяется объем исходных текстов программ, во-вторых, объем исполняемых модулей.
2) Функциональное назначение.
Указываются классы решаемых задач и (или) назначение программы и сведения о функциональных ограничениях на ее применение.
3) Структура программы. Программное обеспечение обычно создается коллективом разработчиков (бригадой программистов), дипломник разрабатывает часть модулей. Следует в общих чертах описывать всю систему и подробно - модули, разработанные автором.
Структуру взаимодействия модулей предпочтительно изображать в виде графа подчиненности модулей, чтобы наглядно показать иерархическую структуру комплекса. Служебные подпрограммы, используемые практически всеми модулями комплекса, целесообразно показывать отдельно, чтобы не загромождать схему большим количеством связей.
Для каждого модуля приводится его название и описывается назначение.
4) Используемые технические средства. Здесь перечисляется минимальный состав технических средств, обеспечивающий работу программы: тип процессора, объем оперативной памяти, наличие жесткого диска, требуемый объем дискового пространства, тип дисплейного адаптера, наличие принтера и его тип, какое-либо специализированное оборудование (плоттер, мышь и т.д.)
5) Требования к программному окружению. Операционная система и ее минимально допустимая версия, наличие в оперативной памяти специализированных драйверов, используемые стандартные библиотеки (например, библиотеки для научно-технических расчетов, библиотеки графических примитивов, библиотеки классов и т.д.)
6) Настройка программы (процедура инсталляции). Какие действия должен предпринять программист при установке программы на жесткий диск
7) Эксплуатация программы.
7.1) Описание входных данных.
Входная информация разделяется на переменную и постоянную. Например, программы, эксплуатируемые на производственном участке, читают нормативно-справочную информацию из файлов, содержимое которых обновляется достаточно редко. В то же время оперативный план может меняться ежедневно.
Для входной информации указывается тип кодирования, формат (например, постоянная информация может выбираться из обычных текстовых файлов в формате ASCII, либо из файлов в формате некоторой базы данных). Следует также указывать технические средства ввода данных: клавиатура, мышь, сканер и т.д.
7.2) Описание выходных данных.
Здесь указываются характер и организация выходных данных; формат, описание и способ кодирования. Описывается информация, поступающая на выходные устройства: экран терминала, принтер, плоттер. Описываются файлы с выходной информацией.
Сообщения об ошибках в выходную информацию не включаются.