Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Оценка затрат на разработку программных средств

..pdf
Скачиваний:
10
Добавлен:
12.11.2023
Размер:
11.13 Mб
Скачать

Рис. 3.3. Распределение КП по трудоемкости их разработки Сц, а) — третий класс СРВ;

б) — подклассы ИПС (-------- ) и ППП (—)

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

Для совокупностей КП, характеристики которых приведены в табл. 3.3, исследовалась зависимость трудоемкости разработки про­ грамм от их объемов. В первом приближении объем программ от­ ражает их сложность [53, 23]. Для аппроксимации зависимости трудоемкости от объема использована степенная функция вида у = а х ь. Выбор такой функции обусловлен тем, что линейная аппро­ ксимация вида y — c-\-dx менее подходит для аналитического опи­

сания зависимости «трудоемкость — объем» по следующим сообра­ жениям. При разработке КП большого объема в значительной сте­ пени должна возрастать сложность разработки по сравнению с КП малого объема, так как в больших программах существенно

5*

131

усложняются взаимосвязи компонент по информации и управле­ нию, а также становятся более трудоемкими процессы планирова­ ния и управления в ходе разработки (см. § 2.2). Выдвинутая гипо­ теза о возрастании трудоемкости разработки с ростом объема КП быстрее, чем по линейному закону, справедлива, если показатель степени в полученном уравнении регрессии 6 > 1. По методу наи­ меньших квадратов определены коэффициенты «а» и «6» в урав­ нениях степенной регрессии, показывающие характер зависимости трудоемкости от объема для КП разных классов:

Cip5= 0,012-Як87 —для третьего класса;

 

С(1р11 = 0,022-Як’73 — для

подкласса

ИПС;

(3.7)

C(,2p2)=0,007-/7£’fll— для

подкласса

ППП.

 

Индексы корреляции (теоретические корреляционные отноше­ ния) для каждого уравнения регрессии равны соответственно 0,98, 0,62 и 0,63 и свидетельствуют о хорошем согласовании аппрокси­ мирующих функций с экспериментальными данными. Как видно из уравнений регрессии, показатели степени для обоих классов КП меньше единицы, т. е. выдвинутая гипотеза о характере роста тру­

доемкости с возрастанием

объемов

КП,

измеренных

в командах,

при обработке ретроспективных

данных

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

В [73, 105] также получены значения

коэффициента

Ь< 1 ;

в [6]

получены коэффициенты

1 для

классов

КП, практически

ана­

логичных рассматриваемым в данной главе. Такая вариация зави­ симостей может быть объяснена различными технологиями и усло­ виями разработки, выбором различных единиц измерения и мето­ дик определения объемов КП. При разработке КП большого объема делаются большие затраты на создание технологии, средств автоматизации и унификации разработки КП, чем при разработке малых КП. Небольшие КП часто разрабатываются не­ опытными коллективами, которые к тому же пренебрегают автома­ тизацией технологии и основными современными методами струк­ турного проектирования программ. Кроме того, в анализируемой выборке представлены все КП независимо от времени проведения их разработки. Так как малые КП во многих случаях относятся к первому временному периоду, когда уровень автоматизации техно­ логии был низок, то и трудоемкость их разработки была достаточ­ но высокой. Эти обстоятельства приводят к тому, что возрастает трудоемкость создания относительно небольших КП, а рост сум­ марных затрат на разработку крупных КП замедляется, что отра­ жается на величине показателя степени «Ь», значения которого в

анализируемых выборках получены меньше единицы.

Если бы представилась возможность получить ТЭП по однород­ ной выборке КП разного объема, разработанных по единой техно­

132

логии на более или менее одном интервале времени, то, конечно, трудоемкость возрастала бы при увеличении /7„ с коэффициентом 6 > 1 . Это, в частности, отражено в § 2.2 коэффициентом Си (см. выражение (2.7)). На практике часто пользуются упрощенной

линейной зависимостью трудозатрат от объема КП (b = 1). Такое

упрощение при недостаточном объеме статистических данных и от­ сутствии данных по заранее обусловленным (управляемым) значе­ ниям факторов разработки КП можно считать вполне допустимым.

На рис. 3.4 по уравнениям регрессии (3.7) построены в лога­ рифмическом масштабе зависимости трудозатрат от объема для

КП разных классов. Третий и второй классы КП, а внутри второго класса подклассы ИПС и ППП отчетливо различаются по трудо­ емкостям разработки. Однако оценочные уравнения трудоемкости (3.7) в зависимости от одной переменной не отличаются высокой точностью. Более высокой точности оценки трудоемкости разработ­ ки только по одной переменной — объему КП, по-видимому, не­ возможно получить, так как процесс разработки КП зависит от 0олыного числа факторов (см. § 2.2), которые следует учитывать при оценке трудоемкости. Проведено сравнение оценок трудоемко­ сти по уравнениям регрессии (3.7) с фактическими данными для КП второго и третьего классов. Точность оценки трудоемкости по уравнениям регрессии составляет 50% только для 50% рассмотрен­ ных КП.

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

С,р

Рис. 3.4. Трудоемкость разработки Ctp (чел.-годы) в зависимости от объема комплекса программ Пк (команды) для разных классов КП: 1 — третий класс; 2 — подкласс ИПС; 3 — подкласс ППП

133

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

Для анализа различий в характере зависимости трудоемкости от объема при разработке конкретных КП подкласса ППП получе­ ны регрессионные зависимости трудоемкости разработки компо­ нент (подсистем), входящих в состав САРПО РУЗА и ПРА, от их объема в командах

Cl? = \2,ё-П 1'™—САРПО РУЗА;

(3.8а)

С,1") =2,6-Л £'05^САРПО ПРА

 

 

 

 

и от объема в числе операторов исходного текста

 

 

 

С’»’ = 23,6-/7i'1*

— САРПО РУЗА;

 

 

(3.86)

С\'£ = 0,38-Я!,'01

—САРПО ПРА.

 

 

 

 

 

 

При анализе данных САРПО РУЗА были исключены характе­

ристики четырех компонент (НАС, УВД,

АСА

и

ПБС;

см.

табл. 3.4), значительно отличавшихся технологией

разработки

и

квалификацией

специалистов, т. е. уравнения

регрессии

(3.8а)

и

(3.86) получены для 17 наиболее однородных по характеристикам разработки компонент. Выявлено значительное различие коэффи­ циентов корреляции, характеризующих степень связи трудоемко­ сти разработки с объемом программ, выраженных в различных единицах измерения. Трудоемкость имеет высокую корреляцию с объемом компонент САРПО РУЗА (0,90) и ПРА (0,7), измеряе­ мых числом операторов исходного текста. Корреляция трудоемко­ сти с объемом программ, измеренных в машинных командах, значи­ тельно ниже (соответственно 0,62 и 0,6). Тем самым подтвержда­ ется (см. § 1.3), что зависимость трудоемкости от объема более точна (в статистическом смысле) при измерении объема программ в операторах (или строках) исходного текста, чем при измерении

134

в машинных командах. ^

С*

7

 

 

 

 

 

Это связано с тем, что

 

 

 

 

 

а

 

на

величину

объема

 

 

 

 

 

 

 

программной

компо­ 30

 

 

 

 

 

 

ненты,

выраженного в

 

 

 

 

 

 

 

машинных

командах, 20

 

 

 

 

 

 

влияют

 

дополнитель­

 

 

 

 

1

 

 

ные

дестабилизирую­ 10 -

 

 

 

 

 

 

 

 

 

 

 

щие

факторы: коэффи­

 

1

 

 

 

 

 

циент расширения тран­

 

1

 

 

I

 

 

слятора,

который

при

 

и

 

 

 

Этапы

1

2 и 3

4

5

6

7 и 8

строгом

подходе к

его

 

определению имеет раз40р с\

 

 

 

 

 

 

личные

значения в за­

 

 

 

 

 

 

 

висимости

от

характе30

 

 

 

 

 

 

 

ра программной компо­

 

 

 

 

 

 

 

ненты, а также различ­, 20

 

 

 

 

 

 

 

ные

виды

архитектур

 

 

 

 

 

 

 

реализующих ЭВМ.

 

 

 

 

 

 

 

 

Для

 

подсистем ю

 

 

 

 

 

 

 

САРПО

РУЗА и ПРА

 

 

 

 

 

 

 

при

измерении

их объ­

 

 

 

 

 

 

■ Этапы

емов

в операторах

ис­

 

2 и З

 

 

 

? и к

 

 

 

 

 

ходного

текста

получе­

 

 

 

 

 

 

 

ны значения коэффици­

Рис. 3.5. Распределение трудозатрат на разра­

ента b> 1, что наиболее

ботку

САРПО

РУЗА

и

ПРА

по укрупненным

правильно отражает ха­

этапам процесса разработки:

 

 

рактер

зависимости

а)------ РУЗА-А,-------- РУЗА-Б;

 

б)------ САРПО ПРА

 

 

трудоемкости

от обь-

 

 

 

 

 

 

 

ема: более быстрое, чем по линейному закону, возрастание трудо­ емкости с ростом объема (при прочих равных условиях). Это обстоятельство дополнительно подтверждает положения § 1.3. в котором обосновывается, что при расчете ТЭП разработки ПС необходимо измерять объемы программ в операторах (или стро­ ках) исходного текста, а не в машинных командах.

По фактографическому методу сбора данных получены реаль­ ные характеристики распределения трудоемкостей САРПО РУЗА и ПРА (рис. 3.5). В соответствии с общей технологической схемой разработки ПС (см. § 1.2) и с учетом особенностей разработки САРПО на оси абсцисс отображены этапы разработки КП. Приве­ денные диаграммы свидетельствуют об определенной стабильно­ сти во времени распределения трудозатрат по этапам разработки

(разработка системы РУЗА-А закончена в 1982 г., а системы РУЗА-Б — в 1985 г.).

Малая доля трудозатрат на начальных этапах разработки объ­ ясняется большой концептуальной и алгоритмической преемствен

135

ностью систем РУЗА с САРПО ЯУЗА-6Д, а также тем, что эти раз­ работки осуществлялись почти одним и тем же коллективом. Боль­ шие трудозатраты получены на этапах программирования, авто­ номной и комплексной отладке модулей и подсистем (этапы 4 и 5) в связи с тем, что коллектив разработчиков впервые осваивал языки программирования ассемблер и ПЛ-1, работу с ОС ЕС и аппаратуру ЕС ЭВМ, т. е. программистский и технологический стаж у многих разработчиков был мал. Некоторое увеличение тру­ дозатрат по системе РУЗА-Б на 7-м этапе (на 4%) объясняется тем, что РУЗА-Б создавалась на базе РУЗА-А и часть ее подси­ стем дорабатывалась в процессе комплексной отладки САРПО РУЗА-Б без отнесения этих трудозатрат на 4-й и 5-й этапы.

Распределение трудозатрат по этапам разработки для системы ПРА мало отличается от подобных распределений для систем РУЗА-А и РУЗА-Б. Возросли до 8% трудозатраты на разработку концепций и системный анализ (этап 1) , так как создание системы автоматизации разработки программного обеспечения на базе про­ фессиональных персональных ЭВМ была для коллектива разра­ ботчиков новой задачей. На структурное проектирование КП и под­ готовку технологических средств разработки (этапы 2 и 3) потре­ бовались меньшие относительные трудозатраты, чем при разработ­ ке САРПО РУЗА, так как у большинства разработчиков был зна­ чительный опыт в разработке аналогичных подсистем (большой тематический стаж) и в технологических средствах разработки.

Рассмотренные распределения внешне подобны представлен­ ным на рис. 2.3 и 2.4. Однако в данном случае (рис. 3.5) значи­ тельно больше доля затрат на этапах программирования и авто­ номной отладки. Кроме перечисленных выше обстоятельств, сыгра­ ло роль отсутствие динамической комплексной отладки и соответ­ ствующих испытаний с реальными источниками информации, что характерно для КП третьего класса. В результате затраты на 4-м

