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

книги / Надежность программного обеспечения систем обработки данных

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

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

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

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

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

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

2) проведение экспериментов, касающихся ПО, мо­ жет быть весьма дорогостоящей операцией Например, изучение только одного показателя влияния приемов структурного программирования на качество разрабаты­ ваемых программ приводит по минимальной оценке к созданию двух проектов, идентичных по всем показате­ лям, за исключением одного: разработчик А использует приемы структурного программирования, а разработчик В — нет. Такой подход обойдется достаточно дорого, кроме того, он не выдерживает с точки зрения статисти­ ки никакой критики;

71

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

4)предел интерпретации piда тщательно спланиро­

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

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

 

И н тен си вн о сть

о ш и б о к

в

грограм м н ом

обесп ечен и и

(отн ош ен и е

чи сл а пооектны х

или

к о д й р о в о ч н ы т о ш и б о к

к о о ш ем у

ч ислу к о м а н д ) л е ж и т в д и а п а зо н е о т 0,25 до 10

иа

ШОУ

ко м ан д .

П р о вер ки

качества п р о ек ти р о в ан и я ,

п р ед усм отрен н ы е технологическ!М

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

п о зв о л я ю т

 

в ы я в и ть

и

исп рави ть

ср ав н и тел ьн о

п росты е

ош и б ки , и,

н есм о тр я

на

то , ч то м акси м ал ьн о е ч и сл о о ш и ­

бок

м ож н о

о ж и д а т ь

с р а з у

n o cie

вы п уска

п р о гр ам м н о го

об есп ечен и я, и н тен си вн ость

внозь

о б н ар у ж ен н ы х

о ш и б о к

о с т ае т с я д о стато ч н о

постоянно».

 

 

 

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

 

Вопросы к главе 3

1

Ранжируйте причины ненадежности НО по значимости.

2

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

3

программах?

Каковы преимущества и недостачипроведения классификации

 

по методу «сверху-вниз»?

4Почему не удается решить проблем) полностью за счет избежания ошибок?

5Перечислите достоинства н недостатки процедуры исправления ошибок.

6Назовите сильные н слабые стороны допуска ошибок.

72

Г л а в а 4

Э К О Н О М И Ч Е С К И Е А С П Е К Т Ы О Б Е С П Е Ч Е Н И Я Н А Д Е Ж Н О С Т И

4.1 СПЕЦИФИЧЕСКИЕ ОСОБЕННОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

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

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

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

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

73

ПО в товарном виде, реклама, продажа по установлен­ ным в определенном порядке ценам, поддержка в акту­ альном состоянии.

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

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

Длительное непризнание товарной сущности ПО бази­ ровалось на отсутствии вещественности, присущей всем

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

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

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

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

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

74

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

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

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

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

1.Разработка программ не эквивалентна массовому производству промышленных изделий. Так как ПО пред­ ставляет собой, скорее, логическое, чем физическое изде­ лие, большая часть средств расходуется на его разра­ ботку, а не на массовое тиражирование. Если для боль­ шинства промышленных изделий стоимость серийного производства снижается по сравнению с опытным образ­ цом в среднем в 3—10 раз, то стоимость разработки ПО может превышать в 100—1000 раз затраты на его копи­ рование и установку.

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

Кроме того, изменение технических средств осуществ­ ляется, как правило, путем перепроектирования, переос­ нащения или создания новой модели. Улучшение или

75

 

 

 

 

 

 

Т а б л и ц а

41

Этапы цикла Ж1зии технических и программных средств

 

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

 

Содержание работ, выполняемых на этапе

 

 

 

Технические средства

Программные средства

Разработка

