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

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

CC BY
938
59
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГНОЗИРОВАНИЕ / ЭКОНОМИЧЕСКИЕ ХАРАКТЕРИСТИКИ / ФАКТОРЫ ПРОИЗВОДСТВА / ПРОГРАММНЫЕ ПРОДУКТЫ / МОДЕЛЬ СОСОМО II / ПРИМЕРЫ ПРОГНОЗИРОВАНИЯ / MODEL СОСОМО II / FORECASTING / ECONOMIC CHARACTERISTICS / FACTORS MANUFACTURE / SOFTWARE PRODUCTS / EXAMPLES OF FORECASTING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Липаев Владимир Васильевич

Изложены основы прогнозирования экономических характеристик производства программных продуктов и особенности прогнозирования с использованием модели СОСОМО II. Рассмотрено влияние характеристик специалистов, технологической и компьютерной среды при прогнозировании экономических характеристик производства. Представлены примеры прогнозирования экономических характеристик производства программных продуктов.

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

FORECASTING ECONOMIC CHARACTERISTICS OF MANUFACTURE OF CUSTOM-MADE SOFTWARE PRODUCTS

The basics of forecasting the economic characteristics of the production of software products and features with use of the prediction model СОСОМО II are given. The influence of characteristics of experts, technological and computer environment is considered at forecasting economic characteristics of manufacture. Examples of forecasting the economic characteristics manufacture of software products are presented.

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

ПРОГНОЗИРОВАНИЕ ЭКОНОМИЧЕСКИХ ХАРАКТЕРИСТИК ПРОИЗВОДСТВА ЗАКАЗНЫХ ПРОГРАММНЫХ ПРОДУКТОВ

УДК 004.41(075.8)

Владимир Васильевич Липаев,

Д.т.н., проф., главный науч. сотр. Институт системного программирования РАН. Тел. 499- 196-63-65. Эл. почта: vlip28@mail.ru

Изложены основы прогнозирования экономических характеристик производства программных продуктов и особенности прогнозирования с использованием модели СОСОМО II. Рассмотрено влияние характеристик специалистов, технологической и компьютерной среды при прогнозировании экономических характеристик призводства. Представлены примеры прогнозирования экономических характеристик производства программных продуктов.

Кпючевые слова: прогнозирование, экономические характеристики, факторы производства, программные продукты, модель СОСОМО II, примеры прогнозирования.

Vladimir V. Lipaev

PhD in Technological Science, Professor, Chief Research Scientist

Institute for System Programming Russian Academy of Sciences Те!.: 499- 196-63-65 E-mail: vlip28@mail.ru

FORECASTING ECONOMIC

CHARACTERISTICS OF MANUFACTURE OF CUSTOM-MADE SOFTWARE PRODUCTS

The basics of forecasting the economic characteristics of the production of software products and features with use of the prediction model СОСОМО II are given. The influence of characteristics of experts, technological and computer environment is considered at forecasting economic characteristics of manufacture. Examples of forecasting the economic characteristics manufacture of software products are presented.

Keywords: forecasting, economic characteristics, factors manufacture, software products, model СОСОМО II, examples of forecasting.

1. Основы прогнозирования экономических характеристик производства программных продуктов

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

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

Задача экономического прогнозирования проектов в программной инженерии заключается, прежде всего, в разработке, освоении и использовании методов для оценивания экономических характеристик производства сложных программных продуктов. Накоплен и опубликован значительный объем полезных методических и статистических данных об экономических характеристиках создания программных комплексов разных классов. Наиболее полные исследования, обобщения и экономические характеристики реализованных проектов отражены в двух книгах [1, 2] и в отечественных работах [3, 4]. Анализ этих данных совместно с результатами других авторов позволил заложить основы экономики производства сложных программных продуктов, методик прогнозирования необходимых ресурсов для разработки комплексов программ, их достоверного экономического планирования и формирования производственных процессов. Этим проблемам значительное внимание уделяется в программной инженерии при изложении практических методов производства сложных программных продуктов [5, 6, 7].

Цель экономического обоснования проектов комплексов программ состоит в помощи заказчикам и руководителям их производства определять:

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

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

- достаточно ли полно и корректно формализованы требования заказчика к проекту, на основе которых проводились оценки экономических характеристик, или их следует откорректировать и выполнить повторный анализ с уточненными исходными данными;

