Как устроена система встраиваемого ПО и чем требования к ней отличаются от обычного приложения
Что проверяют
Понимаете ли вы, что во встраиваемой системе требования пишутся не только к функциям, но и к железу, времени и отказам, а ошибка в них стоит дороже: плату уже заказали, прошивку в поле просто так не обновишь. Следом спрашивают, как записать требование ко времени реакции, чтобы его можно было проверить.
Как отвечать
Сначала коротко про устройство, аналитику хватает уровня слоёв:
- аппаратура: микроконтроллер с сотнями килобайт памяти или процессор под Embedded Linux, датчики, исполнительные механизмы;
- низкий уровень: драйверы и слой абстракции железа (HAL), обмен по UART, SPI, I2C, CAN;
- среда исполнения: суперцикл без ОС, RTOS вроде FreeRTOS или Zephyr, либо Linux;
- прикладной слой: логика устройства, протокол связи с верхним уровнем, обновление прошивки.
Дальше главное, чем требования отличаются:
- время: измеримый дедлайн, например «от срабатывания датчика до отключения реле не более 10 мс». Жёсткое реальное время, где пропуск дедлайна считается отказом, отличайте от мягкого;
- ресурсы: бюджет памяти, флеша, энергопотребления, время работы от батареи;
- отказы: поведение при сбое питания, зависании (сторожевой таймер), потере связи. Безопасное состояние описывается явно;
- обновление: OTA с проверкой подписи и откатом на прошлую версию;
- нормативы: стандарты функциональной безопасности (IEC 61508, ISO 26262 в автомобилях, IEC 62304 для медицинского ПО) требуют трассировки от требования до кода и теста;
- интерфейсы с железом: форматы пакетов и карта регистров оформляются отдельным документом вместе со схемотехниками.
Упомяните проверку на стендах HIL, где прошивка работает с имитацией окружения.
Где спотыкаются
Пишут «система должна работать быстро и надёжно». Такое требование не проверить, а в сертифицируемых отраслях непроверяемое требование просто не примут.
Не учитывают срок жизни. Устройство эксплуатируют десять лет и дольше, поэтому требования к обновлению и совместимости протокола закладывают сразу.
Путают встраиваемое ПО с мобильным приложением: говорят про экраны и пользователей, забывая про датчики, питание и работу без человека рядом.