Оп(еделенне

требований

Определение

требований

 

пользователя

конструк­

пользователя

 

конструк­

 

Оп|еделенне

Определение

 

 

тивных

принципов (тех­ тивных

принципов

(тех­

 

ническое

проектирова­

ническое

проектирова­

 

ние

 

 

 

ние)

 

 

 

 

 

Проектирование элемен­ Проектирование элемен­

 

тов (рабочее

проектнро-

тов (рабочее

проектиро­

 

вате)

 

 

 

вание)

 

 

 

 

 

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

н испыта­

Реализация

и

тестиро­

 

ние макета

 

вание программ

 

 

 

Разработка

технологии

 

 

 

 

 

 

масового производства

 

 

 

 

 

Ввод в эксплуата­ Массовое производство

Копирование

 

программ

цию

Поставка

пользователям

Поставка пользователям

Обслуживание

Техдическое

обслужива­

 

 

 

 

 

и эксплуатация

ние (замена

отказавших

 

 

 

 

 

 

элементов)

 

 

 

 

 

 

 

Возвращение

изделия

Сопровождение

(устра­

 

для исправлении погреш­

нение ошибок проектиро­

 

ностей проектирования

вания и реализации)

 

 

Расширение

функцио­

Сопровождение

(реали­

 

нальных

возможностей

зация

дополнительных

 

 

 

 

 

возможностей,

приспо­

 

 

 

 

 

собляемость

к

изменяю­

 

 

 

 

 

щимся требованиям поль­

 

 

 

 

 

зователя)

 

 

 

Снятие с эксплуа­ Изделие невозможно ис­

 

 

 

 

 

тации

править

и требуется его

 

 

 

 

 

 

замена

новым (физичес­

 

 

 

 

 

 

кий износ)

 

 

 

 

 

 

 

Изделие морально уста­ Изделие морально уста

 

рел)

 

 

 

рело

 

 

 

 

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

3. Разработка i тестирование ПО в принципе анало гичны разработке и испытанию опытного технического образца. Однако копытный» образец ПО является в то

76

же время и первой рабочей версией поставляемого поль­ зователю средства

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

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

Так, удельный вес расходов на ПО в общих затратах на разработку ЭВМ первого поколения в начале 50-х го­ дов составлял около 5%, для ЭВМ второго поколения в начале 60-х годов — 30%. В современных ЭВМ удельный вес расходов на ПО в общих затратах составляет 70% и более. Чтобы понять существенность затрат, обратимся к следующим цифрам: суммарные расходы фирмы IBM на подготовку к производству ЭВМ серии 360 в 1959— 1965 гг. составили 1 млрд, долларов, расходы на ЭВМ серии 370 в 1971—1976 гг. достигли 5 млрд, долларов, а на ЭВМ серии 4300 в 1976—1980 гг. эти расходы превысили 14 млрд, долларов [6]. Если базироваться на приведенных выше оценках, то затраты фирмы на ПО могли составить соответственно 50 млн., 1,5 млрд, и 10 млрд, долларов.

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

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

77

Обычно закупка ПО отражается в балансе покупате­ ля как приобретение основных средств. Время амортиза­ ции ПО устанавливается обычно в 10—15 лет, т. е. еже­ годная амортизация составляет 6—10%.

Ведущие позиции на рынке программного обеспече­ ния США занимают примерно 50 крупных корпораций, большая часть из которых является узкоспециализиро­ ванными. Лишь небольшое число организаций действует в нескольких отраслях промышленности. Как правило, в этом случае организация-продавец предлагает покупа­ телям наборы ПО, пригодные для создания и эксплуата­ ции вычислительных систем в любой отрасли эконо­ мики.

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

1) использование устаревшей технологии проектиро­ вания программного обеспечения;

2)отсутствие надежных методов определения сто­ имостной оценки проектов и научно обоснованных крите­ риев распределения ресурсов по этапам разработки ПО;

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

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

дение;

4)повышение требований к надежности и качеству программного обеспечения;

5)отставание возможностей программирования от развития технических средств сбора и обработки ин­

формации;

6)уменьшение стоимостных затрат на разработку технических средств;

7)низкий уровень автоматизации работ по проектиро­ ванию н программированию, т. е. процесс разработки

ПО все еще остается ориентированным иа человека. Из перечисленных факторов следует, что основной причиной увеличения стоимостных и трудовых затрат на создание ПО является отсутствие эффективной техноло­

ге

гии планирования и разработки при одновременном по­ вышении требований к надежности ПО.

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

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

Одной из предпосылок на пути решения этой проблемы является анализ технологического процесса создания программного обеспечения. Цели анализа могут быт^ сформулированы следующим образом:

1)получить характеристику этапов создания ПО, общих для большинства программных проектов;

2)определить тип и относительные величины стоимост­ ных затрат иа каждом из этапов создания ПО;

3)выявить факторы, влияющие на стоимостную оцен­ ку программного проекта;

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

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

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

79

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

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

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

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

П

где 1 х — затраты на ( м этапе процесса .

п — количество этапов

Стоимостные затраты на отдельных этапах можно определить следующим образом:

т

 

2„= 2

• v

 

I = I

где

— время выполнения

у-й операции i го этапа в часах ,

ct/ — стоимостные затраты на единицу времени (час) у-й

операции i го этапа ,

т — количество операций на у-м этапе

80

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