- есть ли возможность применить готовые повторно используемые компоненты, в каком относительном количестве от всего комплекса программ, и рентабельно ли их применять в конкретном проекте или весь проект целесообразно разра-

батывать как полностью новый.

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

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

- полной трудоемкости производства программного продукта - С (человеко-месяцы с указанием учитываемых факторов);

- полной длительности производства программного продукта Т (месяцы);

- участвовавшего среднего числа специалистов - N (человек);

- средней производительности труда Р специалистов (число строк на человеко-месяц).

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

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

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

Длительность производства заказных программных продуктов- определяет общие сроки производства сложных систем, а значит, быстроту реализации идей и методов в соответствии с требованиями контракта- . Однако-принципиально нерентабельно производство да- же очень сложных программных продуктов более 3 - 5 лет. С другой стороны, комплексы программ даже в несколько тысяч строк по полному технологическому циклу как продукции с испытаниями и документацией, - редко создаются за время, меньшее, чем полгода - - год. Таким образом, практически длительность производства программных продуктов ограничена сверху и снизу и одним из основных факторов, определяющим эти границы, является размер комплексов программ. Их цели, концептуальная основа и алгоритмы не должны устареть за время проектирования и производства. Даже для довольно сложных программных продуктов, имеющих размер свыше 500 тыс. строк, вряд ли допустима длительность разработки более 3 лет. Границу снизу определяют естественный технологический процесс коллективного производства и необходимость выполнения ряда скоор-

динированных работ на последовательных этапах, которые обес- печивают получение продукта требуемого качества.

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

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

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

- реализованные и обобщенные перечни выполненных работ, и реальные графики проведенного ранее производства совокупности программных продуктов различных классов;

- цели и содержание частных работ в процессе производства сложных комплексов программ и требования к их выполнению для обеспечения необходимого качества программных продуктов в целом;

- структура и содержание документов, являвшихся результатом выполнения частных производственных работ.

Экономические характеристики производства реальных завершенных проектов программных продуктов собираются, накапливаются и обрабатываются с начала 80-х годов в разных отечественных организациях и за рубежом [1, 2, 3]. Они позволили прогнозировать основные характеристики процессов производства сложных программных продуктов. На базе серьезных статистических исследований экономических характеристик жизненного цикла достаточно большой совокупности завершенных комплексов программ, осуще-

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

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

Наиболее подробно основные закономерности и влияние факторов на экономические характеристики процессов производства сложных программных продуктов в 80-е годы исследовались за рубежом. В 1981 году на основе исследования процессов разработки 63 проектов была опубликована модель прогнозирования экономических характеристик КОМОСТ [1]. В последующем, эта модель была развита, детализирована и опубликована как СОСОМО, а в 2000 году под названием СОСОМО II [2]. В этой модели, на основе анализа более 160 реальных проектов разработки программных продуктов различной сложности, уточнены рейтинги влияния выделенных факторов, на основные экономические характеристики производства. Обобщенные данные этих работ ниже используются и рекомендуются, как базовые, для прогнозирования затрат при создании сложных заказных программных продуктов. В [3] опубликованы результаты анализа экономических характеристик производства около 250 отечественных крупных программных продуктов.

Однако реальные экономические характеристики производства программных продуктов публикуются очень скупо и оперативно не обобща-

ются, по-видимому, они считаются коммерческой тайной предприятий, которым не выгодно раскрывать фактические недостатки и неэффективность своих производств. Так как предприятия и разработчики сложных комплексов программ не заинтересованы раскрывать реальную экономику выполненных проектов и производства программных продуктов, опубликованные экономические характеристики программных проектов носят отрывочный, не упорядоченный и не всегда достоверный характер. Опубликованы ориентиры, в которых средняя стоимость разработки одной строки текста программ реального времени, составляет около 100$, а стоимость программ особенно высокого качества для бортовых комплексов программ системы Шатл достигает 1000$. Для административных систем ориентиром может служить стоимость строки текста программ - около 20 - 50$.

2. Прогнозирование экономических характеристик производства программных продуктов с использованием модели СОСОМО II

Для экономического прогнозирования производства конкретного программного продукта ниже рекомендуется и применяется наиболее известная модель СОСОМО II [2, 6, 7], которая позволяет определять основные прогнозируемые экономические характеристики, а также уточнять некоторые дополнительные данные. Для прогнозирования трудоемкости проектирования и производства программных продуктов (человеко-месяцы) в модели СОСОМО II предложены следующие выражения:

C = A х Ï Е х Ï M (i)

(1)

где: А = 2,94; E = B + 0,01х £ F(J) ; B = 0,91. j=i

В детальной модели СОСОМО II на трудоемкость производства программного продукта учитывается влияние 22 факторов - таблица 1. Из них пять -масштабные факторы, характеризуются суммой F ( j ) в величинах степени влияния размера комплекса программ E. В уравнении оценки трудозатрат в модели СОСОМО II варьируются и применяются факторы масштабирования F (j) с целью обобщения воздействия основных параметров при прогнозирования производства программных продуктов. Произведение множителей M (i) - 17 факторов, непосредственно

влияет на изменение трудоемкости производства в выражении (1).

При использовании выражений (1) следует выбирать набор факторов (калибровать модель), имеющих значения коэффициентов изменения трудоемкости (КИТ) F (j) в соответствии с характеристиками конкретного проекта. Для выбора значений M (i) в соответствии с характеристиками конкретного продукта и среды разработки следует использовать таблицы рейтингов трудоемкости для выделенных четырех групп, представленных в таблице 1. Номинальными (средними) в выражении (1) принимаются значения M (i) = 1,0, при которых соответствующий фактор не влияет на трудоемкость производства программного продукта. Реально для различных конкретных проектов с учетом их особенностей при калибровании используется только около половины факторов приведенных в таблице 1.

Для прогнозирования длительности производства программных продуктов в модели СОСОМО II более детально рассмотрены исходные данные на основе анализа трудоемкости его производства. При этом рекомендуется учитывать те же наборы факторов, как в выражении (1), которые применяются при прогнозировании трудоемкости непосредственного производства программного продукта С:

T = G х CH (2)

где: G = 3,67; 5

H = D + 0,02 х 0,01х £ F ( j) =

j=1

= D + 0,02 x (E - B); D = 0,28

Максимальные величины каждого из КИТ производства программных продуктов экспериментально оценены в [2] при предположении, что остальные параметры зафиксированы. В действительности многие факторы взаимно коррелированны. Так, например, высокой сложности комплекса программ обычно сопутствует требование высокой безопасности и надежности функционирования, а также длительная эксплуатация. Ряд факторов отражается одновременно на нескольких КИТ.

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

n

ботки заново каждый раз, и сокращение интегральных затрат на производство продукта при их применении.

При калибровке модели СОСОМО II предлагаются следующие последовательные процедуры для конкретного проекта:

- устанавливаются значения и сумма рейтингов масштабных факторов Б при которой производится первичное оценивание экономических характеристик;

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

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

Преимущества модели СОСОМО II [2] состоят в следующем:

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

- предложены наборы характеристик для выбора возможных рейтингов для всей номенклатуры используемых факторов;

- фактические данные подбираются в соответствии с реальными проектами комплексов программ и факторами корректировки, которые соответствуют конкретному проекту и предприятию;

- метод является достаточно универсальным и может поддерживать различные размеры, режимы и уровни качества продуктов;

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

- результаты прогнозирования сопровождаются обязательной документацией;

- модель относительно проста в освоении и применении.

Недостатки модели СОСОМО II. Все результаты зависят от размера программного продукта - точность оценки размера, оказывает определяющее влияние на точность прогноза трудозатрат, длительности разработки, численности специалистов и производительности труда разработчиков. Не достаточно учитывается внешняя среда производ-

Таблица 1. Состав факторов детальной модели СОСОМО II

Сип-вол

П Г2 Г3 ¥4 Р5

Содержание фактора

Масштабные факторы

Новизна проекта.

Согласованность с требованиями и интерфейсами Управление рисками и архитектурой проекта Слаженность работы коллектива Технологическая зрелость обеспечения разработки

Определяется сумма рейтингов Е (}) для расчетов трудоемкости и длительности

М1 М2 МЗ М4 М5

М9 М10 М11 М12 М13 М14

М15 М16 М17

Мб М7 М8

Факторы, влияющие на затраты производства

Требования и характеристики объекта производства

Надежность функционирования

Размер базы данных

Сложность функций и структуры

Тр е бо в ан ие п о вт ор н ого и с п о льзо ванжя компонентов

Полнота и соответствие документации проекта

Характеристики коллектива специалистов

Квалификация аналитиков Квалификация программистов Стабильность коллектива Опыт работы по тематике проекта Опыт работы в инструментальной среде Опыт работы с языками программирования

Технологическая среда производства

