Дипломная работа по программированию, как написать ВКР и защитить программу
Дипломная работа по программированию отличается от большинства выпускных работ тем, что у нее две части. Одна часть это программа, которая должна запуститься на защите. Вторая это пояснительная записка, где объяснено, какую задачу программа решает и почему устроена именно так. Чаще всего проблемы возникают на стыке, когда код живет своей жизнью, а диаграммы и требования в записке описывают что-то другое.
Разбор написала Яна Белая, опыт 10 лет Обновлено
Ниже разбираю ВКР по программированию целиком, от постановки задачи до демонстрации перед комиссией. Примеры построены на одной теме, информационной системе учета заявок сервисного центра, чтобы было видно, как требования переходят в диаграммы, код и тесты.
1. Чем дипломная работа по программированию отличается от других
В бакалавриате такие дипломы пишут на нескольких направлениях, и ждут на них разного. На 09.03.04 «Программная инженерия» (ФГОС утвержден приказом Минобрнауки № 920 от 19.09.2017) спрашивают про процесс разработки, архитектуру и качество кода. На 09.03.01 «Информатика и вычислительная техника» больше алгоритмов и устройства вычислительных систем. На 09.03.02 «Информационные системы и технологии» и 09.03.03 «Прикладная информатика» в центре процесс конкретной организации и польза системы для него.
В колледже ВКР чаще всего пишут по специальности 09.02.07 «Информационные системы и программирование» (приказ Минобрнауки № 1547 от 09.12.2016). У квалификаций внутри нее свой уклон. Программист обычно делает модуль или приложение, разработчик веб и мультимедийных приложений делает сайт или веб-сервис.
Из этого следует главное практическое отличие. В дипломе по экономике или праву комиссия читает текст, в дипломе по программированию она еще и смотрит работу программы. Программа, которая запускается только на ноутбуке автора, на защите превращается в неловкую паузу, поэтому сборку на чужой машине проверяют заранее.
2. Структура записки и объем глав
Объем задает методичка кафедры. Ориентир в бакалавриате около 50-70 страниц основного текста, листинги и руководство пользователя в объем не входят. Примерное деление показано в таблице.
| Часть | Что в ней | Примерная доля объема |
|---|---|---|
| Введение | Актуальность, объект и предмет, цель, задачи, методы, практическая значимость | 3-5 страниц |
| Глава 1, аналитическая | Предметная область и процесс, как он устроен сейчас, обзор аналогов с их недостатками, требования к системе | 25-30% |
| Глава 2, проектная | Архитектура, диаграммы, модель данных, выбор стека с обоснованием | 25-30% |
| Глава 3, реализация и тестирование | Ключевые модули с фрагментами кода, интерфейс, план и результаты тестирования | 25-30% |
| Экономический раздел | Затраты на разработку и эффект от внедрения, если его требует методичка | 10-15% |
| Заключение | Что сделано по каждой задаче, ограничения, что можно развивать | 2-3 страницы |
| Приложения | Листинг, схема базы данных, руководство пользователя, техническое задание | не входит в объем |
На некоторых кафедрах проектирование и реализация идут одной главой, а экономический раздел выделяют отдельной главой. Общий порядок частей разобран в статье про план дипломной работы.
3. Объект, предмет, цель и задачи на одном примере
Тема «Разработка информационной системы учета заявок сервисного центра».
Объект - процесс приема и выполнения заявок на ремонт в сервисном центре.
Предмет - автоматизация учета заявок с помощью информационной системы. Подробнее о разнице в разборе про объект и предмет исследования.
Цель - разработать информационную систему, которая сокращает потери заявок и время поиска сведений о ремонте.
Гипотеза в дипломах по программированию обычно не нужна, ее место занимают требования к системе. Если методичка гипотезу все же требует, ее формулируют проверяемо, например через время выполнения операции до и после внедрения.
Задачи идут в том порядке, в каком решаются в тексте.
- Проанализировать процесс учета заявок в сервисном центре и выявить его недостатки.
- Сравнить существующие решения и сформулировать требования к системе.
- Спроектировать архитектуру и базу данных системы.
- Реализовать систему и провести ее тестирование.
- Оценить затраты на разработку и эффект от внедрения.
Каждой задаче соответствует параграф и ответ в заключении. Если задача есть во введении, а в записке ее не видно, руководитель вернет работу именно с этим замечанием.
4. Требования и техническое задание
Требования вытекают из анализа процесса. Функциональные описывают, что система делает, например регистрирует заявку, назначает мастера, меняет статус и уведомляет клиента. Нефункциональные описывают, как она это делает, это время отклика, число одновременных пользователей, разграничение прав и требования к хранению данных.
Удобно пронумеровать требования. Тогда на любой вопрос комиссии «где реализовано вот это» можно ответить номером требования, экраном системы и строкой в таблице тестов.
Техническое задание часто выносят в приложение. Для автоматизированных систем его структуру задает ГОСТ 34.602-2020, для программ в составе ЕСПД ГОСТ 19.201-78. Какой из них брать, указывает методичка. Если система хранит сведения о клиентах, в требованиях стоит упомянуть Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных» и описать, кто имеет доступ к этим сведениям. Характеристики качества, например надежность и удобство использования, удобно описывать по ГОСТ Р ИСО/МЭК 25010-2015.
Подберу тему ВКР по программированию, накидаю план и напишу введение бесплатно
Пишите в любой мессенджер, помогу и подскажу
5. Проектирование до кода
Диаграммы делаются по методичке, обычно это варианты использования, классы, последовательности, модель базы данных и схема развертывания в нотации UML. Если кафедра требует описать процесс как есть и как будет, используют IDEF0 или BPMN. Схемы алгоритмов оформляют по ГОСТ 19.701-90.
Главное правило в том, что диаграммы совпадают с реализацией. Класс на диаграмме есть в коде, таблица в схеме есть в базе, вариант использования есть в интерфейсе. Диаграммы, нарисованные после кода по памяти, расходятся с ним в мелочах, и рецензент это находит.
Модель данных приводят хотя бы к третьей нормальной форме и объясняют, почему таблицы разделены именно так. Если где-то денормализация сделана намеренно ради скорости, это тоже стоит написать.
6. Реализация и выбор стека
Стек выбирают под задачу и обосновывают сравнением. Python, C#, Java, JavaScript или PHP, база на SQL, интерфейс для веба, десктопа или телефона. Довод «я на этом умею» комиссия аргументом не считает. Сравнение по требованиям, например по поддержке нужной платформы и доступным библиотекам, она принимает.
В записку идут ключевые фрагменты кода с пояснениями, полный листинг уходит в приложение. Структура проекта должна быть понятной, модули разложены по назначению, имена читаются. Историю разработки удобно вести в Git, на защите это помогает ответить на вопрос, как шла работа.
Перед сдачей проект собирают на другой машине по инструкции из приложения. Если что-то не собирается, лучше узнать это за неделю до защиты.
7. Тестирование от требований
План тестирования строится от требований. Каждому требованию соответствует хотя бы один тест с входными данными и ожидаемым результатом. В записке это таблица со столбцами номер теста, проверяемое требование, входные данные, ожидаемый результат, фактический результат и отметка о прохождении.
Вот как выглядит такой раздел на теме из раздела 3. Числа тут не привожу, они получаются только при вашем прогоне. Сначала идут функциональные тесты, регистрация заявки с полными данными, с пустым обязательным полем, с неверным телефоном. Затем граничные случаи, например заявка с максимальной длиной описания. Затем проверка прав, мастер не видит заявки других мастеров. Если в требованиях заявлена нагрузка, отдельно описывают, сколько пользователей имитировали и какое время отклика получили.
Если руководитель хочет автоматические тесты, к ключевым функциям пишут модульные тесты, а в записку выносят их перечень и результат прогона. Общая логика практической главы разобрана в статье про практическую часть.
8. Экономический раздел и внедрение
Если методичка требует экономический раздел, в нем считают затраты на разработку и эффект от внедрения. Затраты складываются из трудоемкости по этапам, оплаты труда, стоимости оборудования и лицензий. Эффект чаще всего считают через экономию времени сотрудников на операциях, которые система автоматизирует, и из него получают срок окупаемости. Фраза «система сократит время обработки заявок» без расчета здесь не подходит.
Рядом описывают внедрение по этапам, с переносом данных и обучением сотрудников. Разделы по охране труда и безопасности пишут, если их требует кафедра.
9. Частые замечания руководителя
По дипломным работам по программированию замечания повторяются из года в год.
- Нет постановки, записка сразу начинается с кода, и непонятно, какую проблему решает система.
- Диаграммы нарисованы после кода и не совпадают с ним.
- Требование заявлено, а реализации нет.
- Тесты только на удачный ввод, без граничных случаев и неверных данных.
- Выбор языка и базы данных объяснен привычкой.
- На прикладной информатике нет организации и пользы системы для нее.
- Эффект от внедрения без расчета.
- Программа не собирается без автора, инструкции по установке нет.
- Листинги на десятки страниц стоят в основном тексте.
Если замечания уже пришли, разбирайте их по одному и смотрите, что они затрагивают. Новое требование, например, тянет за собой диаграммы, код, тесты и экономический раздел. Как вести диалог с руководителем, разобрано в статье про работу с научным руководителем.
10. Защита ВКР по программированию
Речь. Регламент обычно 5-7 минут. Порядок от проблемы и требований через архитектуру к демонстрации, тестам и эффекту. Как собрать текст, разобрано в статье про речь на защиту.
Слайды и демонстрация. На слайдах диаграммы и экраны системы, на последнем слайде результаты. Демонстрацию готовят на заранее заполненных данных, где видна каждая функция, и держат запасной вариант, например видеозапись работы, если на месте не окажется сети. Подробно про слайды в разборе презентации к диплому.
Вопросы комиссии. Чаще всего спрашивают одно и то же.
- Какую проблему решает система и чем она лучше аналогов.
- Почему выбран именно этот язык и эта база данных.
- Где в коде реализовано конкретное требование.
- Как система защищает данные и разграничивает права.
- Как вы проверяли, что программа работает правильно.
Иногда просят открыть код и показать конкретный модуль, поэтому структуру проекта стоит знать наизусть. Общий план подготовки разобран в статье о том, как подготовиться к защите.
11. Можно ли скачать готовую дипломную работу по программированию
Запросы «скачать дипломную работу по программированию» и «готовый диплом по программированию с программой» встречаются часто. Сдать скачанную работу почти никогда не получается.
Первая причина в антиплагиате. Записка из открытого доступа уже есть в базах проверки, и отчет покажет совпадение с ней почти целиком. Как устроена проверка, разобрано в статье о том, как пройти антиплагиат.
Вторая причина в программе. Чужой проект с открытого репозитория руководитель находит поиском по названию или фрагменту кода. На защите вас попросят показать, где реализовано требование, и объяснить код, который вы не писали, трудно.
Третья причина в предметной области. Утвержденная тема привязана к вашей организации или задаче, а скачанная система сделана для чужой.
Готовые работы полезны как образец структуры записки и таблиц тестирования. Смотрите, как описаны требования и как оформлены диаграммы, и делайте свое.
12. Темы и где заказать работу
Тему проще защитить, если у нее есть реальный заказчик или процесс, который вы видели на практике. Формулировки по веб-разработке, мобильным приложениям, базам данных и анализу данных собраны на странице темы дипломных работ по программированию, а для младших курсов есть темы курсовых по программированию.
Если писать работу самому не получается по времени, на странице дипломная работа по программированию на заказ описано, как я с ней работаю и сколько это стоит. Можно заказать и одну часть, например только пояснительную записку к вашему коду или только тестирование. Для младших курсов есть курсовая по программированию, а для магистрантов отдельная страница магистерская по программированию.
Частые вопросы
- Обязательно ли в дипломной работе по программированию писать программу?
- Почти всегда да. Записка без работающей системы на IT-направлениях до защиты обычно не доходит. Объем программной части и то, нужен ли экономический раздел, задает методичка кафедры или колледжа.
- На каком языке писать программу для ВКР по программированию?
- На том, что указан в задании или принят на кафедре. Если язык не задан, его выбирают под задачу и обосновывают в проектной главе сравнением с другими вариантами.
- Проверяют ли код на антиплагиат?
- Обычно проверяют текст записки, а листинги в приложении многие вузы в проверку не включают. Как у вас, написано в положении вуза о проверке ВКР.
- Какие ГОСТ нужны для дипломной работы по программированию?
- Чаще всего ГОСТ 34.602-2020 для технического задания на автоматизированную систему, ГОСТ 19.201-78 для технического задания на программу и ГОСТ 19.701-90 для схем алгоритмов. Какие из них обязательны у вас, указывает методичка.
- Как подготовиться к защите дипломной работы по программированию?
- Прогоните речь вслух по таймеру, проверьте запуск программы на компьютере, похожем на тот, что будет в аудитории, и подготовьте демонстрацию на заполненных данных. Отдельно повторите, где в коде реализовано каждое требование.
- Программа уже есть, можно заказать только записку?
- Да. Пришлите код и методичку. Сделаю постановку, диаграммы по реализации, описание, план тестирования и результаты, а если код расходится с требованиями, скажу, что доработать. Цену называю после того, как посмотрю проект.
Если хотите, чтобы работу написала я, напишите мне. Отвечу, сколько это будет стоить и с чего начну.