reforef.ru
добавить свой файл
1
Липаев В.В.


АНАЛИЗ И СОКРАЩЕНИЕ РИСКОВ

Проект сложных программных средств

Содержание


ВВЕДЕНИЕ 3

МОДЕЛИ И СТАНДАРТЫ УПРАВЛЕНИЯ РИСКАМИ ПРОЕКТОВ ПРОГРАММНЫХ СРЕДСТВ 11

1.1. Основные модели управления рисками проектов программных средств 11

1.2. Стандартизация управления рисками программных средств 25

2. КОНЦЕПЦИЯ АНАЛИЗА И СОКРАЩЕНИЯ 35

РИСКОВ ПРОЕКТОВ СЛОЖНЫХ 35

ПРОГРАММНЫХ СРЕДСТВ 35

2.1. Подготовка исходных данных для анализа и управления рисками проекта программного средства 35

2.2. Выделение, идентификация, анализ угроз и рисков в жизненном цикле программного средства 41

2.3. Оценивание опасности угроз рисков и выбор эффективных контрмер для их сокращения 49

2.4. Сокращение и ликвидация опасных рисков проекта программного средства 51

2.5. Контроль, регистрация, мониторинг и утверждение допустимого интегрального риска программного средства 55

3. ОСНОВНЫЕ ИСТОЧНИКИ И ПРИЧИНЫ ПРОЯВЛЕНИЯ РИСКОВ ПРОГРАММНЫХ СРЕДСТВ 59

3.1. Риски вследствие дефектов и ошибок в программных средствах 59

3.2. Риски при оценивании масштаба сложных программных средств 80

3.3. Риски при формировании требований к характеристикам сложных программных средств 88

4. РИСКИ ФУНКЦИОНАЛЬНОЙ ПРИГОДНОСТИ ПРОГРАММНЫХ СРЕДСТВ 99

4.1. Функциональные характеристики объектов, определяющие риски в жизненном цикле программных средств 99

4.2. Риски надежности и функциональной безопасности в жизненном цикле программных средств 112

4.3. Риски вследствие ограничения ресурсов проекта программного средства 128

Приложение 1 154

ВВЕДЕНИЕ

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


В технических заданиях и реализованных проектах систем и ПС систематически умалчиваются и/или недостаточно полно формали­зуются понятия качества программного продукта, какими характе­ристиками они описываются, как их следует измерять и сравнивать с требованиями, отраженными в контракте, техническом задании или спецификациях. Кроме того, некоторые из характеристик часто во­обще отсутствуют в требованиях и согласованных документах на ПС, что приводит к произвольному их учету или к пропуску при ис­пытаниях. Этому способствует ограниченность ресурсов, особенно времени, необходимых для достижения и оценивания, требуемых значений характеристик комплекса программ, а также недостаточная формализация и документирование всего процесса выбора и анализа показателей качества ПС. Отсутствие четкого декларирования в до­кументах понятий, требуемых функций и значений характеристик ПС, вызывает конфликты между заказчиками-пользователями и раз­работчиками-поставщиками из-за разной трактовки одних и тех же характеристик. Поэтому тщательное специфицирование требований, функций и характеристик программного продукта - ключе­вой фактор обеспечения целей их адекватного и безопасного применения [6, 14, 24, 44].

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


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

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


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

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


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

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


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

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


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

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


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

  • в недостаточных и не соответствующих требованиям, конструктивных характеристиках качества ПС при его функционировании и применении по прямому назначению;

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

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


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

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


  • на бюджете и трудоемкости разработки и обеспечения всего жизненного цикла программного продукта;

  • на затратах времени и сроках создания и всего жизненного цикла реализации и применения ПС;

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

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


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

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


  • источниками и причинами угроз и опасного проявления рисков;

  • классами, категориями, уязвимостью ПС и системы, вероят­ностью проявления и величиной последствий рисков;

  • возможными и реализуемыми контрмерами для сокращения рисков и их эффективностью.

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


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

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