Технологии разработки программного обеспечения

advertisement
Технологии разработки
программного обеспечения
Исследования
Института системного программирования РАН
к.ф.-м.н В.В.Кулямин
Институт системного
программирования РАН
Основан в 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
Download