2. Ход доклада
Проблемы разработки ПО
Какое решение предлагает ПОК (QOP)
Автоматизированные практики обнаружения
ошибок и их возможности
Построение процесса разработки в
соответствии концепцией ПОК (QOP)
Какие ошибки можно предотвратить -
некоторые примеры автоматизированного
обнаружения
Итоги
3. Проблемы разработки ПО
Позднее выявление ошибок
Длительное и непредсказуемое время отладки
Отсутствие уверенности в безопасности
изменения при работе с большими проектами
Срывы сроков разработки
Увеличение бюджета
4. Программирование, ориентированное на качество
НЕПРЕРЫВНОЕ обеспечение качества
приложения от начала проекта
АВТОМАТИЗИРОВАННЫЙ контроль качества
внутри команды разработки
5. Методы обнаружения ошибок
Статический анализ
Динамический анализ
Проверка модульных и функциональных тестов
Обзоры кода
6. Статический анализ
Обеспечение ясности и понятности кода,
общего стиля написания кода
Обнаружение общих ошибок
Обнаружение ошибок в применении различных
библиотек
Автоматизированное применение экспертных
знаний о программировании
7. Построение процесса разработки
Архитектор определяет набор требований
качества к проекту, политику обзоров кода
Каждую ночь проходит автоматизированное
тестирование
Каждое утро каждый разработчик получает
набор задач, связанный с последними
внесенными изменениями. В частности,
обнаруженные ошибки, требующие
исправления.
Если в ходе обзоров кода обнаруживаются
часто встречающиеся ошибки, набор
формализованных требований расширяется, а
такие ошибки находятся далее
автоматизированным способом
8. Примеры: обнаружение NPE
Parasoft Jtest
находит ошибку
в коде Apache-
Ant-1.7.0beta1
(ClassNotFound-
Exception не
обрабатывается
должным
образом и
приводит к NPE)
9. Примеры: избавляемся от утечек
Parasoft Jtest находит утечку в коде Ant-1.7.0beta1
(утечка происходит, когда dis.read() бросает исключение)
13. Почему хорошо использовать ПОК?
Поддерживается высокое качество кода по
мере его написания
Уменьшается время, необходимое на отладку
Множество типов ошибок обнаруживается
автоматически, программисты же решают
творческие задачи
Снижается влияние человеческого фактора на
качество разрабатываемого ПО
Покупатель получает более качественный
продукт
Разработка становится более предсказуемой и
легче поддается правильной оценке
Сокращается бюджет, требуемый на разработку