Научная статья на тему 'Методы оценки трудоемкости проектов по созданию программных систем'

Методы оценки трудоемкости проектов по созданию программных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
3718
354
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мицель Артур Александрович, Шелковников Константин Александрович, Истомин Николай Алексеевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Мицель Артур Александрович, Шелковников Константин Александрович, Истомин Николай Алексеевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Методы оценки трудоемкости проектов по созданию программных систем»

УДК 681.3.06.003.1

А.А. Мицель, К.А. Шелковников, Н.А. Истомин

Методы оценки трудоемкости проектов по созданию программных систем

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

Введение

На настоящий момент не существует точных и одновременно простых в использовании моделей оценки трудоемкости разработки программных систем (ПС), которые позволяли бы точно оценивать размер ПС на этапах планирования разработки. Скорее всего, они и не будут найдены. В этой ситуации используются разнообразные эмпирические подходы, комбинирующие простые в использовании метрики и модели со сложными, но более адекватными [1].

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

Существующие модели хорошо применимы к так называемым информационным системам, т.е. системам, основные функции которых связаны с накоплением и хранением больших объемов данных, предоставлением доступа и интерактивной обработкой запросов к ним. На рис. 1 представлены некоторые из этих моделей в их историческом развитии [2].

Модель СОСОМО

Наиболее известной моделью данного рода является конструктивная модель стоимости (Constructive Cost Model — СОСОМО), разработанная в конце 1970-х годов Барри Боэмом (Barry Boehm). Построенная на основе анализа ряда проектов, выполненных в основном в интересах Министерства Обороны США, она устанавливает соответствие между размером системы в тысячах условных строк кода и «классом» проекта, с одной стороны, и трудоемкостью разработки системы, с другой стороны.

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

_i_

Agile СОСОМО

Рис. 1 — Основные модели оценки трудозатрат на разработку ПО

Базовый тип модели СОСОМО учитывает только класс проекта — естественный, полуинтегрированный, «встроенных систем». Естественные — относительно небольшие проекты,

разрабатываемые командами, знакомыми с прикладной областью. Полуинтегрированные проекты — системы среднего размера и сложности, разрабатываемые группами разработчиков с различным опытом работы в данной области. Проекты «встроенных систем» выполняются при значительных аппаратных, программных и организационных ограничениях. В промежуточном типе модели вводятся 15 поправочных факторов, принадлежащих одной из четырех категорий атрибутов: продукта, системы, команды и проекта [2].

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

Зависимость затрат труда в человеко-месяцах (Eff) от численного, выраженного в тысячах исходных команд (KLOC) размера программного изделия, и скорректированная рядом поправочных коэффициентов, представляется следующим образом [3]:

Eff = 3,0 KLOC П Ci} ,

где К1ЮС — число исходных команд в тысячах; Су — коэффициенты изменения трудоемкости.

Коэффициенты Ci;- отражают изменение трудоемкости непосредственной разработки строки текста программы за весь цикл создания программного продукта при воздействии ¿/-фактора.

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

Модель СОСОМО II

Самым популярным методом на сегодняшний день, пожалуй, является метод СОСОМО II (Constructive Cost Model II, СОСОМО II), использующий большое количество данных из реализованных ранее проектов.

В рамках этой модели оценки трудоемкости проекта и времени, необходимого на его выполнение, определяются тремя способами на разных этапах проекта [1].

На самых ранних этапах, когда известны только общие требования, а проектирование еще не начиналось, используется модель состава приложения (Application Composition Model). В ее рамках трудоемкость проекта оценивается в человеко-месяцах по формуле

Eff = A-Size ,

где Size представляет собой оценку размера в терминах экранов, форм, отчетов, компонентов и модулей будущей системы (каждый такой элемент оценивается с коэффициентом от 1 до 10 в зависимости от своей сложности); коэффициент А учитывает возможное переиспользование части компонентов и производительность разработки, зависящую от опытности команды и используемых инструментов:

_ 100-процент переиспользования производительность

На следующих этапах, когда требования в основном известны и начинается разработка архитектуры ПО, используется модель этапа предварительного проектирования (Early Design Model) и следующие формулы:

• для трудоемкости (в человеко-месяцах):

Eff = A Size3 С , (1)

где коэффициент А считается равным 2,45; Size — оценка размера ПО, выраженная в тысячах строк кода; С — произведение семи коэффициентов затрат, каждый из которых лежит в интервале от 1 до 6; В — фактор процесса разработки, который вычисляется по формуле

5

В = 0,91 + 0,01£Ж; t

г=1

где коэффициенты Wt означают предсказуемость проекта для данной организации и принимают значения от 0 до 5;

• для времени (в месяцах):

