Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ориентированное на качество)

994 views

Published on

  • Be the first to comment

  • Be the first to like this

CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ориентированное на качество)

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

×