В современном мире, где каждая минута на счету, а потоки информации растут экспоненциально, эффективность транспортной логистики становится критически важной. Автовокзалы, как ключевые узлы пассажирских перевозок, ежедневно сталкиваются с необходимостью обработки огромного количества данных: от продажи билетов и управления расписанием до диспетчеризации рейсов и контроля за движением автобусов. Традиционные, «бумажные» методы работы неизбежно приводят к задержкам, ошибкам, снижению качества обслуживания и упущенной выгоде. Именно поэтому актуальность создания автоматизированной системы Автовокзал-2
не просто высока, она является императивом для обеспечения конкурентоспособности и устойчивого развития транспортной инфраструктуры. Такая система призвана устранить упомянутые проблемы, оптимизировать бизнес-процессы и значительно повысить уровень сервиса, трансформируя устаревшие подходы в эффективные и клиентоориентированные.
Настоящая курсовая работа ставит перед собой цель разработать комплексный, структурированный план проектирования и реализации автоматизированной системы Автовокзал-2
, который может служить основой для написания академического текста или подробной инструкцией для практической разработки. Для достижения этой цели в работе будут решены следующие задачи:
- Раскрытие теоретических основ программной инженерии и системного анализа.
- Детальный анализ предметной области функционирования автовокзала и выявление ключевых проблем.
- Формулирование исчерпывающих функциональных и нефункциональных требований к системе.
- Разработка архитектуры системы с использованием современного языка моделирования UML.
- Проектирование базы данных с учетом принципов нормализации и обеспечения целостности.
- Обоснование методологии тестирования программного обеспечения.
- Определение требований к технической и пользовательской документации в соответствии с актуальными стандартами.
Структура работы включает введение, четыре главы, посвященные теоретическим основам, анализу требований, моделированию и проектированию, а также тестированию и документации, и заключение, обобщающее полученные результаты. Каждая глава представляет собой глубокое погружение в соответствующий аспект создания автоматизированной системы, опираясь на лучшие практики программной инженерии и системного анализа.
Глава 1. Теоретические основы автоматизированных систем и программной инженерии
Проектирование любой сложной системы, будь то мост, самолёт или, в нашем случае, программный комплекс, начинается с прочного фундамента из теоретических знаний. Без понимания базовых принципов и методологий, усилия по созданию эффективного и надёжного решения обречены на провал. Эта глава заложит основу для дальнейшего анализа и проектирования, раскрывая ключевые концепции, которыми оперируют системные аналитики и программные инженеры.
1.1. Основные понятия программной инженерии и системного анализа
В основе создания любой автоматизированной системы лежит строгий, дисциплинированный подход, который объединяет в себе элементы науки и искусства. Этот подход получил название программной инженерии. Согласно международному стандарту ISO/IEC/IEEE 24765:2017, программная инженерия определяется как приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также к исследованию этих подходов
. Иными словами, это не просто написание кода, а комплексная инженерная дисциплина, охватывающая все стадии жизненного цикла ПО – от первоначальной спецификации до поддержки системы после её ввода в эксплуатацию. Программная инженерия стремится сделать процесс создания ПО предсказуемым, контролируемым и эффективным, используя лучшие практики, стандарты и инструменты. И что из этого следует? Понимание этих принципов позволяет создавать не просто работающий код, а надёжные, масштабируемые и безопасные решения, способные выдерживать высокие нагрузки и адаптироваться к изменяющимся условиям.
Неотъемлемой частью программной инженерии является системный анализ. Эта научно-методологическая дисциплина изучает принципы, методы и средства исследования сложных объектов, представляя их как системы и анализируя эти системы. Системный анализ не ограничивается только техническими аспектами; он направлен на всестороннее рассмотрение проблемы, выявление целей, формулирование альтернативных вариантов решения и их сопоставление по критериям эффективности. В контексте проектирования автоматизированной системы Автовокзал-2
, системный анализ поможет нам понять текущие бизнес-процессы, идентифицировать узкие места
и определить оптимальные пути автоматизации.
Центральным понятием для нас является информационная система (ИС). Это не просто программа или база данных, а целостная совокупность взаимосвязанных компонентов: содержащейся в базах данных информации, обеспечивающих её обработку информационных технологий и технических средств. ИС предназначена для сбора, хранения, обработки, поиска и выдачи информации, необходимой для поддержки принятия решений и выполнения бизнес-функций.
Процесс создания или модернизации такой системы называется проектированием ИС. Это упорядоченная совокупность методологий и средств, которая позволяет перевести абстрактные требования в конкретные спецификации, описывающие, как система будет построена и функционировать. Проектирование ИС является мостом между потребностями бизнеса и технической реализацией, обеспечивая соответствие конечного продукта ожиданиям пользователей и целям организации.
1.2. Жизненный цикл и архитектура информационных систем
Когда мы говорим о создании сложной информационной системы, такой как Автовокзал-2
, мы неизбежно приходим к концепции её жизненного цикла. Жизненный цикл ИС представляет собой эволюцию системы во времени, охватывающую все этапы её существования — от зарождения идеи (замысла) до полного вывода из эксплуатации (списания). Это не просто последовательность шагов, а структурированный путь, который помогает управлять сложностью проекта, обеспечивать качество и предсказуемость результатов.
Для управления этим путём используются различные модели жизненного цикла. Каждая модель представляет собой структурную основу процессов и действий, служащую общей ссылкой для установления связей и взаимопонимания между всеми участниками проекта. Среди наиболее известных моделей можно выделить:
- Каскадная (Waterfall) модель: Это классический линейный подход, где каждый этап (анализ, проектирование, реализация, тестирование, внедрение, сопровождение) завершается до начала следующего. Её преимущества в строгой документации и предсказуемости, что делает её подходящей для проектов с чётко определёнными требованиями, как, например, начальные этапы проектирования
Автовокзал-2
, где требуется глубокий анализ предметной области. - Итеративная/Инкрементальная модель (RUP — Rational Unified Process): Предполагает разбиение проекта на итерации, каждая из которых включает в себя мини-цикл проектирования, реализации и тестирования. RUP фокусируется на раннем выявлении рисков и постоянной обратной связи, что полезно для постепенного наращивания функционала.
- Гибкие (Agile) методологии: Такие как Scrum или Kanban, ориентированы на быструю адаптацию к изменениям, тесное взаимодействие с заказчиком и итеративную разработку с короткими циклами. Agile подход может быть особенно ценен на этапах реализации и доработки системы
Автовокзал-2
, позволяя оперативно реагировать на меняющиеся потребности и уточнения.
Выбор модели жизненного цикла зависит от множества факторов: размера проекта, стабильности требований, доступности ресурсов и уровня риска. Для Автовокзал-2
можно рассмотреть гибридный подход, сочетающий элементы Waterfall для этапов глубокого анализа и проектирования, и Agile для итеративной реализации и тестирования. В чём кроется важный нюанс такого выбора? При таком подходе, фундаментальные архитектурные решения принимаются заранее, что снижает риски на поздних стадиях, а гибкие методы позволяют быстро адаптироваться к изменениям требований к функционалу, что особенно ценно в динамичной среде транспортных услуг.
Не менее важным понятием является архитектура ИС. Это невидимый скелет системы, концепция, определяющая её модель, структуру, выполняемые функции и взаимосвязь компонентов. Хорошо спроектированная архитектура обеспечивает масштабируемость, надёжность, безопасность и ремонтопригодность системы. Она определяет, как различные части системы будут взаимодействовать, как данные будут храниться и обрабатываться, и какие технологии будут использоваться. Для Автовокзал-2
архитектура должна быть достаточно гибкой, чтобы поддерживать различные каналы продаж (кассы, онлайн, мобильные устройства) и эффективно взаимодействовать с внешними системами (например, платежными шлюзами).
1.3. Бизнес-процессы и модели данных
Любая информационная система создаётся не в вакууме, а для автоматизации конкретных задач и функций, которые в совокупности формируют бизнес-процессы. Понимание и детальный анализ этих процессов является краеугольным камнем успешного проектирования ИС. Бизнес-процесс — это взаимосвязанная последовательность действий, направленных на создание товарной продукции или услуги, имеющей ценность для клиента. В контексте автовокзала, такими процессами являются, например, продажа билетов, диспетчеризация рейсов, регистрация пассажиров на посадку, формирование отчётности.
Для обеспечения предсказуемости и эффективности, каждый бизнес-процесс должен быть чётко определён. Эту функцию выполняет регламент бизнес-процесса — установленный порядок выполнения процесса, который определяет состав и действия участников, используемые ресурсы, последовательность шагов, точки принятия решений и ожидаемые результаты. Регламентация позволяет стандартизировать операции, минимизировать ошибки и обеспечить единообразие в работе, что особенно важно для такой сложной и многогранной структуры, как автовокзал. Анализ существующих регламентов и создание новых для автоматизированной системы Автовокзал-2
— первостепенная задача системного аналитика.
Помимо процессов, центральную роль играет информация, которая обрабатывается в рамках этих процессов. Для организации и управления этой информацией используются модели данных. Модель данных — это система организации данных и управления ими, которая описывает структуру данных, связи между ними, а также ограничения, накладываемые на данные. Она является фундаментом для проектирования базы данных и определяет, как информация будет храниться, извлекаться и изменяться. Разработка эффективной модели данных критически важна для производительности, надёжности и масштабируемости ИС.
В основе проектирования ИС лежат различные методологии проектирования ИС, которые представляют собой совокупность принципов моделирования, выраженную в определенной концепции. Эти методологии предоставляют структурированные подходы и инструменты для создания сложных систем. Они помогают перейти от высокоуровневых требований к детальным спецификациям, обеспечивая последовательность и полноту на всех этапах проектирования. От выбора методологии будет зависеть не только процесс разработки, но и конечные характеристики системы Автовокзал-2
, её гибкость, сопровождаемость и соответствие бизнес-потребностям.
Глава 2. Анализ предметной области Автовокзал
и требований к системе Автовокзал-2
Прежде чем приступить к созданию любого программного продукта, необходимо глубоко погрузиться в его предметную область. Понять, как она функционирует, какие проблемы существуют и какие потребности необходимо удовлетворить. Эта глава посвящена детальному анализу работы автовокзала как сложного организационно-технического комплекса и формулированию требований, которые станут основой для проектирования системы Автовокзал-2
.
2.1. Актуальность автоматизации автовокзалов
Представьте себе типичный автовокзал до наступления эпохи тотальной цифровизации. Очереди у касс, где билеты выписываются вручную, а информация о рейсах фиксируется в громоздких журналах. Диспетчеры, сверяющие графики прибытий и отправлений по телефону и на бумажных носителях. Учет выручки, подверженный риску человеческого фактора и потенциальным ошибкам. Эта картина, увы, не является вымыслом, а отражает реалии, с которыми сталкивались многие автовокзалы, ведущие свою деятельность на бумаге
.
Актуальность создания автоматизированной системы Автовокзал
продиктована острой необходимостью решения множества проблем, порождаемых ручным ведением процессов. Эти проблемы можно сгруппировать следующим образом:
- Медленная обработка данных: Ручной ввод информации о пассажирах, рейсах, багаже значительно замедляет обслуживание, создавая очереди и вызывая недовольство клиентов. Изменение расписания или тарифов требует множества ручных корректировок, что приводит к задержкам и ошибкам.
- Ограниченные каналы продаж: Продажа билетов исключительно через кассы ограничивает географию и время доступности услуг, не позволяя охватить широкую аудиторию, предпочитающую онлайн-сервисы.
- Сложности с контролем выручки и учётом билетов: Ручной учёт открывает простор для злоупотреблений, затрудняет оперативный анализ финансовых потоков и вызывает проблемы при формировании отчётности.
- Высокий риск ошибок ручного ввода: Человеческий фактор неизбежно ведёт к ошибкам в расписании, данных пассажиров, стоимости билетов, что может привести к серьезным репутационным и финансовым потерям.
- Отсутствие гибкости в тарифах и маршрутах: Ручное управление не позволяет оперативно внедрять динамическое ценообразование, скидки или быстро реагировать на изменение спроса.
Внедрение автоматизированной системы Автовокзал-2
призвано полностью трансформировать эти процессы, обеспечивая ряд значительных преимуществ:
- Высокая слаженность работы и продуктивность: Автоматизация связывает все звенья цепочки — от кассира до диспетчера, обеспечивая мгновенный обмен информацией и координацию действий.
- Полный контроль над работой сотрудников и выручкой: Система предоставляет прозрачную статистику продаж, действий персонала и позволяет отслеживать финансовые потоки в реальном времени, минимизируя риски недобросовестных действий.
- Дополнительные доходы от предварительной и удалённой продажи билетов: Возможность онлайн-покупки, бронирования через терминалы или партнёрские сети значительно расширяет клиентскую базу и увеличивает оборот.
- Гибкие тарифы и увеличение объёмов/географии продаж: Автоматизированные инструменты позволяют быстро изменять ценовую политику, внедрять акции и расширять сеть продаж.
- Повышение качества обслуживания пассажиров: Онлайн-бронирование, SMS-информирование о статусе рейса, электронные табло с актуальной информацией и автоинформаторы создают комфортную и современную среду для пассажиров, значительно улучшая их опыт взаимодействия с автовокзалом.
Таким образом, автоматизация автовокзала — это не просто модернизация, это стратегическая инвестиция в эффективность, прозрачность и клиентоориентированность, позволяющая организации выйти на качественно новый уровень функционирования.
2.2. Обзор существующих аналогов и рыночных решений
Перед тем как приступить к проектированию новой системы, крайне важно изучить уже существующие решения. Такой анализ существующих аналогов и рыночных решений позволяет не только выявить лучшие практики и избежать изобретения велосипеда
, но и понять, какие функции являются стандартными, а какие могут стать конкурентным преимуществом для системы Автовокзал-2
.
Рынок автоматизированных систем управления транспортными узлами, в том числе автовокзалами, достаточно развит. Среди предлагаемых решений можно выделить как комплексные платформы, так и специализированные модули. Большинство систем призваны решать следующие задачи:
- Продажа билетов: Реализуется через различные каналы – кассовые терминалы, веб-сайты, мобильные приложения, терминалы самообслуживания и агентские сети. Примеры функционала: выбор места, тарифов, оплата различными способами.
- Управление расписанием и рейсами: Включает создание, редактирование и публикацию расписания, отслеживание статуса рейсов (отправлен, прибыл, задержан, отменен), управление маршрутами и тарифами.
- Диспетчеризация: Мониторинг движения автобусов, контроль прибытия и отправления, управление перронами, оперативное внесение изменений в расписание в случае задержек или нештатных ситуаций.
- Управление пассажиропотоком: Регистрация пассажиров на посадку, контроль багажа, формирование списков пассажиров.
- Учет и отчётность: Автоматическое формирование финансовых отчётов, статистических данных по продажам, загруженности маршрутов, работе персонала.
- Интеграция: Возможность взаимодействия с внешними системами, такими как платежные шлюзы, системы бухгалтерского учета, GPS-мониторинга.
Примеры существующих решений:
АСУ Экспресс
/Экспресс-Автовокзал
: Одна из распространенных систем, которая часто используется на российских автовокзалах. Предоставляет функционал для продажи билетов, управления расписанием, диспетчеризации.StarBus
/Авибус
/Е-Автовокзал
: Эти и аналогичные коммерческие системы предлагают комплексные решения, включающие онлайн-продажи, мобильные приложения, интеграцию с электронными табло и автоинформаторами. Они часто делают акцент на повышении качества обслуживания пассажиров и расширении каналов продаж.- Собственные разработки автовокзалов или крупные корпоративные решения: Некоторые крупные автовокзалы могут использовать кастомизированные системы, разработанные под их специфические нужды, или интегрированные модули от крупных IT-компаний.
Ключевые технологии и подходы, используемые в аналогах:
- Базы данных: Чаще всего используются реляционные СУБД (PostgreSQL, MySQL, MS SQL Server) для хранения структурированных данных о рейсах, билетах, пассажирах.
- Языки программирования и фреймворки: Для бэкенда — Java (Spring), Python (Django, Flask), C# (.NET), PHP (Laravel). Для фронтенда — JavaScript (React, Angular, Vue.js).
- Архитектуры: Часто используются многоуровневые архитектуры (клиент-сервер, веб-приложение), микросервисная архитектура для больших, распределённых систем.
- Облачные решения: Для обеспечения масштабируемости и доступности, некоторые системы размещаются в облачных средах (AWS, Google Cloud, Azure).
Анализ показывает, что система Автовокзал-2
должна будет включать в себя весь базовый функционал, присутствующий в большинстве аналогов, но при этом иметь возможность для расширения и адаптации к уникальным потребностям конкретного автовокзала. Особое внимание следует уделить удобству пользовательского интерфейса, надёжности и безопасности данных, а также возможности интеграции с перспективными сервисами.
2.3. Функциональные требования к системе Автовокзал-2
После того как мы погрузились в предметную область и изучили существующие решения, наступает ключевой этап – определение того, что именно система должна делать. Это формулируется в виде функциональных требований, которые описывают конкретные функции и задачи, которые система Автовокзал-2
должна выполнять для удовлетворения потребностей пользователей и бизнес-процессов. Функциональные требования являются основой для разработки функциональности системы и часто описываются в виде пользовательских сценариев или историй.
Для системы Автовокзал-2
можно выделить следующие основные блоки функциональных требований:
- Управление пользователями и ролями:
- Регистрация пользователей: Система должна предоставлять возможность регистрации различных типов пользователей (пассажир, кассир, диспетчер, администратор) с присвоением им соответствующих ролей.
- Авторизация и аутентификация: Обеспечение безопасного входа в систему с проверкой учётных данных.
- Управление профилями: Возможность просмотра и редактирования личных данных для зарегистрированных пользователей.
- Управление ролями и правами доступа: Администратор должен иметь возможность назначать и изменять роли пользователей, а также определять их права доступа к различным функциям системы.
- Управление продажами билетов:
- Продажа билетов через кассы: Кассир должен иметь возможность быстрого поиска рейсов, выбора мест, оформления билетов, приёма оплаты и печати проездных документов.
- Онлайн-продажа билетов (веб-сайт/мобильное приложение): Пассажир должен иметь возможность поиска рейсов, просмотра свободных мест, бронирования, оплаты билетов онлайн и получения электронного билета.
- Продажа через терминалы самообслуживания: Пассажир должен иметь возможность самостоятельно выбрать рейс, место, оплатить и распечатать билет.
- Продажа через агентские сети: Система должна поддерживать интеграцию с партнёрскими агентствами для реализации билетов.
- Возврат и обмен билетов: Функционал для обработки запросов на возврат или обмен билетов с учётом правил и штрафов.
- Управление тарифами и скидками: Возможность настройки различных тарифных планов, применения скидок (детские, льготные) и промокодов.
- Управление расписанием и рейсами:
- Создание и редактирование расписания: Диспетчер/Администратор должен иметь возможность формировать новое расписание, изменять существующие рейсы (время отправления/прибытия, маршрут, количество мест).
- Просмотр и фильтрация рейсов: Возможность быстрого поиска рейсов по направлениям, датам, времени.
- Привязка автобусов и водителей к рейсам: Назначение транспортных средств и экипажей на конкретные рейсы.
- Управление статусом рейсов: Изменение статуса рейса (планируется, в пути, прибыл, задержан, отменён).
- Формирование маршрутов: Создание и управление маршрутами, промежуточными остановками и их координатами.
- Диспетчеризация и контроль:
- Мониторинг движения автобусов: Отображение текущего местоположения автобусов (при интеграции с GPS-системами).
- Контроль отправлений и прибытий: Фиксация фактического времени отправления и прибытия рейсов.
- Управление посадочными местами: Отслеживание заполненности автобусов, управление посадкой пассажиров, контроль соответствия данных билетов и пассажиров.
- Оперативное информирование: Автоматическое оповещение пассажиров и персонала об изменениях в расписании (SMS, электронная почта).
- Формирование отчётности и статистики:
- Отчёты по продажам: Ежедневные, еженедельные, ежемесячные отчёты по количеству проданных билетов, выручке, популярности маршрутов.
- Отчёты по загруженности рейсов: Анализ заполняемости автобусов для оптимизации маршрутов.
- Отчёты по работе персонала: Статистика работы кассиров, диспетчеров.
- Экспорт отчётов: Возможность экспорта данных в различные форматы (CSV, PDF, Excel).
- Управление данными справочников:
- Справочник автобусов: Добавление, редактирование информации о транспортных средствах (марка, модель, госномер, вместимость).
- Справочник водителей: Управление данными о водителях.
- Справочник направлений/пунктов назначения: Ведение списка городов и остановок.
Эти требования формируют ядро функциональности системы Автовокзал-2
и станут основой для разработки её архитектуры и интерфейсов.
2.4. Нефункциональные требования к системе Автовокзал-2
Если функциональные требования описывают, что система должна делать, то нефункциональные требования отвечают на вопрос, как она должна это делать. Они определяют качество системы в целом, её атрибуты, ограничения и характеристики, влияющие на удобство использования, надёжность и производительность. Нефункциональные требования не меняют суть функциональности, но оказывают прямое влияние на то, насколько качественно, эффективно и безопасно система будет выполнять свои задачи. Важно, чтобы эти требования были измеримы, проверяемы и тестируемы.
Для системы Автовокзал-2
можно выделить следующие ключевые нефункциональные требования:
- Надёжность (Reliability):
- Доступность: Система должна быть доступна не менее 99,5% времени в рабочие часы (например, с 06:00 до 23:00 ежедневно).
- Устойчивость к сбоям: Система должна корректно восстанавливаться после программных или аппаратных сбоев без потери данных.
- Среднее время наработки на отказ (MTBF): Например, не менее 1000 часов непрерывной работы.
- Среднее время восстановления (MTTR): Например, не более 15 минут для критически важных функций.
- Безопасность (Security):
- Аутентификация и авторизация: Система должна использовать надёжные механизмы аутентификации (например, многофакторная аутентификация) и авторизации на основе ролей (RBAC) для контроля доступа к функциям и данным.
- Защита данных: Все конфиденциальные данные (личные данные пассажиров, платёжная информация) должны храниться в зашифрованном виде. Передача данных должна осуществляться по защищённым протоколам (HTTPS).
- Журналирование действий: Система должна вести подробный журнал всех критически важных операций (продажа билетов, изменение расписания, действия администратора) с указанием времени и пользователя.
- Защита от SQL-инъекций и XSS-атак: Система должна быть устойчива к распространённым уязвимостям веб-приложений.
- Масштабируемость (Scalability):
- Поддержка одновременных пользователей: Система должна стабильно поддерживать не менее 1000 одновременно активных пользователей на портале (для онлайн-продаж) и 50 активных пользователей в локальной сети автовокзала (для кассиров, диспетчеров) без деградации производительности.
- Расширение функционала: Архитектура системы должна предусматривать возможность добавления новых модулей и функций без существенной переработки существующего кода.
- Обработка данных: Система должна быть способна обрабатывать растущие объёмы данных (количество рейсов, пассажиров, транзакций) с сохранением приемлемой производительности.
- Производительность (Performance):
- Время отклика: Отклик на действия пользователя (например, поиск рейса, оформление билета, загрузка страницы) не должен превышать 2 секунд при нормальной нагрузке.
- Время выполнения отчётов: Формирование стандартных отчётов должно занимать не более 10 секунд.
- Скорость обработки транзакций: Операции по продаже билетов должны выполняться максимально быстро, не более 3 секунд.
- Удобство использования (Usability):
- Интуитивно понятный интерфейс: Интерфейс системы должен быть простым, логичным и понятным для пользователей с минимальным обучением.
- Обратная связь: Система должна предоставлять чёткую и своевременную обратную связь пользователю о выполнении операций или возникших ошибках.
- Эргономика: Интерфейс должен быть оптимизирован для минимизации количества кликов и ввода данных.
- Доступность (Accessibility):
- Поддержка мобильных устройств: Веб-интерфейс должен быть адаптивным и корректно отображаться на различных мобильных устройствах (смартфоны, планшеты).
- Совместимость с браузерами: Система должна корректно работать во всех распространённых веб-браузерах (Chrome, Firefox, Edge, Safari).
- Сопровождаемость (Maintainability) и Тестируемость (Testability):
- Модульность: Код системы должен быть модульным, что упрощает поиск и исправление ошибок, а также внесение изменений.
- Документирование кода: Код должен быть хорошо документирован.
- Лёгкость тестирования: Система должна быть спроектирована таким образом, чтобы облегчить автоматизированное тестирование.
- Локализация (Localization):
- Поддержка нескольких языков (например, русский, английский) для интерфейса и документации.
Эти нефункциональные требования задают стандарты качества для системы Автовокзал-2
и будут использоваться для её оценки и тестирования.
Глава 3. Моделирование и проектирование архитектуры системы Автовокзал-2
На этапе моделирования и проектирования мы переходим от абстрактных требований к конкретным структурным и поведенческим описаниям системы. Это сердце любой курсовой работы по проектированию информационных систем, где студенту предстоит применить теоретические знания на практике. В этой главе мы будем использовать Унифицированный язык моделирования (UML) для визуализации системы Автовокзал-2
с разных ракурсов, а также разработаем её базу данных.
3.1. Моделирование бизнес-процессов и вариантов использования (Use Case)
Основываясь на детальном анализе бизнес-процессов автовокзала, мы можем приступить к их формализованному описанию, которое станет отправной точкой для проектирования системы. В этом нам поможет UML (Unified Modeling Language — унифицированный язык моделирования) — открытый стандарт, язык графического описания для объектного моделирования, широко применяемый в разработке программного обеспечения, моделировании бизнес-процессов и системном проектировании.
Одной из самых важных поведенческих диаграмм UML является диаграмма вариантов использования (Use Case). Она описывает взаимодействие между системой и её пользователем (актором), помогая визуализировать и задокументировать требования к системе с точки зрения внешних сущностей.
Для системы Автовокзал-2
можно выделить следующих основных акторов:
- Пассажир: Конечный пользователь, покупающий билеты и пользующийся услугами автовокзала.
- Кассир: Сотрудник автовокзала, осуществляющий продажу и возврат билетов.
- Диспетчер: Сотрудник, управляющий расписанием, рейсами и контролирующий движение автобусов.
- Администратор: Сотрудник, отвечающий за настройку системы, управление пользователями и формирование отчётности.
- Система оплаты: Внешняя система, обеспечивающая обработку платежей.
- Система SMS-информирования: Внешняя система для отправки уведомлений.
Пример диаграммы вариантов использования (Use Case-диаграммы) для системы Автовокзал-2
:
graph TD
A[Пассажир] --> |Купить билет| UC1(Поиск рейса);
A --> |Купить билет| UC2(Выбор места);
A --> |Купить билет| UC3(Оплата билета);
A --> |Возврат билета| UC4(Возврат билета);
A --> |Просмотреть расписание| UC5(Просмотр расписания);
A --> |Получить информацию о рейсе| UC6(Получение информации о рейсе);
B[Кассир] --> |Оформить билет| UC1;
B --> |Оформить билет| UC2;
B --> |Оформить билет| UC3;
B --> |Вернуть билет| UC4;
B --> |Редактировать расписание| UC7(Редактирование расписания);
B --> |Проконтролировать посадку| UC8(Контроль посадки);
C[Диспетчер] --> |Управление расписанием| UC7;
C --> |Управление рейсами| UC9(Управление рейсами);
C --> |Мониторинг движения автобусов| UC10(Мониторинг автобусов);
C --> |Диспетчеризация перронов| UC11(Диспетчеризация перронов);
C --> |Формировать отчёт| UC12(Формирование отчётности);
D[Администратор] --> |Управление пользователями| UC13(Управление пользователями);
D --> |Управление ролями и правами| UC14(Управление ролями);
D --> |Настройка системы| UC15(Настройка системы);
D --> |Формировать отчёт| UC12;
UC3 --> |Запросить оплату| E[Система оплаты];
UC6 --> |Отправить SMS| F[Система SMS-информирования];
UC9 --> |Получить данные GPS| G[Система GPS-мониторинга];
subgraph Система "Автовокзал-2"
UC1
UC2
UC3
UC4
UC5
UC6
UC7
UC8
UC9
UC10
UC11
UC12
UC13
UC14
UC15
end
Детализация основных сценариев (Use Case):
- Сценарий
Купить билет
(Пассажир, Кассир):- Предусловия: Пассажир находится на сайте/в приложении или Кассир авторизован.
- Основные действия:
- Пользователь выбирает пункт отправления, пункт назначения и дату поездки.
- Система отображает доступные рейсы с информацией о времени, стоимости и свободных местах.
- Пользователь выбирает рейс и место в автобусе.
- Система запрашивает данные пассажира (ФИО, паспорт).
- Пользователь выбирает способ оплаты (банковская карта, наличные).
- Система обрабатывает платёж (через внешнюю систему оплаты).
- Система генерирует электронный билет и отправляет его на email/SMS пассажира.
- Постусловия: Билет успешно продан, место забронировано, информация о продаже занесена в базу данных.
- Альтернативные сценарии: Отказ от оплаты, отсутствие свободных мест, ошибка ввода данных.
- Сценарий
Управление расписанием
(Диспетчер, Администратор):- Предусловия: Пользователь авторизован как Диспетчер или Администратор.
- Основные действия:
- Пользователь выбирает опцию
Управление расписанием
. - Система отображает текущее расписание рейсов.
- Пользователь выбирает рейс для редактирования или создаёт новый.
- Пользователь вносит изменения (время, маршрут, автобус, водитель).
- Система сохраняет изменения и уведомляет об этом заинтересованные стороны (например, Кассиров, Пассажиров).
- Пользователь выбирает опцию
- Постусловия: Расписание обновлено, информация доступна всем акторам.
- Альтернативные сценарии: Конфликт расписаний, невозможность назначить автобус/водителя.
Диаграмма вариантов использования и детализация сценариев являются фундаментом для дальнейшего проектирования, позволяя чётко определить границы системы и её функциональные возможно��ти.
3.2. Структурное моделирование системы (Диаграммы классов, компонентов, развертывания)
Переходя от поведенческих аспектов к внутренней организации системы, мы используем структурные диаграммы UML, которые помогают визуализировать статические части системы, её элементы и их взаимосвязи.
Диаграмма классов — это один из ключевых инструментов для моделирования структуры объектно-ориентированных систем. Она показывает классы, их атрибуты (данные), методы (операции) и различные типы взаимосвязей между ними (ассоциация, агрегация, композиция, наследование). Для системы Автовокзал-2
можно выделить следующие основные классы:
classDiagram
class Пассажир {
-id: int
-ФИО: string
-Паспорт: string
-Телефон: string
-Email: string
+зарегистрироваться()
+авторизоваться()
+просмотретьБилеты()
}
class Билет {
-id: int
-НомерБилета: string
-ДатаПродажи: datetime
-Стоимость: decimal
-Статус: enum
-Место: string
-РейсID: int
-ПассажирID: int
+оформить()
+вернуть()
+распечатать()
}
class Рейс {
-id: int
-НомерРейса: string
-ДатаОтправления: date
-ВремяОтправления: time
-ДатаПрибытия: date
-ВремяПрибытия: time
-Статус: enum
-МаршрутID: int
-АвтобусID: int
-ВодительID: int
+изменитьСтатус()
+добавитьОстановку()
}
class Маршрут {
-id: int
-Название: string
-ПунктОтправления: string
-ПунктНазначения: string
-Расстояние: decimal
+добавитьОстановку()
}
class Остановка {
-id: int
-Название: string
-Координаты: string
-ВремяСтоянки: time
}
class Автобус {
-id: int
-ГосНомер: string
-Марка: string
-Модель: string
-Вместимость: int
+проверитьСтатус()
}
class Водитель {
-id: int
-ФИО: string
-НомерВодительскогоУдостоверения: string
-Статус: enum
+назначитьРейс()
}
class Пользователь {
-id: int
-Логин: string
-ПарольHash: string
-Роль: enum
+авторизоваться()
}
class Сотрудник {
-Должность: string
}
class Кассир {
-Смена: string
+продатьБилет()
}
class Диспетчер {
+управлятьРасписанием()
+мониторитьРейсы()
}
class Администратор {
+управлятьПользователями()
}
Пассажир -- Билет : 1..* имеет
Билет -- Рейс : 1..* относится к
Рейс -- Маршрут : 1..* следует по
Рейс -- Автобус : 1..* использует
Рейс -- Водитель : 1..* управляет
Маршрут -- Остановка : 1..* включает
Пользователь <|-- Сотрудник
Сотрудник <|-- Кассир
Сотрудник <|-- Диспетчер
Пользователь <|-- Администратор
Пользователь <|-- Пассажир
Диаграмма компонентов показывает разбиение программной системы на структурные компоненты и связи между ними. Компоненты — это модульные, заменяемые и независимые части системы, которые могут быть развернуты отдельно.
componentDiagram
[Модуль Продаж] --> [Модуль Расписания]
[Модуль Продаж] --> [Модуль Учета]
[Модуль Продаж] --> [База Данных]
[Модуль Расписания] --> [База Данных]
[Модуль Диспетчеризации] --> [Модуль Расписания]
[Модуль Диспетчеризации] --> [База Данных]
[Модуль Диспетчеризации] --> [Модуль Информирования]
[Модуль Отчетности] --> [База Данных]
[Модуль Пользователей] --> [База Данных]
[Веб-интерфейс Пассажира] --> [Модуль Продаж]
[Кассовый Интерфейс] --> [Модуль Продаж]
[Мобильное Приложение] --> [Модуль Продаж]
[Модуль Информирования] --> [SMS Gateway]
[Модуль Диспетчеризации] --> [GPS Мониторинг]
[Модуль Продаж] --> [Платежный Шлюз]
cloud "Внешние Сервисы" {
[SMS Gateway]
[GPS Мониторинг]
[Платежный Шлюз]
}
database "Хранилище Данных" {
[База Данных]
}
component "Ядро Системы" as Core {
[Модуль Продаж]
[Модуль Расписания]
[Модуль Диспетчеризации]
[Модуль Отчетности]
[Модуль Пользователей]
[Модуль Учета]
[Модуль Информирования]
}
Диаграмма развёртывания (Deployment Diagram) иллюстрирует физическое развёртывание программных компонентов на аппаратных узлах. Она показывает, какие аппаратные ресурсы (серверы, рабочие станции) используются и как программные компоненты распределены по этим ресурсам.
graph LR
subgraph Инфраструктура Автовокзала
N1[Клиентская Рабочая Станция Кассира] -- Wi-Fi/LAN --> N2(Сервер Приложений);
N1 -- Wi-Fi/LAN --> N3(Сервер Базы Данных);
N4[Терминал Самообслуживания] -- LAN --> N2;
N5[Диспетчерская Рабочая Станция] -- LAN --> N2;
N6[Рабочая Станция Администратора] -- LAN --> N2;
N7[Электронное Табло] -- LAN --> N2;
end
subgraph Облачная Инфраструктура
N8(Веб-сервер) -- Интернет --> N2;
N9(Сервер Мобильных Приложений) -- Интернет --> N2;
N10(SMS Gateway) -- API --> N2;
N11(Платежный Шлюз) -- API --> N2;
N12(Сервис GPS-мониторинга) -- API --> N2;
end
subgraph Серверная Комната Автовокзала
subgraph Сервер Приложений
C1[Модуль Продаж]
C2[Модуль Расписания]
C3[Модуль Диспетчеризации]
C4[Модуль Отчетности]
C5[Модуль Пользователей]
C6[Модуль Информирования]
end
subgraph Сервер Базы Данных
DB[База Данных PostgreSQL/MySQL]
end
end
N2 --> N3;
N8 -- HTTPS --> C1;
N9 -- HTTPS --> C1;
C6 --> N10;
C1 --> N11;
C3 --> N12;
Эти структурные диаграммы предоставляют детализированное представление о внутренней организации системы Автовокзал-2
, её архитектуре и способах развёртывания, что является критически важным для этапов реализации и сопровождения.
3.3. Моделирование поведения системы (Диаграммы последовательности, деятельности)
Помимо статической структуры, важно понимать, как система Автовокзал-2
будет вести себя при выполнении различных операций. Для этого мы используем поведенческие диаграммы UML, которые демонстрируют динамические аспекты взаимодействия между компонентами и потоки управления.
Диаграмма последовательности показывает взаимодействие между различными объектами в системе в определённой последовательности событий, акцентируя внимание на временном порядке сообщений. Она идеально подходит для иллюстрации конкретных сценариев использования.
Пример Диаграммы последовательности для операции Покупка билета онлайн
:
sequenceDiagram
participant P as Пассажир
participant WS as Веб-сайт/Мобильное приложение
participant MPs as Модуль Продаж
participant MR as Модуль Расписания
participant DB as База Данных
participant PS as Платежный Шлюз
participant MS as Модуль SMS-информирования
P->>WS: Открыть веб-сайт/приложение
WS->>P: Отобразить форму поиска рейсов
P->>WS: Ввести пункты отправления/назначения, дату
WS->>MPs: Запросить доступные рейсы(пунктОтпр, пунктНазн, дата)
MPs->>MR: Запросить рейсы(пунктОтпр, пунктНазн, дата)
MR->>DB: SELECT * FROM Рейсы WHERE ...
DB-->>MR: Список рейсов
MR-->>MPs: Список рейсов
MPs-->>WS: Список рейсов
WS->>P: Отобразить список рейсов
P->>WS: Выбрать рейс и место
WS->>MPs: Забронировать место(РейсID, МестоID, ПассажирID)
MPs->>DB: UPDATE Место SET Статус='Забронировано' WHERE ...
DB-->>MPs: Подтверждение бронирования
MPs-->>WS: Подтверждение бронирования, запрос оплаты
P->>WS: Ввести данные карты
WS->>PS: Отправить платёжные данные
PS->>WS: Результат оплаты
alt Успешная оплата
WS->>MPs: Подтвердить оплату(БилетID)
MPs->>DB: UPDATE Билет SET Статус='Продан' WHERE ...
DB-->>MPs: Подтверждение
MPs-->>WS: Отправить электронный билет
MPs->>MS: Отправить SMS с номером билета
MS->>P: SMS-уведомление
WS->>P: Отобразить электронный билет
else Неуспешная оплата
WS->>MPs: Отменить бронирование(БилетID)
MPs->>DB: UPDATE Место SET Статус='Свободно' WHERE ...
DB-->>MPs: Подтверждение отмены
MPs-->>WS: Сообщение об ошибке
WS->>P: Сообщение об ошибке оплаты
end
Диаграмма деятельности (Activity Diagram) моделирует потоки управления или процессов в системе, показывая последовательность действий, точки принятия решений, параллельные процессы и синхронизацию. Она особенно полезна для описания сложных бизнес-процессов.
Пример Диаграммы деятельности для процесса Диспетчеризация рейса
:
graph TD
start((start)) --> A[Диспетчер открывает панель управления рейсами];
A --> B{Выбрать рейс};
B -- Существующий рейс --> C[Просмотреть детали рейса];
B -- Новый рейс --> D[Создать новый рейс];
C --> E{Изменить расписание?};
D --> F[Ввести данные рейса (номер, маршрут, время)];
F --> G[Назначить автобус и водителя];
E -- Да --> H[Изменить время отправления/прибытия];
H --> I[Проверить доступность перрона];
I --> J{Перрон свободен?};
J -- Нет --> K[Найти альтернативный перрон/время];
J -- Да --> L[Сохранить изменения расписания];
L --> M[Уведомить Кассиров и Пассажиров об изменениях];
G --> N[Сохранить данные рейса];
N --> O[Обновить статус рейса на "Планируется"];
M --> O;
O --> P{Время отправления подошло?};
P -- Да --> Q[Оповестить водителя о готовности к отправлению];
Q --> R[Начать мониторинг движения автобуса (GPS)];
R --> S[Отметить рейс как "В пути"];
S --> T{Рейс прибыл в пункт назначения?};
T -- Да --> U[Зафиксировать время прибытия];
U --> V[Отметить рейс как "Прибыл"];
V --> W[Сформировать отчёт о рейсе];
W --> end((end));
K --> L;
D --> G;
C --> G;
P -- Нет --> A;
Эти поведенческие диаграммы дополняют структурное описание, предоставляя динамическое представление о том, как компоненты системы взаимодействуют во времени и как выполняются ключевые бизнес-процессы. Они служат основой для разработки логики программы и тестирования её функциональности.
3.4. Проектирование базы данных Автовокзал-2
После того как структура и поведение системы смоделированы с помощью UML, следующим критически важным шагом является проектирование хранилища данных. База данных является сердцем любой информационной системы, обеспечивая хранение, извлечение и управление всеми критически важными данными.
Проектирование базы данных Автовокзал-2
включает в себя два основных этапа:
- Разработка концептуальной модели базы данных (ER-диаграмма):
Концептуальная модель описывает сущности предметной области (объекты, о которых нужно хранить информацию), их атрибуты (характеристики) и связи между ними, без привязки к конкретной СУБД. Она является высокоуровневым представлением данных, понятным как разработчикам, так и бизнес-пользователям. Наиболее распространённым инструментом для создания концептуальной модели является ER-диаграмма (Entity-Relationship Diagram — диаграммасущность-связь
).
Пример ER-диаграммы для системы Автовокзал-2
:
erDiagram
PASSENGER ||--o{ TICKET : имеет
TICKET ||--|{ TRIP : относится_к
TRIP ||--|{ ROUTE : следует_по
TRIP ||--o{ BUS : использует
TRIP ||--o{ DRIVER : управляет
ROUTE ||--o{ STOP : включает
USER ||--o{ PASSENGER : является_пользователем
USER ||--o{ EMPLOYEE : является_сотрудником
EMPLOYEE ||--o{ CASHIER : является_кассиром
EMPLOYEE ||--o{ DISPATCHER : является_диспетчером
EMPLOYEE ||--o{ ADMINISTRATOR : является_администратором
PASSENGER {
int id PK
varchar FIO
varchar Passport
varchar Phone
varchar Email
}
TICKET {
int id PK
varchar TicketNumber
datetime SaleDate
decimal Cost
varchar Status
varchar Place
int TripID FK
int PassengerID FK
}
TRIP {
int id PK
varchar TripNumber
date DepartureDate
time DepartureTime
date ArrivalDate
time ArrivalTime
varchar Status
int RouteID FK
int BusID FK
int DriverID FK
}
ROUTE {
int id PK
varchar Name
varchar DeparturePoint
varchar DestinationPoint
decimal Distance
}
STOP {
int id PK
varchar Name
varchar Coordinates
time StopDuration
}
BUS {
int id PK
varchar LicensePlate
varchar Brand
varchar Model
int Capacity
}
DRIVER {
int id PK
varchar FIO
varchar DriverLicenseNumber
varchar Status
}
USER {
int id PK
varchar Login
varchar PasswordHash
varchar Role
}
EMPLOYEE {
int id PK
varchar Position
int UserID FK
}
CASHIER {
int id PK
varchar Shift
int EmployeeID FK
}
DISPATCHER {
int id PK
int EmployeeID FK
}
ADMINISTRATOR {
int id PK
int EmployeeID FK
}
- Разработка логической модели базы данных:
Логическая модель переводит концептуальную модель в формат, который может быть реализован в конкретной реляционной СУБД. На этом этапе определяются таблицы, столбцы (атрибуты), первичные и внешние ключи, типы данных и ограничения целостности.
Пример таблицы TRIPS
(Рейсы):
Название поля | Тип данных | Описание | Ограничения |
---|---|---|---|
trip_id |
INT |
Уникальный идентификатор рейса | PRIMARY KEY , NOT NULL |
trip_number |
VARCHAR(50) |
Номер рейса | NOT NULL , UNIQUE |
departure_date |
DATE |
Дата отправления | NOT NULL |
departure_time |
TIME |
Время отправления | NOT NULL |
arrival_date |
DATE |
Дата прибытия | NOT NULL |
arrival_time |
TIME |
Время прибытия | NOT NULL |
status |
VARCHAR(20) |
Статус рейса (Например, ‘Планируется’, ‘В пути’, ‘Прибыл’, ‘Отменен’) | NOT NULL |
route_id |
INT |
Ссылка на маршрут | FOREIGN KEY → ROUTES(route_id) , NOT NULL |
bus_id |
INT |
Ссылка на автобус | FOREIGN KEY → BUSES(bus_id) , NOT NULL |
driver_id |
INT |
Ссылка на водителя | FOREIGN KEY → DRIVERS(driver_id) , NOT NULL |
Аналогичные таблицы будут разработаны для всех сущностей (Пассажиры, Билеты, Маршруты, Остановки, Автобусы, Водители, Пользователи, Сотрудники и их подклассы).
3.5. Принципы нормализации и обеспечения целостности данных
Для того чтобы спроектированная база данных была эффективной, надёжной и легко сопровождаемой, необходимо строго придерживаться принципов нормализации базы данных и обеспечения целостности данных.
Нормализация базы данных — это процесс организации данных в базе данных, включающий создание таблиц и установление связей между ними в соответствии с набором правил, известных как нормальные формы. Основные цели нормализации:
- Устранение избыточности данных: Избежать дублирования информации.
- Уменьшение вероятности аномалий: Предотвратить проблемы при вставке, обновлении и удалении данных.
- Повышение гибкости и масштабируемости: Сделать структуру данных более адаптивной к изменениям.
- Повышение качества данных: Обеспечить точность и согласованность информации.
Наиболее распространённые нормальные формы:
- Первая нормальная форма (1НФ): Требует, чтобы в таблице:
- Все столбцы содержали атомарные (неделимые) значения. Например, поле
ФИО
не должно хранитьИванов Иван Иванович
, а должно быть разбито наФамилия
,Имя
,Отчество
. - Не было повторяющихся групп атрибутов. Каждая строка должна быть уникальна и идентифицироваться уникальным первичным ключом.
- Пример для
Автовокзал-2
: В таблицеPASSENGERS
полеFIO
должно быть разделено наfirst_name
,last_name
,patronymic
.
- Все столбцы содержали атомарные (неделимые) значения. Например, поле
- Вторая нормальная форма (2НФ): Требует выполнения 1НФ и отсутствия частичных функциональных зависимостей неключевых атрибутов от части первичного ключа (для таблиц с составным первичным ключом).
- Пример для
Автовокзал-2
: Если бы первичный ключ таблицыTICKETS
был(trip_id, place_number)
, аbus_brand
зависел только отtrip_id
, то это нарушало бы 2НФ.bus_brand
нужно вынести в таблицуBUSES
.
- Пример для
- Третья нормальная форма (3НФ): Требует выполнения 2НФ и отсутствия транзитивных функциональных зависимостей неключевых атрибутов от первичного ключа. Это означает, что неключевые атрибуты не должны зависеть от других неключевых атрибутов.
- Пример для
Автовокзал-2
: Если в таблицеTRIPS
было бы полеroute_distance
(расстояние маршрута), которое зависит отroute_id
, аroute_id
уже является внешним ключом к таблицеROUTES
, тоroute_distance
должно быть вынесено в таблицуROUTES
.
- Пример для
Для системы Автовокзал-2
все таблицы будут спроектированы как минимум до 3НФ, что обеспечит оптимальный баланс между устранением избыточности и производительностью запросов.
Целостность данных — это свойство, при котором информация сохраняет заранее заданный уровень качества и вид; это точность, полнота и надёжность данных. Контроль целостности данных означает обеспечение полноты и точности информации, отсутствие ошибок или аномалий.
Типы целостности данных и методы их обеспечения:
- Логическая целостность (Entity Integrity):
- Принцип: Каждая строка таблицы должна быть уникально идентифицируема.
- Обеспечение: Использование первичного ключа (PRIMARY KEY), который не может содержать
NULL
-значений и должен быть уникальным для каждой записи. - Пример для
Автовокзал-2
: Полеid
в каждой таблице (например,PASSENGERS
,TRIPS
) будет первичным ключом.
- Ссылочная целостность (Referential Integrity):
- Принцип: Отношения между первичным и внешним ключом должны быть корректными. Внешний ключ в одной таблице должен либо ссылаться на существующий первичный ключ в другой таблице, либо быть
NULL
. - Обеспечение: Использование внешних ключей (FOREIGN KEY) с правилами ON DELETE и ON UPDATE (например,
CASCADE
,RESTRICT
,SET NULL
). - Пример для
Автовокзал-2
:route_id
в таблицеTRIPS
является внешним ключом, ссылающимся наroute_id
в таблицеROUTES
. Нельзя удалить маршрут, если на него ссылается хотя бы один рейс.
- Принцип: Отношения между первичным и внешним ключом должны быть корректными. Внешний ключ в одной таблице должен либо ссылаться на существующий первичный ключ в другой таблице, либо быть
- Целостность полей/доменов (Domain Integrity):
- Принцип: Каждое поле должно содержать только допустимые значения, соответствующие его типу данных и бизнес-логике.
- Обеспечение: Использование типов данных (INT, VARCHAR, DATE, BOOLEAN), ограничений
CHECK
(например,CHECK (capacity > 0)
для автобуса),NOT NULL
(для обязательных полей),DEFAULT
значений. - Пример для
Автовокзал-2
: Полеstatus
в таблицеTRIPS
может иметь только предопределённые значения (‘Планируется’, ‘В пути’, ‘Прибыл’, ‘Отменен’).
- Целостность таблицы (Table Integrity):
- Принцип: Обеспечение уникальности записей в таблице.
- Обеспечение: Использование уникальных индексов и ограничений
UNIQUE
на одно или несколько полей (например,UNIQUE(trip_number)
для рейсов).
Тщательное применение этих принципов при проектировании базы данных Автовокзал-2
гарантирует её надёжность, согласованность и долговременную работоспособность.
Глава 4. Тестирование программного обеспечения и документация системы Автовокзал-2
Создание системы — это лишь часть пути; убедиться в её корректной работе и обеспечить её дальнейшее сопровождение не менее важно. Эта глава посвящена двум критически важным аспектам: тестированию программного обеспечения, которое гарантирует качество и надёжность Автовокзал-2
, и разработке документации, обеспечивающей её понятность и поддерживаемость на протяжении всего жизненного цикла.
4.1. Методология и виды тестирования программного обеспечения
Тестирование программного обеспечения — это систематический процесс обнаружения ошибок в ПО и проведение технического исследования для получения исчерпывающей информации о качестве тестируемого IT-продукта. Его цель — не только найти дефекты, но и убедиться, что приложение работает так, как задумано, соответствует всем требованиям и ожиданиям пользователей. Для системы Автовокзал-2
необходим комплексный подход к тестированию, включающий различные виды и этапы.
Основные виды тестирования, применимые к Автовокзал-2
:
- Модульное тестирование (Unit Testing):
- Цель: Проверка наименьших, изолированных частей кода (модулей, функций, методов) на корректность их работы.
- Когда проводится: На этапе разработки, разработчиками.
- Особенности для
Автовокзал-2
: Тестирование отдельных функций, например, расчёт стоимости билета, проверка валидности данных пассажира, сохранение записи о рейсе в базу данных. Модульные тесты работают на очень низком уровне, близко к исходному коду приложения.
- Интеграционное тестирование (Integration Testing):
- Цель: Проверка совместной работы различных модулей, компонентов и сервисов, используемых приложением.
- Когда проводится: После модульного тестирования, когда отдельные модули объединены.
- Особенности для
Автовокзал-2
: Проверка взаимодействия модуля продаж с модулем расписания, модуля диспетчеризации с базой данных, интеграции с внешним платежным шлюзом или SMS-сервисом.
- Функциональное тестирование (Functional Testing):
- Цель: Проверка того, какие функции ПО реализованы, и насколько верно они реализованы, основываясь на анализе спецификации (функциональных требований).
- Когда проводится: После интеграционного тестирования.
- Особенности для
Автовокзал-2
: Тестирование полного цикла покупки билета (от поиска до получения), оформления возврата, изменения расписания диспетчером, формирования отчётов. Фокус на том,что
система делает.
- Нефункциональное тестирование (Non-functional Testing):
- Цель: Проверка атрибутов компонента или системы, не относящихся к функциональности, и оценка, КАК программный продукт работает.
- Когда проводится: На различных этапах тестирования, часто параллельно с функциональным.
- Подвиды для
Автовокзал-2
:- Нагрузочное тестирование (Load Testing): Проверка производительности приложения под ожидаемой нагрузкой (например, 1000 одновременных пользователей, оформляющих билеты).
- Стрессовое тестирование (Stress Testing): Проверка работоспособности системы в условиях экстремальной нагрузки (например, 2000-3000 одновременных пользователей) и оценка способности к регенерации (восстановлению после перегрузки).
- Тестирование безопасности (Security Testing / Penetration Testing): Выявление уязвимостей (SQL-инъекции, XSS, слабые пароли, утечки данных) и проверка устойчивости к несанкционированному доступу.
- Тестирование производительности (Performance Testing): Измерение времени отклика системы на различные действия при стандартной нагрузке.
- Тестирование юзабилити (Usability Testing): Оценка удобства и интуитивности интерфейса для конечных пользователей (кассиров, пассажиров, диспетчеров).
- Приемочное тестирование (Acceptance Testing):
- Цель: Подтверждение того, что функции и модули приложения правильно работают с корректными данными и соответствуют ожиданиям заказчика/конечного пользователя.
- Когда проводится: На заключительном этапе перед развёртыванием, обычно с участием представителей заказчика.
- Особенности для
Автовокзал-2
: Заказчик (руководство автовокзала, ключевые пользователи) проверяет, что система полностью удовлетворяет их бизнес-потребностям.
- Дымовое тестирование (Smoke Testing):
- Цель: Быстрое тестирование для подтверждения общей работоспособности системы после внесения значительных изменений или выпуска новой версии.
- Когда проводится: После каждой сборки или значительного обновления.
- Особенности для
Автовокзал-2
: Проверка базовых функций: система запускается, можно войти, отображается расписание, можно начать продажу билетов.
Методология тестирования для Автовокзал-2
будет включать:
- Планирование тестирования: Определение стратегии, объёма, ресурсов и расписания.
- Разработка тестовых сценариев и кейсов: Создание детальных инструкций для выполнения тестов.
- Выполнение тестов: Запуск тестов и фиксация результатов.
- Анализ дефектов: Выявление, документирование и отслеживание ошибок.
- Регрессионное тестирование: Повторное тестирование ранее работавших функций после внесения изменений, чтобы убедиться, что новые изменения не вызвали старых проблем.
Комплексный подход к тестированию системы Автовокзал-2
позволит обеспечить высокое качество продукта, минимизировать риски возникновения ошибок в реальной эксплуатации и гарантировать соответствие системы всем заявленным требованиям.
4.2. Разработка технического задания (ТЗ) на АС по ГОСТ 34.602-2020
Разработка сложной автоматизированной системы, такой как Автовокзал-2
, невозможна без чёткого и исчерпывающего документа, регламентирующего весь процесс её создания. Таким документом является Техническое задание (ТЗ) на автоматизированную систему (АС). Оно служит основным ориентиром для всех участников проекта — от заказчика до разработчиков — и определяет требования, порядок создания и приёмки системы.
С 1 января 2022 года в России действует ГОСТ 34.602-2020 Информационные технологии. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы
, который заменил предыдущий ГОСТ 34.602-89. Этот новый стандарт устанавливает состав, содержание и правила оформления ТЗ, делая его более современным и соответствующим текущим реалиям разработки ПО.
Структура и содержание Технического задания на АС Автовокзал-2
по ГОСТ 34.602-2020:
ТЗ оформляется в виде текстового документа, при этом допускается включать приложения, вводить дополнительные, исключать или объединять подразделы.
- Общие сведения:
- Полное наименование системы (
Автоматизированная система
) и её условное обозначение.Автовокзал-2
- Наименование и реквизиты предприятий (организаций) заказчика и разработчика.
- Основание для разработки (например, приказ, договор, протокол).
- Сроки начала и окончания работ по созданию системы.
- Источники финансирования и порядок приёмки работ.
- Полное наименование системы (
- Назначение и цели создания системы:
- Назначение системы: Для чего предназначена система (например,
автоматизация бизнес-процессов по управлению пассажирскими перевозками и продажей билетов на автовокзале
). - Цели создания системы: Какие конкретные задачи должна решить система (например,
повышение эффективности продаж билетов на 30%
,сокращение времени обслуживания пассажиров на 50%
,обеспечение полного контроля над выручкой
).
- Назначение системы: Для чего предназначена система (например,
- Характеристика объектов автоматизации:
- Подробное описание предметной области: структура автовокзала, используемые ресурсы (персонал, оборудование), основные бизнес-процессы (продажа билетов, диспетчеризация, учёт), текущие проблемы и
узкие места
. - Сведения о существующей автоматизации (если есть) и её недостатки.
- Взаимодействие с другими системами (например, бухгалтерский учёт, системы GPS-мониторинга).
- Подробное описание предметной области: структура автовокзала, используемые ресурсы (персонал, оборудование), основные бизнес-процессы (продажа билетов, диспетчеризация, учёт), текущие проблемы и
- Требования к системе: Это наиболее объёмный и детализированный раздел.
- 4.1. Требования к функциям (задачам), выполняемым системой:
- Перечень функциональных требований, детально описанных в Главе 2.3, с указанием приоритетов.
- Обязательные функции (продажа, расписание), дополнительные (SMS-информирование, онлайн-бронирование).
- 4.2. Требования к видам обеспечения:
- 4.2.1. Требования к программному обеспечению: используемые языки программирования, СУБД, операционные системы, фреймворки.
- 4.2.2. Требования к техническому обеспечению: минимальная конфигурация аппаратного обеспечения для серверов, рабочих станций, терминалов.
- 4.2.3. Требования к информационному обеспечению: Структура баз данных, принципы кодирования, классификаторы, форматы ввода/вывода данных.
- 4.2.4. Требования к организационному обеспечению: Изменения в регламентах работы, должностные инструкции.
- 4.2.5. Требования к методическому обеспечению: Методики обучения пользователей, регламенты работы.
- 4.2.6. Требования к лингвистическому обеспечению: Терминология, языки интерфейса.
- 4.2.7. Требования к правовому обеспечению: Соответствие законодательству (например, защита персональных данных).
- 4.3. Требования к надёжности: Показатели доступности, времени восстановления, устойчивости к сбоям (см. Глава 2.4).
- 4.4. Требования к безопасности: Аутентификация, авторизация, защита данных, логирование (см. Глава 2.4).
- 4.5. Требования к эргономике и технической эстетике: Удобство интерфейса, цветовая схема, компоновка элементов.
- 4.6. Требования к эксплуатации, техническому обслуживанию, ремонту: Процедуры запуска/остановки, мониторинга, резервного копирования.
- 4.7. Требования к составу и параметрам технических средств: Спецификации оборудования.
- 4.8. Требования к защите информации от несанкционированного доступа: Методы защиты, разграничение прав.
- 4.9. Требования к защите от воздействия внешних факторов: Устойчивость к перепадам напряжения, электромагнитным помехам.
- 4.10. Требования к патентной чистоте: Использование лицензионных продуктов и технологий.
- 4.1. Требования к функциям (задачам), выполняемым системой:
- Состав и содержание работ по созданию системы:
- Перечень этапов работ (анализ, проектирование, разработка, тестирование, внедрение).
- Сроки выполнения каждого этапа.
- Результаты каждого этапа (документы, программный код).
- Порядок контроля и приемки системы:
- Виды, состав и методы испытаний (модульные, интеграционные, функциональные, приемочные).
- Процедуры проведения испытаний и критерии успешности.
- Перечень документов, представляемых при приёмке.
- Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие:
- Мероприятия по обучению персонала.
- Подготовка помещений, оборудования.
- Перенос данных из старых систем (если применимо).
- Требования к документированию:
- Перечень подлежащих разработке комплектов и видов документов, соответствующих требованиям ГОСТ 34.201-89 (например, Руководство пользователя, Руководство по инсталляции, Описание программы).
- Требования к оформлению документов.
- Источники разработки:
- Перечень нормативных документов, технических решений, материалов, использованных при разработке ТЗ.
Тщательная проработка Технического задания по ГОСТ 34.602-2020 обеспечит прозрачность проекта Автовокзал-2
, минимизирует риски недопонимания между заказчиком и разработчиком, а также станет основой для успешной реализации и дальнейшего сопровождения системы.
4.3. Требования к пользовательской документации и инсталляции
После того как система Автовокзал-2
спроектирована и реализована, а её качество подтверждено тестированием, возникает необходимость в эффективном её использовании и обслуживании. Для этого разрабатывается комплекс документации, адресованный различным категориям пользователей.
Требования к разработке руководства пользователя:
Руководство пользователя является ключевым документом для конечных пользователей системы (кассиров, диспетчеров, пассажиров, администраторов). Оно должно быть написано простым, понятным языком, без излишнего технического жаргона, и содержать достаточно иллюстраций и скриншотов.
- Назначение: Обучение пользователей работе с системой, предоставление справочной информации, помощь в решении типовых проблем.
- Содержание:
- Введение: Краткое описание системы, её назначение и основные возможности.
- Начало работы: Процедуры запуска и входа в систему, описание главного экрана.
- Основные функции: Пошаговое описание выполнения всех ключевых операций, предусмотренных для данной роли пользователя (например, для кассира:
Поиск рейса
,Продажа билета
,Оформление возврата
). - Работа с отчётами: Инструкции по формированию и экспорту отчётов.
- Настройка пользовательского интерфейса: Возможности персонализации.
- Поиск и устранение неисправностей: Описание типовых ошибок и способов их решения.
- Глоссарий: Объяснение используемых терминов.
- Формат: Документ должен быть доступен в электронном виде (PDF, HTML) и, при необходимости, в печатном.
- Актуальность: Руководство должно регулярно обновляться при внесении изменений в функционал системы.
Требования к руководству по инсталляции системы:
Руководство по инсталляции предназначено для IT-специалистов, ответственных за развёртывание системы на серверах и рабочих станциях. Оно должно быть максимально подробным и технически точным.
- Назначение: Предоставление полной информации и пошаговых инструкций для успешной установки и настройки всех компонентов системы.
- Содержание:
- Введение: Обзор архитектуры системы и её компонентов.
- Минимальная конфигурация программно-аппаратного обеспечения:
- Аппаратное обеспечение:
- Сервер базы данных: Процессор (например, Intel Xeon E3-1505M v5 или аналогичный), RAM (не менее 16 ГБ), дисковое пространство (SSD, не менее 500 ГБ, с RAID 1 для надёжности), сетевая карта (Gigabit Ethernet).
- Сервер приложений: Аналогичные требования, возможно, с большей RAM в зависимости от ожидаемой нагрузки.
- Рабочие станции кассиров/диспетчеров: Процессор (Intel Core i3-10100 или аналогичный), RAM (не менее 8 ГБ), дисковое пространство (SSD, не менее 256 ГБ), монитор (1920×1080), принтер для билетов.
- Программное обеспечение:
- Операционная система: Linux (например, Ubuntu Server 22.04 LTS) или Windows Server 2022 для серверов; Windows 10/11 для рабочих станций.
- Система управления базами данных (СУБД): PostgreSQL 14+ или MySQL 8+.
- Веб-сервер: Nginx или Apache HTTP Server.
- Среда выполнения: Java Runtime Environment (JRE) 17+ или .NET Runtime 6+.
- Дополнительное ПО: Браузеры (Chrome, Firefox), драйверы для периферийных устройств (принтеры, сканеры).
- Аппаратное обеспечение:
- Пошаговая инструкция по установке:
- Подготовка операционной системы (установка необходимых пакетов, настройка сети).
- Установка и настройка СУБД.
- Развёртывание серверных компонентов (модулей приложения).
- Настройка веб-сервера.
- Установка клиентских приложений или настройка доступа к веб-интерфейсу.
- Процедуры первоначальной настройки и инициализации данных.
- Конфигурационные файлы: Описание параметров и их значений.
- Устранение неполадок при инсталляции: Типовые проблемы и их решения.
- Формат: Документ в электронном виде (PDF) с возможностью копирования команд и примеров настроек.
Наличие качественной и актуальной документации для системы Автовокзал-2
является залогом её успешного внедрения, эффективной эксплуатации и долгосрочной поддерживаемости.
Заключение
В рамках данной курсовой работы была успешно решена задача по разработке комплексного, детализированного и академически выверенного плана проектирования и реализации автоматизированной системы Автовокзал-2
. Отправной точкой послужило глубокое погружение в теоретические основы программной инженерии и системного анализа, что позволило заложить прочный методологический фундамент для всех последующих этапов.
Была обоснована острая актуальность автоматизации бизнес-процессов автовокзала, обусловленная необходимостью устранения проблем ручного учёта, повышения эффективности продаж и улучшения качества обслуживания пассажиров. Детальный анализ предметной области и существующих аналогов позволил выявить ключевые функциональные требования, охватывающие управление продажами билетов, расписанием, диспетчеризацией, а также формирование отчётности. Одновременно были сформулированы нефункциональные требования, задающие стандарты надёжности, безопасности, масштабируемости, производительности и удобства использования системы.
Центральной частью работы стало моделирование и проектирование архитектуры системы Автовокзал-2
с использованием унифицированного языка моделирования UML. Были разработаны диаграммы вариантов использования, классов, компонентов и развертывания, обеспечивающие всестороннее представление о структуре и взаимодействии элементов системы. Поведенческие аспекты были отражены в диаграммах последовательности и деятельности, наглядно демонстрирующих ключевые сценарии работы. Отдельное внимание было уделено проектированию базы данных, где были подробно рассмотрены принципы нормализации (до 3НФ) и обеспечения целостности данных, что является критически важным для надёжного хранения и обработки информации.
Наконец, в работе были освещены вопросы тестирования программного обеспечения и документации. Предложен комплексный подход к тестированию, включающий модульное, интеграционное, функциональное, нефункциональное и приемочное тестирование, с описанием их целей и применимости. Особое внимание уделено разработке Технического задания (ТЗ) на АС в соответствии с актуальным ГОСТ 34.602-2020, что гарантирует соответствие проекта современным стандартам. Также были определены требования к пользовательской документации и руководству по инсталляции, включая минимальную конфигурацию программно-аппаратного обеспечения, что обеспечит успешное внедрение и эксплуатацию системы.
Таким образом, все поставленные цели и задачи курсовой работы были достигнуты. Разработанный план предоставляет исчерпывающую основу для создания функциональной, надёжной и эффективной автоматизированной системы Автовокзал-2
.
Перспективы дальнейшего развития системы Автовокзал-2
включают:
- Внедрение систем динамического ценообразования на основе анализа спроса.
- Интеграция с городскими системами управления транспортом для оптимизации маршрутов и расписаний.
- Разработка интеллектуальных модулей для прогнозирования пассажиропотока.
- Использование технологий машинного обучения для персонализации предложений пассажирам.
- Расширение каналов продаж за счёт интеграции с глобальными системами бронирования.
Данная работа подтверждает, что при системном подходе и строгом соблюдении методологий программной инженерии возможно создание сложных, высокоэффективных автоматизированных систем, способных трансформировать устаревшие бизнес-процессы и значительно улучшить качество предоставляемых услуг.
Список использованной литературы
- ГОСТ 34.602-2020. Информационная технология (ИТ). Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы. URL: https://babok.ru/gost-34-602-2020-trebovaniya-k-soderzhaniyu-tz-na-as-s-izmeneniyami-2022-goda/ (дата обращения: 12.10.2025).
- ГОСТ 34.602-89. Техническое задание на создание автоматизированной системы. URL: https://docs.cntd.ru/document/1200004566 (дата обращения: 12.10.2025).
- Анализ методов и алгоритмов решений. URL: https://namdu.uz/wp-content/uploads/2024/06/vvedenie-v-programmnuyu-inzheneriyu.pdf (дата обращения: 12.10.2025).
- Виды и типы тестирования программного обеспечения. URL: https://www.lenal.ru/blog/vidy-i-tipy-testirovaniya-po/ (дата обращения: 12.10.2025).
- Виды испытаний (тестирования) информационной системы. URL: https://it-concord.ru/useful/vidy-ispytanij-testirovaniya-informacionnoj-sistemy/ (дата обращения: 12.10.2025).
- Классификация видов тестирования. URL: https://testplanet.ru/blog/vidy-testirovaniya/ (дата обращения: 12.10.2025).
- Классификация видов тестирования: Часть 1. URL: https://vc.ru/dev/903080-klassifikaciya-vidov-testirovaniya-chast-1 (дата обращения: 12.10.2025).
- МЕТОДЫ ТЕСТИРОВАНИЯ ИНТЕГРИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ. URL: https://cyberleninka.ru/article/n/metody-testirovaniya-integrirovannyh-informatsionnyh-sistem (дата обращения: 12.10.2025).
- Методология и инструменты программной инженерии. URL: https://cs.hse.ru/se/news/173041927.html (дата обращения: 12.10.2025).
- Нефункциональные Требования: Определение и Ключевые Элементы. URL: https://leadstartup.ru/blog/nefunktsionalnye-trebovaniya (дата обращения: 12.10.2025).
- Нефункциональные требования к системе: что такое, примеры, что входит. URL: https://kaiten.ru/blog/nefunkcionalnye-trebovaniya/ (дата обращения: 12.10.2025).
- Нормализация базы данных: для чего нужна нормализованная бд. URL: https://gitverse.ru/blog/normalization-data (дата обращения: 12.10.2025).
- Нормализация данных: что это и зачем их нормировать — правила нормирования данных в БД. URL: https://practicum.yandex.ru/blog/chto-takoe-normalizatsiya-dannyh/ (дата обращения: 12.10.2025).
- Описание нормализации базы данных. URL: https://support.microsoft.com/ru-ru/office/описание-нормализации-базы-данных-34a8a58a-6373-4556-912f-11eddf163a8a (дата обращения: 12.10.2025).
- Обеспечение целостности данных. URL: https://www.sql.ru/articles/db/1999/11/0002/23_7_5.shtml (дата обращения: 12.10.2025).
- Обеспечение целостности данных. URL: http://flenov.info/sql/sql_transact_sql_podlinnik_1_5.html (дата обращения: 12.10.2025).
- Обеспечение целостности баз данных. URL: https://infopedia.su/2x692a.html (дата обращения: 12.10.2025).
- Основы проектирования информационных систем. URL: https://www.elibrary.ru/item.asp?id=54415516 (дата обращения: 12.10.2025).
- Основы проектирования информационных систем. URL: https://stepik.org/course/60183/ (дата обращения: 12.10.2025).
- Программная инженерия. URL: https://ru.wikipedia.org/wiki/Программная_инженерия (дата обращения: 12.10.2025).
- Системный анализ. URL: https://gtmarket.ru/concepts/7201 (дата обращения: 12.10.2025).
- Системный анализ. URL: https://bigenc.ru/technology_and_technique/text/3660144 (дата обращения: 12.10.2025).
- Словарь системного аналитика | Термины и понятия в системном анализе. URL: https://prodg.ru/blog/slovar-sistemnogo-analitika (дата обращения: 12.10.2025).
- Теоретические основы проектирования ИС, Основные понятия и предметная область. URL: https://studfile.net/preview/1721516/ (дата обращения: 12.10.2025).
- Теоретические основы проектирования информационных систем. URL: https://novinfo.ru/informacionnye-sistemy/lektsiya-1-teoreticheskie-osnovy-proektirovaniya-informacionnyh-sistem.html (дата обращения: 12.10.2025).
- Теория систем и системный анализ. Словарь терминов. URL: https://infourok.ru/teoriya-sistem-i-sistemnyy-analiz-slovar-terminov-5347209.html (дата обращения: 12.10.2025).
- Теория тестирования ПО просто и понятно. URL: https://habr.com/ru/articles/698716/ (дата обращения: 12.10.2025).
- Тестирование информационных систем. URL: https://effective-tech.ru/services/testirovanie-informatsionnykh-sistem/ (дата обращения: 12.10.2025).
- Требования ГОСТ на автоматизированные системы в ИБ-проектах. Что изменилось и как это применять? URL: https://habr.com/ru/companies/croc/articles/672728/ (дата обращения: 12.10.2025).
- Функциональные и нефункциональные требования — что это, как разработать, примеры требований. URL: https://practicum.yandex.ru/blog/funktsionalnye-i-nefunktsionalnye-trebovaniya/ (дата обращения: 12.10.2025).
- Функциональные и нефункциональные требования. URL: https://sky.pro/media/funkcionalnye-i-nefunkcionalnye-trebovaniya/ (дата обращения: 12.10.2025).
- Целостность данных в базах данных: что это и зачем нужно. URL: https://www.staffcop.ru/blog/tcelostnost-dannykh-v-bazakh-dannykh-chto-eto-i-zachem-nuzhno (дата обращения: 12.10.2025).
- Целостность данных в базе данных: почему это важно. URL: https://www.astera.com/ru/resources/data-integrity-in-database-why-it-matters/ (дата обращения: 12.10.2025).
- Что за язык моделирования, преимущества использования — типы UML-диаграмм, как их создать, примеры. URL: https://practicum.yandex.ru/blog/chto-takoe-uml/ (дата обращения: 12.10.2025).
- Что такое нефункциональные требования: типы, примеры и подходы. URL: https://visuresolutions.com/ru/blog/non-functional-requirements-types-examples-approaches/ (дата обращения: 12.10.2025).
- Что такое нормализация баз данных? URL: https://www.1cbit.ru/blog/chto-takoe-normalizatsiya-baz-dannykh/ (дата обращения: 12.10.2025).
- Что такое программная инженерия. Лекция в Яндексе. URL: https://habr.com/ru/companies/yandex/articles/307452/ (дата обращения: 12.10.2025).
- Какие основные принципы нормализации баз данных существуют? URL: https://yandex.ru/q/question/kakie_osnovnye_printsipy_normalizatsii_baz_dannykh_9325c34e/ (дата обращения: 12.10.2025).
- UML — Википедия. URL: https://ru.wikipedia.org/wiki/UML (дата обращения: 12.10.2025).
- Знакомство с разными видами диаграмм UML. URL: https://www.lucidchart.com/pages/ru/raznovidnosti-diagramm-uml (дата обращения: 12.10.2025).
- UML диаграммы, их основные типы и процесс разработки. URL: https://foxminded.ua/ru/blog/uml-diagrams/ (дата обращения: 12.10.2025).
- UML диаграммы: что такое, виды с примерами, как создать Unified Modeling Language. URL: https://skillbox.ru/media/code/uml-diagrammy-chto-takoe-vidy-s-primerami-kak-sozdat-unified-modeling-language/ (дата обращения: 12.10.2025).
- Какие бывают этапы и виды тестирования: подробный разбор. URL: https://ru.hexlet.io/blog/posts/what-are-the-stages-and-types-of-testing (дата обращения: 12.10.2025).
- 50 терминов для системного аналитика — Полный справочник. URL: https://prodg.ru/blog/50-terminov-dlya-sistemnogo-analitika (дата обращения: 12.10.2025).
- Введение в программную инженерию. Лекция 1: Замысел. Посвящение и благодарности. URL: https://www.intuit.ru/studies/courses/2481/617/lecture/14357?page=1 (дата обращения: 12.10.2025).
- Различные виды тестирования ПО. URL: https://www.atlassian.com/ru/agile/testing/types-of-testing (дата обращения: 12.10.2025).
- Введение в программную инженерию. URL: https://namdu.uz/wp-content/uploads/2024/06/vvedenie-v-programmnuyu-inzheneriyu.pdf (дата обращения: 12.10.2025).