Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
PVS-Studio - дополнительная страховка м…

PVS-Studio - дополнительная страховка медицинского программного обеспечения

20 Мар 2018

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

0564_Medic_ru/image1.png

После моей публикации "Для повышения надежности и безопасности банковского программного обеспечения используйте PVS-Studio" наш список клиентов пополнился несколькими компаниями, создающими соответствующий софт. Статья неожиданно получилась удачной и эффективной. Ни я, ни коллеги не ожидали, что от неё будет такая отдача. Видимо статьи действуют намного сильнее, когда я рассуждаю не про ошибки вообще, а говорю про определенный класс программного обеспечения. Теперь меня заставляют написать статьи, охватывающие другие сферы программного обеспечения.

Эта статья ориентирована на команды разработчиков, создающих программы для медицинского оборудования. Надеюсь, они не останутся равнодушными и проверят свой код с помощью PVS-Studio. Надеюсь также, что ряд из них после этого пополнит список наших клиентов по направлению "Медицина".

0564_Medic_ru/image2.png

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

0564_Medic_ru/image3.png

Во-первых, это череда трагических событий, к которым привели ошибки в аппарате лучевой терапии Therac-25. С июня 1985 года по январь 1987 года этот аппарат стал причиной как минимум шести передозировок радиации, некоторые пациенты получили дозы в десятки тысяч рад. Как минимум двое умерли непосредственно от передозировок. Причиной трагедий были ошибки в программном обеспечении аппарата, а принципиальной проблемой была неверная стратегия обеспечения безопасности.

0564_Medic_ru/image5.png

Во-вторых, ошибки в программном обеспечении могут причинять вред и косвенно. Например, баги в программном обеспечении для МРТ-сканеров ставят под сомнение 40 000 научных исследований. В течение нескольких десятилетий нейробиологи и когнитивные психологи использовали для анализа данных фМРТ статистические программы AFNI, SPM и FSL. Как выяснилось, из-за некорректных алгоритмов эти программы могут возвращать до 70% ложноположительных результатов вместо предполагаемых 5%.

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

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

Это не абстрактная теоретическая проблема. Я сам сталкивался с ситуацией, когда при переносе программы на 64-битную систему начала проявляться ошибка, приводящая к неправильной обработке МРТ-данных. К счастью, ошибка проявляла себя очень явно: отсутствовал большой фрагмент изображения. Однако ошибка может быть не столь заметной и заключаться в неправильном отображении каких-то мелких деталей, и обнаружить её будет гораздо сложнее.

0564_Medic_ru/image6.png

Подробнее про эту ошибку я писал в статье "Как 10 лет назад начинался проект PVS-Studio". Именно эта и некоторые другие 64-битные ошибки легли в основу создания инструмента Viva64, который затем превратился в статический анализатор кода PVS-Studio.

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

0564_Medic_ru/image7.png

Я фантазёр и такие ошибки допускают только студенты в курсовых работах? Ха! Прошу уделить немного времени и ознакомиться с моей статьёй "Зло живёт в функциях сравнения". После неё вы начнёте разделять мою озабоченность.

Я предлагаю всем читающим начать использовать статический анализатор кода PVS-Studio. Да, этот анализатор, как и любой другой инструмент, не гарантирует отсутствие в программах ошибок. Однако он станет дополнительной линей обороны на поле сражения с багами. Он поможет обнаружить большое количество ошибок на самых ранних этапах разработки и, возможно, поможет сохранить чьё-то здоровье.

Как я писал выше, разработчик критически важного программного обеспечения отвечает не только за качество своего кода, но и используемых библиотек. Анализатор PVS-Studio поможет найти ошибки в сторонних библиотеках, а также поможет сделать оценку качества сторонних библиотек. Возможно, если кто-то увидит крайне низкое качество кода библиотеки, то он вовремя примет решение отказаться от её использования и подыскать более качественную альтернативу.

И последний вопрос, на который я дам ответ. Почему я не написал эту статью сразу после статьи про безопасность банковского ПО? Разработка программного кода для медицинской сферы - это часто программирование различных микроконтроллеров. Я ждал, когда наш анализатор будет адаптирован к анализу кода для встраиваемых устройств. И теперь у меня появился повод: "Статический анализатор кода PVS-Studio 6.22 адаптирован для ARM-компиляторов (Keil, IAR)".

Спасибо всем за внимание и предлагаю скачать и начать использовать анализатор кода PVS--Studio. Полезные ссылки:

  • Страница с описанием PVS-Studio
  • Скачать PVS-Studio для Windows
  • Скачать PVS-Studio для Linux
  • Примечание: скоро станет доступна версия PVS-Studio для macOS
  • Документация. Как запустить PVS-Studio в Linux
  • Примеры проверки различных открытых проектов
  • Пишите нам в поддержку по любым вопросам, мы быстро отвечаем и поможем настроить анализатор для проверки ваших проектов

Популярные статьи по теме


Комментарии (0)

Следующие комментарии next comments
close comment form
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

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

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок:

  • Промоакции
  • Оповещения
  • Спам