книги / Оценка затрат на разработку программных средств
..pdfредактирования текста программ (РЕД). Различие в технологии разработки заключалось в том, что разработчики подсистем пер вой группы проводили разработку последовательно на двух ЭВМ: технологической ЭВМ БЭСМ-6 с использованием САРПО ТЕМП, а затем на объектной ЭВМ СМ 1800. В данном конкретном случае такая технология была вызвана отсутствием у разработчиков в те чение некоторого времени ЭВМ СМ 1800. Разработчики подсистем второй группы из другой организации проводили разработку под систем на объектной ЭВМ СМ 1800, используя ее как персональ ную ЭВМ.
Средний стаж коллектива разработчиков первой группы подси стем составлял 3,3 года, второй группы подсистем — 5 лет. Объем подсистем первой группы составлял около 28 тыс. команд (86 мо дулей), второй группы — около 10 тыс. команд (21 модуль). Объем программных средств в большой степени характеризует их слож ность, следовательно, подсистемы первой группы более сложны в разработке, чем второй. Значения перечисленных факторов, дейст вующих при разработке подсистем, привели к тому, что производи тельность труда разработчиков второй группы составила 12,6 команды на человеко-день, что в 1,3 раза выше, чем произво дительность труда разработчиков первой группы. Средняя произ водительность труда разработчиков системы ПРА в целом состави ла 5,8 команды на человеко-день, что в 1,3 раза меньше значения производительности труда разработчиков САРПО РУЗА-Б.
Производительность труда при разработке трансляторов для МВК «Эльбрус». Анализ процесса разработки и характеристик трансляторов МВК «Эльбрус» проводился [8] в широком плане по 142 показателям, распределенным в 9 разделах. Среди этих ха рактеристик приведены весьма приближенные оценки объема про грамм 10 трансляторов и трудоемкости их разработки. Все транс ляторы разрабатывались на базовом языке Эль-76 [39] различны ми коллективами высококвалифицированных специалистов. Использовались близкие по составу средства автоматизации раз работки и технологические процессы без формализованного регла ментирования. Оценки трудоемкости разработки проводились экс пертами без тщательного анализа состава участвовавших специ алистов и длительности работ, что определило их невысокую досто верность (около ± 5 чел.-лет). Представляет интерес сопоставле ние этих оценок с аналогичными для других разработок сложных ПС того же класса на языках высокого уровня.
Из 10 завершенных или завершавшихся разработок транслято ров только по транслятору с Кобола отсутствует оценка трудоем кости. Суммарный объем программ остальных анализировавшихся трансляторов '[8] составил 327 тыс. строк языка Эль-76. Полная ч трудоемкость их разработки около 316 человеко-лет. Таким обра зом, средняя производительность труда разработчиков составила
141
около 1 тыс. строк в год, или около 4 строк на человеко-день. Зна чения производительности труда для разных трансляторов колеб лются от 2 до 10 строк на человеко-день, однако для шести транс ляторов находятся в диапазоне 3-^6,5 строки на человеко-день.
Полученные данные целесообразно сравнить с фактографиче скими ТЭП разработки САРПО РУЗА, которая создавалась в ос новном на языке высокого уровня ПЛ-1 и близка по характеристи кам объекта разработки. Производительность труда при создании
системы РУЗА около 2 строк на человеко-день |
(см. табл. 3.6), что |
|
только вдвое меньше, чем при |
разработке |
трансляторов МВ К |
«Эльбрус». Это различие прежде |
всего обусловлено разными ме |
тодиками оценки, а главное, особенностями процесса разработки. В отличие от комплексной САРПО РУЗА, разработанной по едино му проекту, трансляторы МВК «Эльбрус» создавались как относи тельно небольшие, практически независимые компоненты при сравнительно простой связи с ядром системы программирования, что способствует уменьшению трудоемкости. Ряд трансляторов в этой системе оценивался до полного завершения государственных испытаний, что также вызывало увеличение рассчитываемой произ
водительности труда. На более высокую производительность труда при создании трансляторов, возможно, повлияла высокая квалифи кация специалистов, в то время как в составе разработчиков систе мы РУЗА было значительное число молодых специалистов. Кроме того, при анализе системы РУЗА учитывались трудозатраты не только непосредственных программистов, но и руководителей всего проекта, а также вспомогательного персонала. Таким образом, можно предположить, что если более тщательно учесть перечислен ные различия этих разработок, то значения производительности труда сблизятся.
Следовательно, производительность труда при применении язы ка Эль-76 близка к аналогичным показателям других языков высо кого уровня и наличие аппаратной поддержки трансляционных средств с языка Эль-76 практически не влияет на технико-эконо мические характеристики процесса разработки программ. Увеличе ние скорости трансляции программ в «Эльбрусе» по сравнению с ЕС ЭВМ, по-видимому, практически не отразилось на производи тельности труда разработчиков трансляторов, так как загрузки ЭВМ не достигали предельных, и, кроме того, разработка транс ляторов производилась в значительной части на ЭВМ БЭСМ-6 в режиме интерпретации.
Стоимость разработки сложных комплексов программ. В пре дыдущих разделах основное внимание сосредоточено на трудоемко сти непосредственной разработки программ CiP, в которой учиты вается труд специалистов-программистов, руководителей и вспо могательного персонала, составляющих коллектив конкретных разработчиков КП. Технико-экономические показатели этого кол
142
лектива являются определяющими при создании программ. Однако они составляют только часть совокупных затрат Ср при разработ ке КП. Значительная доля затрат приходится на программную Сэр и аппаратурную С4р оснащенность разработки. Учет этих составля ющих неудобно производить в единицах трудозатрат, так как ос новные их составляющие и коэффициенты в (2.5) и (2.6) обычно описываются стоимостными величинами. Также стоимостными ве личинами принято в экономике оценивать накладные расходы к основной трудоемкости разработчиков. В результате для оценки совокупных затрат на создание сложного КП целесообразно ис пользовать полную стоимость разработки в денежном выражении.
Следует также учитывать, что эта величина необходима при заклю чении договоров или контрактов на разработку программных средств.
В опытно-конструкторских работах накладные расходы, обус
ловленные |
затратами |
на |
административный |
и |
обслуживающий |
персонал |
предприятия, |
на |
аренду помещений, |
электроэнергию |
|
и т. п. составляют обычно |
[1,56] — 60—90% |
затрат на непосред |
ственную разработку. Эти дополнительные затраты учитываются посредством соответствующих коэффициентов, специфических для каждого предприятия, в средней зарплате специалистов-разработ- чиков. Принимая за исходную производительность труда непосред ственных разработчиков в командах (строках или операторах тек ста) на человеко-день и учитывая стоимость человеко-дня с на кладными расходами, можно получить стоимость непосредственной разработки одной команды в ПС.
Данные, полученные ретроспективным методом по трем клас сам программ, обработаны для получения стоимости непосредст венной разработки команды (оператора на ассемблере) с учетом
накладных |
|
расходов |
конкретных организацнй-разработчиков. |
В результате |
затраты |
на оплату труда разработчиков составили |
|
в среднем |
за |
команду |
[26]: для СРВ — 12 р., для ИПС — 4,6 р., |
для ППП |
(САРПО) — 1,7 р. Исходные данные характеризуются |
очень большой дисперсией, поэтому средние значения следует рас сматривать только как ориентиры, отражающие соотношение за трат для разных классов КП. Более достоверные данные получены фактографическим методом при создании технологических систем автоматизации. Непосредственная разработка в САРПО одного оператора ассемблера с учетом накладных расходов составила по системам: ЯУЗА-6Д— 3,3 р., РУЗА-Б — 1,5 р., ПРА— 1,7 р. Значе ния для ЯУЗА-6Д выше приведенных для ППП, так как ряд паке тов прикладных программ имел небольшой объем, что отразилось на снижении относительной стоимости их разработки.
В ретроспективных данных регистрировались затраты на созда ние стендов для комплексной отладки и на машинное время всех используемых в процессе разработки ЭВМ. Эти данные имеют
143
очень большой разброс и невысокую достоверность, однако они позволили выявить определенные тенденции. Как и следовало ожи дать, наибольшие абсолютные и относительные затраты на аппа ратурную оснащенность характерны для третьего класса программ (22 р. на оператор ассемблера, 64% общей стоимости разработки команды). При создании программ этого класса необходимы стен ды на базе реализующих ЭВМ для отладки в реальном масштабе времени, которые определяют значительную долю используемого машинного времени. Кроме того, заметную часть составляет ма шинное время технологических и моделирующих ЭВМ. Высокая стоимость оборудования и уникальный характер стендов для дина мической комплексной отладки КП третьего класса приводят к значительно более высокой стоимости единицы машинного времени по сравнению со стоимостью времени на универсальных технологи ческих ЭВМ, на которых преимущественно разрабатываются и реализуются КП второго класса. Следствием всего этого является высокая доля (две трети) затрат на машинное время в общей сто имости КП третьего класса.
Для подкласса ИПС и ППП затраты на машинное время со ставляют около половины в суммарной стоимости команды (54 и 43% соответственно). Снижение доли календарного машинного
времени при одновременном повышении уровня |
автоматизации |
(см. § 3.4) обусловлено значительным улучшением |
использования |
процессорного времени технологических и реализующих ЭВМ (см. § 4.2). Повышению производительности труда для этих классов программ сопутствует снижение затрат на машинное время до 5,4 р. на команду для ИПС и до 1,3 р. на команду для ППП. В ре зультате полная стоимость создания команды в рассматриваемых классах программ составляет: 34 р. — СРВ, 10 р. — ИПС, 3 р .—
ППП, что. в частности, подтверждает рациональность выделения лих классов ПС.
В приведенных оценках не учтена стоимость создания средств автоматизации разработки программ. Это обусловлено трудностью выделения небольшой составляющей С3р при относительно низком уровне автоматизации, особенно для КП третьего класса, КП вто рого класса разрабатывались при более высоком уровне автомати зации, однако технологические средства обычно являлись компо нентами операционных систем и не создавались специально для конкретного проекта КП. Поэтому в затратах на машинное время косвенно учитывается стоимость эксплуатации соответствующих САРПО. Гипотетические примеры оценки влияния на совокупную стоимость КП затрат на автоматизацию разработки программ при ведены в §4.1.
Затраты на имитацию внешней среды особенно существенны для КП третьего класса и могут значительно превышать полную стоимость разработки программ (см. § 4.2). Однако имеется прин-
144
ципнальная проблема, связанная с правомерностью включения за трат на натурные эксперименты и на имитацию внешней среды в стоимость разработки программ. Дело в том, что в таких экспери ментах отлаживаются не только программы, но и вся система уп равления для обработки информации. Кроме того, затраты на моделирующие ЭВМ и ПС, имитирующие внешнюю среду, распре деляются на несколько разработок аналогичных КП. Поэтому долю и абсолютную величину затрат на внешнюю среду, обуслов ленную только необходимостью отладки конкретных программ, выделить практически невозможно и вряд ли целесообразно. Вследствие этого затраты на комплексный имитационно-моделиру- ющий стенд и его эксплуатацию обычно не включают в стоимость разработки конкретного КП, однако учитывают как отдельную со ставляющую в полной стоимости разработки системы управления или обработки информации. В приведенные выше стоимостные оценки затраты на имитацию внешней среды не входят.
3.4.ВЛИЯНИЕ НЕКОТОРЫХ ФАКТОРОВ
НА ПРОИЗВОДИТЕЛЬНОСТЬ ТРУДА РАЗРАБОТЧИКОВ ПРОГРАММ
Общая характеристика целей и способов количественного ана лиза влияния факторов. Основной целью количественного анализа влияния факторов на производительность труда разработчиков программ по фактическим данным, собранным ретроспективным и фактографическим методами (см. табл. 3.2, 3.5—3.6), является про верка некоторых аналитических моделей, качественный анализ ко торых проведен во второй главе. В базе ретроспективных данных (см. табл. 3.2) представлены численные значения 23 факторов, ха рактеризующих программные средства, реализующие ЭВМ и технологическую среду процесса разработки ПС, из которых коли чественно получены оценки влияния восьми основных факторов.
В§ 3.3 приведено влияние на трудоемкость разработки и произво дительность труда разработчиков трех основных факторов: классов и подклассов ПС, объема КП и календарного времени разработки.
Вданном параграфе приведены результаты исследований влияния на производительность труда разработчиков программ еще пяти факторов: ограничений на память реализующей ЭВМ, общего уров ня автоматизации технологии разработки ПС, уровней языков программирования, методов доступа программистов к реализую щим и технологическим ЭВМ, уровня квалификации коллектива разработчиков I[26].
Для оценки влияния факторов на производительность труда в каждом подклассе ПС, в котором изменения значений исследуемо го фактора значительны, из полной совокупности данных состав ляется однородная группа по всем результативным и факторным
признакам, за исключением исследуемого. В этой группе для каж-
145
написано с использованием этих языков. Причинами недостаточ ного использования языков высокого уровня при разработке КП третьего класса являются следующие:
к моменту начала многих разработок ПС для СРВ языки высо кого уровня еще не получили достаточно широкого распростра нения;
практически все СРВ имели в своем составе ЭВМ с ограничен ными ресурсами по объему памяти для команд и данных, а также
производительности, что приводило к необходимости экономии ре сурсов ЭВМ для решения поставленных задач;
трансляторы с языков высокого уровня (Фортран, Алгол, ПЛ-1 и др.) давали большой коэффициент расширения объема програм мы по отношению к объему программы, написанной программи
стом средней квалификации на машинном языке или покомандном автокоде, а также не позволяли работать с упакованными данными.
Для определения влияния языков программирования различ ных уровней на производительность труда в каждой однородной группе, характеристики которых приведены в табл. 3.3, формиро вались для сопоставления однородные подгруппы по основным признакам, за исключением уровня языка программирования, вли яние которого исследовалось. Внутри каждой однородной под группы данных определялось среднее значение производительности труда для каждого уровня языка программирования. Выигрыш в производительности труда при переходе от машинных языков к автокодам в среднем для третьего класса КП составляет 41%.
Выигрыш в производительности труда при переходе от авто кодов к алгоритмическим языкам высокого уровня типа ПЛ-1, Фортран, Алгол при разработке ПС второго класса составляет 34%. При разработке КП третьего класса языки высокого уровня пока применяются в ограниченном объеме и только в сочетании с автокодами. Это обстоятельство не позволило выделить для КП третьего класса долю прироста производительности труда за счет применения языков высокого уровня.
Влияние методов доступа к технологическим ЭВМ. В боль шинстве случаев разработка КП для реализующей ЭВМ прово дится с использованием САРПО (см. § 1.2), расположенной на бо лее мощной по характеристикам технологической ЭВМ с другой системой команд (кросс-система) или с той же системой команд (резидент-система). Имеются разные методы доступа пользовате лей к работе с технологическими ЭВМ; пультовый (монопольное использование ЭВМ), пакетный при вводе заданий с перфокарт и многотерминальный с использованием дисплеев в диалоговом ре
жиме работы. Наиболее используемые методы доступа при разра ботке КП разных классов: для СРВ — пультовый (27% разработрк) и терминальный (36%); для ИПС — терминальный (67%); для ППП — терминальный (62%). В большинстве разработок
149
КП в той или иной степени использовались все три метода до
ступа.
Накопленная в базе данных информация позволила определить производительность труда разработчиков КП в зависимости от различных методов доступа. Для этого были сформированы одно родные группы, состоящие из КП, при разработке которых ис пользовался какой-то один из методов доступа, и в каждой груп пе рассчитана средняя производительность труда разработчиков. Полученные результаты представлены в табл. 3.7.
Из-за малого числа КП в каждой однородной группе статисти ческая точность расчетов невысокая, но тенденции изменения про
изводительности труда проявились достаточно четко и не противо речат здравому смыслу. Низкая производительность труда при ис пользовании пультового метода объясняется тем, что исследова лись разработки КП на больших технологических ЭВМ.. В этом случае использование ЭВМ одним разработчиком приводит к об разованию очереди для большого коллектива специалистов. Воз никает ложный «гдефицит» машинного времени, когда фактически
ресурсы ЭВМ имеются, а из-за неэффективного их использования большинство разработчиков простаивает (см. § 4.2). Это приво дит к увеличению сроков разработки, а следовательно, и трудоза трат, что и снижает производительность труда. Положение может кардинально измениться при переходе к профессиональным персо нальным ЭВМ, когда каждому программисту может быть предо ставлена технологическая ЭВМ для разработки КП. Тогда невы годный на больших ЭВМ пультовый метод станет основным и наи-
Т а б л и ц а 3.7
ВЛИЯНИЕ НА ПРОИЗВОДИТЕЛЬНОСТЬ ТРУДА РАЗЛИЧНЫХ МЕТОДОВ ДОСТУПА К ТЕХНОЛОГИЧЕСКИМ ЭВМ
|
|
Производительность труда при исполь |
Прирост, % |
производитель |
||
|
|
ности труда |
при использо |
|||
Классы |
зовании различных методов доступа, |
вании многотерминального |
||||
|
команд на чел.-день |
|
метода доступа |
|||
комплексов |
|
|
|
по сравнению |
||
программ |
|
|
терми |
|
|
|
|
|
пультовый |
пакетный |
с пультовым |
с пакетным |
|
|
|
нальный |
||||
СРВ |
до |
0,9 |
1,03 |
1,29 |
43 |
25 |
30 тыс. команд |
||||||
СРВ от 30 до |
|
|
|
|
|
|
100 |
тыс. ко |
|
1,69 |
2,13 |
|
27 |
манд |
более |
|
|
|||
СРВ |
1,16 |
- |
1,87 |
61 |
_ |
|
100 тыс. команд |
||||||
ППП |
|
- |
5,38 |
8,47 |
- |
57 |
150