граф состояний

This commit is contained in:
2025-11-18 09:43:39 +03:00
parent c90daa8cd1
commit 8eafc13720
3 changed files with 174 additions and 7 deletions

69
lab1/report/graph.dot Normal file
View File

@@ -0,0 +1,69 @@
digraph MushroomHikeApp {
rankdir=LR;
fontsize=10;
node [shape=rectangle, style=rounded, fontsize=10];
// --- Основные состояния участников похода (am) ---
a [label="a) Начальное состояние\n(главный экран)"];
b [label="b) Планирование похода\n(маршрут, точки, погода, офлайн-карты)"];
c [label="c) Управление участниками\n(приглашения, роли, доверенные контакты)"];
d [label="d) Чек-лист снаряжения\n(шаблон, распределение, контроль сборов)"];
e [label="e) Активная навигация\n(карта, GPS, режимы отображения)"];
f [label="f) Фиксация находки\n(фото, координаты, заметки)"];
g [label="g) Семейная корзина\n(все находки группы)"];
h [label="h) Семейный чат\n(сообщения, фото, геолокация)"];
i [label="i) Справочник грибов\n(виды, съедобность, двойники)"];
k [label="k) Панель организатора\n(мониторинг, управление маршрутом)"];
l [label="l) Архив походов\n(список завершённых походов)"];
m [label="m) Детальный просмотр похода\n(трек, события, статистика)"];
// --- SOS (красный, отдельный) ---
j [label="j) Экстренный режим (SOS)", color="red", fontcolor="red", style="rounded,bold", penwidth=2];
// --- Технические невидимые точки для "стрелок из ниоткуда" ---
fromAnywhereToA [shape=point, width=0, height=0, style=invis];
fromAnywhereToSOS [shape=point, width=0, height=0, style=invis];
// Стрелки "из ниоткуда"
fromAnywhereToA -> a [label="25. Переход\nна главный экран", style=dashed];
fromAnywhereToSOS -> j [label="24. SOS\n(из любого состояния)", style=dashed, color="red", fontcolor="red"];
// --- Переходы (кроме SOS и возврата на главный) ---
a -> b [label="1. Создать поход"];
a -> e [label="2. Присоединиться (день похода)"];
a -> d [label="3. Присоединиться (подготовка)"];
b -> c [label="4. Управление\nучастниками"];
c -> d [label="5. Чек-лист"];
b -> d [label="6. Чек-лист"];
d -> e [label="7. Начать поход"];
b -> e [label="8. Начать поход"];
e -> f [label="9. Фиксировать\nнаходку"];
f -> e [label="10. Сохранить\nи вернуться"];
e -> g [label="11. Открыть корзину"];
g -> e [label="12. Назад к\nнавигации"];
e -> h [label="13. Открыть чат"];
h -> e [label="14. Назад к\nнавигации"];
f -> i [label="15. Открыть\nсправочник"];
g -> i [label="16. Открыть\nсправочник"];
i -> f [label="17. Назад\nк фиксации"];
i -> g [label="18. Назад\nк корзине"];
e -> k [label="19. Панель\nорганизатора"];
k -> e [label="20. Назад к\nнавигации"];
e -> l [label="21. Завершить\nпоход"];
a -> l [label="22. Открыть\nархив"];
l -> m [label="23. Открыть\nпоход"];
}