КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ПРОГРАММНОГО ПРОЕКТА



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

Ключевые слова: программный проект, методология разработки программного обеспечения, модель, управление проектом.

Для реализации программного проекта (software project) по разработке любого более-менее сложного программного продукта формируется временная организационно-техническая система, включающая команду исполнителей и необходимые технические ресурсы. . Команда программного проекта, как правило, состоит из лиц, осуществляющих управление проектом, специалистов из различных областей программной инженерии (аналитики, системные архитекторы, программисты, тестировщики, системные администраторы), выполняющих непосредственно работы по проекту, и специалистов в предметной области, обеспечивающих консультативную поддержку остальных участников проекта.

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

Многие исследователи отмечают исключительную важность выбора эффективной методологии разработки для успешного выполнения программного проекта. В разное время проблемами оценки программных проектов и выбора методологии разработки занимались А.М. Дэвис , С.А. Орлов , Д. Филлипс , Ч. Хоар , Д. Рамбо, Г. Буч, И. Якобсон , С. Амблер , Д. Маккарти , Э. Йордон , М. Фаулер , К. Швабер , Д. Сазерленд , В. Педрич , Г. Матхару .

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

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

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

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

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

Программный проект P характеризуется содержанием S, командой T, работающей над выполнением этих требований, методологией работы команды M и внешним окружением проекта V. Таким образом, на верхнем уровне проект можно описать как множество элементов:

Рассмотрим каждый из этих компонент.

Содержание проекта S определяется требованиями к разрабатываемому продукту R, работами которые необходимо выполнить для выполнения этих требований W, зависимостями между работами D, оценкой длительности выполнения работ E. С течением времени по ходу выполнения проекта некоторые компоненты содержания проекта S претерпевают преобразования: требования выполняются, число работ, которые необходимо выполнить, изменяется, оценки уточняются. То какие работы и требования будут выполнены, зависит от команды проекта T и процесса назначения исполнителей на задачи – это определяется выбранной методологией M.  Процесс уточнения оценок также определяется выбранной методологией. Таким образом, динамическая модель содержания проекта может быть выражена следующим образом:

Команда программного проекта Т может рассматриваться как совокупность характеристик численности команды Tnum, компетенций членов команды Tcomp, их доступности Tavail и стоимости Tcost. Последние два параметра находятся в зависимости от внешнего окружения проекта. По аналогии, можно определить зависимость изменения команды во времени следующим образом:

Соответственно, в модели программного проекта методология должна определять процессы переоценки длительности выполнения задач Mest и процесс назначения исполнителя на выполнение работы Massign.