Новая система находит ошибки при разработке ПО в режиме реального времени
Новая система находит ошибки при разработке ПО в режиме реального времени

Специалисты исследовательской группы SOM Research Lab Университета Оберта де Каталония в Испании разработали инструмент проверки моделей программного обеспечения. Он находит ошибки непосредственно в процессе создания модели, а не после ее завершения. Инструмент ускорит разработку ПО и поможет улучшить его качество.
От модели до программы
Разработка ПО начинается с моделирования. Модель описывает систему определенным образом: как она будет работать с данными, какие последовательности шагов для этого нужны, в каких состояниях она сможет находиться, из чего состоит, как части взаимодействуют между собой и т.д.
Модели – это абстракции, которые описывают внутреннее устройство, функционирование и жизненный цикл ПО. Они являются основой, которая затем обрастает деталями реализации.
Один из авторов исследования Роберт Кларисо отметил, что чаще всего модели для создания промышленного ПО строятся на UML (универсальном языке моделирования). Ограничения для частей диаграммы описываются на OCL (языке объектных ограничений).
Пример модели: вверху – UML-диаграмма классов, внизу – дополнительные ограничения, описанные на OCL.
Инструменты, встроенные, например, в StarUML и другие редакторы, проверяют такие модели только в конце процесса. Часто это влечет за собой серьезное изменение архитектуры.
Чем раньше, тем лучше
Для оперативного поиска и устранения ошибок исследователи разработали дополнительные средства. Они используются при проверке модели в процессе внесения изменений.
Если в модели есть проблема, то исправить ее на этапе написания кода будет очень затратно. Если же оставить все, как есть, это отразится на финальной реализации системы. Качество такого ПО будет невысоким.
Именно поэтому ученые считают, что не стоит приступать к коду, не убедившись, что модель верна. Описание модели хорошо структурировано и лаконично, поэтому проверка не займет много времени.
Почему стоит анализировать все изменения?
Когда вы добавляете или удаляете что-то из модели или же меняете информацию в определенном компоненте, это может затронуть и другие части системы. Поэтому нужно рассматривать модель в комплексе – это предупредит регрессию.
Сертификация моделей
Исследователи считают, что новые инструменты можно будет использовать для сертификации моделей. Если по итогам проверки система не нашла проблем, она может сгенерировать сертификат – образец, который отражает корректную работу модели. После модификации снова проводится проверка, и генерируется новый сертификат. Такой подход исключает необходимость в сторонних проверках.
Адаптировать существующий сертификат к новым изменениям проще, чем проводить полную проверку с нуля. Это занимает меньше времени и в перспективе может ускорить разработку промышленного ПО.
Проблема пока только одна: интегрировать сертификацию в существующие среды и инструменты разработки достаточно сложно. Но технически это вполне реализуемо.
Источник: https://infostart.ru/journal/news/tekhnologii/novaya-sistema-nakhodit-oshibki-pri-razrabotke-po-v-rezhime-realnogo-vremeni_1364876/
См. также
В ближайшие годы возрастет потребность в персонале центров обработки данных
вчера в 15:30 1723 SKravchenko 0
Rustоманы из Долины: Google, Microsoft, Huawei, Mozilla и AWS основали фонд поддержки языка программирования
16.02.2021 1574 user1015646 0
Украинская команда FireWay одержала победу в хакатоне NASA Space Apps Challenge 2020
05.02.2021 1889 SKravchenko 2
Microsoft участвует в разработке цифрового паспорта вакцинации от Covid-19
02.02.2021 1705 capitan 3
Что нового в Chrome 88: проверка надежности паролей и поддержка профилей
01.02.2021 2158 user1015646 0
280 символов для науки: Twitter откроет доступ ученым к архиву твитов
29.01.2021 1445 VKuser24342747 1
Представлен GitLab 13.7: автооткат при сбоях и улучшенная проверка мердж-реквестов
22.01.2021 2325 user1015646 0
Российские исследователи представили новый фреймворк для работы с большими данными
21.01.2021 2302 user1015646 2