Структура отчёта по практике и ВКР
- О чём эта справка
- Что писать в каждом разделе отчёта по проектно-технологической практике — от введения до списка источников. Структура отчёта повторяет структуру выпускной квалификационной работы (ВКР), принятой в нашем вузе, поэтому справка пригодится дважды: сейчас — для отчёта, на выпускном курсе — для диплома.
- Как пользоваться
- Не обязательно читать подряд. Начните с таблицы-скелета ниже, чтобы увидеть работу целиком, затем открывайте раздел, над которым сейчас работаете, — в каждом собраны требования, примеры формулировок и типичные ошибки. Перед сдачей пройдитесь по чек-листу самопроверки в конце страницы.
1. Работа целиком: скелет и логика
Отчёт по практике меньше диплома по объёму, но это не «текст о том, как я programмировал», а цельный технический документ: постановка задачи → анализ предметной области → проектирование → разработка → проверка работоспособности. У каждого раздела есть один главный вопрос, на который он отвечает читателю:
| Раздел | Главный вопрос раздела |
|---|---|
| Введение | Зачем этот проект нужен и что будет сделано? |
| Глава 1. Теоретические основы и анализ предметной области | Что уже существует и на какие знания опирается решение? |
| Глава 2. Проектирование и разработка ПО | Как устроена система и почему именно так? |
| Глава 3. Тестирование и валидация ПО | Чем подтверждено, что система работает корректно? |
| Заключение | Что достигнуто и выполнены ли задачи из введения? |
| Список использованных источников | На что опирался автор? |
| Приложения (при необходимости) | Что слишком объёмно для основного текста (листинги, экраны)? |
Обратите внимание на сквозную нить: задачи из введения становятся главами, а заключение отчитывается по каждой задаче. Если держать эту нить в голове с самого начала, работа соберётся сама; если нет — читатель заметит швы первым же вопросом на защите.
2. Введение
Введение — один из самых важных разделов: именно он формирует у читателя понимание, зачем создаётся проект, какую проблему он решает, почему тема актуальна и каких результатов планируется достичь. Пишется введение по устойчивой схеме: актуальность → цель → задачи.
2.1. Актуальность: без мифа о «новизне»
В большинстве случаев актуальность — это честный рассказ о практической потребности:
- какая проблема существует и кого она касается;
- почему разработка практически необходима;
- чем неудобны или ограничены существующие решения;
- кому и чем будет полезно создаваемое ПО, какие требования к нему предъявляются.
Разрабатываете интернет-магазин — не утверждайте, что аналогов нет (их сотни); покажите, почему готовые платформы не подходят в вашем случае:
В настоящее время многие малые компании нуждаются в удобных инструментах для автоматизации онлайн-продаж. Использование готовых платформ зачастую сопровождается ограничениями в функциональности или высокой стоимостью подписки. В связи с этим разработка собственного веб-приложения для управления каталогом товаров и заказами является актуальной задачей. — пример корректной формулировки актуальности
2.2. Цель: всегда одна
Цель описывает итоговый результат проекта, и она всегда одна. Хорошая цель конкретна, понятна, достижима и связана с разработкой системы:
- разработать веб-приложение для учёта заявок;
- создать мобильное приложение для планирования задач;
- реализовать систему анализа изображений с использованием нейронных сетей.
- «изучить программирование»;
- «освоить современные технологии»;
- «создать лучший сервис».
Проверка проста: по формулировке цели должно быть понятно, что предъявить на защите как доказательство её достижения. «Изучить программирование» предъявить нельзя, работающее веб-приложение — можно.
2.3. Задачи: этапы достижения цели
Задачи — это шаги, из которых складывается путь к цели. Обычно они отражают структуру будущих глав и последовательность выполнения проекта. Три правила:
- задачи не дублируют цель — они её разворачивают;
- каждая задача — отдельный этап работы;
- задачи формулируются через действия: проанализировать, исследовать, разработать, реализовать, спроектировать, протестировать, сравнить, оценить.
Пример связки «цель → задачи» (заметьте, как задачи предвосхищают главы: анализ — глава 1, проектирование и реализация — глава 2, тестирование — глава 3):
Цель: разработать веб-приложение для автоматизации учёта заявок. Задачи: 1) проанализировать существующие системы учёта заявок; 2) выбрать технологии разработки; 3) спроектировать архитектуру приложения; 4) реализовать серверную и клиентскую части системы; 5) разработать структуру базы данных; 6) провести тестирование программного обеспечения.
Иногда во введении дополнительно указывают объект и предмет исследования, используемые методы разработки и практическую значимость — необходимость этих пунктов зависит от требований кафедры: уточните у руководителя.
3. Глава 1. Теоретические основы и анализ предметной области
Первая глава отвечает на вопрос «на что опирается решение»: здесь описывается теоретический минимум, необходимый для понимания и реализации проекта. В зависимости от темы сюда входят:
- алгоритмы, используемые при решении задачи;
- существующие подходы и методы;
- технологии и архитектурные решения;
- сравнительный анализ инструментов и методов с обоснованием выбора — не просто «мы взяли X», а почему X, а не Y и Z.
Здесь же уместен конкурентный анализ: обзор существующих программных решений и состояния рынка в выбранной области. Разрабатываете систему управления задачами — рассмотрите существующие аналоги, выделите их достоинства и недостатки: именно этот разбор потом подкрепит актуальность из введения.
4. Глава 2. Проектирование и разработка ПО
Вторая глава — основная техническая часть отчёта. Если в первой главе вы показываете понимание предметной области, то здесь — непосредственно инженерную работу: как устроено приложение, из каких компонентов состоит, как реализованы функции и почему выбраны именно такие архитектурные решения. Сверхзадача главы — убедить читателя, что разработка велась осознанно и последовательно, а структура проекта логична и расширяема. Обычно глава складывается из подразделов ниже — берите те, что применимы к вашему проекту.
4.1. Функциональные возможности
Первым делом ответьте на вопрос: что умеет делать разработанная система? Функциональность описывается с точки зрения пользователя: регистрация и авторизация; создание, редактирование и удаление данных; поиск; фильтрация и сортировка; загрузка файлов; формирование отчётов; взаимодействие между пользователями; управление ролями. Важно не просто перечислить функции, а кратко пояснить их назначение:
Пользователь может создавать задачи, назначать сроки выполнения и отслеживать текущее состояние проекта. Администратор дополнительно обладает возможностью управления учётными записями пользователей и настройки системы.
Если система большая — сгруппируйте функциональность по модулям: модуль авторизации, модуль управления товарами, модуль аналитики, модуль уведомлений.
4.2. Диаграмма вариантов использования (Use Case)
Возможности системы наглядно представляет UML-диаграмма вариантов использования: какие типы пользователей существуют, какие действия им доступны, как они взаимодействуют с приложением. На диаграмме присутствуют акторы (пользователь, администратор, модератор, внешний API-сервис), варианты использования (вход в систему, оформление заказа, просмотр статистики, управление пользователями) и связи между ними. Как строить такие диаграммы — разобрано на занятии «UML, часть 1» общего курса.
После диаграммы обязательно текстовое пояснение: какие роли существуют, чем отличаются их возможности, какие основные сценарии поддерживаются.
4.3. Ролевая модель
Если разные категории пользователей обладают разными правами, опишите ролевую модель: какие роли существуют, что разрешено каждой, какие ограничения предусмотрены. Удобная форма — таблица:
| Роль | Возможности |
|---|---|
| Гость | просмотр каталога |
| Пользователь | создание заказов |
| Администратор | управление пользователями и товарами |
Покажите, как разграничивается доступ и какие проверки выполняются при обращении к защищённым функциям. Для веб-приложений укажите механизм: JWT-токены или сессионная авторизация, как осуществляется аутентификация.
4.4. Архитектура системы
Ключевой подраздел: из каких компонентов состоит система, как они взаимодействуют, как распределена ответственность. Для большинства современных веб-приложений это клиент-серверная архитектура, и достаточно честно описать назначение каждой части:
| Часть | За что отвечает |
|---|---|
| Клиентская часть (frontend) | отображение интерфейса, взаимодействие с пользователем, отправка запросов на сервер, обработка пользовательских действий |
| Серверная часть (backend) | бизнес-логика, обработка запросов, взаимодействие с базой данных, аутентификация, управление данными |
| База данных | хранение информации, целостность данных, быстрый доступ |
| Внешние сервисы | платёжные системы, почтовые рассылки, сторонние API — если используются |
Иллюстрируют архитектуру диаграммой компонентов или клиент-серверной схемой; если проект
объектно-ориентированный — диаграммой классов: основные классы, их свойства и методы, связи
(наследование, агрегация, композиция, ассоциации). И снова правило меры: не выводите
все классы проекта — только ключевые сущности, важные для понимания архитектуры
(User, Product, Order,
NotificationService, AuthController). После диаграммы поясните
назначение основных классов, причины разделения ответственности и использованные паттерны
проектирования.
4.5. Организация программного кода
Покажите структуру проекта: как он разбит, какие директории существуют, за что отвечает каждый модуль:
src/ ├── controllers/ # обработчики запросов ├── services/ # бизнес-логика ├── repositories/ # доступ к данным ├── models/ # модели предметной области ├── middleware/ # промежуточная обработка (авторизация, логирование) └── utils/ # вспомогательные функции
Объясните, почему выбрана такая структура, как разделяются уровни приложения и как это помогает поддерживаемости. Здесь же уместно упомянуть архитектурные решения и паттерны: MVC, REST, внедрение зависимостей, Singleton, Factory, Repository, Observer. Смысл подраздела — показать, что архитектура не хаотична, а построена по принципам.
4.6. База данных
Если проект использует базу данных, её структуру нужно описать подробно: ER-диаграмма или схема БД, описание таблиц, связи между сущностями, ключевые поля, ограничения и индексы. Объясните выбор СУБД, используемые типы данных и механизмы целостности: первичные и внешние ключи, ограничения уникальности, каскадное удаление. Образец связного описания вместо голого перечисления:
Таблица Users хранит информацию о зарегистрированных пользователях системы. Первичный ключ id используется для уникальной идентификации записей. Связь один-ко-многим между Users и Orders позволяет одному пользователю иметь несколько заказов.
Для NoSQL-хранилища вместо этого описываются структура документов, причины отказа от реляционной модели и особенности хранения данных.
4.7. API
Для веб-приложений и клиент-серверных систем опишите программный интерфейс: список эндпоинтов, HTTP-методы, параметры запросов, формат ответов, коды состояния, примеры запросов. Удобнее всего — таблицей:
| Метод | URL | Назначение |
|---|---|---|
| GET | /api/products | получение списка товаров |
| POST | /api/products | создание товара |
| DELETE | /api/products/{id} | удаление товара |
Дополнительно укажите, где требуется авторизация, формат токенов и обработку ошибок. Для сложных систем полезно описать последовательность запросов, взаимодействие frontend и backend, использование WebSocket или GraphQL.
4.8. Пользовательский интерфейс
Если у проекта есть графический интерфейс, посвятите ему подраздел: основные экраны, навигация, расположение элементов, сценарии взаимодействия. Допустимы скриншоты, схемы интерфейса, wireframe-макеты — но не вставляйте изображения молча: каждое сопровождается пояснением, что изображено, какие функции доступны и как пользователь взаимодействует с экраном. О принципах проектирования интерфейсов — занятие «UI/UX: законы» общего курса.
5. Глава 3. Тестирование и валидация ПО
Третья глава доказывает, что система действительно работает корректно.
Пользовательские сценарии. Покажите, как пользователь работает с системой, какие действия выполняет и какой результат получает, — пошагово:
1. Пользователь проходит авторизацию. 2. Добавляет товар в корзину. 3. Оформляет заказ. 4. Получает подтверждение.
Тестирование. Обычно проверяются корректность работы функций, обработка ошибок, работа интерфейса и корректность хранения данных. Допустимые виды: модульное, интеграционное, ручное, нагрузочное. Результаты желательно оформлять таблицами: «проверка — ожидаемый результат — фактический результат».
Анализ результатов. Если проект связан с машинным обучением, покажите качество модели: графики обучения и значения метрик — accuracy, precision, recall, F1-score (что они означают — разобрано в траектории «Нейросети»). И здесь то же правило, что со скриншотами: не просто вставить графики, а объяснить, что они показывают, какие выводы следуют и насколько результаты соответствуют поставленной задаче.
6. Заключение
Заключение — краткое подведение итогов: перечислить достигнутые результаты, показать выполнение поставленных задач, описать итоговую функциональность и сделать вывод о достижении цели. Главное правило: заключение зеркально введению — по каждой задаче из введения в заключении должен быть ответ, что она выполнена и чем это подтверждается.
В ходе работы был проведён анализ существующих решений, разработана архитектура веб-приложения, реализована серверная и клиентская части системы, а также проведено тестирование основных функций.
Дополнительно можно указать практическую значимость проекта, возможные направления развития системы и потенциальные улучшения функциональности — это хороший задел для вопросов на защите, которые вы сами себе выбрали.
7. Список использованных источников
Оформляется по ГОСТ или внутренним требованиям кафедры. Два правила: в список входят только те источники, на которые есть ссылки в тексте отчёта; рекомендуемый объём — не менее 10–15 актуальных позиций (статьи, документация, книги, стандарты, официальные руководства). «Актуальных» — значит и свежих по времени, и действительно относящихся к делу: документация используемого фреймворка уместнее случайного учебника десятилетней давности.
8. Чек-лист самопроверки перед сдачей
Пройдитесь по списку, отмечая готовое, — прогресс сохраняется в вашем браузере. Каждый пункт — сгусток требований из разделов выше.
- Цель одна, конкретная, и понятно, что предъявить как доказательство её достижения.
- Задачи сформулированы через действия и не дублируют цель; видно соответствие задач главам.
- Актуальность обоснована практической потребностью, без «уникальной системы без аналогов».
- В главе 1 есть сравнительный анализ с обоснованием выбора инструментов, а не только их перечень.
- Применение технологий в проекте описано в главе 2, а не в главе 1.
- Функциональность описана с точки зрения пользователя, функции пояснены, крупная система разбита на модули.
- Use Case диаграмма читается, не перегружена, сопровождена текстовым пояснением ролей и сценариев.
- Для системы с ролями есть ролевая модель и описание разграничения доступа (JWT/сессии).
- Архитектура описана: компоненты, их обязанности, взаимодействие; на диаграмме классов — только ключевые сущности.
- Структура каталогов проекта показана и объяснена; названы применённые паттерны.
- Для БД: ER-диаграмма, описание таблиц и связей, обоснование выбора СУБД, механизмы целостности.
- Для веб-систем: таблица эндпоинтов с методами, назначением и форматом данных.
- Каждый скриншот и график сопровождён пояснением: что изображено и какой вывод следует.
- В главе 3 видно, что проверялось, как и с какими результатами, — не «программа была протестирована».
- Заключение зеркально введению: по каждой задаче — результат её выполнения.
- В списке источников только цитируемые в тексте позиции, их не менее 10–15, оформление по ГОСТ.