Липаев В.В. Анализ и сокращение рисков - файл n1.doc
приобрестиЛипаев В.В. Анализ и сокращение рисковскачать (584.7 kb.)
Доступные файлы (1):
n1.doc
Липаев В.В.
АНАЛИЗ И СОКРАЩЕНИЕ РИСКОВ
Проект сложных программных средств
Содержание
ВВЕДЕНИЕ 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].
Управления рисками предполагает ясное понимание внутренних и внешних причин и реальных источников угроз, влияющих на качество проекта ПС, которые могут привести к его провалу или большому ущербу. В результате анализа следует создавать план
отслеживания изменения рисков в жизненном цикле ПС, который должен регулярно рассматриваться и корректироваться. Главной целью управления рисками является обнаружение, идентификация и контроль за редко встречающимися ситуациями и факторами, которые приводят к негативным — рисковым результатам проекта. Это должно отражаться на применении регламентированных процессов, в которых факторы и угрозы рисков систематически идентифицируются, оцениваются и корректируются.
Одной из самых распространенных причин и опасных источников рисков являются
ошибки при оценке масштаба -размера проекта или программного продукта. Эти ошибки чаще всего бывают случайными - непредумышленными, вследствие недостаточной компетентности заказчика или разработчика-поставщика. Однако в некоторых случаях в превышении значения согласованного масштаба заказанного продукта могут быть заинтересованы разработчики для получения больших ресурсов от заказчика, а уменьшенную оценку масштаба могут стремиться представить заказчики для сокращения выделяемых затрат на разработку проекта или программного продукта. Величина оцененного и согласованного между заказчиком и разработчиком масштаба ПС непосредственно отражается:
на бюджете и трудоемкости разработки и обеспечения всего жизненного цикла программного продукта;
на затратах времени и сроках создания и всего жизненного цикла реализации и применения ПС;
на потребности в численности и квалификации специалистов-разработчиков для реализации проекта и создания программного продукта в соответствии с требованиями заказчика.
Эти три ключевых характеристик обычно тесно связаны и могут изменяться в процессах разработки проекта заказчиком или разработчиком в сторону увеличения или уменьшения в соответствии с их интересами, целями и возможностями. При стремлении заказчика сократить сроки реализации проекта может требоваться увеличить бюджет (трудоемкость) и численность специалистов. При объективно недостаточном числе и квалификации специалистов, естественно, возрастают сроки создания программного продукта и, возможно, бюджет проекта. Практически всегда основным фактором, определяющим значения и взаимосвязь этих важнейших характеристик и их рисков, при создании сложных ПС, является оценка и отслеживание масштаба проекта, а также его согласование между заказчиком и разработчиком.
Для снижения возможного ущерба — рисков применяются
оценки, контроль и мониторинг рисков, а также различные контрмеры. Уменьшение рисков должно производиться путем максимально возможного приближения проекта к требованиям заказчика и к выделенным ресурсам или путем снижения этих требований и увеличения заказчиком ресурсов на проект ПС. В крупных проектах систем, использующих комплексы программ, риски могут быть обусловлены дефектами функциональных характеристик самих ПС и их жизненного цикла, а также недостатками систем и внешней среды, в которой они используются. Риски и искажения самих комплексов программ обычно не отличаются большим ущербом, отражающимся на затратах для их корректировки и устранении дефектов. Основной ущерб от рисков ПС проявляется в последствиях их применения -
в дефектах и недостатках функционирования систем и внешней среды. Поэтому анализ и оценка рисков ПС должны быть тесно связаны с исследованием их проявления в системах, где они используются.
Риски ПС могут проявляться в процессах проектирования, разработки и сопровождения при изменении и развитии комплексов программ и при применении готового программного продукта по прямому назначению. Это приводит к необходимости анализа рисков функционирования ПС в условиях, различающихся:
источниками и причинами угроз и опасного проявления рисков;
классами, категориями, уязвимостью ПС и системы, вероятностью проявления и величиной последствий рисков;
возможными и реализуемыми контрмерами для сокращения рисков и их эффективностью.
Оценка и измерение рисков во многих случаях характеризуется значительной неопределенностью и применением качественных метрик. Факторы и угрозы рисков могут быть распределены, и отличаться уязвимостью по этапам жизненного цикла ПС и системы. При анализе и управлении рисками целесообразно выделять, прежде всего, наиболее характерные этапы ЖЦ ПС: технико-экономического обоснование проекта ПС; разработку требований спецификаций; проектирование; кодирование; тестирование; и документирование.
Основная цель книги - представить отечественным специалистам современный комплекс задач, методов и стандартов анализа, управления и сокращения рисков при создании и развитии сложных программных средств требуемого высокого качества. Изложение ориентировано на коллективную, групповую работу «команд» специалистов над средними и крупными программными проектами. Внимание акцентировано на комплексе индустриальных методов и стандартов, которые могут обеспечивать
минимальные или допустимые риски в жизненном цикле сложных высококачественных программных средств. Для гарантирования высокого качества и допустимых рисков комплексов программ целесообразно выделять специалистов, ответственных за соблюдение промышленной технологии создания и совершенствование программ, за измерение и контроль характеристик качества, за сокращение рисков систем и ПС в целом и их компонентов. Для систематической, координированной борьбы с рисками проектов ПС и их предотвращения необходимо учить специалистов анализу, оцениванию конкретных факторов и контрмер, влияющих на риски функционирования программных продуктов со стороны реально существующих опасностей и потенциально возможных дефектов в программах и данных.
В книге представлены несколько опубликованных моделей управления рисками проектов программных средств. Изложены стандарты, отражающие общий анализ рисков сложных технологических систем, а также, процессы, регламентирующие анализ, прогнозирование и сокращение рисков проектов ПС. Рекомендуется учитывать особенности объектов, определяющие риски в жизненном цикле ПС, а также при формировании требований к функциям и характеристикам проектов программных средств. Систематизированы дефекты и ошибки, влияющие на риски при реализации функций ПС. Проанализирована реализация требований к функциональной Пригодности и к конструктивным характеристикам, а также возможность сокращения рисков при разработке и в жизненном цикле ПС. Оценены риски при обосновании проектов и прогнозы их последствий под влиянием различных факторов и ограничений ресурсов при разработке ПС, влияние характеристик специалистов, технологической среды и контрмер для снижения рисков проектов программных средств.