Перейти к содержимому
С чего начать

С чего начать

С чего начать изучение системного анализа? Эта страница — ваш персональный навигатор по базе знаний. Если вы только входите в профессию, не пытайтесь объять необъятное. Вместо этого пройдите по готовому пути: от понимания роли аналитика и работы с требованиями до моделирования, API и архитектуры. Просто идите по этапам сверху вниз, и вы соберете прочный фундамент без выгорания.

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

Люди с опытом могут пользоваться сайтом как справочником через поиск. Новичку лучше идти по маршруту ниже.

Как пользоваться роадмапом

Иди по этапам сверху вниз. Не пытайся изучить все материалы раздела сразу. На каждом этапе есть обязательный минимум и дополнительные темы.

Принцип простой:

Понять роль → разобраться в устройстве IT-систем → научиться работать с требованиями → моделировать процессы → понимать данные → понимать API → понимать интеграции → видеть архитектуру → оформлять артефакты

Этап 1. Понять профессию системного аналитика

Цель этапа — понять, кто такой системный аналитик, чем он отличается от бизнес-аналитика, где он находится в команде и какие артефакты создает.

Что изучить

МатериалЗачем читать
Кто такой системный аналитикПонять роль, зону ответственности и результат работы СА
Кто такой бизнес-аналитикПонять соседнюю роль и не путать бизнес-анализ с системным анализом
Бизнес-аналитик vs системный аналитикРазобраться в границе между бизнес-требованиями и технической детализацией
Роли в команде и коммуникацияПонять, с кем аналитик взаимодействует каждый день
SDLCПонять жизненный цикл разработки ПО
Методологии разработкиПонять Agile, Scrum, Kanban и место аналитика в процессе
Требования и артефакты документацииПонять, какие документы и описания делает аналитик
Обзор инструментовПонять базовый набор инструментов аналитика

Что должно стать понятно

После этапа ты должен уметь объяснить:

  • чем занимается системный аналитик;
  • чем системный аналитик отличается от бизнес-аналитика;
  • что такое SDLC;
  • на каких этапах разработки участвует аналитик;
  • какие документы и артефакты обычно готовит аналитик;
  • с кем аналитик взаимодействует в команде.

Этап 2. Понять базовое устройство IT-систем

Цель этапа — перестать воспринимать систему как “черный ящик”. Нужно понять, из каких частей обычно состоит приложение и как они взаимодействуют между собой.

Что изучить

МатериалЗачем читать
FrontendПонять клиентскую часть приложения и ее ответственность
BackendПонять серверную часть, бизнес-логику и работу с данными
Micro FrontendПонять разделение frontend-приложения на независимые части
Модель OSIПолучить базовое представление о сетевом взаимодействии
Полезные сервисыПознакомиться с инструментами, которые помогают в работе аналитика
Англо-русский словарьБыстрее разбирать технические термины в документации

Что должно стать понятно

После этапа ты должен понимать:

  • чем frontend отличается от backend;
  • где находится API между клиентом и сервером;
  • зачем нужны микрофронтенды;
  • почему аналитику важно понимать базовую сетевую терминологию;
  • какие инструменты помогают читать API, схемы, данные и документацию.

Этап 3. Научиться работать с требованиями

Цель этапа — понять, как из бизнес-идеи получить понятные требования для разработки.

Что изучить

МатериалЗачем читать
BRD, FRD, SRSПонять виды документов с требованиями
Сбор требованийПонять, откуда берутся требования и как их уточнять
Приоритизация требованийПонять, почему не все требования делают сразу
Бизнес-требованияПонять уровень целей бизнеса
Пользовательские требованияПонять потребности пользователей
Функциональные требованияНаучиться описывать поведение системы
Нефункциональные требованияПонять требования к качеству системы
Бизнес-правилаПонять ограничения и правила предметной области
User StoryПонять формат пользовательской истории
Acceptance CriteriaНаучиться фиксировать критерии приемки
INVESTПроверять качество User Story
Use CaseОписывать пользовательские сценарии более детально

Что должно стать понятно

После этапа ты должен уметь:

  • отличать бизнес-требования, пользовательские требования, функциональные и нефункциональные требования;
  • формулировать простую User Story;
  • писать Acceptance Criteria;
  • понимать, когда использовать User Story, а когда Use Case;
  • отличать требование от решения;
  • задавать уточняющие вопросы бизнесу и команде.

Этап 4. Научиться моделировать процессы и систему

