Технологии разработки программного обеспечения
Исследования Института системного программирования РАН
к.ф.-м.н В.В.Кулямин
2 / 21
Институт системного программирования РАН
Основан в 1994 годуОтдел системного программирования ИТМиВТ• БЭСМ-6 (1968)• АС-6 (1979)• Электроника ССБис (1987)
Иванников В. П.
3 / 21
Треугольник деятельностей
Исследования
Промышленные разработки
Образование
Российская академия наук
4 / 21
Направления исследований
• Технологии верификации программного и аппаратного обеспечения
• Технологии разработки параллельных и распределенных систем
• Технологии разработки компиляторов• CASE-системы и разработка на основе
моделей• Технологии хранения и интеграции данных• Разработка и анализ алгоритмов
5 / 21
Партнеры и заказчики – индустрия
• Hewlett Packard• Intel• Microsoft• Oracle• Linux Foundation• Nortel Networks• Telelogic (IBM)• VIA Technologies• Вымпелком• KLOCwork
6 / 21
Партнеры и заказчики – академия
• Министерство науки и образования
• INRIA• Microsoft Research• Fraunhofer Institute• Daimler Chrysler Research• ETSI• ETRI• Gelato• НИИСИ РАН
7 / 21
Образование
• МГУфакультет ВМиК– 17-25 человек в год
• МФТИфакультет УПМ– 12-18 человек в год
кафедры Системного программирования
50-е
60-е
70-е
80-е
Отдел технологий программирования
8 / 21
Миссия
Создание и внедрение в промышленную практику наукоемких методовразработкипрограммного обеспечения
9 / 21
Зачем нужна наукоемкость?
• Существенное повышение качества и надежности ПО
• Повышение эффективности разработки ПО
• Создание собственных технологий – фундамент долгосрочного инновационного развития
11 / 21
Основные разработки
• Повышение качества и надежности ПОПовышение эффективности разработки ПО– Методы разработки на основе моделей– CASE-инструменты– Методы анализа и прослеживания требований – Методы формальной верификации – Технологии и инструменты тестирования
• Повышение производительности ПО– Технологии создания параллельных приложений
12 / 21
Научная работа
• Статьи• Монографии• Участие в конференциях и их организация
– Formal Methods– TESTCOM– Model Based Testing (ETAPS)– PSI
• Диссертации• Связи и
контакты
13 / 21
Первые успехи
Разработка тестового набора для ОСтелекоммуникационного коммутатора• Ядро – 250 KLOC• Приложения – 25 MLOC
• Тесты – 350 KLOC• Сгенерировано – 1.8 MLOC
14 / 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
15 / 21
Проект Linux Foundation
Создание тестового набора дляпроверки соответствия LSB• > 10000 страниц текста• > 30000 интерфейсных операций
Создание инфраструктурыподдержки стандарта
www.linuxtesting.orgispras.linuxfoundation.org
16 / 21
Технологии тестирования
• На основе автоматных моделей– Пред- и постусловия операций– Модель состояния– Тест – путь по графу переходов
• На основе сценариев использования– Основные сценарии использования– Тест на каждый сценарий– Проверяется корректность в рамках сценария
• На основе структуры интерфейса– Уточняются типы параметров и результатов– Автоматически создается один тест на операцию– Проверяются простейшие ограничения и
отсутствие сбоев
18 / 21
Разработка тестов для протоколов
Семейство протоколовIPv6, Mobile IPv6, IPsec
• > 1000 страниц текста• Не описываются конечными автоматами
21 / 21
Карьера в ИСП РАН
студентразработчик
преподаватель
старший разработчик
руководитель группы
архитекторисследователь
аспирант