Перейти к содержанию

Утилита редактирования полилиний железнодорожного графа — SRS-сборка

Эта страница собирает разделы для спецификации требований к ПО: от контекста и проблемы до безопасности, качества и эксплуатации.

Содержание

Краткое описание

Статус

historical internal project / развитие идеи продолжилось в GraphMechanic

Роль

инициатор, автор концепции, разработчик

Стек

Тип: Internal tooling / подготовка GIS-данных / редактирование железнодорожного графа

Ценность проекта

Локальная веб-утилита для создания, редактирования и восстановления полилиний железнодорожных путей, использовавшихся при подготовке данных железнодорожного графа.

Контекст и проблема

Контекст

Проект был создан в рамках enterprise GIS-инициативы, где данные железнодорожной инфраструктуры нужно было подготовить для картографической визуализации, маршрутизации и дальнейшего аналитического использования.

Исходные данные графа и инфраструктурные объекты требовали ручной очистки и выравнивания. Без отдельного инструмента такая работа требовала бы прямой правки данных, повторных проверок и постоянного вовлечения разработчиков.

Целью было создать небольшой прикладной инструмент, который позволит визуально редактировать данные и ускорить подготовку железнодорожного графа.

Проблема

Команде требовался более управляемый и визуальный способ работы с геометрией железнодорожных путей.

Типовые проблемы:

  • отсутствующая или некорректная геометрия полилиний;
  • несвязанные узлы графа;
  • участки железнодорожных путей, требующие ручной корректировки;
  • сложность проверки геометрии только по сырым данным;
  • медленная подготовка инфраструктурных объектов для дальнейшего использования;
  • повторное вовлечение разработчиков в исправления данных, которые можно было выполнить визуально.

Цели, требования и ограничения

Цели и нецели

Требования

Я спроектировал и реализовал локальную веб-утилиту для редактирования полилиний железнодорожного графа.

Инструмент поддерживал:

  • просмотр объектов железнодорожного графа на карте;
  • редактирование узлов графа;
  • создание новых полилиний;
  • применение изменений без полной перезагрузки страницы;
  • подготовку графовых данных для дальнейшего использования в GIS-системах.

Ограничения

Роль и обязанности

Я выступал как инициатор, автор концепции и разработчик.

Мой вклад включал:

  • выявление потребности в отдельном визуальном инструменте редактирования;
  • определение основных пользовательских сценариев очистки железнодорожного графа;
  • проектирование структуры приложения;
  • реализацию backend-части и серверной генерации страниц;
  • реализацию интерактивного поведения интерфейса на JavaScript и jQuery;
  • поддержку практической подготовки данных по объектам железнодорожной инфраструктуры.

Модель системы

Доменная модель

Модель данных

API-контракты

Архитектура и интеграции

Архитектура

Архитектурный подход

Утилита была реализована как многослойное монолитное веб-приложение.

Архитектура включала:

  • серверную генерацию страниц;
  • MVC-структуру;
  • слой бизнес-логики;
  • слой репозиториев;
  • jQuery-взаимодействия для частичных обновлений без полной перезагрузки страницы.

Потоки интеграции

Генерация полилинии через routing service

Инструмент генерирует полилинии через routing service, формируя геометрию маршрута для участков железнодорожного графа.

Восстановление полилинии через пересчёт маршрута

Существующие полилинии можно восстанавливать через пересчёт маршрута, когда геометрия некорректна или неполна.

Асинхронная загрузка и обновление полилиний

Приложение поддерживает асинхронную выдачу и обновление полилиний, включая кеширование полилиний, что позволяет выполнять частичные обновления интерфейса без полной перезагрузки страницы.

Безопасность, качество и эксплуатация

Модель безопасности и доступа

Нефункциональные требования

Режимы отказа

Оценка масштаба и стоимости