double arrow

Предотвращение появления дефектов проектирования за счет использования CASE – средств

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

Совместное применение современных CASE-технологий способно снизить трудоемкость разработки сложных программных средств в нес­колько раз и сократить длительность их проектирования с 2-3 лет до нескольких месяцев.

Базовым принципом современных методов и технологий созда­ния прикладных программных средств является многократное использование отработанных решений на различных аппаратных и операционных платформах. В настоящее время по некоторым оценкам только 10-15% прикладных программ создается вновь, в то время как основная часть программных средств переносится с других проектов или платформ, комплексируется и собирается из готовых, испытанных и повторно используемых компонент гарантированного качества.

Результатом внедрения CASE-средств является значительное сокращение затрат на проектирование прикладной системы, высокое качество проекта и надежность комплекса программ.

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

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

2. Надежностное проектирование программного обеспечения

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

Рис. Программа, содержащая Рис. Программа без операторов

операторы перехода перехода

На рис. представлена программа, составленная с использованием операторов безусловного перехода, а на рис. показана эта же программа, но без операторов перехода. Легко заметить, что первая программа,
выполняется, в общем-то скачками, в то время как вторая программа, выполняется последовательно. Она характеризуется меньшей вероятностью ошибок.

· Использование нисходящего программирования. Более надежное программное обеспечение позволяет получить «нисходящее» программирование. В этом случае руководитель группы программистов не только осуществляет контроль за работой, но и участвует в составлении программы. Вначале составляется основная часть программы с учетом под­систем следующего уровня. Каждый программист отвечает, за проверку своей подсистемы или модуля до момента объединения последних в единую систему. Интеграция модулей в систему выполняется последовательно по уровням и поручается самому квалифицированному из авторов стыкуемых программ.

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

3. Обнаружение и устранение различных дефектов и ошибок.

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

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

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

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

Если программа разрабатывается для широкого круга пользователей (коммерческая программа), то ее испытания проводятся в два последовательных этапа – Альфа и Бета тестирование.

При Альфа тестировании привлекаются конечные пользователи, работающие в той же компании, но не участвующие непосредственно в разработке комплекса программ.

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

4. Удостоверение качества и надежности.

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

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

Однако любой сертификат на сложные системы не может гарантировать абсолют­ную их надежность применения и всегда остается некоторый риск возникновения отказовых ситуаций.

5. Оперативное обнаружение дефектов и искажений.

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

Контроль является одним из самых эффективных средств увеличе­ния надежности и достоверности вычислений (обработки информации).

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

По признаку применяемых средств конт­роль в ЭВМ разделяется на аппаратный, осуществляе­мый аппаратными средствами; программный, осущест­вляемый программными средствами; смешанный, осуще­ствляемый совместно программными и аппаратными средствами.

Аппаратный контроль отличается большим быстро­действием, но требует дополнительных аппаратных средств.

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

По характеру контроль в ЭВМ подразделяется на оперативный и тестовый.

Оперативный контроль осуществляется в ходе реше­ния эксплуатационных задач и позволяет в процессе их решения немедленно (задержка может не превышать время выполнения одного такта или нескольких тактов работы ЭВМ) обнаруживать ошибку в ее работе.

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

По способу организации различают контроль прямой, обратный и смешанный.

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

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

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

Недостаток обратного контроля, кроме ограниченно­сти класса решаемых задач.

В отдельных случаях целесообразной организацией контроля является смешанный контроль.

Контроль длительности выполнения программы ос­нован на том, что для каждой программы заранее из­вестна максимальная длительность выполнения и всякое ее превышение означает, что программа зациклилась, остановилась или выполняется неправильно.

Метод контрольных функций основан на том, что ре­зультаты работы программы должны отвечать опреде­ленным функциональным соотношениям. Например, ре­шения системы дифференциальных уравнений могут быть проверены по критерию удовлетворения контроль­ному уравнению, образуемому в виде суммы уравнений исходной системы.

Контроль гладкости основан на том, что если ряд ре­зультатов вычислений представляет собой более или ме­нее гладкую функцию, то всякие резкие отклонения ре­зультата от экстраполированного значения свидетель­ствуют об ошибке.

Перечисленные виды контроля правильности выпол­нения программ осуществляются преимущественно про­граммными средствами.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: