Назад к материалам

Видео + статья / Собеседования

Собеседование системного аналитика: архитектура, события и SQL

Разбираем реальное собеседование системного аналитика: бизнес- и системный анализ, прототипы, архитектура, нотации, события, JOIN, окна и индексы.

Опубликовано
Обновлено
Видео вышло
Видео
9:19
Текст
8 минут

Если ролик не загружается, выберите другую площадку.

Смотреть на

На собеседовании начинающего системного аналитика проверяли роль аналитика в команде, прототипирование, архитектуру, события и SQL. Компания не названа. Вопросов много, поэтому мы объединили их в смысловые группы и сохранили последовательность разговора внутри каждой группы.

Чем системный анализ отличается от бизнес-анализа

Бизнес-анализ выясняет потребность, ценность и изменение процесса. Системный анализ описывает, как информационная система должна поддержать эту потребность: данные, правила, интерфейсы, состояния и интеграции. На практике роли пересекаются, особенно в небольшой команде.

Вопрос «проект это или продукт?» проверяет мышление, а не термин. Проект ограничен целью, сроком и результатом. Продукт живёт дольше: команда измеряет использование, меняет функции и поддерживает решение после запуска.

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

Коротко: бизнес-анализ отвечает за потребность и ценность, а системный анализ переводит их в требования к системе и интеграциям.

Что такое прототип и жизненный цикл

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

Цикл разработки охватывает путь от требований до выпуска конкретного изменения. Жизненный цикл ПО шире: планирование, разработка, эксплуатация, развитие и вывод из использования. Поэтому работа аналитика не заканчивается передачей ТЗ разработчику. После запуска приходят метрики, ошибки и новые требования.

Коротко: прототип проверяет гипотезу до полной разработки, а жизненный цикл продолжается после первого выпуска системы.

Как объяснить архитектуру, нотации и события

В трёхуровневой архитектуре разделяют представление, бизнес-логику и данные. Это не обязательно три физических сервера: речь прежде всего о разных обязанностях компонентов.

Схема трёхуровневой архитектуры на русском языке

Интерфейс обращается к логике приложения, а та работает со слоем данных. Источник: Fahrenheit Rus, Wikimedia Commons, CC BY-SA 3.0.

Нотацию выбирают по вопросу. BPMN показывает бизнес-процесс, UML sequence — порядок сообщений, ER-диаграмма — сущности и связи. Официальные спецификации доступны у Object Management Group для UML и BPMN.

Событие — зафиксированный факт изменения: OrderCreated, а не команда CreateOrder. Аналитик описывает источник, схему, обязательные поля, версию, потребителей, порядок и реакцию на повтор.

Коротко: архитектура и нотация нужны не сами по себе: каждая схема должна отвечать на конкретный вопрос команды.

Как работают оконные функции

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

SELECT
  client_id,
  order_id,
  ROW_NUMBER() OVER (
    PARTITION BY client_id
    ORDER BY created_at DESC
  ) AS order_number
FROM orders;

В отличие от GROUP BY, результат сохраняет каждую строку. Это ключевое различие также показано в документации PostgreSQL.

Коротко: оконная функция считает значение по связанным строкам и при этом сохраняет каждую строку результата.

Чем отличаются CROSS, INNER и FULL JOIN

CROSS JOIN создаёт декартово произведение: каждую строку первой таблицы соединяет с каждой строкой второй. INNER JOIN оставляет только пары, которые прошли условие. Поэтому его можно выразить через CROSS JOIN и WHERE, хотя явный JOIN ... ON читается лучше:

SELECT users.id, orders.id
FROM users
CROSS JOIN orders
WHERE users.id = orders.user_id;

FULL JOIN сохраняет совпавшие пары и несовпавшие строки обеих таблиц, заполняя отсутствующую сторону NULL. В руководстве PostgreSQL соединения объясняются именно через пары строк и условие.

DISTINCT убирает одинаковые строки результата, но не исправляет ошибочный JOIN. Если данные неожиданно размножились, сначала проверяем гранулярность и условие соединения.

Коротко: JOIN нужно объяснять через пары строк и условие соединения, иначе легко потерять или размножить данные.

Что ответить про индекс, PRIMARY KEY и ALTER TABLE

Индекс — отдельная структура для ускорения поиска. Он занимает место и делает вставки, обновления и удаления дороже, потому что структуру тоже нужно менять. Поэтому индекс создают под реальные фильтры и соединения, а результат проверяют планом запроса.

PRIMARY KEY однозначно идентифицирует строку и не допускает NULL. Составной первичный ключ включает несколько столбцов. ALTER TABLE меняет схему: добавляет или удаляет столбец, ограничение или индекс. В рабочей системе такое изменение планируют с учётом блокировок, старого кода и обратной совместимости.

Коротко: индекс ускоряет чтение ценой места и более дорогой записи, а первичный ключ задаёт устойчивую идентичность строки.

Итог: получил бы кандидат оффер

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

Наш вывод — скорее не получил бы оффер на самостоятельную позицию. Для стажировки шанс остаётся, если команда готова обучать. Усилить результат можно одним способом: к каждому термину подготовить рабочий артефакт и пример решения, а SQL отрабатывать руками.

Коротко: результат не раскрыт; по показанным ответам кандидат скорее не получил бы оффер без более точных примеров и SQL-практики.

Чек-лист подготовки

  • Объясняю границу бизнес- и системного анализа на одном кейсе.
  • Выбираю диаграмму под конкретный вопрос.
  • Описываю контракт события и повторную доставку.
  • Пишу оконную функцию без подсказки.
  • Предсказываю число строк после JOIN.
  • Объясняю цену индекса при записи.

Источники

частые вопросы

Короткие ответы

Что повторить системному аналитику перед собеседованием?

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

Нужно ли системному аналитику писать SQL?

Да, хотя глубина зависит от проекта. Аналитик должен читать данные, проверять гипотезы и понимать, как соединения и агрегаты меняют результат.

Какие диаграммы важнее всего?

Нет универсального набора. BPMN подходит для процесса, sequence diagram — для взаимодействия, ER-диаграмма — для данных, а component diagram — для границ компонентов.

Получил ли кандидат оффер?

Фактическое решение не показано. В редакционном выводе автор сомневается в оффере, а по ответам кандидату не хватило точности и практических примеров.

следующий шаг

Отработайте системный анализ до реального интервью

Тренажёр ЮНИКОД помогает повторить архитектуру, SQL и требования и научиться отвечать на уточнения по рабочим сценариям.

Перейти в тренажёр →