TGViewer
Channel Public Channel
BA & SA | 10000 Interview questions

BA & SA | 10000 Interview questions

@systemanalystinterview

Вопросы и задачи, которые задают на собеседованиях на позицию Бизнес и Системного аналитика. По вопросам сотрудничества- @DeliveryManager7
Subscribers
10.3K
Photos
194
Videos
14
Links
369

Showing posts older than #11910 · Back to latest

Older Posts 20 shown
Post #11909 413
☀Объяснение:

Почему это важно
Заказчикам нужна объективная оценка размера требований до начала разработки. Метод COSMIC позволяет измерить функциональный размер в единицах CFP (COSMIC Function Points) на основе логики данных, независимо от языка и платформы.

Как работает COSMIC (упрощённо)
Выделяем функциональные процессы (например, «Начать поездку»).
Для каждого процесса определяем триггер (событие, инициирующее процесс – например, пользователь отсканировал QR-код).
Определяем объекты данных, которые процесс читает или изменяет (например, состояние самоката, ID пользователя, временная метка).
Каждое перемещение данных (вход, выход, чтение, запись) – 1 CFP.
В примере с самокатом:
«Начать поездку»: триггер – сканирование; читается статус самоката, записывается начало поездки, обновляется счётчик. Это даст, скажем, 4 CFP.
Суммируя по всем процессам, получим объективный размер.

Почему не другие варианты
A (количество историй) – зависит от степени детализации, субъективно.
C (количество экранов) – не отражает сложность логики.
D (стори-поинты) – относительная оценка, не переносится между проектами.

Реальный кейс
Крупный банк использовал COSMIC для оценки размера кредитного конвейера. Оказалось, что оценка в CFP отличается от экспертной на 15%, но зато прозрачна для заказчика.

Вывод
Аналитик, владеющий COSMIC, может дать объективную оценку размера требований и обосновать бюджет.
  • 🔥 2
  • ❤ 1
Post #11906 382
№4825 категория вопросов: #REQUIREMENTS
Post #11905 416
☀Объяснение:

Проблема
Прямые синхронные вызовы между сервисами создают жесткую связанность. Когда сервис А вызывает Б, В, Г, то падение любого из них может затронуть А. Событийная архитектура решает это.

Event-driven
Сервис-источник публикует событие в брокер (Kafka, RabbitMQ).
Подписчики (другие сервисы) получают события асинхронно.
Источник не знает о подписчиках и не ждёт ответа.
Отказ одного подписчика не влияет на источник и других.

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

Почему не другие
A — ретраи не решат связанность.
C — монолит против микросервисной идеи.
D — общая БД создаёт другую связанность.

Реальный пример
Upwork перешёл на event-driven и ускорил доставку уведомлений в реальном времени.

Вывод аналитика
Событийная архитектура — стандарт для слабо связанных микросервисов. Аналитик должен в требованиях указывать асинхронное взаимодействие для всех бизнес-событий, не требующих немедленного ответа.
Post #11902 337
№4824 категория вопросов: #ARCHITECTURE
Post #11901 376
☀Объяснение:

Почему OFFSET плох
OFFSET заставляет базу пропускать все предыдущие строки (10000 записей), даже если они не нужны. При глубине 1 млн строк производительность катастрофична.

Пагинация на основе курсора
Вместо 
OFFSET запрос использует условие на индексированное поле, по которому идёт сортировка, например:
SELECT * FROM news WHERE created_at < last_seen_date ORDER BY created_at DESC LIMIT 10.
Переменная 
last_seen_date — значение из последней записи предыдущей страницы. Это называется keyset pagination или seek method.

Преимущества
База сканирует только нужные строки + ограниченный диапазон.
Работает за O(логарифм) по индексу.
Не зависает на больших смещениях.

Требования
Индекс на поле сортировки (например, 
created_at).
Уникальный вторичный ключ для разрешения связей (добавить 
id в ORDER BY).

Реальный пример
Twitter и Reddit используют курсоры для бесконечной ленты.

Вывод
Аналитик должен потребовать использования курсора вместо 
OFFSET для любых бесконечных списков.
Post #11900 371
Честно, мне кажется, через пару лет навык работы с ИИ будет таким же базовым,
как умение пользоваться интернетом.

И самое интересное — многие это до сих пор недооценивают.

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


Я для себя собрал папку с сильными экспертами по ИИ.
Там — реальные инструменты, кейсы и способы использовать нейросети с пользой.

Если вам тоже интересна эта тема — добавляйте папку 👇

https://t.me/addlist/KuqHb68lTqhhNDJi


⏳ доступ 48 часов
Post #11898 363
№4823 категория вопросов: #DBMS
Post #11896 385
☀Объяснение:

Проблема
Когда сервис В недоступен, множество экземпляров сервиса А одновременно начинают повторные попытки с фиксированным интервалом. Это создаёт синхронизированные всплески нагрузки, которые мешают восстановлению. Это называется retry storm (шторм повторных вызовов).