Цель этапа — научиться показывать систему не только текстом, но и схемами. Схемы помогают быстрее договориться с бизнесом, разработкой, тестированием и архитектурой.

Что изучить

МатериалЗачем читать
BPMNОписывать бизнес-процессы и пользовательские процессы
UMLОписывать структуру и поведение системы
C4Показывать архитектуру системы на разных уровнях детализации
EPCПонимать событийные цепочки процессов
IDEFПознакомиться с классическим подходом к функциональному моделированию
Event StormingПонимать доменные события и совместное моделирование предметной области

Что должно стать понятно

После этапа ты должен уметь:

  • читать простую BPMN-схему;
  • отличать процесс от сценария;
  • понимать, зачем нужны UML-диаграммы;
  • понимать, чем C4 отличается от UML;
  • выбирать тип схемы под задачу;
  • не рисовать схемы ради схем.

Этап 5. Разобраться с данными и SQL

Цель этапа — понять, как системы хранят данные, как устроены базы данных и как аналитик может читать данные через SQL.

Что изучить в первую очередь

МатериалЗачем читать
Основы баз данныхПонять, что такое база данных и зачем она нужна
Основы проектирования баз данныхПонять базовый подход к структуре данных
Реляционные БДПонять таблицы, строки, столбцы и связи
КлючиПонять primary key, foreign key и связи между таблицами
НормализацияПонять, как уменьшать дублирование данных
ДенормализацияПонять, когда дублирование данных бывает осознанным решением
ER-диаграммаНаучиться читать и проектировать структуру данных
Что такое SQLПонять язык работы с реляционными БД
JOINНаучиться связывать данные из разных таблиц
Агрегация и группировкаПонять GROUP BY, COUNT, SUM, AVG
ПодзапросыПонять вложенные запросы
Оконные функцииРазобраться с аналитическими запросами

Что изучить после базы

МатериалЗачем читать
DDLПонять команды описания структуры БД
DMLПонять команды работы с данными
DCLПонять команды управления доступом
TCLПонять команды управления транзакциями
SQL Best PracticesПонять базовые правила написания читаемых SQL-запросов
EXPLAINНаучиться смотреть, как БД выполняет запрос
ТранзакцииПонять атомарность изменений в БД
ACIDПонять надежность транзакций
Commit и RollbackПонять фиксацию и откат изменений
Уровни изоляцииПонять конкурентный доступ к данным
Механизмы изоляцииПонять блокировки и MVCC на базовом уровне
Аномалии транзакцийПонять проблемы параллельной работы
WALПонять журналирование изменений
ИндексыПонять ускорение поиска данных
Типы индексовПонять B-tree, hash, composite и другие индексы
Алгоритмы индексированияПонять, почему разные индексы подходят под разные задачи

Что изучить по NoSQL и типам хранилищ

МатериалЗачем читать
Реляционные vs нереляционные БДПонять, когда нужны разные подходы к хранению
NoSQLПознакомиться с нереляционными БД
BASEПонять подход к согласованности в NoSQL-системах
Key-ValueПонять быстрые хранилища ключ-значение
Document DBПонять документные базы данных
Columnar / Wide-columnПонять колоночные и wide-column хранилища
Graph DBПонять хранение связей между сущностями
Search EnginesПонять поисковые движки как отдельный тип хранилища
Time Series DBПонять хранение временных рядов
Blob StorageПонять объектное хранение файлов и бинарных данных
OLTP vs OLAPПонять операционные и аналитические нагрузки
In-memory vs PersistentПонять хранение в памяти и на диске
HTAPПонять гибридные transactional/analytical системы

Что должно стать понятно

После этапа ты должен уметь:

  • читать простую структуру БД;
  • понимать связи между таблицами;
  • писать базовые SELECT-запросы;
  • использовать JOIN, GROUP BY, подзапросы и оконные функции;
  • понимать primary key и foreign key;
  • читать ER-диаграммы;
  • понимать, зачем нужны индексы и транзакции;
  • объяснить разницу между SQL и NoSQL на уровне сценариев применения.

Этап 6. Разобраться с API и интеграциями

Цель этапа — понять, как системы общаются друг с другом, как проектировать API и как описывать интеграционные взаимодействия.

Базовый REST и форматы данных

МатериалЗачем читать
Что такое APIПонять базовую идею взаимодействия систем
REST: принципыПонять самый распространенный стиль API
РесурсыНаучиться мыслить сущностями в REST
HTTP-методыПонять GET, POST, PUT, PATCH, DELETE
HTTP-статусыПонять ответы API и ошибки
Идемпотентность в RESTПонять безопасные повторы запросов
ПагинацияПонять выдачу больших списков
Фильтрация и сортировкаПонять параметры поиска и отбора данных
Версионирование APIПонять развитие API без поломки клиентов
JSONПонять основной формат обмена данными
XMLПонять формат, который часто встречается в enterprise и legacy
YAMLПонять формат конфигураций и спецификаций
ProtobufПонять бинарный контрактный формат для gRPC

Документация и проектирование API

МатериалЗачем читать
OpenAPIНаучиться читать и описывать REST API
AsyncAPIПонять документацию асинхронных API и событий
PostmanНаучиться проверять API руками
gRPC ReflectionПонять способ изучать gRPC-сервисы через reflection
Contract-first vs Code-first APIПонять подходы к созданию API-контракта
Идемпотентность в интеграцияхПонять idempotency key, deduplication и repeat request
Корреляция запросовПонять correlationId, traceId, requestId и causationId
Обратная и прямая совместимостьПонять, как развивать API без поломки клиентов

Другие стили API

МатериалЗачем читать
gRPC: основные понятияПонять контрактное взаимодействие через protobuf
gRPC vs RESTПонять различия подходов
Типы вызовов gRPCПонять unary и streaming-вызовы
HTTP/2Понять транспортную основу gRPC
Когда использовать gRPCПонять подходящие сценарии применения
GraphQL: основные понятияПознакомиться с альтернативным подходом к API
GraphQL vs RESTПонять различия подходов
Когда использовать GraphQLПонять, где GraphQL уместен
SOAPПонять legacy/enterprise-интеграции
SOAP vs RESTПонять различия старого enterprise-подхода и REST
WebhookПонять обратные вызовы между системами
Webhook vs PollingПонять разницу между ожиданием события и периодическим опросом
WebSocketПонять двустороннее realtime-взаимодействие
Когда использовать WebSocketПонять подходящие сценарии realtime

Безопасность API

МатериалЗачем читать
АутентификацияПонять, кто пользователь или система
АвторизацияПонять, что пользователю разрешено
JWTПонять токены, claims и срок жизни токена
OAuthПонять протокол авторизации
KeycloakПонять IAM/SSO-инструмент и его место в архитектуре
HTTPS/TLSПонять защищенную передачу данных
mTLSПонять взаимную TLS-аутентификацию между системами
Валидация входных данныхПонять защиту от некорректных данных
Rate LimitingПонять ограничение частоты запросов
CORSПонять ограничения браузера при запросах

Паттерны интеграций

МатериалЗачем читать
Point-to-PointПонять прямое взаимодействие систем
ESBПонять интеграцию через шину данных
Message Broker IntegrationПонять интеграцию через брокер сообщений
API GatewayПонять единую точку входа, маршрутизацию и политики доступа
BFF PatternПонять backend под конкретный frontend
Orchestration vs ChoreographyПонять два подхода к управлению процессом между сервисами

Что должно стать понятно

После этапа ты должен уметь:

  • читать REST API и OpenAPI-спецификацию;
  • понимать HTTP-методы, статусы, параметры и тело запроса;
  • описывать request и response;
  • понимать базовую безопасность API;
  • понимать idempotency key и correlationId;
  • понимать, чем REST отличается от gRPC, SOAP, GraphQL, Webhook и WebSocket;
  • понимать, где уместны API Gateway, BFF, ESB и брокер сообщений.

Этап 7. Разобраться с брокерами сообщений и очередями

Цель этапа — понять асинхронные интеграции. Это уровень, на котором новичок начинает отличаться от человека, который знает только REST.

Что изучить в первую очередь

МатериалЗачем читать
Что такое брокер сообщенийПонять базовую идею асинхронного обмена
Модели доставкиПонять point-to-point и publish/subscribe
Гарантии доставкиПонять at-most-once, at-least-once, exactly-once
Exactly-onceПонять ограничения и практический смысл exactly-once
Паттерны обменаПонять варианты взаимодействия через сообщения
Kafka vs RabbitMQПонять различия популярных брокеров
Другие брокерыПознакомиться с альтернативами Kafka и RabbitMQ

Kafka

МатериалЗачем читать
Архитектура KafkaПонять broker, topic, partition, producer, consumer group
Когда использовать KafkaПонять подходящие сценарии Kafka
Partition Key DesignПонять, как ключ влияет на порядок и распределение нагрузки
Ordering GuaranteesПонять гарантии порядка сообщений
Consumer Group RebalancingПонять перераспределение партиций между consumer
ReplicationПонять отказоустойчивость Kafka
Data RetentionПонять хранение сообщений по времени или размеру
Log CompactionПонять хранение последнего состояния по ключу
Kafka TransactionsПонять транзакционные возможности Kafka
Kafka как хранилищеПонять, когда Kafka используют не только как транспорт
Poison MessageПонять проблему сообщений, которые ломают обработчик

RabbitMQ и интеграционные паттерны

МатериалЗачем читать
Архитектура RabbitMQПонять exchange, queue, binding
Когда использовать RabbitMQПонять подходящие сценарии RabbitMQ
AcknowledgementsПонять подтверждение обработки сообщений
Dead Letter QueueПонять обработку проблемных сообщений
Message QueueПонять очередь сообщений как базовый паттерн
Publish/SubscribeПонять рассылку событий нескольким потребителям
Competing ConsumersПонять параллельную обработку сообщений
Idempotent ConsumerПонять защиту от дублей сообщений
Dead Letter ChannelПонять канал для сообщений, которые не удалось обработать
Outbox / Inbox PatternПонять надежную публикацию событий и защиту от дублей
Message RouterПонять маршрутизацию сообщений
Message FilterПонять фильтрацию сообщений
Message SplitterПонять разбиение большого сообщения на части

Что должно стать понятно

После этапа ты должен уметь:

  • объяснить, зачем нужен брокер сообщений;
  • отличать синхронное API от асинхронной интеграции;
  • понимать topic, queue, exchange, partition, consumer group;
  • понимать гарантии доставки;
  • понимать, почему нужны идемпотентные обработчики;
  • понимать базовые отличия Kafka и RabbitMQ;
  • понимать, как проектировать топик, ключ, обработку ошибок, retry и DLQ.

Этап 8. Понять архитектуру и проектирование систем

Цель этапа — научиться видеть систему целиком: компоненты, связи, компромиссы, масштабирование, надежность и ограничения.

База архитектуры

МатериалЗачем читать
Что такое архитектура ПОПонять, что такое архитектурное мышление
Архитектуры информационных системПонять типовые варианты построения ИС
Основные свойства системыПонять свойства, которые важны для системы
Главные критерии системПонять критерии оценки технического решения
Quality AttributesПонять атрибуты качества и связь с NFR
Clean ArchitectureПонять разделение ответственности в системе
Bounded ContextПонять границы доменной модели
ADRПонять фиксацию архитектурных решений

Архитектурные стили

МатериалЗачем читать
Что такое монолитПонять простой стиль построения системы
Типы монолитовПонять, что монолит бывает разным
Проблемы монолитаПонять ограничения монолитной архитектуры
Когда выбирать монолитПонять, что монолит не всегда плохое решение
Что такое микросервисыПонять микросервисный подход
Принципы микросервисовПонять базовые принципы микросервисной архитектуры
Монолит vs микросервисыПонять ключевой архитектурный выбор
Проблемы микросервисовПонять цену распределенной архитектуры
Когда выбирать микросервисыПонять условия, при которых микросервисы оправданы
Event-Driven ArchitectureПонять событийную архитектуру
Когда использовать EDAПонять сценарии применения событийного подхода
ServerlessПонять бессерверный подход
Functions as a ServiceПонять FaaS как модель выполнения функций
Backend as a ServiceПонять BaaS как готовый backend-сервис
Когда выбирать ServerlessПонять ограничения и сценарии применения

Масштабирование, надежность и эксплуатация

МатериалЗачем читать
Основы масштабированияПонять, как системы растут под нагрузкой
Вертикальное масштабированиеПонять увеличение мощности узла
Горизонтальное масштабированиеПонять увеличение количества узлов
Load BalancingПонять распределение нагрузки
ReplicationПонять копирование данных и отказоустойчивость
ShardingПонять разделение данных по шардам
CAP-теоремаПонять компромиссы распределенных систем
PACELCПонять развитие CAP для реальных распределенных систем
ProxyПонять промежуточный слой между клиентом и сервисом
CacheПонять ускорение чтения через кеширование
ObservabilityПонять наблюдаемость как свойство системы
Логирование, метрики, трассировкаПонять production-наблюдаемость системы
SLO, SLA, SLIПонять измеримые требования к надежности
Blue-Green и Canary DeploymentПонять безопасный выпуск изменений

