книги / Оценка затрат на разработку программных средств
..pdfвой версии могут приобретать большое значение в жизненном цик ле всей серии КП:
С,с«^©/Яс(/7к.,р,). |
|
|
|
(2 .23) |
|
Таким образом, полные |
затраты на сопровождение в жизнен |
||||
ном цикле КП можно представить в виде |
|
|
|||
Сс- я 1с |
lg (Пк- 10~') H-aic С„ |
v |
+ Ntaf3l. (Пк, р,). |
(2.24) |
|
|
|
I = 1 |
|
|
|
Вследствие длительного срока сопровождения |
и |
эксплуатации |
|||
tc ~ /,(в ряде случаев 10—20 лет) |
и большого числа версий, содер |
||||
жащих |
результаты модернизаций, совокупные |
затраты на сопро |
вождение в некоторых случаях значительно превышают затраты на первичную разработку программ. Однако эти затраты распре деляются по всему интервалу времени сопровождения, вследствие чего при подготовке каждой версии затраты обычно меньше (влия ет коэффициент р,), чем на первичную разработку КП. Длительное сопровождение иногда вызывает неоднократную смену специали стов, осуществляющих сопровождение. При таких заменах появля ются значительные затраты на обучение новой группы сопровож дения, что вызывает рост общих затрат. В этих случаях заметную роль может играть уровень языка программирования. Применение стандартных ЯВУ при создании КП позволяет снижать относи тельные затраты на сопровождение, что особенно сильно прояв ляется при изменении коллектива специалистов. Экономика сопро вождения программ приобретает все большее значение по мере накопления высококачественных ПС длительного использования и должна явиться предметом специальных исследований.
Приведенные выражения (2.3) — (2.24) могут служить ориен тирами для предварительных оценок, однако необходимо критиче ски анализировать и уточнять зависимости и значения коэффициен тов для конкретных условий. Так как некоторые параметры входят одновременно в несколько составляющих совокупных затрат и из меняют их в различных направлениях, то возникает ряд оптимиза ционных задач. В принципе возможна постановка задачи глобаль ной минимизации совокупных затрат и потерь на всем жизненном цикле КП в зависимости от всех выделенных факторов. Для этого необходимы достоверные данные о коэффициентах а,- и dj, а также
о зависимостях составляющих затрат от параметров. Примеры ча стной оптимизации некоторых затрат при разработке КП приводят ся в гл. 4.
in
Г л а в а 3
РЕАЛЬНЫЕ ХАРАКТЕРИСТИКИ ПРОЦЕССА РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ
3.1. МЕТОДЫ СБОРА И ОБРАБОТКИ ДАННЫХ О РАЗРАБОТКАХ ПРОГРАММНЫХ СРЕДСТВ
Методы сбора первичных данных. Достоверность оценки ТЭП силь но зависит от методов сбора первичных данных о характеристиках разработки КП. Они определяют точность, полноту, иерархию и временную этапность собираемых данных. Сбор технико-экономи ческой информации о разработках программ может осуществлять ся экспертным, ретроспективным и фактографическим методами. Каждый из них имеет свои отличительные черты и область рацио нального применения.
Ме т о д э к с п е р т н ы х о ц е н о к [4] основывается на сборе информации путем опроса специалистов. Предполагается, что со бираемые экспертным опросом данные нигде до того не фиксиро вались, поэтому качество информации полностью определяется знаниями, памятью и эрудированностью экспертов. Сбор данных методом экспертных оценок не требует больших затрат. Собирае мая информация может быть сразу представлена в обобщенном виде, удобном для первичного анализа. Применение метода экс пертных оценок целесообразно в тех случаях, когда нет более до стоверных документальных источников информации и опрос специ алистов— единственный способ получить ее. Субъективизм в оцен ках экспертов может быть уменьшен при проведении опросов ме тодом Дельфи [4] и соответствующей математико-статистической обработкой данных.
Для реализации метода разрабатывается анкета опроса экс пертов, которая может включать открытые, полуоткрытые и закры тые вопросы. Для закрытых вопросов в анкете в соответствующей
графе приводится полный состав возможных ответов. Эксперт под черкивает необходимый ответ (или ответы). В открытых вопросах
ответ должен быть сформулирован экспертом при заполнении. В полуоткрытых вопросах наряду с подчеркиванием допускается собственная формулировка ответа. Опрос специалистов может про изводиться как очно в форме интервью, так и заочно при помощи анкет и методических указаний к ним. Для повышения достовер-
112
ности собираемой информации опрос экспертов может произво
диться в несколько этапов (два-три) с постепенным |
уточнением |
||
результатов. |
|
р е т р о с п е к т и в н о г о |
м е т о д а |
Характерной особенностью |
|||
[27] является сбор |
информации с использованием имеющейся до |
||
кументации после |
завершения |
разработки программ. |
Для этого |
подготавливаются таблица сбора статистических данных и методи ческие указания. Таблица сбора данных содержит графы с вопро сами, графы с единицами измерения величин, графы ответов и при мечания. Вопросы, помещаемые в таблицу, могут быть, как и в методе экспертных оценок, открытые, полуоткрытые и закрытые, однако последние преобладают. В методических указаниях разъ ясняется цель сбора информации, даются правила заполнения граф, определения основных терминов и понятий, а также приво дятся примеры ответов.
Сбор данных ретроспективным методом может быть проведен за относительно короткое время и не требует больших затрат на заполнение таблиц. Заполнение таблиц осуществляется разработ чиком на основании имеющихся у него документов. Недостатком метода является то, что часть необходимой информации обычно от сутствует в документации на КП. Такая информация, как условия разработки, характеристики технологического процесса, — не отра жается в документах, а финансовые документы, регистрирующие использование денежных ресурсов, и графики работ обычно унич тожаются по прошествии некоторого времени.
Ф а к т о г р а ф и ч е с к и й м е т о д с б о р а информации осно вывается на регистрации данных в момент их появления или по прошествии небольшого времени [105]. Сбор технико-экономиче ской информации происходит в процессе разработки ПС. Данные должны фиксировать выполнение совокупности работ за отчетный период (месяц, квартал), использование ресурсов (машинное вре мя, материалы, количество разработчиков, фонд заработной пла ты) и условия, влияющие на ход разработки. Фактографический метод сбора информации обладает рядом достоинств: высокой до стоверностью собираемой информации; возможностью получить глубокую детализацию данных; возможностью применения собран ной информации в форме сводного графика для контроля хода раз работки ПС практически на всех этапах технологического про цесса.
Для сбора данных фактографическим методом необходимо раз работать форму отчетов специалистов за некоторый промежуток времени и сводную форму для регистрации данных нарастающим итогом в хронологическом порядке. Форма отчета содержит гра фы: наименование выполненной работы из регламентированного перечня работ, трудоемкость проведения работы, использованные ресурсы и числовые значения факторов, имевших место за отчет
113
ный период. В отчетной форме необходимо указывать только те факторы, которые меняют свое значение на протяжении всего времени разработки ПС. По сравнению с предыдущими метода
ми, где собирается |
обобщенная |
информация, фактографический |
|
метод требует значительно больших затрат труда. |
|||
А в т о м а т и з а ц и я с б о р а |
т е х н и к о - э к о н о м и ч е с к о й |
||
ин ф о р м а ц и и . |
Сбор информации |
фактографическим мето |
|
дом — это процесс, сопровождающий |
весь цикл разработки ПС. |
Для автоматизации этой работы необходимо формализовать опера ции сбора данных, разработать специальные формы документов для регистрации текущего состояния разработки компонент КП и включить операции сбора в технологический график разработки программ. Значительная часть информации о разработке ПС, та кая, как объем и сложность разрабатываемых программ, язык программирования, использование машинного времени и другая, может быть собрана автоматически в процессе взаимодействия разработчиков с инструментальными средствами автоматизации разработки. Машинная обработка технико-экономической инфор мации начинается с момента кодирования первичных данных о разработке ПС и внесения их в автоматизированную базу данных
[6, 105]. Информация, хранимая в базе данных, |
сортируется |
||
и |
обрабатывается |
с целью получения обобщенных |
результатов |
и |
выдачи их для |
анализа разработчикам ПС. Сбор информации |
осуществляется в процессе функционирования системы автомати зации разработки программ (см. § 1.2) [9, 68].
О с о б е н н о с т и с б о р а т е х н и к о - э к о н о м и ч е с к о й ин ф о р м а ц и и . Первичная информация о разработках ПС, собирае мая в соответствии с ретроспективным методом, может быть пред
ставлена тремя группами статистических данных (табл. 3.1) [27]. В первую группу входят характеристики разработанных программ ных средств. Вторую группу составляют ресурсы разработки. В третью группу входят характеристики технологического процесса
и используемых средств автоматизации разработки. Первая и вто рая группы данных необходимы для проведения количественных оценок затрат на разработку КП. Они являются исходными для расчета технико-экономических показателей разработки, таких, как производительность труда и стоимость единицы программной продукции. Данные этих групп могут также рассматриваться в роли факторов, влияющих на затраты. Так, объем КП влияет на его стоимость, а дефицит ресурсов отражается на длительности разработки (см. § 2.2.).
Третья группа данных отражает основную совокупность факто ров, влияющих на ТЭП разработки ПС. Факторы характеризуют технологический процесс, его структуру и качественные характери стики средств автоматизации этого процесса. С целью более точ ного определения уровня автоматизации и эффективности техноло-
114
Т а б л и ц а 3.1
СТРУКТУРА И ОБЩИЕ ХАРАКТЕРИСТИКИ СТАТИСТИЧЕСКИХ ДАННЫХ О РАЗРАБОТКЕ КП
Наименование групп
I. Характеристики КП
И. Ресурсы разра ботки
Наименование характеристик
Функциональное назначение ПС:
автоматизированная система обработки ин формации и управления, работающая в рс-
альном масштабе времени (третий класс) многоабонентная информационно-поисковая система сбора, переработки, хранения и выдачи информации пакет прикладных программ общего назначения
система автоматизации разработки программного обеспечения Объем представленных на испытания про
грамм в командах и строках текста с указаннем уровня языка программирования
Объем заимствованного программного обеспечения из других КП в данном комплексе
Число компонент в комплексе программ: программных и информационных модулей
Объем вспомогательных ПС, созданных в процессе разработки данного КП (программы имитации, диагностики ошибок, регистрации и обработки)
Длительность основного цикла обработки информации, с
Допустимое время ожидания отклика систе мы при обработке наиболее приоритетных со общений, с
Число типов сообщений, обрабатываемых КП
Характеристики ЭВМ, на которой функцио нирует разработанный КП:
число уровней хранения программ и данных тнп запоминающего устройства команд Степень использования производительности
ипамяти Число предполагаемых к внедрению экземп
ляров кп Время разработки КП:
дата начала разработки технического зада ния на КП дата передачи КП на государственные или
межведомственные испытания Среднее число сотрудников, принимавших
участие в разработке КП: руководители и си стемные аналитики, программисты, вспомога тельный персонал
Среднемесячная заработная плата на одного сотрудника подразделения, руб.
Условное
обозначение
СРВ
ИПС
ППП
САРПО
Як
Я*
Я»
Та
Тот
Р
N
(в
Гн
5
3
115
|
|
Продолжение |
Наименование групп |
Наименование характеристик |
Условное |
обозначение |
|
Средний процент накладных расходов (%) |
||||
|
Количество фактически затраченного на раз |
||||
|
работку КП машинного времени, ч: |
|
|||
|
на технологической ЭВМ |
|
|||
|
на стенде динамической отладки или на реа- |
||||
III. Характерней- |
лизующей ЭВМ |
|
|
||
Тип средств автоматизации разработки про- |
|||||
ки среды разра- |
граммного |
обеспечения: |
резидент-системы, |
||
боткн КП |
кросс-системы |
|
|
|
|
|
Коэффициент расширения транслятора с ал |
||||
|
горитмического |
языка (относительная величи |
|||
|
на) |
|
|
программ, |
использу |
|
Объем технологических |
||||
|
емых для автоматизации процесса разработки |
||||
|
Методы доступа программистов к ЭВМ при |
||||
|
разработке данного КП |
|
|
||
|
Среднее число лет работы коллектива специа |
||||
|
листов на момент начала данной разработки: |
||||
|
по решению |
аналогичных функциональных |
|||
|
задач (тематический стаж) |
|
|||
|
по работе с операционной системой и сред |
||||
|
ствами автоматизации, использованными при |
||||
|
разработке |
КП (технологический |
стаж) |
||
|
в области |
разработки |
программ |
(програм |
мистский стаж)
Ки«
Туех
Т'лин
Кхр
я х
/тем
/тег
/ар
гии разработки КП применяются таблицы сбора данных о средст вах автоматизации с детализированными закрытыми вопросами. Примерный состав средств автоматизации разработки программ с классификацией по уровням технологии представлен в табл. 1.3. Приведенный перечень средств может использоваться для анкети рования технологического обеспечения процессов разработки конк ретных КП в виде дополнительной таблицы. Ресурсы разработки и характеристики технологического процесса собираются на весь проект в целом, а также по этапам технологического процесса. В последнем случае анализ данных позволяет произвести оценку структуры технологического процесса и эффективности инструмен тальных средств, применяемых на каждом из этапов.
Для сбора данных фактографическим методом и их последую
щего накопления и хранения используются две формы таблиц: первичная и вторичная. В первичную форму ежемесячного отчета
разработчиками заносятся следующие данные: наименование ис полненной работы в соответствии с типовыми этапами и видами работ по разработке КП; время, затраченное на каждую работу; степень завершенности работы в процентах и степень обеспеченно-
116
сти машинным временем в процентах. Две последние величины яв ляются приближенными оценками, так как определяются разра ботчиками в условиях некоторой неопределенности. Во вторичную форму в хронологическом порядке ежемесячно заносятся предвари
тельно обработанные и обобщенные данные из первичных форм от четности, а также некоторые дополнительные сведения. В состав регистрируемых данных обычно входят: плановые и ежемесячно фиксируемые фактические сроки завершения работ; среднее за ме сяц количество разработчиков, участвующих в выполнении данного
вида работы; стаж |
разработчиков |
тематический, технологический |
и программистский |
на момент |
начала разработки; заработная |
плата разработчиков. В зависимости от уровня иерархии проводи мых работ, как правило, заполняются три типа вторичных форм по разработке: модулей, групп модулей и КП в целом (общесистем ные работы). По завершении приемо-сдаточных испытаний групп модулей в момент передачи их в подразделение комплексной от ладки фиксируются данные об объеме модулей и групп модулей (в операторах исходного текста и командах для загрузки в память реализующей ЭВМ ).
Наиболее существенными особенностями сбора технико-эконо
мической информации о ПС являются: многоуровневый характер информации, сложность численного измерения объема ПС, малый опыт анализа экономики, отсутствие общепринятой терминологии и психологические аспекты при сборе данных. Сбор данных целе сообразно проводить на основе трех иерархических уровней. На первом уровне собираются ретроспективным методом обобщенные данные о разработке КП в целом. На втором уровне данные соби раются в основном фактографическим методом раздельно по эта пам технологического процесса разработки КП. На третьем уровне сбор данных производится фактографическим методом по компо нентам (подсистемам, модулям) ПС и операциям технологическо го процесса.
Психологические аспекты, сбора информации оказывают суще
ственное влияние на качество собираемой информации и на трудо емкость сбора. Руководители разработки ПС, понимая, что сбор такой информации может вскрыть некоторые негативные стороны разработки, иногда неохотно дают сведения и участвуют в этой работе. Сбор технико-экономической информации (особенно фак тографическим методом) делает разработку открытой, лишает разработчиков завесы «таинственности», что, по их представлению, может лишить их некоторых преимуществ.
Расчет технико-экономических показателен разработки КП. На
основе статистической информации о разработках КП могут быть рассчитаны: общая трудоемкость разработки, производительность труда разработчиков программ, удельная стоимость разработки и затраты машинного времени на единицу объема программ [26].
117
Для расчета ТЭП разработки КП использовались первичные дан ные, приведенные в табл. 3.1. Трудоемкость разработки и изготов ления опытного образца i-ro комплекса программ
Clpi = |
Sr/pj-250 [чел.-дней], |
(3.1) |
|
г д е 5, |
— среднее число разработчиков, принимавших участие в разработке |
КП; |
|
/р = /к—ti\ |
— длительность разработки i-го КП, годы; 250 — среднее число ра |
||
бочих дней в году. |
|
||
Производительность труда разработчиков КП: |
|
||
р _ |
П«1 |
Гкоманд 1 |
(3.2) |
|
С1Р, |
[чел.-дней J |
|
Денежные затраты на разработку КП состоят из затрат на оплату труда разработчиков Dip г- и стоимости использованного ма шинного времени D 2p i'
Dpi = D ipi + D2v,i [(руб.)], |
(3.3) |
|
которые можно представить выражениями: |
||
0 Ipl- 3 , . S , . / pf.1 2 .(l+ |
-^ -)[(р у б .)]; |
(3.4) |
^ 2 рi = ^тех i Н" ^дин i = |
^^тсх i *^тех i -{- Д0 |
дип i •^дин i> |
где DTtxi и D^Kni — соответственно стоимости |
использованного машинного вре |
мени на технологической ЭВМ и на стенде с реализующей ЭВМ при отладке КП в реальном масштабе времени; А£>теи и дЬдян» — соответственно стоимости одного часа машинного времени
на технологической ЭВМ и на стенде с реализующей ЭВМ.
Для проведения сопоставительного анализа ТЭП по различным классам КП, средствам автоматизации технологических процессов и другим характеристикам разработки ПС для общих совокупно стей и однородных групп рассчитываются средние ТЭП: производи
тельность труда Р, стоимость разработки одной команды DK, дли
тельность разработки комплекса программ 7Р, затраты машинного
времени на одну команду /МкСредние значения программистского, технологического и тема
тического стажа работы специалистов-разработчиков для i-го КП:
5 |
0 |
|
О= - £ = ! - . |
(3.5) |
|
51 |
|
где tj — индивидуальный стаж работы /-го специалиста, годы.
На основании данных о различных видах стажа определяется средний обобщенный стаж работы коллектива разработчиков i-ro КП:
CPi |
inpj-Мтех j -Нтем i |
(3.6) |
|
3 |
|||
|
|
118
Таким образом, каждый вид стажа имеет одинаковый вес в факторе обобщенного стажа работы (не отдается предпочтение ни одному из видов стажа).
О с о б е н н о с т и п р и м е н е н и я м а т е м а т и к о - с т а т и с т и ч е с к и х м е т о д о в д л я о б р а б о т к и и с х о д н ы х д а н- н ы х. При интегральном подходе к объекту исследования, когда рассматривается разработка КП в целом, он представляет собой многомерный объект, характеризующийся большим числом факто ров, влияющих на технико-экономические показатели его разработ ки (см. § 2.2). Сложность программ как объектов экономических ис следований требует тщательного подхода к выбору и применению математических методов с целью получения количественных зависи мостей ТЭП от основных факторов. При выборе методов для тех нико-экономического анализа разработок программных средств можно воспользоваться подходами, разработанными для экономи ческого анализа сложных объектов [41, 45].
Одним из математических требований, предъявляемых к методу корреляции, является однородность в качественном и количествен
ном отношениях статистической совокупности, используемой для корреляционного анализа. Она достигается путем статистических группировок. Многофакторный характер разработки ПС приводит к тому, что даже при качественной однородности, присущей тому или иному классу или подклассу программ, как правило, есть ко личественная неоднородность из-за неучтенных факторов, т. е. большая вариация самих показателей. Вследствие этого желатель но выделение количественно однородных групп в рамках качест венной однородности.
При обработке данных о КП должны использоваться как пол ные совокупности данных, составляющие качественно однородные группы, так и однородные совокупности, составляющие количест венно однородные группы. Обработка полных совокупностей дан ных позволяет сохранить весь диапазон изменения ТЭП и фактор ных признаков, что является необходимым условием проведения достоверного анализа результатов сбора и обработки данных и выработки рекомендаций. В отдельных случаях, когда позволяет объем статистики, сделаны попытки образования количественно однородных групп. Обработка данных в таких группах произво дится с целью количественной оценки влияния некоторых факто ров на ТЭП разработки КП.
Основы обработки статистических данных о разработках комп лексов программ. С учетом особенностей при^ененйя корреляцион но-регрессионного метода для анализа разработок комплексов про грамм могут быть использованы две последовательно усложняю щиеся схемы обработки статистических данных. Первая схема (рис. 3.1) ограничивается анализом парных зависимостей между
результативными и факторными признаками, а вторая схема обес-
119
печнвает более полный учет факторных признаков путем примене ния множественных регрессионных моделей.
Для показателя производительности труда и ряда факторов, влияющих на этот показатель, строятся гистограммы с целью вы явления закона распределения этих величин. Кроме того, опреде ляются средние значения, среднеквадратические отклонения, мак симальные и минимальные значения показателей и факторов. Про изводится анализ общей статистической совокупности на качест венную однородность и выделение однородных групп. Качествен ная однородность статистической совокупности характеризуется
1
Рис. 3.1. Блок-схема анализа парных зависимостей между резуль тативными и факторными признаками
120