книги / Надежность программного обеспечения систем обработки данных
..pdfтолько третья приемлема для большинства программных систем Проблемы допуска ошибок представляются нам достаточно важными и заслуживающими самостоятельно го рассмотрения.
Важным моментом, касающимся рассмотренных выше подходов, является то, что обнаружение ошибок, их исправление и средства допуска в известной мере проти воречат средствам избежания ошибок, а именно обнару жение, исправление и допуск подразумевают дополни тельно добавляемые к программному обеспечению функ ции. Эти дополнительные функции не только увеличива ют сложность ПО, но и сами могут содержать програм мные ошибки.
Необходимо отметить, что все рассматриваемые сред ства избежания ошибок и множество средств обнаруже ния ошибок применимы к любой программной системе. Если конкретная система должна оставаться работоспо собной при наличии в ней ошибок, то могут потребовать ся средства корректировки и допуска ошибок. Разработки этой категории включают ПО телефонных систем, систем контроля процессов, аэрокосмических систем, систем контроля движения самолетов и общих операционных систем.
На практике известны подходы к решению вопроса количественного описания природы ошибок. Однако сле дует в связи с этим отметить еще одну особенность ПО — проводить эксперименты над ПО весьма трудно по ряду причин, среди которых основными являются следующие*
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