Time = Т ■ (в_1'01)1. Seed ,

(2)

где коэффициент Т считается равным 3,67; Eff — оценка трудоемкости без учета плотности графика; Seed, — требуемое сжатие времени выполнения проекта; • для стоимости проекта:

где LR — среднемесячная заработная плата программиста.

После того как разработана архитектура ПО, оценки должны выполняться с использованием постархитектурной модели (Post-Architecture Model). Формулы для оценки времени остаются без изменения, а формула для трудоемкости претерпивает небольшие изменения (количество коэффициентов затрат увеличится с 7 до 17).

Методика Agile СОСОМО II

В [4] приводится краткая характеристика одной из последних разработок в данной области — методики Agile СОСОМО II. Многие, кто впервые сталкивался с ней, предполагали, что это специально разработанная методика СОСОМО, учитывающая специфику Agile-проектов (о проектах этого типа в данной статье речь не идет). Однако Agile СОСОМО II — это вышедшая в 2004 г. облегченная версия СОСОМО 11.2000. Суть методики проста и заключается в следующем:

• задается трудоемкость предыдущего завершенного проекта в какой-либо метрике либо просто как конечная стоимость проекта;

• задается характеристика СОСОМО предыдущего завершенного проекта;

• предполагаются характеристики СОСОМО нового проекта;

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

Эта методика удивительна по простоте своего применения, многие эксперты сходятся во мнении, что она адекватно работает для небольших и Agile-проектов, коих в настоящее время много и которые часто не подвергаются никаким оценкам именно из-за своих небольших размеров.

Модификация методик СОСОМО II и Agile СОСОМО II

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

Для небольших и средних проектов проведение подобной оценки размера Size может стать невыгодным вследствие существенных временных и денежных затрат. Для их сокращения имеет смысл проводить оценку не с «нуля», а основываясь на данных об уже реализованных предыдущих системах.

Нетрудно заметить, что из формулы (2) для уже завершенного проекта можно получить оценку трудоемкости Effx

Cost = LR ■ Eff ,

(3)

l

Time ]o,28+o,2(B-i,oi) 3,67 Seed J

Затем подставляем полученную Eff в формулу (1) и выражаем из нее Size:

|0,28+0,2(В-1,01)

1

2,45 С

Благодаря этой формуле мы можем получить оценку 81гех выполненного проекта в единицах измерения, используемых в модели СОСОМОII. Для оценки параметра 81ге2 предлагается

использовать коэффициент К изменения размеров проекта:

к .

5126*

где вЬге^ и — экспертная оценка размеров проекта по 10-балльной шкале. Важным

является проведение оценки и Згге^ одним и тем же экспертом для обеспечения сопос-

тавимости значений. В случае, если известны компонентные составы проектов 1 и 2, логичным является экспертное оценивание каждой компоненты и выведение средней оценки по проекту.

Таким образом, коэффициент К показывает, во сколько раз разрабатываемый проект больше или меньше уже реализованного, причем вне зависимости от метрики размера проекта. Поэтому мы можем использовать этот коэффициент в следующей формуле, полученной из формул (1) и (3):

Cost;

кВя в,-*, А.^.

LRy Size^ Ci LR,

Cost^.

Тогда на основании всего вышеизложенного, можно получить формулу для вычисления стоимости проекта на основании данных о предыдущем проекте и заданных параметров СОСОМО без трудоемкой оценки размера ПС:

Cost2 =

Time

0,28+0,2(5!-1,01)

3,67 Seed

f"1

2,45 - Cx

^ Ca L^

q ьщ 1

Заключение

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

Задача выбора адекватной модели оценки затрат на менее сложные и объемные программные системы получила решение в виде выбора методики Agile СОСОМО, основанной на методике СОСОМО П, с внесением некоторых изменений в алгоритм. Данный выбор был обусловлен во многом тем, что методика Agile СОСОМО основывается на данных о предыдущем законченном проекте, что позволяет достаточно легко получить оценку будущего проекта.

Литература

1. Жоголев Е.А. Лекции по технологии программирования : учеб. пособие / Е.А. Жого-лев. - М. : Издательский отдел факультета ВМиК МГУ, 2001. - 151 с.

2. Михайловский Н.Э. Сравнение методов оценки стоимости проектов по разработке информационных систем / Н.Э. Михайловский // Корпоративные системы. - 2003. - № 6. -С. 35-40.

3. Липаев В.В. Технико-экономическое обоснование проектов сложных программных средств / В.В. Липаев. - М. : СИНТЕГ, 2004. - 284 с.

4. Sharman G. Agile COCOMOII [Электронный ресурс] / G. Sharman. - CSE Annual Research Review - 2003. - March 17-21. - Режим доступа : http://sunset.usc.edu/events/2003/ March_2003/ Agile_COCOMOII_ARR.pdf

Мицель Артур Александрович

Д-р техн. наук, проф. каф. автоматизированных систем управления ТУСУРа Телефон: (3822) 41-34-54 Эл. почта: maa@asu.tusur.ru

Шелковников Константин Александрович

Студент 5-го курса группы 442-1 факультета систем управления ТУСУРа Эл. почта: shell@sibmail.com

Истомин Николай Алексеевич

Студент 5-го курса группы 432-2 факультета систем управления ТУСУРа Эл. почта: inick@sibmail.com

A. Mitsel, Е. Efremova, N. Istomin

Models of an issuer's strategy optimization in secondary market of subfedreal bonds

A few models allowing to elaborate ail optimal strategy for management of secondary bonds market are considered in the paper. A possibility of the models application for management of Tomsk region public debt is analysed. A modification of existing model, which allows to apply the model for data obtained in the course of numerical forecasting of bounds price tendencies, is suggested.

i Надоели баннеры? Вы всегда можете отключить рекламу.