Уровень инструментальной поддержки проекта Необходимость распределенной разработки проекта Ограничения длительности производства продукта

Аппаратурно-вычислительная среда производства

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

Ограниченность времени исполнения программ Ограниченность доступной оперативной памяти Изменчивость виртуальной среды разработки проекта

Определяется произведение рейтингов М (I) для расчетов трудоемкости и _длительности_

ства и применения программного продукта. Кроме того, модель СОСОМО II представляет трудозатраты по сумме всех этапов производства (от этапа планирования концепции до этапа поставки программного продукта). При использовании модели СОСОМО II предполагается наличие базового уровня трудозатрат, используемого при управлении конфигурацией и обеспечении качества. При прогнозировании экономических характеристик производства программных продуктов для систем реального времени необходимо учитывать затраты на создание моделей внешней среды, которые по величине могут быть сопоставимыми с затратами на основной программный продукт.

Наиболее значительные интегральные факторы модели СОСОМО II, пять масштабных факторов прогнозирования Б (|) могут существенно изменять трудоемкость и стоимость производства. Остальные 17 факторов М объединены в четыре группы модели СО-СОМО II (см. таблицу 1), могут влиять на экономические характеристики производства сложных программных про-

дуктов на уровне 5 - 10%. трудоемкости программных продуктов [2].

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

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

варианте рейтингов эти требования могут рассматриваться только как необязательные пожелания заказчика.

В модели СОСОМО II значительное внимание уделено влиянию качества организации и взаимодействия коллектива квалифицированных разработчиков Б4, на трудоемкость создания сложных программных продуктов (см. таблицу 1). В составе организационных характеристик коллектива рекомендуется учитывать: согласованность целей специалистов, участвующих в проекте, их психологическую совместимость и способность к дружной коллективной работе, наличие опыта работы в данном коллективе и другие объективные и субъективные свойства участников проекта. При этом большое значение может иметь личная мотивация и психологические особенности поведения специалистов при комплексной работе над проектированием и производством сложного программного продукта. Эти характеристики обобщены в показатель влияния коллективности - сложности взаимодействия специалистов Б4 в коллективе, которому сопоставлены рейтинги изменения трудоемкости производства продукта. Наилучшим считается непрерывное корректное взаимодействие организованной «команды» специалистов с большим опытом работы в данном коллективе при полной согласованности их целей, планов и методов работы. В остальных случаях может отсутствовать тесное взаимодействие отдельных специалистов, вследствие чего возрастает (даже в несколько раз) трудоемкость производства продукта.

В модели СОСОМО II для прогнозирования экономических характеристик при проектировании и производстве Б5, рекомендуется учитывать уровень методологии производства и обеспечения качества сложных программных комплексов на основе системы и модели оценки зрелости СММ! (см. [6, 7]), применяемых технологических процессов. На предприятиях, достигших высокого уровня зрелости, процессы производства должны принимать статус стандарта, фиксироваться в организационных структурах и определять производственную тактику и стратегию корпоративной культуры производства и системы обеспечения качества программных продуктов. Методология СММ! рекомендует большой комплекс процессов, который предприятие должно выполнять для приобретения, поставки, производства, использования и сопро-

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

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

В модели СОСОМО II значительное внимание уделено влиянию организации и взаимодействия коллектива специалистов на трудоемкость создания сложных программных продуктов (таблица 1). В СОСОМО II - изложены экспертные оценки для учета влияния квалификации и характеристик различных категорий специалистов на экономические характеристики производства программного продукта. Выбор и использование их значений при прогнозировании экономических характеристик требует высокой квалификации экспертов и детального знания особенностей коллектива специалистов и среды производства реального продукта. Для обеспечения возможности их использования при прогнозировании трудоемкости и длительности разработки сложных комплексов программ в модели СОСОМО II представлены соответствующие относительные рейтинги влияния основных категорий специалистов (М9 - М14 - таблица 1). При применении этих рейтингов следует учитывать, что некоторые из них взаимосвязаны, и целесообразно анализировать их корреляцию, возможность объединения или исключения при оценке реальных проектов и коллективов специалистов.

Среди ряда характеристик коллектива разработчиков, наибольшее влияние на трудоемкость оказывает тематическая и технологическая квалификация специалистов. Совместно эти факторы могут изменять трудоемкость производства программных продуктов на 30 - 40%. Организационное разделение специалистов, осуществляющих произ-

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

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