и5-м этапах для КП второго класса достигли 70% общих затрат,

вто время как на рис. 2.3 для КП третьего класса они составляют около 50%. Приведенные оценки могут служить ориентирами при прогнозировании суммарных затрат. Кроме того, они показывают

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

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

Производительность труда при разработке КП разных классов.

На рис. 3.6 приведены гистограммы распределения разработок КП по производительности труда. Для класса СРВ и подкласса ИПС гистограммы близки по внешнему виду к распределению Рэлея.

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

136

Л команд на чел.-день

к

л

а

с

с

а

(

<

Р> " «

изводительности труда и небольшого их числа в области больших значений, до 9 команд на человеко-день для СРВ.

Для подкласса ППП распределение разработок близко к рав­ номерному закону распределения с диапазоном изменения произ­

водительности труда от 1-й до 21-й команды на человеко-день. Такой характер распределения можно объяснить следующими при­ чинами. К подклассу ППП отнесены различные системы автомати­ зации проектирования, пакеты прикладных программ общего на­

значения, элементы операционных систем, т.

е. спектр типов

комплексов программ достаточно широк. Кроме

того, разработки

некоторых КП из этого подкласса четко не

формализованы

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

Для выявления изменения производительности труда во време­ ни анализировались динамические ряды с привязкой среднего зна­ чения производительности, полученного при разработке данного КП, к времени начала разработки t„. Привязка к началу разра­

ботки вызвана тем, что технология, состав и типы средств автома­ тизации разработки ПС выбираются вначале разработки и, как правило, не меняются в ходе проектирования из-за сложности их освоения и постоянно возрастающего задела по компонентам КП.

Отбор данных для расчета уравнений, характеризующих изме­ нение производительности труда во времени, проводился согласно требованиям однородности, т. е. коэффициент вариации индивиду­ альных значений производительности труда для каждого года не должен был превышать 0,65. В качестве средней была взята скользящая средняя на интервале в 3 года, т. е. скользящая сред­ няя рассчитывалась по значениям производительности труда за предыдущий, настоящий и последующий год. Поэтому отдельные комплексы программ, при разработке которых была очень боль­ шая или очень маленькая производительность труда, в расчет уравнения регрессии не попали. Высокий (или низкий) уровень производительности труда в этих разработках был обусловлен, ви­ димо, рядом неучтенных факторов, сведения по которым в табли­ цах сбора данных не запрашивались. Анализ уравнений регрессии показал, что производительность труда разработчиков ПС возра­ стает во времени для всех рассматриваемых классов программ. Диапазон изменения производительности труда с ростом кален­ дарных лет также возрастает (см. табл. 3.2), что говорит об ухуд­ шении управления процессами разработок программных средств в связи с ростом их сложности и масштабов распространения.

Производительность труда при создании технологических

138

САРПО ЯУЗА-6, РУЗА и ПРА (подкласс ППП). В § 3.2 указыва­ лось, что по С А Р П О Я У З А - 6 благодаря тесному взаимодей­ ствию экоиомиста-исследователя с разработчиками системы уда­ лось собрать ретроспективным методом более детализированные данные о характеристиках процессов разработки подсистем, чем может быть сделано в соответствии с табл. 3.1. Это позволило оце­ нить значения производительности труда разработчиков различ­ ных подсистем и провести их сопоставительный анализ '[23]. Про­ изводительность труда при создании подсистем САРПО ЯУЗА-6 изменяется в основном от 2 до 13 команд ассемблера БЕМШ на человеко-день. По 16 подсистемам значения производительности изменяются от 3 до 7 команд в день на человека и имеют относи­ тельно небольшой разброс. Данные группируются достаточно плот­ но и, по-видимому, характеризуют средние возможности коллекти­

ва при принятой технологии проектирования и реальном обеспе­ чении машинным временем. По мнению участников разработки, производительность труда могла бы стать приблизительно вдвое выше за счет непрерывной работы без отказов ЭВМ БЭСМ-6 в терминальном режиме со многими (6—8) дисплеями. Для создания наиболее полной по выполняемым функциям версии САРПО ЯУЗА-6Д объемом 342 тыс. команд потребовалась трудоемкость, равная 289 человеко-годам. При этом была достигнута средняя производительность труда разработчиков САРПО ЯУЗА-6Д, рав­ ная 4,7 команды на человеко-день.

Анализ производительности труда разработчиков с истемы РУЗА проведен для двух ее версий — упрощенной версии А и бо­ лее совершенной — Б, имеющей большее количество средств авто­ матизации этапов и операций технологического процесса разработ­ ки программных средств (табл. 3.6). Анализ производительности труда программистов при разработке подсистем САРПО РУЗА-Б показывает, что имеется большой разброс ее значений (от 2 до

32,7 команды на человеко-день) за счет высокой производительно­ сти труда при разработке отдельных подсистем: анализ схем алго­ ритмов (АСА), построения блок-схем (ПБС), ПЛО, НАС, подго­ товки машинных носителей (МАН) (см. табл. 3.6). Это объясняет­ ся почти полной алгоритмической преемственностью названных подсистем в РУЗА-Б с аналогичными подсистемами в ЯУЗА-6Д, а также тем, что подсистемы ПЛО, НАС, МАН создавались теми же разработчиками, которые разрабатывали их для САРПО ЯУЗА-6Д.

Для создания САРПО РУЗА-Б объемом 351 тыс. команд и ав­ томатизирующей несколько большее число операций технологиче­

ского процесса

разработки комплексов программ по сравнению с

ЯУЗА-6Д

потребовалась

меньшая

трудоемкость

(около

216 чел.-лет).

Это объясняется более

высокой

производитель­

ностью труда

разработчиков

САРПО

РУЗА-Б

по сравнению с

139

разработчиками САРПО ЯУЗА-6Д (7,4 и 4,7 команды на челове­ ко-день соответственно). Факторами, способствующими росту про­ изводительности труда, были: алгоритмическая преемственность ряда подсистем, использование языка программирования высокого

уровня ПЛ-1, а также более высокий стаж работы

(тематический

и технологический) разработчиков.

ее подсистемы

Для анализа ТЭП разработки С А Р П О П Р А

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

автокода (ТАК), выпуска технической документации (ТДО) и де­ терминированного тестирования программ (ДТП). Во вторую груп­ пу вошли подсистемы выпуска машинных носителей данных

(МАН), монитора (МОН), управления базой данных (УБД),

Т а б л и ц а 3.6

ПРОИЗВОДИТЕЛЬНОСТЬ ТРУДА РАЗРАБОТЧИКОВ ПОДСИСТЕМ САРПО РУЗА (ВЕРСИИ А И Б)

 

 

 

Производительность труда

 

Наименование

операторов (ПЛ-1 и

команд на чел.-день

подсистемы

макроассемблер) на чел.-день

 

 

 

А

1

5

А

Б

МОН

1,4

 

1,2

4,8

4,2

дис

1,0

 

1,2

2,9

3,3

дс

1,1

 

0,9

2,4

2,0

УБД

1,9

 

3,6

4,9

9,2

НАС

3,7

 

4,6

1,1

14,7

МАК

1,4

 

1,3

5,0

4,8

ТАК

2,0

 

1,7

9,6

8,1

ГЕН

1,5

 

1,6

7,5

7,6

ЗАГ

0.9

 

1.3

4,4

6,0

ДТП-

1,3

 

1,5

3,3

3,8

СПФ

1,2

 

2.0

6,0

10,1

ТДО

1.9

 

2,1

8,6

9,3

МАН

1,8

 

1,7

13,4

13,3

КХР

2,3

 

1.1

16,6

8,0

пкя

 

 

 

2,8

_

10,8

мод

 

2,2

_

8,8

пло

 

3,9

_

21,2

АСА

 

 

3.2

_

32,7

РВХ

 

3,1

_

10,0

ПБС

 

3,8

_

21,2

ТЕХ

 

2.2

12,7

Итого по

 

 

 

 

 

системе в

 

 

 

 

 

среднем

1,5

 

1,7

5.5

7,4

140

Соседние файлы в папке книги