Технологии разработки программного обеспечения Исследования Института системного программирования РАН к.ф.-м.н В.В.Кулямин Институт системного программирования РАН Основан в 1994 году Отдел системного программирования ИТМиВТ • БЭСМ-6 (1968) • АС-6 (1979) • Электроника ССБис (1987) Иванников В. П. 2 / 21 Треугольник деятельностей Исследования Российская академия наук Промышленные разработки Образование 3 / 21 Направления исследований • Технологии верификации программного и аппаратного обеспечения • Технологии разработки параллельных и распределенных систем • Технологии разработки компиляторов • CASE-системы и разработка на основе моделей • Технологии хранения и интеграции данных • Разработка и анализ алгоритмов 4 / 21 Партнеры и заказчики – индустрия • • • • • • • • • • Hewlett Packard Intel Microsoft Oracle Linux Foundation Nortel Networks Telelogic (IBM) VIA Technologies Вымпелком KLOCwork 5 / 21 Партнеры и заказчики – академия • Министерство науки и образования • INRIA • Microsoft Research • Fraunhofer Institute • Daimler Chrysler Research • ETSI • ETRI • Gelato • НИИСИ РАН 6 / 21 Образование • МГУ факультет ВМиК – 17-25 человек в год • МФТИ факультет УПМ 50-е 60-е 70-е 80-е – 12-18 человек в год Отдел технологий программирования кафедры Системного программирования 7 / 21 Миссия Создание и внедрение в промышленную практику наукоемких методов разработки программного обеспечения 8 / 21 Зачем нужна наукоемкость? • Существенное повышение качества и надежности ПО • Повышение эффективности разработки ПО • Создание собственных технологий – фундамент долгосрочного инновационного развития 9 / 21 Инновационная экономика исследования технологии продукты 10 / 21 Основные разработки • Повышение качества и надежности ПО Повышение эффективности разработки ПО – – – – – Методы разработки на основе моделей CASE-инструменты Методы анализа и прослеживания требований Методы формальной верификации Технологии и инструменты тестирования • Повышение производительности ПО – Технологии создания параллельных приложений 11 / 21 Научная работа • Статьи • Монографии • Участие в конференциях и их организация – – – – Formal Methods TESTCOM Model Based Testing (ETAPS) PSI • Диссертации • Связи и контакты 12 / 21 Первые успехи Разработка тестового набора для ОС телекоммуникационного коммутатора • Ядро – 250 KLOC • Приложения – 25 MLOC • Тесты – 350 KLOC • Сгенерировано – 1.8 MLOC 13 / 21 Стандартизация Linux Стандарт Linux Standard Base - LSB • Стандарты – POSIX, XPG, SVID, ISO C – ncurses, LFS • Библиотеки – libc, libm, libncurses, libX11, libXt, libGL – libstdcxx, libxml – GTK, Qt, libfontconfig, libpng 14 / 21 Проект Linux Foundation Создание тестового набора для проверки соответствия LSB • > 10000 страниц текста • > 30000 интерфейсных операций Создание инфраструктуры поддержки стандарта www.linuxtesting.org ispras.linuxfoundation.org 15 / 21 Технологии тестирования • На основе автоматных моделей – Пред- и постусловия операций – Модель состояния – Тест – путь по графу переходов • На основе сценариев использования – Основные сценарии использования – Тест на каждый сценарий – Проверяется корректность в рамках сценария • На основе структуры интерфейса – Уточняются типы параметров и результатов – Автоматически создается один тест на операцию – Проверяются простейшие ограничения и отсутствие сбоев 16 / 21 География Linux Foundation 17 / 21 Разработка тестов для протоколов Семейство протоколов IPv6, Mobile IPv6, IPsec • > 1000 страниц текста • Не описываются конечными автоматами 18 / 21 Проект Go4IT Разработка открытого тестового набора для IPv6 go4it.unitesk.ru 19 / 21 География Go4IT 20 / 21 Карьера в ИСП РАН преподаватель исследователь архитектор руководитель группы старший разработчик разработчик аспирант студент 21 / 21 Вопросы? kuliamin@ispras.ru