Тематическая квалификация и опыт специалистов - М12 в конкретной прикладной области, для которой разрабатывается программный продукт, приближенно может оцениваться продолжительностью работы по данной тематике. При низкой тематической квалификации допускаются наиболее грубые системные ошибки, требующие больших затрат при доработке программ. Приводимые в разных работах оценки показывают, что при изменении опыта работы в данной области от 1 до 10 лет производительность труда может повышаться в 1,5 - 2 раза.

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

Оценка производительности коллектива существенно зависит от стабильности состава и психологического климата (см. М11 в таблице 1) в коллективе специалистов и их способности к сотрудничеству и дружной совместной

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

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

Инструментальные системы - М15, поддерживающие производство, могут быть описаны качественными характеристиками и рейтингами, изменяющими трудоемкость в пределах приблизительно 20% от средней - номинальной. Уровень технологии и комплекса инструментальных средств особенно сильно влияет на экономику крупных программных продуктов. Затраты на технологию и программные средства автоматизации производства обычно являются весьма весомыми при использовании высокоэффективных автоматизированных технологий и инструментов. При экономическом обосновании проекта следует учитывать, что размер и сложность создаваемого продукта значительно влияет на выбор инструментальных средств и уровня автоматизации технологии, а также на их долю в общих затратах на производство. Возможны ситуации, при которых затраты

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

В некоторых комплексах программ реального времени на увеличение трудоемкости разработки (до 30 - 50%) может оказать ограничение вычислительных ресурсов оперативной памяти - М7 и производительности объектного компьютера - М6, на которой должен функционировать программный продукт (бортовые системы). Это привело к необходимости разрабатывать методы эффективного использования программами аппаратных ресурсов компьютеров. Влияние ограничения объема памяти реализующего компьютера - М7 в модели СОСОМО II, определяется долей от фактического размера доступной оперативной памяти, которая может использоваться для размещения программного продукта и данных при решении возлагаемых на компьютер совокупности функций с приемлемой для практики точностью и надежностью. На практике наибольшие технические трудности обычно вызывают ограничения производительности М6 реализующей заказным компьютером, для преодоления которых приходится не столько экономить программные ресурсы и сокращать размеры программного продукта, сколько искать пути увеличения производительности компьютера и эффективности их использования. При этом существенным ограничивающим фактором являются реальное время, в течение которого компьютер может быть предоставлен для решения данной задачи, или то время, в пределах которого целесообразно получить результаты (время отклика) для их практического использования.

Быстрый рост количества решаемых задач, их сложности и требуемой производительности вычислительных средств, стимулирует поиск путей удовлетворения потребностей заказных программных продуктов в ресурсах для

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

4. Примеры прогнозирования экономических характеристик производства программных продуктов

Ниже представлены и анализируются гипотетические варианты прогнозов экономических характеристик программных продуктов, рассчитанные с использованием программного пакета ПЛАПС-2 [4]. Пакет разработан на базе формул модели СОСОМО II - выражения (1) и (2) и предназначен для прогнозирования экономических характеристик производства проектов сложных программных продуктов, для чего пользователем отображается исходный размер комплекса программ. При использовании пакета возможно указание различных факторов и характеристик проекта, а результаты отражаются в окне «Экономические характеристики». В них содержатся значения прогнозов трудоемкости и длительности реализации проекта, а также производительности труда и оценка число специалистов, необходимых для производства прогнозируемого комплекса программ. Параметры модели логически сгруппированы и расположены на различных вкладках модели в соответствии со структурой таблицы 1.

Представленные в таблице 2 примеры вариантов могут использоваться как иллюстрации и ориентиры при прогнозах необходимых затрат на крупные программные продукты. Модель СО-СОМО II позволяет определять и уточнять некоторые исходные данные для экономического прогнозирования производства конкретного программного продукта. При этом обычно значения ряда факторов являются фиксированными в силу объективных условий про-

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

Ниже анализируются программные продукты размером от 50 до 1000 слов КЬОС (миллион строк программ). Модель СОСОМО II и перечень факторов, представленных в таблице 1 - четыре масштабных фактора (кроме управления рисками) и еще семнадцать факторов - М из этой таблицы. Для каждого варианта в зависимости от размеров прогнозируемых комплексов программ представлены графики трудоемкости - рис. 1, длительности производства - рис. 2 и число необходимых специалистов - рис. 3. Первые два варианта иллюстрируют влияние на прогнозируемые трудоемкость, длительность и количество специалистов, уровня зрелости СММ1 (2 или 4) и организации коллектива (свободная или жестко планируемая), повышаются по уровню квалификации, слаженности коллектива специалистов и их оснащенности технологией и инструментальными средствами. Варианты 3 - 5 отражают различную долю (%) повторного использования компонентов в высоко надежных программных продуктах реального времени при ограниченных ресурсах компьютеров (бортовые системы).

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

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