Решение
Экспоненциальная задержка (exponential backoff) — интервал между ретраями удваивается (1, 2, 4, 8 секунд). Это раздвигает по времени пики нагрузки.

Джиттер (jitter) — случайное небольшое смещение, чтобы разные экземпляры не синхронизировались.
Ограничение числа ретраев (например, 5 попыток).
Circuit Breaker — после определённого числа ошибок быстрый сброс без вызова вообще.

Почему не другие варианты
A — deadlock относится к блокировкам в БД.
C — race condition — состояние гонки, не то.
D — thundering herd — асинхронная проблема, но решение с очередями не прямое.

Реальный случай
В Amazon одна из внутренних систем легла из-за retry storm. После внедрения экспоненциального бэккотта и джиттера инциденты прекратились.

Требования аналитика
Политика ретраев: начальная задержка 1 сек, максимум 10 сек, коэффициент 2, джиттер 0-30%.
Post #11894 382
№4822 категория вопросов: #INTEGRATION
Post #11893 439
☀Объяснение:

Проблема
Нереалистичные нефункциональные требования (NFR) — частая ошибка стартапов. Заказчик может назвать цифру «10 000» без обоснования, потому что «конкуренты так могут» или «на всякий случай».

Что должен сделать аналитик
Уточнить источник цифры: откуда ожидается такой рост, есть ли маркетинговые прогнозы или это просто желание.
Предложить компромисс: сделать архитектуру, которая позволит горизонтально масштабироваться, но не строить инфраструктуру на полную мощность сейчас (например, использовать облачные сервисы с автосейлингом).
Задокументировать риск: «При резком росте нагрузки без дополнительных инвестиций система может не выдержать. Требуется повторная оценка через 6 месяцев».

Почему не другие варианты
A — согласиться без анализа — приведёт к перерасходу бюджета или невыполнимому обязательству.
C — отказ от проекта без попытки обсуждения — не гибко.
D — игнорирование — безответственно.

Реальный кейс
Один стартап по доставке еды требовал 5000 RPS с первого дня. Аналитик предложил использовать масштабируемый облачный кластер, но с минимальной конфигурацией. После запуска пик оказался 50 RPS. Экономия составила 80% бюджета.
Post #11890 403
№4821 категория вопросов: #REQUIREMENTS
Post #11889 444
☀Объяснение:

Требования
Врач (роль) — доступ к картам пациентов, но только своего отделения (контекст — отделение).
Администратор — все карты (вышестоящая роль).
Лаборант — доступ только к типу данных «анализы» (контекст — тип данных).

Почему RBAC с контекстными ограничениями
Ролевая модель (RBAC) назначает разрешения ролям, а не пользователям. Врачи, лаборанты, админы — это роли. Добавляются ограничения:
У врача: условие 
patient.department == user.department.
У лаборанта: условие 
data_type == 'lab_results'.
У администратора: нет условий.

Почему не другие
DAC — владелец данных решает, кому дать доступ. Не подходит для медорганизации.
MAC — жёсткая классификация (секретно/несекретно), не подходит для бизнес-правил.
Только ACL — глобальные списки доступа для каждого объекта, трудоёмко.

Реальный пример
Electronic Health Record (EHR) системы используют RBAC с атрибутами (отделение, специализация). Лаборанты видят анализы, но не диагнозы (диагнозы только у врачей).

Что должен зафиксировать аналитик
Роли и права.
Контекстные ограничения (фильтры).
Иерархию ролей (старшая роль включает младшие).
Post #11882 339
№4820 категория вопросов: #SECURITY
Post #11881 372
☀Объяснение:

Проблема
Наивное описание синхронными сообщениями (сплошная стрелка с заполненным концом) подразумевает, что вызывающий объект ждёт ответа. Для внешнего платёжного шлюза типично: вы отправляете запрос, затем получаете асинхронный ответ через некоторое время (callback, webhook). Изображать это как синхронный вызов неправильно.
Как правильно

Асинхронное сообщение — открытая стрелка (линия со стрелкой на конце, но без заливки). Оно означает, что управление не блокируется.
Получение callback — изображается как входящее асинхронное сообщение от банка к контроллеру, часто с пометкой «callback» или «webhook».
Можно также использовать фрагмент 
async или показать запуск отдельного потока (активационная полоска).

Почему это важно
Асинхронное взаимодействие даёт другую последовательность: клиент получит подтверждение не сразу, а позже. На диаграмме это влияет на временные рамки.

Реальный пример
В интеграции с PayPal: ваш сервер отправляет запрос и продолжает работу. Через несколько секунд PayPal присылает уведомление на ваш endpoint. На диаграмме последовательности это показывается как два асинхронных сообщения (туда и обратно), возможно, с фреймом 
par для параллельных действий.

Вывод
Аналитик, рисуя диаграмму последовательности, должен различать синхронные и асинхронные вызовы. Это влияет на проектирование таймаутов, ретраев и обработки callback.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →