IBM Research и Евросоюз запустили проект PINCETTE
Корпорация IBM анонсировала трехлетнюю программу сотрудничества с Европейским Союзом и партнерами из промышленных и академических кругов, направленную на создание новой технологии, которая призвана укрепить надежность ответственных программных обновлений путем обнаружения и устранения ошибок прежде, чем они приведут к отказу системы или другим осложнениям. Как известно, сложные компьютерные системы, которые управляют электросетями, атомными электростанциями, транспортными операциями и водохозяйственными объектами, требуют периодического обновления ПО, причем в отличие от обновления ОС обычных ПК, последствия программных ошибок при модернизации комплексных систем могут быть глобальными и дорогостоящими.
Инициатива получила название PINCETTE (французское обозначение пинцета или маленьких щипчиков). Проект направлен на сокращение затрат, связанных с обслуживанием нового системного ПО путем автоматизации сложных и трудоемких процессов анализа и тестирования. По сегодняшним оценкам, расходы, связанные с проверкой нового ПО, составляют от 40 до 70% совокупных издержек в течение всего жизненного цикла системы.
Планы IBM предусматривают использование результатов исследовательского проекта совместно с сообществом разработчиков Open Source.
В состав консорциума партнеров, лидирующую роль в котором играет отделение IBM Research в Хайфе (Израиль), входят Оксфордский университет, Университет итальянской Швейцарии, Университет Милана, Государственный технический исследовательский центр (Финляндия); концерн «Авиационная промышленность Израиля», а также швейцарское и немецкое отделения компании ABB.
Финансируемый Евросоюзом исследовательский консорциум PINCETTE будет внедрять инженерно-технические и управленческие возможности для сетевых систем, к которым предъявляются повышенные требования по надежности. В рамках проекта будет разработана технология, гарантирующая безопасную модернизацию инфраструктуры за счет корректного и безошибочного функционирования постоянно развивающихся программных систем управления сетями. В частности, консорциум надеется достичь роста надежности систем путем уменьшения по меньшей мере на 70% количества функциональных ошибок наряду с сокращением времени, которое требуется на проверку единичных изменений или комплекса обновлений, а также совместимости новой версии.
Проект PINCETTE позволит разработчикам и тестировщикам, вносящим изменения в программные приложения, тестировать, выявлять и оперативно устранять ошибки по мере их появления путем применения новейших методик, использующих комбинацию статического и динамического анализа.
Проект будет сочетать теоретические исследования с разработкой прикладного инструментария для прогнозирования потенциального эффекта от изменений и обновлений сложных сетевых систем. Особый акцент будет делаться на гарантировании совместимости разных версий ПО сетевой инфраструктуры, поскольку модернизации, как правило, осуществляются постепенно, следовательно, сетевые сегменты с разными версиями ПО должны быть взаимно совместимы и функционировать в соответствии с заданными требованиями.
Ни одна из существующих сегодня методик специально не адаптирована для контроля программных обновлений систем. Решение для проверки обновлений сейчас очень востребовано из-за коротких жизненных циклов продуктов и растущей сложности и масштабов систем управления сетями. Ключевым преимуществом проекта PINCETTE является то, что он будет базироваться на комбинации технологий тестирования и имитационного моделирования с формальными методами, которые используют математические доказательства того, что система будет сохранять заложенные разработчиками функциональные характеристики в широком диапазоне условий эксплуатации. Предлагая пользователям конструктивную обратную связь, когда обновление обещает быть проблематичным, методология PINCETTE даст разработчикам рекомендации, как улучшить программные компоненты. Эта обратная связь будет осуществляться в форме трассировки ошибок (error-traces), что поможет определять, какие именно изменения вызвали некорректное функционирование программы, либо в виде предлагаемой модели замены неудачного программного компонента, вызвавшего сбой.