Таблица 2. Варианты прогнозирования экономических характеристик

Характеристики исходных данных Варианты

1 2 3 4 5

Новизна проекта Новый Новый Средняя Средняя Средняя

Соответствие требованиям Т2 Полное Полное Среднее Среднее Высокое

Коллективность производства Б4 Среднее Высокая Средняя Среднее Высокая

Зрелость производства Р5 Уровень 2 Уровень 4 Уровень 3 Уровень 3 Уровень 3

Факторы производства М Номинальные Номинальные Надежность, документы, оф. ресурс. Надежность, документы, огр. ресурс. Надежность, документы, огр. ресурс.

Повторное использование Нет Нет Нет 50% 80%

КЬОС

Рис. 1. Зависимость трудоемкости разработки от размера программною

продукта

Рис. 2. Зависимость длительности разработки от размера программного

продукта

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

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

Вариант 3 - должен быть создан в соответствии с требованиями заказчика на не совсем новый программный продукт реального времени средней сложности и надежности, компоненты которого допускают повторное использование в аналогичных проектах и их версиях. Производство продукта предстоит коллективу специалистов средней квалификации и слаженности, имеющему опыт создания подобных проектов. Процесс производства поддержан современным инструментарием и технологией на уровне 3 СММ! При надежном функционировании программного продукта в реальном времени, должны эффективно использоваться вычислительные ресурсы реализующего компьютера на уровне 90% по оперативной памяти и производительности.

Вариант 4 - в основном, подобен по характеристикам факторов варианту 3 , но базируется на применении 50% готовых программных компонентов, что отразилось на значительном изменении экономических характеристик. В наибольшей степени это отразилось на снижении трудоемкости и числа специалистов (почти в два раза), и относительно меньше (только на 10%) сократились длительность производства и производительность труда.

Вариант 5 - отличается от предыдущего более высоким уровнем повторного использования компонентов - 80%. Это отразилось на значительном снижении трудоемкости и необходимого числа специалистов (на 70%), а также на повышении производительности труда, при относительно небольшом сокращении длительности производства (только на 30%).

Характерными особенностями представленных графиков 1 и 3 является практически линейная зависимость

строк КЮС

Рис. 3. Зависимость количества необходимых специалистов от размера программного продукта

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

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

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

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

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

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

5. Заключение

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

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

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

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

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

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

Литература

1. Боэм Б.У Инженерное проектирование программного обеспечения. Пер. с англ./Под ред. А.А. Красилова. -М.: Радио и связь. 1985.

2. Boehm B.W. et al. Software cost estimation with COCOMO II. Prentice Hall PTR. New Jersey. 2000.

3. Липаев B.B., Потапов А.И. Оценка затрат на разработку программных средств. - М.: Финансы и статистика. 1988.

4. Липаев B.B. Экономика производства программных продуктов. Издание второе. - М.: СИНТЕГ. 2011.

5. Londeix B. Cost estimation for software development. Cornwall: Addison-Wesley. 1987.

6. Соммервилл И. Инженерия программного обеспечения. 6-е издание. Пер. с англ. - М.: Вильямс. 2002.

7. Фатрелл Р. Т., Шафер Д. Ф., Шафер Л. И. Управление программными проектами: достижение оптимального качества при минимальных затратах. Пер. с англ. - М.: Вильямс. 2003.

References

1. Barry W. Boehm. Software Engineering Economics. Prentice-Hall. 1981

2. Boehm B.W. et al. Software cost estimation with COCOMO II. Prentice Hall PTR. New Jersey. 2000.

3. Lipaev W, Potapov A.I. Asessment of expenses for a software tools development. 1988.

4. Lipaev W Economic manufactures software products. 2011.

5. Londeix B. Cost estimation for software development. Cornwall: Addison-Wesley. 1987.

6. Ian Sommeerville. Software Engineering. Sixth Edition. 2001.

7. R. Futrell, D.Shater, L. Shater. Quality Software Project Management. 2002.

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