====== Содержательная структура пояснительной записки для ВКР ====== ===== Введение ===== Данный документ описывает про что и как писать в поястнительной записке. Важно отметить, что названия почти всех разделов даны примерные и в вашей работе они могут называться иначе и/или состоять из нескольких отдельных глав. Также в данном руководстве опущены обязательные разделы, такие как "Список используемой литературы", "Список сокращений" и т.д. Помимо этого, данные рекомендации являются не "достаточными", а "необходимыми". Важно: размещать в основном тексте пояснительной записки исходный код вашего решения **не нужно**! Пожалуйста, не добавляйте его - это ослабляет впечатление (диплом начинает походить плохой на отчет по лабораторной) и комиссия начинает думать, что вы таким образом "налили воды" в текст. ===== Содержательные части пояснительной записки ===== ==== Введение ==== **Введени обязательно должно содержать** как минимум следующие микро-разделы: * Актуальность решаемой в ВКР проблемы * Цель работы * Задачи * Объект исследования * Предмет исследования * Практическая значимость работы При этом все микро-разделы выше (кроме актуальности) должны содержать свое название, выделенное жирным шрифтом, например: Актуальность - посмотрите, как делать правильно https://stepik.org/lesson/104086/step/6?unit=78652 **Цель работы:** показать взаимосвязь между ... Для достижения цели необходимо решить следующие **задачи** - задача 1 - задача 2 **Объектом исследования** является ... **Предметом исследования** является **Практическая значимость** решения заключается в... Введение может также включать (оформляется по аналогии с микроразделами выше): * Научная значимость работы * Опубликованные работы по теме ВКР ==== Обзор предметной области ==== В данном разделе необходимо с помощью литературы: * Определить используемые в работе термины. * Привести формальную запись решаемой проблемы. Если решаемая вами проблема сводится к математической (в широком смысле) задаче (например, сортировка / классификация / кластеризация / сегментация / сжатие / предсказание ....), то желательно дать ее общую постановку на математическом языке. * Сравнить существующие подходы к решению проблемы: * привести их краткую характеристику; * сформулировать и, по возможности, обосновать критерии сравнения для подходов; * охарактеризовать каждый подход по каждому критерию; * сделать вывод о * общих недостатках, * общих достоинствах. ==== Выбор (обоснование) [метода] решения / формулировка требований к решению / постановка задачи ==== В данном разделе дается развернутая постановка задачи, решаемой в ВКР. Сама постановка это по сути развернутое и уточнение предложение вида "**Необходимо сделать ..., при этом результат должен обладать следующим набором свойств: 1) ..., 2)....**". При этом, постановка задачи должна по смыслу полностью перекликаться с целью/задачами во Введении. Обоснование постановки задачи (требований к решению) можно дать либо в данном либо в предыдщуем разделе. Решением может быть: * программа (как самостоятельное приложение, так и модуль/патч/драйвер и т.д.), * алгоритм, * метод, * математическая модель. ==== Описание [метода] решения ==== В данном разделе необходимо подробно описать и **обосновать** созданное в рамках ВКР решение / метод решения. Традиционно раздел может включають в себя: * Мат.аппарат * используемые формализации; * ваши разработки: * формальная запись, * границы применимости. * Архитектура программной реализации. * Алгоритмы * блок-схема или псевдокод, * входные и выходные данные алгоритма. * Сценарии использования. * Используемые технологии. * Структура программной реализации * классы / модули / функции; * как структурные элементы программы связаны / взаимодействую друг с другом - текст и графическая схема; * как программа взаимодействует с другими системами - текст и графическая схема. * Интерфейс пользователя (пользователями могут быть не только люди, но и другие программы) * Виды: * командная строка; * веб-интерфейс; * REST-интерфейс; * GUI; * сетевой протокол. * Что необходимо описать: * общие правила взаимодействия; * процедура авторизации; * назначение отдельных команд, ключей командной строки, запросов, экранов приложения; * последовательность использования интерфейса ( с каких команд необходимо начинать и т.д.); * примеры запросов для REST-интерфейсов, командной строки, сетевых протоколов и пр. * Модель данных: * технологии хранения (используемые СУБД), * ER-диаграммы, * назначение и состав отдельных коллекций (таблиц): * какие данные хранятся, * как выглядит схема данных, * связи между коллекциями и их реализация, * примеры хранимых данных, * ограничения. * Тесты: * юнит-тесты, * интеграционные тесты, * ui-тесты. * Апробация - опишите в этом разделе (Если такое было) как и куда было внедрено (развернуто ваше решение), о статистике использования, дайте ссылки на акты о внедрении. ==== Исследования свойств решения ==== В разделе "Исследование свойств решения" необходимо исследовать качественные и количественные свойства решения и, по возможности, противопоставить их аналогам. === Свойства, интересные для исследования === Примеры ниже являются достаточно общими и условными - в каждой конкретной задаче как правило есть свои характеристики, которые представляют интерес. Помимо этого, только некоторые из свойств интересны в чистом виде - чаще всего их измеряют в зависимости от значений параметров модели или программы. Свойства решений для мат.моделей: * существование и единственность решения, * оптимальность решения, * наличие сходимости и ее скорость, * вычислительная сложность, * точность (аппроксимации, предсказания, распознования и т.д.), * оптимальные значения параметров модели, * точность входных данных (например допустимое качество изображений для распознавания образов). Свойства решений для программ: * быстродействие (количество операций в единицу времени, пропускная способность), * расход ресурсов (память, пропускная способность сети, количество операций с дисковой подсистемой ), * точность (аппроксимации, предсказания, распознования и т.д.), * надежность. === Что писать в разделе с исследованием === Раздел с исследованием для программного решения может включать в себя: * Описание эксперимента * сценарий эксперимента * входные данные * измеряемые величины * последовательность действий * подтверждаемая или опровергаемая гипотеза * методика измерения, * где происходит измерение (характеристики ПК, на котором производятся эксперименты) * с помощью каких инструментов измеряются величины (точность измерения, алгоритм измерения) * используемые программные средства. * Результаты: * графики и таблицы, * словесное описание характера зависимости ("зависимость прямо-пропорциональная"), * сравнение с результатами аналогов, * выводы по итогам эксперимента. В случае мат.модели можно использовать аналогичный подход, если ее свойства измеряются с помощью численного эксперимента. Если свойства мат.модели определяются с помощью математических выкладок, то допустимым является более произвольный формат. === Апробация решения === Хорошим дополнением к исследованию является раздел про практическую аппробацию решения. Варианты аппробации: * внедрение в организации, * публикация программы в магазине приложений / каталоге приложений. В подобном разделе необходимо привести ссылки на опубликованное или внедренное решение, описать (при наличии информации) опыт использования решения реальными людьми. ==== Заключение ==== В заключении необходимо: * кратко описать были ли решены задачи, поставленные во Введении, и показать конкретные результаты решения каждой задачи, * отметить была ли достигнута цель работы, поставленная во Введении. ==== Приложения ==== В разделах вида "Приложение А / Б / В ..." указывают дополнительные материалы, которые * Слишком громоздкие для основного текста (большие таблицы и рисунки) * Не относящиеся напрямую к сути работы, но частично ее поясняющие Примеры того, что нужно помещать в Приложения: * Акты о внедрении, свидетельства о регистрации программ для ЭВМ, дипломы и грамоты за работу * Исходный код (если он не закрыт nda - non disclosure agreement | не является коммерческой тайной) * Таблицы размером более 60% от листа А4