Разработка наукоемкого программного обеспечения отличается тем, что нет ни четкой постановки задачи, ни понимания, что получится в результате. Однако даже этом надо программировать то, что надо, и как надо. Докладчик расскажет о том, как ее команда успешно разработала и вывела в промышленную эксплуатацию несколько наукоемких продуктов, пройдя непростой путь от эксперимента, результатом которого был прототип, до промышленных версий, которые успешно продаются как на российском, так и на зарубежном рынках. Этот путь был насыщен сложностями и качественными управленческими решениями, которыми поделится докладчик
2. Заголовок
• Разработка программного кода сегодня
• Лучшие мировые практики
• Наш процесс разработки ПО
• Сопровождение разработанного ПО
• Работать на себя
3. Заголовок
• На вход подается нечеткая постановка
задачи
• Нет технического задания
• Нет алгоритмов
• Есть нечеткое понимание
функциональности
• О требованиях защищенности вообще
никто не заботится
6. Заголовок
• Начальник отдела разработки
• Коллектив
• Программный продукт
• Бизнес
Разработка программного кода сегодня
7. Заголовок Повышение качества разработки
Кодиро
вание
$X
Сборка
$3X
Тестирование
и Безопасность
$10X
Эксплуатация
$100X
Обнаружение
дефектов
8. Заголовок
• Декомпилятор
• Неподдерживаемые языковые конструкции (таких оказалось много)
• Неполные спецификации микроконтроллеров
• Нехватка памяти (CFG – очень большой)
• Классические алгоритмы плохо масштабируются на реальные
приложения
• Результат
• используется как внутренний инструмент
• неотделим от разработчика
От экспериментального кода к промышленному
9. Заголовок
• Пассивный перехватчик трафика
• дефицит памяти
• перепутанные пакеты
• плохая стандартизация протоколов обмена
• разнообразная инфраструктура
• Результат
• проект занял времени и ресурсов в 2 раза больше планируемого
• потребовалось строгое административное вмешательство в процесс
разработки
• перехватчик внедрен в промышленную эксплуатацию
От экспериментального кода к промышленному
10. Заголовок
• Статический анализатор кода
• дефицит памяти
• много ложных срабатываний на реальных примерах
• сторонние компоненты не приспособлены для реальных приложений
• классические алгоритмы даже адаптированные не работают
• Результат
• Дополнительные исследования по обновленным требованиям
• Есть промышленный результат
От экспериментального кода к промышленному
14. Заголовок
• Статический анализ кода
• Динамический анализ кода
• Анализ кода времени
выполнения
Кодиро
вание
Сборка Тестирование
и Безопасность
Запуск
Система
управления
проектами
Среда
разработки
Система
контроля
версий и
сборки
анализ кода
18. Заголовок
Мы добились эффективной разработки:
• Разделили аналитику, разработку и тестирование
• Грамотно внедрили анализ кода
• Разработали прозрачные мотивационные программы для
сотрудников
Заключение