КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Методы обеспечения надежности программных средств
1. Предотвращение появления дефектов проектирования за счет использования CASE – средств.
Предотвращение ошибок обеспечивается применением современных технологий и систем автоматизированного проектирования, объединенных понятиями CASE и языков четвертого поколения. Такие технологии позволяют исключать или значительно снижать уровень системных, алгоритмических и программных ошибок в ПС, передаваемых на эксплуатацию. Кроме того, они эффективны при модификации и сопровождении ПС, а также при изменении конфигурации внешней среды. Совместное применение современных CASE-технологий и языков четвертого поколения способно снизить трудоемкость разработки сложных программных средств в несколько раз и сократить длительность их проектирования с 2-3 лет до нескольких месяцев. Базовым принципом современных методов и технологий создания прикладных программных средств является многократное использование отработанных решений на различных аппаратных и операционных платформах. В настоящее время по некоторым оценкам только 10-15% прикладных программ создается вновь, в то время как основная часть программных средств переносится с других проектов или платформ, комплексируется и собирается из готовых, испытанных и повторно используемых компонент гарантированного качества. Результатом внедрения CASE-средств является значительное сокращение затрат на проектирование прикладной системы, высокое качество проекта и надежность комплекса программ.
Языки 4GL разных видов имеют общую цель - ускорение разработок, повышение их надежности и снижение требований к уровню квалификации разработчика. Они обеспечивают поддержку различных стандартов и интерфейсов пользователя, что также способствует повышению качества и надежности ПС. Предотвращению дефектов в ПС способствует концепция открытых систем. Возможность массового переноса программ и данных на различные аппаратные и операционные платформы способствует, с одной стороны, распространению дефектов и не выявленных ошибок, остающихся в переносимых компонентах. Однако переносимые компоненты, как правило, тщательнее тестируются и испытываются, поэтому имеют более высокое качество, чем те, которые созданы без ориентации на переносимость. Строгое соблюдение и контроль соответствия стандартам открытых систем является высокоэффективным методом повышения надежности ПС.
2.НАДЕЖНОСТНОЕ ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
· Программирование без использования операторов GO TO. Сам по себе оператор безусловного перехода не приводит к ошибкам. Однако передача управления с помощью этого оператора может вызывать усложнение логической схемы программы и сделать ее трудночитаемой. Наоборот, исключение операторов GO TO позволяет получить более понятную и удобочитаемую программу. В подобных случаях текст программы в большей степени соответствует порядку выполнения команд.Это положение лучше всего проиллюстрировать на примере.
Рис. Программа, содержащая Рис. Программа без операторов операторы перехода перехода
На рис. представлена программа, составленная с использованием операторов безусловного перехода, а на рис. показана эта же программа, но без операторов перехода. Легко заметить, что первая программа, · Использование нисходящего программирования. Более надежное программное обеспечение позволяет получить «нисходящее» программирование. В этом случае руководитель группы программистов не только осуществляет контроль за работой, но и участвует в составлении программы. Вначале составляется основная часть программы с учетом подсистем следующего уровня. Каждый программист отвечает, за проверку своей подсистемы или модуля до момента объединения последних в единую систему. Интеграция модулей в систему выполняется последовательно по уровням и поручается самому квалифицированному из авторов стыкуемых программ. · Модульное конструирование программ. Обычно при составлении сложной программы ее разбивают на отдельные модули, так что каждый из них может использоваться во многих других. Однако при этом увеличивается вероятность возникновения всякого рода недоразумений и ошибок. Этот источник ошибок можно свести к минимуму, если вход в каждый модуль будет осуществляться только в его начало (сверху), а выход — только в его конце (снизу).
3.Обнаружение и устранение различных дефектов и ошибок.
Для обнаружения и устранения ошибок проектирования все этапы разработки и сопровождения ПС должны быть поддержаны методами и средствами систематического, автоматизированного тестирования. Тестирование - основной метод измерения реальной надежности функционирования программ. Исходная программа испытываемого модуля вначале снабжается дополнительными операторами. Эти дополнительные операторы называются датчиком и счетчиком, а сам процесс введения указанных операторов носит название инструментального оснащения. В процессе инструментального оснащения исходной программы ее функции должны оставаться неизменными, т. е. оператор-датчик и оператор-счетчик не должны менять функционального назначения программы. Снабженный дополнительными операторами блок программы транслируется обычным способом, а полученная выходная программа прогоняется с использованием ее тестовых данных. При этом на выходе программы помимо обычных результатов получают также инструментальный файл данных. Затем этот инструментальный файл данных и файл данных исходной, программы, снабженной дополнительными операторами, вводятся в модуль анализатора, который выдает на выходе сведения о поведении испытываемого модуля в процессе его выполнения. В каждом таком отчете содержится информация о числе случаев появления каждого оператора, числе случаев выбора конкретного маршрута в каждой точке ветвления и о времени, необходимом для выполнения каждого оператора. Подобная информация используется при проверке структуры программы; она дает уверенность в правильности логики и кода программы, гарантирует, что каждый оператор и каждое ответвление программы выполняются хотя бы один раз. Результаты тестирования должны сравниваться с требованиями технического задания. Важная особенность тестирования сложных ПС - необходимость достаточно полной их проверки при ограниченной длительности испытаний. Это требует тщательного планирования тестирования. При планировании основная задача состоит в достижении максимальной достоверности испытаний ПС при ограниченных затратах ресурсов на проведение тестирования. Если программа разрабатывается для широкого круга пользователей (коммерческая программа), то ее испытания проводятся в два последовательных этапа – Альфа и Бета тестирование. При Альфа тестировании привлекаются конечные пользователи, работающие в той же компании, но не участвующие непосредственно в разработке комплекса программ. Для Бета тестирования привлекаются добровольные пользователи (потенциальные покупатели), которым бесплатно передается версия ПС для опытной эксплуатации. Эти пользователи обязуются сообщать разработчикам сведения о всех выявленных ошибках. Их деятельность стимулируется бесплатным и ранним получением нового программного средства.
4. Удостоверение качества и надежности.
Для удостоверения качества, надежности и безопасности применения ИС, используемые в них ПС следует подвергать обязательной сертификации в аттестованных испытательных лабораториях. Такие испытания необходимо проводить, когда программы управляют сложными процессами или обрабатывают столь важную информацию, что дефекты в них могут нанести значительный ущерб. Эти виды испытаний характеризуются наибольшей строгостью и глубиной проверок и должны проводиться специалистами, независимыми от разработчиков и от заказчиков (пользователей). Если все испытания проходят успешно, то на соответствующую версию ПС оформляется специальный документ - сертификат соответствия. Этот документ официально подтверждает соответствие стандартам, нормативным и эксплуатационным документам функций и характеристик испытанных средств, а также допустимость их применения в определенной области. Однако любой сертификат на сложные системы не может гарантировать абсолютную их надежность применения и всегда остается некоторый риск возникновения отказовых ситуаций.
5.Оперативное обнаружение дефектов и искажений. Под контролем в ЭВМ понимаются процессы, обеспечивающие обнаружение ошибок в работе ЭВМ, вызванных отказом или сбоем аппаратуры, ошибкой оператора, ошибкой в программе или другими причинами. Контроль является одним из самых эффективных средств увеличения надежности и достоверности вычислений (обработки информации). Контроль необходимо организовать так, чтобы по возможности контролировались все функции проверяемого объекта. Степень достижения этой цели называют полнотой контроля. Количественно полнота контроля оценивается отношением, показывающим относительное число элементов схемы, охваченных данным способом контроля.
По признаку применяемых средств контроль в ЭВМ разделяется на аппаратный, осуществляемый аппаратными средствами; программный, осуществляемый программными средствами; смешанный, осуществляемый совместно программными и аппаратными средствами.
Аппаратный контроль отличается большим быстродействием, но требует дополнительных аппаратных средств. Программный контроль последних не требует, кроме некоторого дополнительного объема памяти для размещения программ контроля. Однако он связан с некоторым расходом дополнительного процессорного времени для выполнения программ контроля. Но программный контроль, как правило, обладает большей полнотой, чем аппаратный контроль, и предполагает, чтобы функционировали основные аппаратные средства для реализации программы контроля. Следовательно, целесообразно сочетать аппаратные и программные средства контроля, что и осуществляется в большинстве современных ЭВМ и систем. По характеру контроль в ЭВМ подразделяется на оперативный и тестовый. Оперативный контроль осуществляется в ходе решения эксплуатационных задач и позволяет в процессе их решения немедленно (задержка может не превышать время выполнения одного такта или нескольких тактов работы ЭВМ) обнаруживать ошибку в ее работе. Тестовый контроль осуществляется в специально отведенные промежутки времени на основе решения специальных, тестовых задач. Он основан на тестах, обеспечивающих полный контроль всех элементов объекта (элементов аппаратуры, команд программы) за короткое или даже за минимальное время. Недостаток тестового контроля — потеря дополнительного процессорного времени, расходуемого на тесты.
По способу организации различают контроль прямой, обратный и смешанный. При прямом контроле основной вычислительный процесс О с исходными данными X и результатами Y сопровождается параллельным вычислительным процессом П. В случае безошибочной работы системы результаты процессов О и П должны совпадать, что определяется устройством сравнения М2. В случае, когда результаты отличаются (или отличаются больше их результирующей допустимой погрешности), устройство сравнения выдает сигнал об ошибке. Метод позволяет выявлять только сбои и отказы аппаратуры, если процессы О и П осуществляются по одной и той же программе. В случае, когда О и П осуществляются по различным, но функционально эквивалентным программам, прямой контроль позволяет, кроме того, выявлять также и ошибки в программах. Основной недостаток прямого контроля — большая трата аппаратных средств. Она может быть уменьшена, если процесс О и П выполняются последовательно на одной и той же аппаратуре, но тогда кроме дополнительной потери времени сужаются и возможности контроля. В последнем случае контроль будет выявлять только сбои, а не отказы аппаратуры, поскольку ошибки, вызванные отказом, будут повторяться.
Для некоторых задач, характеризуемых взаимно однозначным соответствием между исходными данными и результатом, эффективнее обратный контроль. При таком контроле параллельный процесс П с исходными данными Y и результатом X осуществляет обратное преобразование результата контролируемого процесса О. Сопоставление обратного решения с исходными данными позволяет обнаружить ошибку. Например, если выполняется операция извлечения квадратного корня, то проще осуществлять контроль возведением результата в квадрат и сопоставлением его с исходной величиной, чем проводить повторное извлечение корня. Недостаток обратного контроля, кроме ограниченности класса решаемых задач. В отдельных случаях целесообразной организацией контроля является смешанный контроль.
Контроль длительности выполнения программы основан на том, что для каждой программы заранее известна максимальная длительность выполнения и всякое ее превышение означает, что программа зациклилась, остановилась или выполняется неправильно. Метод контрольных функций основан на том, что результаты работы программы должны отвечать определенным функциональным соотношениям. Например, решения системы дифференциальных уравнений могут быть проверены по критерию удовлетворения контрольному уравнению, образуемому в виде суммы решений уравнений исходной системы. Контроль гладкости основан на том, что если ряд результатов вычислений представляет собой более или менее гладкую функцию, то всякие резкие отклонения результата от экстраполированного значения свидетельствуют об ошибке. Перечисленные виды контроля правильности выполнения программ осуществляются преимущественно программными средствами.
Дата добавления: 2015-04-30; Просмотров: 2131; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |