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

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

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

Несмотря на перечисленные недостатки, разработка и произ­ водство ПС имеют высокие темпы развития и значительный вес в народном хозяйстве. Наиболее полные данные о состоянии про­ мышленности вычислительной техники и обработки данных опуб­ ликованы в США [91, 83, 88]. Доля средств, ежегодно расходуе­ мых в США на приобретение и эксплуатацию вычислительной тех­ ники для всех целей в валовом национальном продукте (ВНП), выросла с 2% в 1970 г. до 5% в 1980 г. Для сравнения отметим, что доля расходов в ВНП на сельское хозяйство составляет 3%, на добывающую промышленность — 2,7%• По оценкам ведущих экспертов, эта тенденция сохранится в 80-е годы, и расходы на системы обработки данных достигнут к 1990 г. 13% валового на­ ционального продукта.

Основной причиной устойчивых и быстрых темпов роста си­ стем обработки данных и применяемых ПС является возможность значительного повышения производительности труда во всех сфе­ рах за счет применения ЭВМ. Однако желаемая широта примене­ ния ЭВМ наталкивается на ограниченные возможности по разра­ ботке и сопровождению программ, а также по обслуживанию ЭВМ. Около полумиллиона организаций в США хотели бы приоб­ рести новые многофункциональные вычислительные системы, но лишь несколько тысяч из них располагает штатом, чтобы их экс­ плуатировать. Численность профессиональных программистов в США составляла в 1980 г. около 250 тыс. Кроме того, около 300 тыс. специалистов участвовало в создании ПС в качестве си­ стемных аналитиков. С учетом вспомогательного персонала в со­ здании и распространении программ в США в начале 80-х годов участвовало около 1 млн. человек [98, 104].

По некоторым оценкам [67, 88], общие затраты в мире на про­ граммное обеспечение в 1985 г. составили около 140 млрд, дол., из них в США примерно 70 млрд. дол. в год. Предполагается, что к 1990 г. затраты на программное обеспечение в США достигнут 125 млрд. дол. в год. Масштабы затрат на ПС сделали проблему эффективного и экономичного создания и производства программ одной из самых актуальных в современной экономике. Интенсив­ ность развития разработки и производства программных средств в США особенно четко проявилась на примере инвестиций и до­ ходов крупнейшей фирмы по вычислительной технике— IBM [76]. В 1978 г. программное обеспечение не играло заметной роли в про­ даже этой фирмы: около 90% приходилось на аппаратуру ЭВМ, а остальное — на их обслуживание. В 1984 г. программное обес­ печение в продаже составило уже около 8%, что соответствует 3,2 млрд, дол., и приблизилось к объему сервиса. Предполагается, что в 1990 г. объем оборота фирмы за счет программных средств составит 19, 5 млрд. дол. (рост в 6 раз), т. е. более 25% общего оборота.

11

Наиболее полные сведения о производстве программ и его тен­ денциях опубликованы для военной области применения ЭВМ в США. Конкретность и довольно высокая достоверность этих дан­ ных позволяют наиболее четко представить себе тенденции в об­ ласти разработки и применения программ, а также важность эко­ номики ПС. Для министерства обороны (МО) США характерен устойчивый рост расходов на приобретение ЭВМ с преимущест­ венным ростом расходов на разработку и сопровождение ПС [72, 25]. Расходы МО США на приобретение ЭВМ составили в 1980 г. 6,7 млрд. дол. и по прогнозу возрастут к 1990 г. до 45,8 млрд. дол. В затраты на ЭВМ министерство обороны США включает: затра­ ты на аппаратуру ЭВМ, на разработку и сопровождение прог­ рамм, на обучение обслуживающего персонала. Доля расходов на ЭВМ в общих затратах на электронную технику МО США соста­ вила в 1985 г. 43%, а к 1990 г. ожидается 60%. Быстро увеличи­ вается доля ЭВМ, встроенных в средства вооружения, функциони­ рующих в реальном масштабе времени. В 1980 г. доля встроенных ЭВМ составила 61% (почти 10 тыс. единиц), в 1985 г. — 76% и к 1990 г. возрастет до 83% (~ 2 5 0 тыс. единиц). Таким образом, за 10 лет предусматривается почти 25-кратное увеличение числа

встроенных ЭВМ [72, 94].

(1985— 1990 гг.)

растут

затра­

Особенно быстро за пятилетие

ты на ПС всех видов (в 2,7 раза, до 39 млрд, дол.),

из них

для

встроенных ЭВМ в 2,8 раза (32 млрд. дол.).

Среднегодовой темп

роста затрат на ПС для встроенных ЭВМ достигает

29%.

При

этом затраты на ПС для ЭВМ,

работающих

в вычислительных

центрах, увеличатся только в 2,4

раза

(7 млрд. дол.). Прогнрз

затрат сделан специалистами США с учетом

инфляции.

Некото­

рые специалисты считают, что их оценки

затрат

на

аппаратуру

ЭВМ, разработку и сопровождение программ являются оценками

снизу, т. е. реальные

затраты

могут превзойти

приведенные

цифры.

 

 

 

 

В общих затратах на ПС по заказам МО США доля затрат на

сопровождение программ [12,

84]

составляет сейчас около 65%

и величина этих затрат

продолжает

расти (до. 27

млрд. дол. в

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

Ряд зарубежных специалистов [83, 84] в вопросе преобладания затрат на сопровождение над затратами на разработку новых программ видят тревожную тенденцию сокращения объема новых

12

разработок в будущем, так как с течением времени объем создан­ ных ПС будет накапливаться и все большее количество разработ­ чиков программ будет переключаться на сопровождение. Жизнен­ ный цикл современных ПС увеличился до 15—20 лет, в течение которых требования к программам существенно меняются, причем типичным является следующее распределение ресурсов для боль­ ших систем: 100 человек в течение 2 лет заняты разработкой про­ грамм и 35 человек в течение 8— 15 лет — сопровождением. В ре­ зультате из общего бюджета пользователей ПС в США затраты на программирование в 1980 г. составили 60 млрд. дол. (80% бюд­ жета), в том числе: на закупку готовых программ — 5 млрд., на разработку новых программ — 15 млрд., на сопровождение ПС — около 40 млрд. дол.

Приведенные данные, несмотря на их фрагментарность, приб­ лиженность и некоторую противоречивость, иллюстрируют мас­ штабы интегральных затрат, с которыми имеет дело экономика программных средств в разных областях применения. Отсутствие развитой науки в этой отрасли экономики может обернуться ог­ ромными потерями. Многие проекты характеризуются десятикрат­ ными экономическими ошибками по затратам [6, 7, 52]. Поэтому развитие данной области экономики и создание методов оценок и прогнозирования, даже с достоверностью в десятки процентов, может дать в ближайшие годы огромный экономический эффект.

Особенности программно-целевого планирования разработки ПС. Для повышения эффективности отраслей народного хозяйст­ ва и интенсификации производства всех видов изделий необходимо создание и внедрение высокоэффективных технологий и детальный анализ их технико-экономических характеристик. Значительный эффект при производстве изделий позволяет получить планирова­ ние от главных целей общества — п р о г р а м м н о - ц е л е в о е п л а н и р о в а н и е [56, 40]. В соответствии с главными целями должны формироваться цели более низких уровней и развиваться отдельные отрасли производства для их достижения.

П е р в и ч н ы м и г л а в н ы м и ц е л я м и [40]

социалистиче­

ского общества являются повышение народного

благосостояния:

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

13

экономией материальных и производственных ресурсов при выпол­

нении

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

оборудования

и т. п. Критерий

минимальных приведенных затрат

применим,

если

различные

технические решения сопоставимы

по

достигае­

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

На практике изделия или системы обычно имеют ряд близких по значимости целей применения и соответствующих им показате­ лей качества. В результате эффективность технологических решений приходится оценивать одновременно по нескольким показателям [1, 35]. Для этого стремятся сформулировать обобщенную ска­ лярную функцию эффекта и затрат или строится вектор показате­ лей качества. Для многокритериальной, векторной оптимизации решений разработан ряд методов, использование которых зависит от конкретных особенностей анализируемых изделий. Кроме того, широко применяется последовательный анализ по отдельным по­ казателям качества.

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

неопределенности целей,

различных

факторов

и характеристик

[56, 57]. Обычно недостаточно известны

перспективы

внедрения

и эксплуатации объектов

разработки

новых

изделий.

Трудно-

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

Признание программных средств продукцией производственно­ технического назначения [15, 50] существенно повысило актуаль­

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

С позиций программно-целевого планирования ниже не учиты­

15

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

рода .

При этом .разработка технологий и средств

автоматизации

процесса создания ПС

рассматривается как ц е л ь

ч е т в е р т о г о

рода,

определяющая

эффективность достижения

целей третьего

рода и целей более высокого уровня.

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

Особенности программ как объекта технико-экономического анализа. Программно-целевое планирование и промышленная раз­ работка ПС как продукции производственно-технического назначе­

ния" целесообразны только для определенных

классов программ.

С этой позиции программы для

вычислительных машин

можно

разделить на три класса [20, 47].

К п е р в о м у

к л а с с у

относят­

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

В т о р о й к л а с с представляется сложными КП информацион­

16

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

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

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

Перечисленные классы КП различаются не только содержани­ ем решаемых задач, но и сложностью [231. Обычно задача

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

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

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

17

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

Достаточно обычными стали КП объемом 100—500 тыс. команд [11, 52]. Возникла проблема декомпозиции КП на компоненты

меньшего размера и сложности, а также упорядоченного структур­ но-иерархического построения таких программ. Известные методы снижения суммарной сложности систем путем декомпозиции, структурирования, локализации функций и упрощения компонент нашли дальнейшее развитие при создании современных методов разработки сложных ПС [17, 106].

Такие сложные программы в разумные сроки (1—5 лет) могут быть созданы только организованными коллективами специали­ стов под единым руководством. Размеры коллективов разработ­ чиков и их структура в значительной степени диктуются структу­ рой, функциональными задачами и характеристиками программ. Коллективность разработки ПС привела к необходимости строго­

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

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

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

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

18

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

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

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

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

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

На процесс

и ТЭП разработки ПС влияют д в е т е н д е н ц и и

р а з в и т и я а

р х и т е к т у р ы ЭВМ. С одной стороны, создают­

ся семейства ЭВМ (ЕС ЭВМ, СМ ЭВМ и др.), имеющие архитекту­ ру и системы команд, зафиксированные в рамках семейства ма­ шин, что обеспечивает унификацию базового программного обес­

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

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

19

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

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

С учетом особенностей процесса и технологии разработки рас­

сматриваемых программ

реализующие ЭВМ можно разделить на

три группы.

 

П е р в а я г р у п п а

ЭВМ имеет достаточно высокие характе­

ристики по памяти и

производительности и хорошо развитую

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

ния непосредственно

в контуре управления.

Однако они могут

использоваться и как

универсальные ЭВМ

в вычислительных

центрах.

 

 

В т о р а я г р у п п а

ЭВМ характеризуется обычно более скром­

ными параметрами по памяти и производительности и практиче­

ски лишена периферийных устройств. Основной особенностью та­

ких машин является совместимость по системе

команд с одним

из типов малых или больших универсальных

ЭВМ (например,

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

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

20

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