Лекция 2 Основные понятие и характеристики качества программного. Лекция 2 Основные понятие и характеристики качества программного обеспечения
Скачать 31.16 Kb.
|
Лекция 2 Основные понятие и характеристики качества программного обеспечения План 1.Дестабилизирующие факторы и методы обеспечения надежности функционирования программных средств 2. Методы обеспечения надежности программных средств. 3. Особенности обеспечения надежности функционирования импортных программных средств. Модель факторов, определяющих надежность программных средств. При любом виде деятельности людям свойственно непредумышленно ошибаться, результаты чего проявляются в процессе создания или применения изделий или систем. В общем случае под ошибкой подразумевается дефект, погрешность или неумышленное искажение объекта или процесса. При этом предполагается, что известно правильное, эталонное состояние объекта, по отношению к которому может быть определено наличие отклонения - дефекта или ошибки. Для систематической, координированной борьбы с ними необходимы исследования факторов, влияющих на надежность ПС со стороны случайных, существующих и потенциально возможных дефектов в конкретных программах. Это позволит целенаправленно разрабатывать комплексы методов и средств обеспечения надежности сложных ПС различного назначения при реально достижимом снижении уровня дефектов проектирования. При строго фиксированных исходных данных программы исполняются по определенным маршрутам и выдают совершенно определенные результаты. Многочисленные варианты исполнения программ при разнообразных исходных данных представляются для внешнего наблюдателя как случайные. В связи с этим дефекты функционирования программных средств, не имеющие злоумышленных источников, проявляются внешне как случайные, имеют разную природу и последствия. В частности, они могут приводить к последствиям, соответствующим нарушениям работоспособности, и к отказам при использования ПС. Последующий анализ надежности ПС базируется на модели взаимодействия основных компонент, представленных на рис.2. объектами уязвимости, влияющими на надежность ПС, являются: - динамический вычислительный процесс обработки данных, автоматизированной подготовки решений и выработки управляющих воздействий; - информация, накопленная в базах данных, отражающая объекты внешней среды, и процессы ее обработки; - объектный код программ, исполняемых вычислительными средствами в процессе функционирования ПС; - информация, выдаваемая потребителям и на исполнительные механизмы, являющаяся результатом обработки исходных данных и информации, накопленной в базе данных. На эти объекты воздействуют различные дестабилизирующие факторы, которые можно разделить на внутренние, присущие самим объектам уязвимости, и внешние, обусловленные средой, в которой эти объекты функционируют. Внутренними источниками угроз надежности функционирования сложных ПС можно выделить следующие дефекты программ: - системные ошибки при постановке целей и задач создания ПС, при формулировке требований к функциям и характеристикам решения задач, определении условий и параметров внешней среды, в которой предстоит применять ПС; - алгоритмические ошибки разработки при непосредственной спецификации функций программных средств, при определении структуры и взаимодействия компонент комплексов программ, а также при использовании информации баз данных; - ошибки программирования в текстах программ и описаниях данных, а также в исходной и результирующей документации на компоненты и ПС в целом; - недостаточную эффективность используемых методов и средств оперативной защиты программ и данных от сбоев и отказов и обеспечения надежности функционирования ПС в условиях случайных негативных воздействий. Внешними дестабилизирующими факторами, отражающимися на надежности функционирования перечисленных объектов уязвимости в ПС, являются: - ошибки оперативного и обслуживающего персонала в процессе эксплуатации ПС; - искажения в каналах телекоммуникации информации, поступающей от внешних источников и передаваемой потребителям, а также недопустимые для конкретной информационной системы характеристики потоков внешней информации; - сбои и отказы в аппаратуре вычислительных средств; - изменения состава и конфигурации комплекса взаимодействующей аппаратуры информационной системы за пределы, проверенные при испытаниях или сертификации и отраженные в эксплуатационной документации. Полное устранение перечисленных негативных воздействий и дефектов, отражающихся на надежности функционирования сложных ПС, принципиально невозможно. Проблема состоит в выявлении факторов, от которых они зависят, в создании методов и средств уменьшения их влияния на надежность ПС, а также в эффективном распределении ресурсов на защиту для обеспечения необходимой надежности комплекса программ, равнопрочного при всех реальных воздействиях. Современные достижения микроэлектроники значительно снизили влияние сбоев и отказов вычислительных средств на надежность функционирования ПС. Однако ошибки персонала, искажения данных в каналах телекоммуникации, а также случайные (при отказах части аппаратуры) и необходимые изменения конфигурации вычислительных средств остаются существенными внешними угрозами надежности ПС. Негативное влияние этих факторов может быть значительно снижено соответствующими методами и средствами защиты и восстановления программ и данных. Внешние дестабилизирующие факторы имеют различную природу и широкий спектр характеристик, которые представлены во многих публикациях [4,5,20,43]. Поэтому ниже внимание акцентируется на внутренних дестабилизирующих факторах, различного рода дефектах и ошибках проектирования и эксплуатации, которые оказывают наибольшее влияние на надежность функционирования ПС. Различия между ожидаемыми и полученными результатами функционирования программ могут быть следствием ошибок не только в созданных программах и данных, но и системных ошибок в первичных требованиях спецификаций, явившихся исходной базой при создании ПС. Тем самым проявляется объективная реальность, заключающаяся в невозможности абсолютной корректности и полноты исходных для проектирования спецификаций сложных ПС. На практике в процессе разработки ПС исходные требования уточняются и детализируются по согласованию между заказчиком и разработчиком. Базой таких уточнений являются неформализованные представления и знания специалистов, а также результаты промежуточных этапов проектирования. Однако установить ошибочность исходных данных и спецификаций еще труднее, чем обнаружить ошибки в созданных программах и данных, так как принципиально отсутствуют формализованные данные, которые можно использовать как эталонные, и их заменяют неформализованные представления заказчиков и разработчиков. Степень влияние всех внутренних дестабилизирующих факторов, а также некоторых внешних угроз на надежность ПС определяется в наибольшей степени качеством технологий проектирования, разработки, сопровождения и документирования ПС и их основных компонент. При ограниченных ресурсах на разработку ПС для достижения заданных требований по надежности необходимо управление обеспечением качества в течение всего цикла создания программ и данных. Такое управление предполагает высокую дисциплину и проектировочную культуру всего коллектива специалистов, использование им методик, типовых нормативных документов и средств автоматизации разработки. Кроме того, обеспечение качества ПС предполагает формализацию и сертификацию технологии их разработки, а также выделение в специальный процесс поэтапное измерение и анализ текущего качества создаваемых и применяемых компонент. Попытки создания сложных, распределенных ПС на базе мультипроцессорных ЭВМ и концепции клиент-сервер без использования эффективных технологий и средств автоматизации проектирования, связаны с высоким риском полного провала проектов вследствие трудностей обеспечения необходимой надежности функционирования таких систем. Методы обеспечения надежности программных средств. В современных автоматизированных технологиях создания и развития сложных ПС с позиции обеспечения их необходимой и заданной надежности можно выделить методы и средства позволяющие: - создавать программные модули и функциональные компоненты высокого, гарантированного качества (см.гл.2); - предотвращать дефекты проектирования за счет эффективных технологий и средств автоматизации обеспечения всего жизненного цикла комплексов программ и баз данных (см.п.3.1); - обнаруживать и устранять различные дефекты и ошибки проектирования, разработки и сопровождения программ путем систематического тестирования на всех этапах жизненного цикла ПС (см.п.3.2); - удостоверять достигнутые качество и надежность функционирования ПС в процессе их испытаний и сертификации перед передачей в регулярную эксплуатацию (см.п.3.3); - оперативно выявлять последствия дефектов программ и данных и восстанавливать нормальное, надежное функционирование комплексов программ (см.п.3.4). Комплексное, скоординированное применение этих методов и средств в процессе создания, развития и применения ПС позволяет исключать некоторые виды угроз или значительно ослаблять их влияние. Тем самым уровень достигаемой надежности ПС становится предсказуемым и управляемым, непосредственно зависящим от ресурсов, выделяемых на его достижение, а главное, от качества и эффективности технологии, используемой на всех этапах жизненного цикла ПС. Предотвращение ошибок и улучшение технико-экономических показателей создания ПС обеспечивается применением современных технологий и систем автоматизированного проектирования, объединенных понятиями CASE и языки четвертого поколения (4GL) [9,12,40,49,53]. CASE-технологии представляют собой высокопроизводительные, ресурсосберегающие технологии создания комплексов программ высокого качества и надежности, имеют целью сокращение общих затрат на проектирование, реализацию, сопровождение и развитие таких систем. Такие технологии позволяют исключать или значительно снижать уровень системных, алгоритмических и программных ошибок в ПС, передаваемых на эксплуатацию. Кроме того, они эффективны при модификации и сопровождении ПС, а также при изменении конфигурации внешней среды. Повышение уровня автоматизации проектирования, применение методов и средств CASE-технологий - один из самых эффективных современных путей повышения надежности ПС. При создании ПС высокой сложности важная проблема состоит в правильном системотехническом и информационно-технологическом проекте, обеспечивающем потребности конечного пользователя, высокие потребительские свойства и надежность ПС. CASE-средства предназначены для реализации больших и средних критических и ответственных проектов коллективами разработчиков и обычно базируются на охватывающих все этапы жизненного цикла этих систем, на конкретных методологиях коллективной разработки и сопровождения ПС. Интегрированные CASE-средства служат для извлечения и формализации знаний заказчика на этапе проведения обследования, анализа и подготовки технического задания, а также для проектирования концептуальной и логической структур комплексов программ и баз данных. Одновременно благодаря высокому качеству проработки и документирования такого проекта создается основа для снижения трудоемкости отладки, тестирования, испытаний, а также сопровождения и развития прикладных ПС. Совместное применение современных CASE-технологий и языков четвертого поколения способно снизить трудоемкость разработки сложных программных средств в несколько раз и сократить длительность их проектирования с 2-3 лет до нескольких месяцев. Базовым принципом современных методов и технологий создания прикладных программных средств является многократное использование отработанных технических решений на различных аппаратных и операционных платформах. В настоящее время по некоторым оценкам только 10-15% прикладных программ создается вновь, в то время как основная часть программных средств переносится с других проектов или платформ, комплексируется и собирается из готовых, испытанных повторно используемых компонент гарантированного качества. Организация, внедряющая у себя CASE-технологию, должна осуществить определенные затраты на внедрение соответствующей методологии и средств, а также на обучение разработчиков. Результатом внедрения CASE-средств является значительное сокращение затрат на проектирование прикладной системы, высокое качество проекта и надежность комплекса программ. Языки четвертого поколения - 4GL - предназначены для быстрой разработки проектов в определенной проблемной области. Они дают высокую производительность и достаточную гибкость при создании прикладных систем в тех проблемных областях (в одной или в нескольких), на которые ориентирован язык. Языки 4GL разных видов имеют общую цель - ускорение разработок, повышение их надежности и снижение требований к уровню квалификации разработчика. Они обеспечивают поддержку различных стандартов и интерфейсов пользователя, что также способствует повышению качества и надежности ПС. Предотвращению дефектов в сложных, распределенных ПС способствует развитие и применение концепции и стандартов открытых систем [18,33,38,51]. При этом следует учитывать, что их использование сопряжено с некоторыми противоречивыми тенденциями в номенклатуре и величинах угроз, отражающихся на надежности ПС. Стандартизация интерфейсов между внешними и внутренними компонентами ПС и возможность массового переноса программ и данных на различные аппаратные и операционные платформы способствуют распространению дефектов и невыявленных ошибок, остающихся в переносимых компонентах. Усложнение взаимодействия программ и данных в распределенных ПС также приводит к возрастанию вероятности проявления угроз и снижению надежности. Однако переносимые компоненты, как правило, тщательнее тестируются и испытываются, поэтому имеют более высокое качество чем те, которые созданы без ориентации на переносимость. Стандартизация и глубокий формализованный контроль интерфейсов и протоколов взаимодействия компонент ПС позволяют создавать сложные, распределенные комплексы программ высокой надежности. Строгое соблюдение и контроль соответствия стандартам открытых систем является высокоэффективным методом предотвращения ряда классов дефектов и ошибок и повышения надежности ПС. Для обнаружения и устранения ошибок проектирования все этапы разработки и сопровождения ПС должны быть поддержаны методами и средствами систематического, автоматизированного тестирования [16,22,42,43,44]. На этапах разработки ПС целесообразно применять различные методы, эталоны и виды тестирования, каждый из которых ориентирован на обнаружение, локализацию или диагностику определенных типов дефектов. Непредсказуемость конкретных дефектов и ошибок в программах приводит к целесообразности последовательного, методичного анализа возможности проявления любого типа ошибок и к необходимости их исключения на наиболее ранних этапах разработки при минимальных затратах. Надежность функционирования ПС непосредственно зависит от полноты применяющихся комплектов тестов и адекватности генераторов тестов реальным объектам внешней среды и условиям будущей эксплуатации. Тестирование - основной метод измерения качества, определения корректности и реальной надежности функционирования программ на любых этапах разработки (см.п.3.2). Результаты тестирования и измерения показателей качества должны сравниваться с требованиями технического задания или спецификаций для определения степени соответствия предъявлявшимся требованиям, полученным разработчиком от заказчика. Такие достаточно полные эталоны, как совокупность требований технического задания и поэтапная их декомпозиция в спецификациях, необходимы для тестирования при промежуточных и завершающих испытаниях. Важная особенность тестирования сложных ПС - необходимость достаточно полной их проверки при ограниченной длительности испытаний. Это определяет целесообразность тщательного планирования тестирования с учетом всех результатов, полученных на предыдущих этапах разработки. При планировании основная задача состоит в достижении максимальной достоверности испытаний, определения качества и надежности ПС при ограниченных затратах ресурсов на проведение тестирования. За ограниченный, относительно короткий, период испытаний трудно провести обширное тестирование, достоверно демонстрирующее достигнутые показатели качества и надежности, и гарантировать выполнение всех технических требований к сложному ПС. Поэтому для обеспечения высокого качества целесообразно проводить испытания не только завершенного разработкой ПС, но на ряде промежуточных этапов разработки проверять состояние и корректность компонент проекта. Для этого до начала разработки в процессе формирования технического задания следует формулировать план и основные положения методики обеспечения качества, поэтапных испытаний компонент и определения характеристик, допустимых для продолжения разработки на следующем этапе. Одновременно должно происходить поэтапное уточнение технического задания и методики испытаний ПС. В этом случае испытатели и представители заказчика получают возможность глубокого ознакомления, поэтапного контроля качества компонент создаваыемого ПС и достаточно полного учета результатов тестирования при последующих испытаниях. Важное значение имеет учет особенностей тестирования сложных программ, которые отличают этот процесс от традиционного, применяемого для проверки аппаратуры и других технических систем. С этой позиции основными особенностями процесса тестирования программ являются: - отсутствие полностью определенного достоверного эталона -программы, которому должны точно соответствовать все результаты тестирования проверяемой программы; - высокая сложность комплексов программ и принципиальная невозможность построения полных комплектов тестовых наборов, достаточных для их исчерпывающей проверки, в том числе, на надежность функционирования; - относительно невысокая степень формализации критериев качества процесса тестирования и достигаемых при этом корректности и надежности функционирования объектов испытаний. Тестирование сопровождает весь жизненный цикл ПС и на его основе формируются, уточняются и детализируются технические требования, спецификации и проект в целом. На начальных этапах проекта процессы разработки и тестирования часто практически смыкаются, однако целесообразно, по возможности, их разделять методически, инструментально и по исполняющим специалистам. Для сложных ПС систематическому тестированию их программ приходится уделять зачастую столько же времени и сил, сколько их непосредственной разработке. Недооценка необходимости планомерного тестирования в процессе разработки проекта приводит к резкому возрастанию затрат на выявление и исправление ошибок в процессе эксплуатации, а также к снижению надежности использования таких ПС. Систематическое, скоординированное тестирование реализации функций ПС во всем доступном разнообразии возможных ситуаций и условий внешней среды способствует обнаружению внутренних дефектов, угрожающих катастрофическими последствиями для надежности и безопасности ПС. Модели внешней среды и совокупные наборы тестов по сложности соизмеримы с тестируемыми объектами и также не гарантированы от ошибок. В результате в программах и данных всегда остаются дефекты и ошибки, часть которых выявляется в процессе эксплуатации ПС в реальной среде. Реальные ограничения допустимой длительности процессов тестирования и объемов комбинаторики в тестах приводят к некоторому уровню невыявленных ошибок, часть из которых определяет конечную надежность функционирования ПС. Чем шире тиражируются ПС и чем разнообразнее характеристики реальной внешней среды, даже в пределах, ограниченных требованиями документации, тем более вероятны проявления сбоев и отказов, в том числе катастрофических. Это приводит к необходимости сопровождения всего тиража ПС, выявления и устранения дефектов, а также последовательного выпуска очередных, исправленных версий ПС для замены эксплуатируемых. Для удостоверения качества, надежности и безопасности применения сложных, критических ИС, используемые в них ПС следует подвергать обязательной сертификации аттестованными, проблемно-ориентированными испытательными лабораториями [8,11,27] (см.п.3.3). Такие испытания необходимо проводить, когда программы управляют сложными процессами или обрабатывают столь важную информацию, что дефекты в них или недостаточное качество могут нанести значительный ущерб. Сертификационные испытания должны устанавливать соответствие комплексов программ документации и допускать их к эксплуатации в пределах изменения параметров внешней среды, исследованных при проведенных проверках. Эти виды испытаний характеризуются наиболшей строгостью и глубиной проверок и должны проводиться специалистами, независимыми от разработчиков и от заказчиков (пользователей). Испытания ПС должны опираться на стандарты, формализованные методики и нормативные документы разных уровней. Множество видов испытаний целесообразно упорядочивать и проводить поэтапно в процессе разработки для сокращения затрат на завершающих сертификационных испытаниях. Сертификация комплексов программ является их испытанием в наиболее жестких условиях тестирования особым третейским коллективом специалистов, имеющим право на официальный государственный или ведомственный контроль функций и качества ПС и гарантирующим их соответствие стандартам и другим нормативным документам, а также надежность и безопасность применения. Получение и обобщение результатов испытаний, а также принятие решения о выдаче сертификата является прерогативой испытательных лабораторий. Они должны быть специализированными для проведения испытаний объектов определенных классов и целенаправленно систематически работать по созданию и совершенствованию методик и средств автоматизации испытаний ПС конкретного функционального назначения. Специалисты - сертификаторы имеют право на расширение условий испытаний и на создание различных критических и стрессовых ситуаций в пределах нормативной документации, при которых должно обеспечиваться заданное качество и надежность решения предписанных задач. Если все испытания проходят успешно, то на соответствующую версию ПС оформляется специальный документ - сертификат соответствия. Этот документ официально подтверждает соответствие стандартам, нормативным и эксплуатационным документам функций и характеристик испытанных средств, а также допустимость их применения в определенной области. Методология принятия решений о допустимости выдачи сертификата на ПС определяется оценкой степени его соответствия действующим и/или специально разработанным документам. В исходных нормативных документах должны быть сосредоточены все функциональные и эксплуатационные характеристики ПС, обеспечивающие заказчику и пользователям возможность корректного применения сертифицированного объекта во всем многообразии его функций и показателей качества. Выбор и ранжирование показателей должны производиться с учетом классов ПС, их функционального назначения, режимов эксплуатации, степени критичности и жесткости требований к результатам функционирования и проявлениям возможных дефектов и ошибок. При этом могут привлекаться документы предшествующих этапов испытаний и документы, подтверждающие соблюдение аттестованных технологий при разработке программ на всех этапах. Испытания ПС в конкретных, проблемно-ориентированных системах проводятся по правилам и методикам, принятым для соответствующих классов критических информационных систем, например, авиационных или космических комплексов. Работы по сертификации объединяются в технологический процесс, на каждом этапе которого регистрируются документы, отражающие состояние и качество результатов разработки ПС. В зависимости от характеристик объекта сертификации на ее выполнение выделяются ресурсы различных видов. В результате сложность программ, а также доступные для сертификации ресурсы становятся косвенными критериями или факторами, влияющими на выбор методов испытаний, а также на достигаемое качество и надежность ПС. Сертификационные испытания удостоверяет качество и надежность ПС только в условиях, ограниченных конкретными стандартами и нормативными документами, с некоторой конечной вероятностью. В реальных условиях эксплуатации принципиально возможны отклонения характеристик внешней среды функционирования ПС за пределы, ограниченные сертификатом, и ситуации, не проверенные при сертификационных испытаниях. Эти обстоятельства способны вызывать катастрофические последствия, угрожающие надежности функционирования и безопасности применения ПС. Наличие сертификата у ПС для критических систем является необходимым условием их допуска к эксплуатации. Однако любой сертификат на сложные системы не может гарантировать абсолютную их надежность применения и всегда остается некоторый риск возникновения отказовых ситуаций. Отсутствие гарантии достижения в процессе создания ПС абсолютной надежности их функционирования за счет использования высоких технологий, тестирования и сертификации заставляет искать дополнительные методы и средства повышения надежности ПС. Для этого разрабатываются и применяются методы оперативного обнаружения дефектов и искажений при исполнении программ путем введения в них временной, информационной и программной избыточности [16,20,46,48] (см.п.3.4). Эти же виды избыточности используются для оперативного восстановления искаженных программ и данных и предотвращения возможности развития результатов реализации угроз до уровня, нарушающего надежность функционирования ПС. Основная задача ввода избыточности состоит в ограничении или исключении возможности аварийных последствий от возмущений, соответствующих отказу системы. Любые аномалии при исполнении программ необходимо блокировать и по возможным последствиям сводить до уровня сбоя путем быстрого восстановления. Особенности обеспечения надежности функционирования импортных программных средств. При использовании зарубежных ПС, в принципе, в них возможны как злоумышленные, так и случайные, непредумышленные искажения вычислительного процесса, программ и данных, отражающиеся на надежности их функционирования [2,34]. Злоумышленные вирусы и "закладки", хотя и мало вероятны в серийных, широко тиражируемых в мире ПС, тем не менее требуют особых методов и средств целенаправленного их обнаружения и устранения (см.п.3.3). Зарубежным специалистам свойственно ошибаться так же, как и отечественным, однако более высокое качество используемых технологий разработки и современная проектировочная культура позволяют значительно снижать уровень дефектов в изделиях, поступающих на рынок и в эксплуатацию. Тем не менее в любых сложных импортных ПС всегда не гарантировано полное, абсолютное отсутствие случайных ошибок, которые остаются важнейшими дестабилизирующими факторами. Их применение в критических отечественных ПС требует соответствующего дополнительного контроля качества и специальных работ по обеспечению надежности при эксплуатации. Представленные выше объекты уязвимости, дестабилизирующие факторы и угрозы надежности присущи любым программам и данным независимо от фирм-разработчиков. Однако методы предотвращения и снижения влияния угроз надежности для зарубежных ПС значительно отличаются. Разрыв в пространстве и времени при проектировании конкретного ПС между первичными зарубежными создателями программных компонент и потребителями, интеграторами, непосредственными создателями отечественных ИС затрудняет взаимодействие по предотвращению ошибок за счет применения CASE-технологий. Отечественный покупатель импортных ПС обычно не знает, какая технология была применена при их разработке и какие классы ошибок могли быть оставлены. В составе пользовательской документации, как правило, отсутствуют исходные тексты программ и номенклатура тестов, использованных при их отладке. Поэтому методы предотвращения ошибок в импортных программах и данных почти всегда остаются недоступными и неизвестными отечественным специалистам. Это отражается или на хроническом недоверии к качеству и надежности применения зарубежных программных компонент или в слепой вере в их абсолютную безупречность. Комплексирование готовых импортных прикладных ПС в конкретной отечественной ИС создает условия их функционирования не всегда адекватные предусмотренным разработчиками и проверенным при испытаниях, хотя и не выходящие за пределы требований эксплуатационной документации. Это способствует проявлению ранее скрытых дефектов и ошибок проектирования и необходимости их устранения. Для этого ответственные и квалифицированные поставщики зарубежных ПС имеют службы сопровождения, регистрации и накопления претензий пользователей, и быстрого реагирования для устранения реальных дефектов функционирования. Легальная закупка и использование лицензионно чистых ПС, обеспеченных сопровождением солидной фирмы-поставщика, позволяет в значительной степени снижать влияние на надежность ПС дефектов, не предотвращенных в процессе проектирования. Этому же может способствовать применение разработчиками ИС той же CASE-технологии, которая использовалась зарубежными создателями применяемых ПС. Для этого, в частности, наиболее популярные СУБД при продаже комплектуются средствами соответствующей CASE-технологии. Поставки прикладных программ различного назначения могут содержать рекомендации по использованию определенных CASE-технологии при комплексировании импортных компонент в составе конкретной ИС. Применение той же CASE-технологии позволяет более полно понимать функциональные и технические возможности закупленных ПС в процессе их комплексирования в проблемно-ориентированной ИС. Это предотвращает наиболее сложные системные ошибки при использовании и интегрировании импортных ПС. Таким образом, хотя непосредственное предотвращение и исправление ошибок импортных ПС отечественными потребителями в процессе разработки ИС затруднительно, при соответствующем взаимодействии с конкретными зарубежными фирмами, надежность ИС при использования зарубежных программных продуктов можно поставить под достаточно жесткий контроль. Систематическое тестирование импортных ПС в процессе проектирования производится самими разработчиками ИС. При разработке критических ПС целесообразно создание или закупка комплектов и генераторов тестов для тестирования конкретных ПС в составе ИС или автономно. Такое дополнительное тестирование повышает уверенность в качестве и надежности применяемых импортных продуктов в конкретном окружении, а также может приводить к обнаружению некоторых ошибок проектирования и комплексирования зарубежных программных компонент. Их устранение в большинстве случаев целесообразно проводить силами зарубежной фирмы-разработчика с использованием организационно и юридически оформленного механизма сопровождения изделий поставщиком. Обязательная сертификация зарубежных ПС для сложных, критических ИС предполагает сопровождение закупаемых, лицензионно чистых изделий сертификатом соответствия, выданным специализированной испытательной фирмой. Такое юридическое утверждение качества и надежности применения импортного изделия может быть недостаточным для особо важных, критических ИС, так как сертификат соответствия не всегда сопровождается протоколами испытаний и использованными при этом тестами, что не позволяет оценить полноту испытаний. В этих случаях следует ориентироваться на дополнительную сертификацию импортных ПС отечественными проблемно-ориентированными, аттестованными сертификационными лабораториями. Такие испытания позволяют удостовериться в надежности применяемых зарубежных ПС, а также дополнительно выявить некоторые некорректности программ или документации. Их устранение требует взаимодействия с зарубежной фирмой-поставщиком для корректировки изделий и исключения дефектов. Самостоятельное исправление выявленных ошибок отечественными специалистами сопряжено с риском внесения дополнительных вторичных ошибок из-за недостаточной квалификации и не полной информации о детальном содержании текстов программ и описаний данных. Кроме того, любые изменения в сертифицированных изделиях помимо фирмы-поставщика приводят к автоматическому аннулированию выданного ею сертификата. Дополнительное подтверждение сертификата соответствия отечественными специалистами может значительно повысить уверенность в надежности зарубежных ПС. Оперативные методы повышения надежности функционирования ПС предусматриваются в некоторых зарубежных изделиях и, в частности, в механизмах обеспечения целостности информации баз данных в реляционных СУБД. Однако разнообразие условий функционирования импортных ПС в сложных, отечественных ИС не позволяет удовлетвориться только штатными методами оперативного обнаружения аномалий и восстановления вычислительного процесса, программ и данных. Методы и средства для этого могут быть в ряде случаев достаточно автономными и ориентированными на оперативное повышение надежности конкретной ИС в целом, а не только отдельных, используемых ПС. Эти специализированные методы и средства могут разрабатываться отечественными специалистами для обеспечения комплексной надежности с использованием всех импортных компонент. Такой подход позволяет обеспечить комплексирование разнородных ПС различных зарубежных поставщиков и специализированной отечественной системы оперативной защиты в едином комплексе программ. При этом важно использовать концепцию и стандарты открытых систем при взаимодействии между, как закупаемыми, так и вновь разрабатываемыми компонентами ПС, а также при их взаимодействии с внешней средой. Применение стандартизированных интерфейсов открытых систем между прикладными программами и CASE-технологий, является эффективным современным методом повышения надежности информационных систем при наличии разнородных поставщиков компонент. Таким образом, для обеспечения надежности функционирования зарубежных ПС в составе отечественных ИС прежде всего следует полностью отказаться от применения нелегальных импортных программ и баз данных. Процессы закупки, контроля и применения импортных ПС для сложных, отечественных ИС должны быть организованы и поддержаны дополнительными испытаниями. Использование лицензионно чистых ПС и тесное взаимодействие с их зарубежными фирмами-поставщиками позволяет эффективно продолжать тестирование программ при их комплексировании в отечественных ИС, оценивать и повышать надежность функционирования. При закупке зарубежных ПС целесообразно требовать сертификат соответствия и сопроводительную документацию по методам, тестам и результатам испытаний. В ряде случаев может быть необходима дополнительная сертификация импортных программ отечественными сертификационными лабораториями. Кроме того, для каждой критической ИС должна разрабатываться специализированная система обеспечения надежности ее функционирования путем оперативного контроля и выявления дефектов и восстановления вычислительного процесса, программ и данных при их искажениях, угрожающих надежности и безопасности применения. В импортных программах кроме случайных ошибок возможны преднамеренные фрагменты - "закладные элементы" и вирусы, с целью реализации вредных для эксплуатации функций, которые не описаны в документации [2,34]. До наступления определенного события закладной элемент остается неактивным, а при выполнении некоторого условия осуществляет разрушительные действия, приводящие к отказу и не предусмотренные функциональным назначением и документацией. Сертификация импортных программ для удостоверения отсутствия в них вирусов или "закладных элементов" может осуществляться в двух ситуациях: - при наличии в составе поставляемой документации исходных текстов программ на языке программирования и описаний алгоритмов обработки информации; - при наличии только эксплуатационной документации, недостаточной для анализа содержания и текстов программ. В первом случае определение наличия в программе посторонних компонент может производиться последовательной сверкой текста программы на языке программирования с описанием программы и спецификацией. По тексту программы составляется блок-схема реализуемого алгоритма, которая сравнивается с алгоритмом, изложенном в описании программы. Если логическая структура алгоритмов различается, то следует проводить дополнительный анализ элементов блок-схем, в которых обнаружены различия. Такие различия могут быть обусловлены дефектами документации на программу, случайными или предумышленными дефектами самой программы. Дефекты программы подлежат подробному анализу, классификации и корректировке, после чего ее следует подвергнуть полному тестированию и повторной сертификации на полное соответствие всей документации и отсутствие вредных компонент. Во втором случае, который является наиболее массовым, задача значительно усложняется, так как исходные документы о структуре и содержании программ и алгоритмов не поставляются. Для получения текста программы и алгоритма необходимо провести дизассемблирование объектного кода программы и выразить каждую функциональную команду кода ассемблера в виде логической процедуры для представления как оператора блок-схемы алгоритма. Построенная блок-схема подлежит анализу на наличие сомнительных конструкций, тупиков и висячих вершин, которые могут оказаться закладными элементами. Каждая сомнительная группа процедур подлежит дальнейшему анализу на возможность ее принадлежности закладному элементу, вирусу или случайной ошибке. Выявленные участки программы, содержащие случайные и предумышленные дефекты должны корректироваться. После их исключения программа подлежит полному тестированию на соответствие эксплуатационной документации. Четкое экономическое и юридическое взаимодействие с определенными фирмами-поставщиками импортных ПС позволяет держать под контролем не только достижимую надежность ИС, но и значительно снижает вероятность злоумышленных аномалий в поставляемых ими изделиях. Обнаружение и публикация сведений о предумышленных негативных компонентах в программных продуктах способны нанести значительный ущерб репутации и бизнесу фирмы. |