Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 2037; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.032 сек.