Современные технологии создания программного обеспечения

         

Современные тенденции в программной инженерии


В начале 2001 года века ряд ведущих специалистов в области программной инженерии (Алистер Коберн, Мартин Фаулер, Джим Хайсмит, Кент Бек и другие) сформировали группу под названием Agile Alliance. Слово agile (быстрый, ловкий, стремительный) отражало в целом их подход к разработке ПО, основанный на богатом опыте участия в разнообразных проектах в течение многих лет. Этот подход под названием "Быстрая разработка ПО" (Agile software development) базируется на четырех идеях, сформулированных ими в документе "Манифест быстрой разработки ПО" (Agile Alliance's Manifesto) и заключающихся в следующем:

  • индивидуумы и взаимодействия между ними ценятся выше процессов и инструментов;
  • работающее ПО ценится выше всеобъемлющей документации;
  • сотрудничество с заказчиками ценится выше формальных договоров;
  • реагирование на изменения ценится выше строгого следования плану.
  • При таком подходе технология занимает в процессе создания ПО вполне определенное место. Она повышает эффективность деятельности разработчиков при наличии любых из следующих четырех условий:

  • когда она позволяет людям легче выразить свои мысли;
  • когда она выполняет задачи, невыполнимые вручную;
  • когда она автоматизирует утомительные и подверженные ошибкам действия.;
  • когда она облегчает общение между людьми;
  • Технология не должна действовать против характера культурных ценностей и познавательной способности человека.

    При этом следует четко понимать: при всех достоинствах быстрой разработки ПО этот подход не является универсальным и применим только в проектах определенного класса. Для характеристики таких проектов Алистер Коберн ввел два параметра - критичность и масштаб. Критичность определяется последствиями, вызываемыми дефектами в ПО, ее уровень может иметь одно из четырех значений:

  • C - дефекты вызывают потерю удобства;
  • D - дефекты вызывают потерю возместимых средств (материальных или финансовых);
  • E - дефекты вызывают потерю невозместимых средств;
  • L - дефекты создают угрозу человеческой жизни.

  • Масштаб определяется количеством разработчиков, участвующих в проекте:

  • от 1 до 6 человек - малый масштаб;
  • от 6 до 20 человек - средний масштаб;
  • свыше 20 человек - большой масштаб.


  • По оценке Коберна, быстрая разработка ПО применима только в проектах малого и среднего масштаба с низкой критичностью (C или D). Общие принципы оценки технологий в таких проектах заключаются в следующем:

  • интерактивное общение лицом к лицу - это самый дешевый и быстрый способ обмена информацией;
  • избыточная "тяжесть" технологии стоит дорого;
  • более многочисленные команды требуют более "тяжелых" и формальных технологий;
  • большая формальность подходит для проектов с большей критичностью;
  • возрастание обратной связи и коммуникации сокращает потребность в промежуточных и конечных продуктах;
  • дисциплина, умение и понимание противостоят процессу, формальности и документированию;
  • потеря эффективности в некритических видах деятельности вполне допустима.


  • Одним из наиболее известных примеров практической реализации подхода быстрой разработки ПО является "Экстремальное программирование" (Extreme Programming - XP) . Этот метод предназначен для небольших компактных команд, нацеленных на получение как можно более высокого качества и продуктивности, и достигает этого посредством насыщенной, неформальной коммуникации, придания на персональном уровне особого значения умению и навыкам, дисциплине и пониманию, сводя к минимуму все промежуточные рабочие продукты.

         


    Содержание раздела