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

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

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

данный момент с ЭВМ для реализации заданий. При средних уров­ нях автоматизации для разработки сложных КП в настоящее вре­ мя требуется для каждого специалиста 0,5— 1 Мбайт оперативной памяти. При мс тием объеме памяти возможно снижение произво­ дительности труда на 10—20% (с42 — 0,8—0,9).

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

них обеспечивается 3—4 подхода к ЭВМ в течение

рабочего дня,

то профессиональные возможности разработчиков

используются

практически полностью [48]. В результате производительность тру­ да за счет этого фактора приближается к предельной. Сокраще­ ние доступности ЭВМ до одного подхода в день может снизить производительность труда в 1,5—2 раза.

Имеющийся опыт показывает, что для эффективного использо­ вания технологических систем с высоким уровнем автоматизации (объемом 300—500 тыс. команд) необходимы ЭВМ класса БЭСМ-б или ЕС-1060 с быстродействием около 1 млн. коротких операций в секунду. При этом о д н о в р е м е н н о в терминальном режиме с такими ЭВМ в процессе разработки определенного КП могут про­ дуктивно работать 4—8 программистов. Применение менее мощ­ ных ЭВМ приводит к необходимости уменьшения числа одновре­ менно действующих пользователей, и сложные системы автомати­ зации разработки используются ниже своих функциональных воз­ можностей.

Однако отмечено [6], что непрерывная доступность дисплеев и вычислительных ресурсов ЭВМ также приводит к снижению произ­ водительности труда. В этом случае стимулируется обращение к средствам автоматизации без тщательного продумывания заданий, следствием чего являются ошибки и малая результативность ис­ пользования ЭВМ. Внимание специалистов концентрируется на тактике работы с текстом программы, а не на стратегии разработ­ ки программ. Вследствие этого целесообразна либо блокировка доступности ЭВМ для конкретного специалиста после реализации его задания, либо работа всех специалистов за дисплеями сеанса­ ми — достаточно продолжительными (0,5 ч) квантами времени. На практике в зависимости от оснащения дисплеями и их доступ­

91

ности производительность труда в среднем может

варьироваться

на 20-30% (с4з~ 0 ,7 —0,8).

влияющие на

Факторы организации процесса разработки КП,

непосредственные затраты при создании сложных программ. Ин­ дивидуальные особенности специалистов могут приводить к изме­ нению производительности труда во много раз. Однако по мере возрастания объема и сложности создаваемых КП увеличиваются коллективы, участвующие в единой разработке. В таких коллекти­ вах индивидуальные характеристики отдельных специалистов не­ сколько нивелируются, и появляется возможность учета средней квалификации в коллективе. Пока отсутствуют апробированные методы надежного измерения квалификации специалистов, исполь­ зуемый ниже (см. гл. 3) параметр (годы работы) является весьма условным и не учитывает индивидуальных особенностей каждого специалиста.

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

Структура коллектива разработчиков в значительной степени

отражает структуру разрабатываемого КП [7, 33]. Особенно это заметно при создании крупных КП объемом 105— 107 команд. При этом группы функциональных программ локализуются по соответ­ ствующим группам специалистов с целью минимизации связей и взаимодействия как между группами разработчиков, так и между создаваемыми ими программами. Предложен ряд типовых струк­ тур [7, 20] для бригад разработчиков функциональных групп про­ грамм и для коллективов, создающих КП в целом. Однако пока эффективность различных структур коллективов в зависимости от параметров КП и условий разработки изучена слабо. Не всегда структура коллектива оказывается адекватной разрабатываемому КП. Иногда реорганизация структуры коллектива с учетом особен­ ностей создаваемого КП позволяет снизить затраты на разработку на 10—20%. В целом тенденция состоит в том, что профессионалы в различных областях технического и научного применения ЭВМ достаточно быстро осваивают программистскую и технологическую квалификацию и обычно являются лидерами при разработке КП

92

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

Т е м а т и ч е с к а я к в а л и ф и к а ц и я с п е ц и а л и с т о в в

к о н к р е т н о й

п р и к л а д н о й

о б л а с т и ,

д л я

к о т о ­

рой р а з р а б а т ы в а ю т с я

КП,

приближенно

может оце­

ниваться продолжительностью

работы по

данной

темати­

ке — /тем- При низкой тематической

квалификации допускаются

наиболее грубые системные ошибки, требующие больших

затрат

при доработке

программ. Имеются примеры,

когда

из-за

таких

ошибок, допущенных на этапе системного анализа, приходилось в процессе разработки изменять 70—90% программ [11, 17, 55]. Це­ лесообразность использования в качестве параметра квалифика­ ции значений длительности работы в определенной прикладной об­ ласти подтверждается достаточно высокой корреляцией с коэффи­ циентом изменения трудоемкости с^. При этом квалификация си­

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

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

торую, достаточно крупную функциональную задачу. Приводимые

вразных работах оценки показывают, что при изменении опыта работы в данной области от 1 до 10—15 лет производительность труда может повышаться в 2—3 раза (см. гл. 3). Для коллективов специалистов со средним стажем работы за счет этого фактора производительность может варьироваться приблизительно в Обра­

за (^51 — 0,6—0,8).

Т е х н о л о г и ч е с к а я к в а л и ф и к а ц и я с п е ц и а л и с т о в в и с п о л ь з о в а н и и с и с т е м ы а в т о м а т и з а ц и и р а з р а ­ б о т к и КП отражает опыт применения методов, средств и всего технологического процесса при создании данного типа программ. Этот опыт можно характеризовать длительностью работы — Uex

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

разработке конкретного КП.

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

93

квалификации и четкого управления разработкой при увеличении стажа от 1 года до 10 лет производительность труда может возрас­ тать в 1,5—2 раза. Однако чаще всего коллективы специалистов имеют уже некоторый технологический опыт, и дальнейшее повы­ шение их квалификации может дать относительно немного— 10— 20% производительности (с52~ 0 ,8 —0,9). Небольшое влияние этого фактора обусловлено также нивелирующим влиянием трудозатрат вспомогательного и руководящего персонала, которые практически

не зависят от технологической квалификации.

с п е ц и а л и ­

П р о г р а м м и с т с к а я

к в а л и ф и к а ц и я

стов и опыт ра б о т ы

с я з ы к а м и п р о е к т и р о в а н и я

КП из приведенных факторов квалификации в наименьшей степе­ ни отражается на производительности труда. В данном факторе учитывается освоенность не только языка непосредственного про­ граммирования, но и всех компонент языков, используемых при создании программ (спецификаций, диалога, отладки, комплексирования и т. д.) [43]. После двух-трех лет работы в наибольшей сте­ пени проявляются индивидуальные особенности конкретных спе­ циалистов, их творческие способности, тщательность в работе, ра­ циональное использование средств автоматизации. Далее програм­ мистская квалификация все меньше отражается на производи­ тельности труда коллектива (см. § 3.4). Для опытных специали­ стов переход на новый язык программирования обычно не требует особых усилий и успешно проходит за несколько месяцев. При соз­ дании сложных КП после первых лет работы возрастание про­ граммистской квалификации может повысить производительность труда на 5—10% (с53~ 0,9—0,95).

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

ботки сложных программных средств. На эту величину влияет множество трудно учитываемых условий, и приводимые в литерату­ ре оценки часто отличаются излишней смелостью и общностью выводов при малом объеме экспериментальных данных и их низ­ кой достоверности. Кроме того, приведенные факторы в значитель­ ной степени коррелированы. Сложность психологических экспери­ ментов с регистрацией всех основных условий приводит к большо­ му разбросу результатов. В некоторых случаях этот фактор изме­ нял совокупные затраты в 20—30 раз. Вследствие этого некоторые специалисты в основном на опыте разработки программ первого класса утверждают [62], что при разработке программ только чело­ веческий фактор определяет длительность и трудоемкость разра­ ботки. Отсюда делается вывод о принципиальной невозможности планирования и прогнозирования процесса разработки программ. В действительности при крупных разработках КП третьего и вто­ рого классов человеческий фактор в коллективах значительно ус­ редняется. Тем не менее достаточно часто по этой причине возмо­

94