Архитектурные паттерны

МатериалЗачем читать
CQRSПонять разделение чтения и записи
SagaПонять распределенные бизнес-транзакции
Circuit BreakerПонять защиту от каскадных отказов
Retry PatternПонять повторные попытки вызова
BulkheadПонять изоляцию отказов
Sidecar PatternПонять вынесение вспомогательных функций рядом с сервисом
Database per ServiceПонять данные в микросервисах
Event SourcingПонять хранение состояния через события
API CompositionПонять сбор данных из нескольких сервисов
Strangler FigПонять миграцию legacy-систем

Данные в архитектуре

МатериалЗачем читать
CDCПонять передачу изменений из БД в другие системы
Data Lake vs Data WarehouseПонять разные подходы к аналитическому хранению данных
Data MeshПознакомиться с доменным подходом к данным
Polyglot PersistenceПонять использование разных БД под разные задачи

Архитектурные компромиссы

МатериалЗачем читать
Скорость vs безопасностьПонять компромисс между быстрыми изменениями и стабильностью
Производительность vs стоимостьПонять цену производительности
Гибкость vs простотаПонять, почему не всегда нужен универсальный механизм
Latency vs ThroughputПонять разные виды производительности
Consistent vs AvailableПонять выбор между согласованностью и доступностью
ACID vs BASEПонять разные модели надежности и согласованности
Технический долгПонять последствия быстрых решений

Что должно стать понятно

После этапа ты должен уметь:

  • объяснить разницу между монолитом, микросервисами, EDA и serverless;
  • понимать, что микросервисы не всегда лучше монолита;
  • видеть архитектурные компромиссы;
  • понимать базовые паттерны надежности;
  • понимать масштабирование, кеширование, балансировку, репликацию и шардинг;
  • читать C4-схемы и архитектурные описания;
  • задавать вопросы архитектору и разработчикам на одном языке.

Этап 9. Научиться оформлять документацию и артефакты

Цель этапа — перейти от теории к рабочим артефактам: требованиям, API-контрактам, схемам, маппингам, логированию и постановкам в разработку.

Шаблоны документации

МатериалЗачем читать
Шаблон FRПонять структуру функциональных требований
Шаблон NFRПонять структуру нефункциональных требований
Шаблон UCПонять структуру Use Case
Шаблон REST APIПонять, как описывать REST-метод
Шаблон gRPCПонять, как описывать gRPC-метод
Шаблон WebSocketПонять, как описывать realtime-взаимодействие
Шаблон Kafka-топикаПонять, как описывать асинхронный контракт
Шаблон логированияПонять, какие события и поля нужно логировать
Шаблон ADRПонять, как фиксировать архитектурное решение
Шаблон маппингаПонять, как описывать преобразование данных
Шаблон матрицы правПонять, как фиксировать доступы по ролям

Практический кейс

МатериалЗачем читать
Описание кейсаПонять контекст задачи на досрочное расторжение договора
BRПосмотреть пример бизнес-требований
FRПосмотреть пример функциональных требований
NFRПосмотреть пример нефункциональных требований
UCПосмотреть пример сценариев использования
RESTПосмотреть пример REST-контракта
gRPCПосмотреть пример gRPC-контракта
REST to gRPCПосмотреть пример маппинга REST в gRPC
Модель данныхПосмотреть пример описания данных
ОшибкиПосмотреть пример описания ошибок
СтатусыПосмотреть пример жизненного цикла статусов
Sequence DiagramПосмотреть пример схемы взаимодействия
Jira TaskПосмотреть пример постановки в разработку

Что должно стать понятно

После этапа ты должен уметь:

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

Этап 10. Подготовиться к реальной работе и собеседованиям

Цель этапа — закрепить знания через вопросы, логические задачи, примеры документации и прикладные материалы.

Что изучить

МатериалЗачем читать
Как работать с любой задачейПолучить общий алгоритм разбора рабочих задач
Вопросы и ответы для собеседованияПроверить теорию и подготовиться к интервью
СкринингПонять первый этап отбора
Логические задачиПодготовиться к задачам на мышление
ВопросыИспользовать как список тем для самопроверки
Терминология по доменамРасширить словарь предметных областей
ГлоссарийБыстро освежать термины по системному анализу и IT

Что должно стать понятно

После этапа ты должен уметь:

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