жен разброс производительности труда в 2—3 раза на крупных практически аналогичных разработках КП.

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

Этому же может способствовать различие между заказчиком и разработчиком в квалификации, уровне понимания целей разра­ ботки и необходимых затрат на реализацию дополнительных тре­ бований к КП. По тем или иным причинам даже при испытаниях КП заказчик зачастую обнаруживает, что решаются не совсем те задачи и не совсем так, как нужно, вследствие чего необходима пе­ реработка готовых программ. Даже квалифицированные заказчи­ ки вынуждены иногда корректировать техническое задание на любых этапах разработки, что влияет в среднем на снижение про­ изводительности на 10—20% (с54= 1 ,1—1,2). В отдельных случаях неоднократные корректировки задания могут приводить к увели­ чению затрат даже в 3—5 раз [6, 74].

Роль творческого труда в технико-экономических показателях разработки программных средств. В любой работе по созданию но­ вых продуктов, изделий или произведений в той или иной степени имеются творчество и творческий труд. Программные средства яв­ ляются сложными объектами, создаваемыми человеком [14, 52, 58], и в процессе их разработки творчество как поиск новых методов, частных решений и способов осуществления заданных требований, а также формирование и декомпозиция этих требований составля­ ют значительную часть всех трудозатрат.

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

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

95

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

Проведено усреднение доли творчества по этапам с учетом чис­ ла занятых специалистов (см. рис. 2.3). При этом этап системною анализа не учитывался вследствие большого различия объема ра­ бот для разных проектов. Этапы учитывались с весом, соответст­ вующим относительным затратам труда для каждого из них. Ус­ редненная доля творческой} труда оказалась в пределах 46—56%. Таким образом, современные разработки сложных ПС при относи­

тельно высоком уровне автоматизации

(3—4-й уровень табл.

1.1)

содержат около половины творческого

труда.

В перспективе

его

доля будет возрастать за счет уменьшения

нетворческой части

вследствие автоматизации. Однако абсолютная величина необходи­ мых творческих усилий при создании новых сложных ПС вряд ли заметно сократится.

Трудоемкость творческой части затрат на разработку ПС в

основном определяет человеческий фактор — квалификация и ор­

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

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

ток. По мере повышения квалификации коллектива и автоматиза­

ции творческой части труда следует ожидать ассимптотнческого приближения к потенциальным значениям ТЭП. Эти предельные значения определяются возможностями человека по интенсивности принятия творческих решений. Подобные оценки проведены [53,55) только для относительно простых творческих ситуаций разработки программных модулей. Они позволили выявить предельные значе­ ния производительности труда и длительности их разработки. При создании сложных ПС рассчитать такие характеристики вряд ли возможно, и реальным путем их оценки являются изучение и экст­ раполяция экспериментальных данных реальных разработок ПС с наилучшими ТЭП с учетом возрастания квалификации специали­ стов и уровня автоматизации. Эти факторы способствуют эволюци­ онному, относительно медленному приближению к предельным ТЭП для новых ПС. Предельные значения производительности

4 Зак. 25G

97

труда, обусловленные долей творчества, по-видимому, в два-три раза выше, чем современные значения для наилучших коллективов при среднем уровне автоматизации разработки и квалификации специалистов. Вряд ли можно ожидать в ближайшие годы повы­ шения производительности труда на порядок для новых, сложных ПС. Еще более консервативна длительность разработки (см. §3.5).

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

базе единой технологии базы данных готовых апробированных компонент и стандартизированной архитектуры определенных классов ПС. Применение метода создания мобильных (переноси­ мых) программ позволяет значительно сократить творческий труд при структурном проектировании и распределении ресурсов (2-й этап) и при подготовке технологических средств (3-й этап).

Использование готовых отлаженных модулей почти исключает творческий труд по их программированию (4-й этап), автономной отладке (5-й этап) и документированию (7-й этап). На этих эта­ пах творческие усилия необходимы только для отбора готовых ком­ понент и разработки новых, отсутствующих среди апробирован­ ных. Однако практически полностью сохраняется творческий труд при системном анализе (1-й этап), при комплексировании компо­ нент и их комплексной отладке (6-й этап), а также во время испы­ тания ПС в целом (8-й этап). Эти этапы по своей сути всегда оста­ нутся в основном творческими, так как они определяют цели и за­ дачи сложных ПС, а также адекватность их реализации, что вряд ли удастся достаточно полно автоматизировать в ближайшее вре­ мя. Тем не менее суммарный объем творческого труда может быть в несколько раз уменьшен. В результате сокращаются затраты и появляются новые потенциальные предельные значения ТЭП, кото­

рые зависят от уровня автоматизации и стандартизации сборочного программирования, а также от доли готовых компонент в общем объеме ПС. Это может способствовать повышению производитель­ ности труда разработчиков в 3—5 раз.

2.3. СОСТАВЛЯЮЩИЕ ЗАТРАТ НА ЭКСПЛУАТАЦИЮ И СОПРОВОЖДЕНИЕ ПРОГРАММ, ВЛИЯЮЩИЕ НА ПРОЦЕСС ИХ РАЗРАБОТКИ

Составляющие затрат на эксплуатацию программ, влияющие на процесс их разработки (табл. 2.4). Выше (см. § 2.1) отмечалось, что при разработке программ необходимо учитывать перспективы и особенности их эксплуатации. Тем самым возможные затраты бу­ дущей эксплуатации влияют на затраты при разработке КП. Сово­

98

купные затраты на эксплуатацию сложных массовых КП за цикл жизни могут быть во много раз больше затрат на их непосредст­

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

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

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

Т аб л и ц а 2.4

СОСТАВЛЯЮЩИЕ ЗАТРАТ НА ЭКСПЛУАТАЦИЮ ПРОГРАММ. ВЛИЯЮЩИЕ НА ПРОЦЕСС ИХ РАЗРАБОТКИ

Составляющие затрат и потерь при эксплуатации КП

Затраты

на

производство и

внедрение

экземпляра КП —

с х

 

 

Затраты

на

реализующую

ЭВМ — С2:,

Затраты на эксплуатацию рсалнзующей ЭВМ — С3:,

Затраты на эксплуатацию эк­ земпляра кп С4:,

Потери вследствие задержек и потерь сообщении —С.**

Потери вследствие сбоев и от­ казов КП — Се»

4*

Основные факторы, плииющис на процесс разработки КП

Объем КП Уровень технологии разработки КП

Длительность цикла жизни КГ1

Технические и экономические характернстнки реализующен ЭВМ

Уровень языка программирова-

НИЯ

Степень использования ресур­ сов реализующей ЭВМ

Методы управления вычисли­ тельным процессом Надежность ЭВМ

Степень

нлняния

фактора на процесс разработки КП

В

В

В

В

В

С

с

с

4 9

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

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

З а т р а т ы на п р о и з в о д с т в о и в н е д р е н и е к а ж д о ­

го э к з е м п л я р а

к о м п л е к с а п р

о г р а м м — Сю при серий­

ном изготовлении

КП обычно намного

меньше, чем на изготовле­

ние опытного образца. Тиражирование носителей программ и доку­ ментации при массовом производстве сложных КП требует отно­ сительно небольших затрат Сщ на каждый экземпляр (доли про­

цента от затрат на разработку). При постоянной или полупостоянной памяти команд в ЭВМ затраты на подготовку носителей про­ грамм почти линейно зависят от объема КП. Для ЭВМ с памятью команд на магнитных лентах или дисках объем КП практически не влияет на эту составляющую.

Однако в ряде случаев при эксплуатации используется не абсо­ лютная копия опытного образца КП, а каждый экземпляр КГ1 на­ страивается на характеристики условий применения. Для этого в КП вводятся компоненты, обеспечивающие генерацию пользова­ тельских версий в соответствии с конкретными параметрами среды функционирования каждого экземпляра КП. Эти компоненты мо­ гут увеличивать затраты на разработку на несколько процентов (см. § 2.2). Таким образом, перспективы разнообразных условий применения при эксплуатации КП, которые необходимо учитывать при разработке, могут значительно влиять на структуру и состав компонент опытного образца КП.

Вторая составляющая затрат при эксплуатации — Сц)2 обуслов­

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

кю

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