Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
686.docx
Скачиваний:
85
Добавлен:
24.04.2019
Размер:
6.68 Mб
Скачать

3.3.5.1 Обеспечение корректности программного кода: обзор

существующих решений

Существуют различные подходы к обеспечению корректности кода

приложений. Перечислим наиболее распространенные из них: тестирование с

помощью юнит-тестов, динамический анализ кода (во время работы

приложения), статический анализ кода (анализ исходных текстов). Нельзя

сказать, что какой-то один вариант тестирования лучше других – все эти

подходы обеспечивают различные аспекты качества приложений.

Юнит-тесты предназначены для быстрой проверки небольших участков

кода, например, отдельных функций и классов. Их особенность в том, что эти

тесты выполняются быстро и допускают частый запуск. Из этого вытекают два

нюанса использования такой технологии. Во-первых, эти тесты должны быть

написаны. Во-вторых, тестирование выделения больших объемов памяти

(например, более двух гигабайт) занимает значительное время, поэтому

нецелесообразно, так как юнит-тесты должны отрабатываться быстро.

Динамические анализаторы кода (лучший представитель – это Compuware

BoundsChecker) предназначены для обнаружения ошибок в приложении во

время выполнения программы. Из этого принципа работы и вытекает основной

недостаток динамического анализатора. Для того чтобы убедиться в

корректности программы, необходимо выполнить все возможные ветки кода.

Для реальной программы это может быть затруднительно. Но это не значит, что

динамический анализ кода не нужен. Такой анализ позволяет обнаружить

ошибки, которые зависят от действий пользователя и не могут быть

определены по коду приложения.

Статические анализаторы кода (как, например, Gimpel Software PC-lint и

Parasoft C++test) предназначены для комплексного обеспечения качества кода и

содержат несколько сотен анализируемых правил. В них также есть некоторые

из правил, анализирующих корректность 64-битных приложений. Однако,

поскольку это анализаторы кода общего назначения, то их использование для

164

обеспечения качества 64-битных приложений не всегда удобно. Это

объясняется, прежде всего, тем, что они не предназначены именно для этой

цели. Другим серьезным недостатком является их ориентированность на

модель данных, используемую в Unix-системах (LP64). В то время как модель

данных, используемая в Windows-системах (LLP64), существенно отличается от

нее. Поэтому применение этих статических анализаторов для проверки 64-

битных

Windows-приложений

возможно

только

после

неочевидной

дополнительной настройки.

Некоторым дополнительным уровнем проверки кода можно считать

наличие

в

компиляторах

специальной

диагностики

потенциально

некорректного кода (например, ключ /Wp64 в компиляторе Microsoft Visual

C++). Однако этот ключ позволяет отследить лишь наиболее некорректные

конструкции, в то время как многие из также опасных операций он пропускает.

3.3.6

Инструментальные средства отладки ОС РВ eCos

В ОС РВ eCos для отладки программного обеспечения используется

Redboot.

Redboot (акроним от «Red Hat Embedded Debug and Bootstrap») – это

приложение с открытым исходным кодом, которое использует слой абстракции

оборудования (HAL) операционной системы реального времени eCos для

загрузки программного обеспечения или прошивки (firmware) во встроенных

вычислительных системах. Redboot предоставляется под GPL-совместимой

лицензией eCos License.

Redboot предоставляет широкий набор инструментов для загрузки и

исполнения программ в целевых встроенных системах, в том числе Embedded

Linux и eCos приложений, через последовательный канал или Ethernet

соединение, а также инструменты для манипулирования параметрами целевой

системы. Redboot также обеспечивает простую файловую систему для модулей

флэш-памяти, которая может быть использована для загрузки исполнимых

образов. Он может быть использован при разработке продукции (для

поддержки отладки), а также для использования в конечной продукции (для

загрузки приложений по сети или с флэш-памяти).

Возможности Redboot:

 Поддержка загрузочных скриптов;

 Простой интерфейс командной

строки

для

управления

и

конфигурирования Redboot, доступный через последовательный канал

или Ethernet соединение по протоколу telnet;

 Встроенные заглушки GDB для соединения с отладчиком на хост-

машине через последовательный или сетевой Ethernet интерфейс

(ограничивается локальной сетью) для отладки приложений на целевой

встроенной системе;

165

 Атрибутная конфигурация – пользовательский контроль и возможность

изменения таких аспектов, как системное время и дата (если

используется), статический IP адрес и т.д.;

 Конфигурируемый и расширяемый, специально для адаптации под

целевую платформу;

 Поддержка загрузки по сети, включая установку и загрузку через

BOOTP, DHCP и TFTP;

 Поддержка загрузки программ через последовательный интерфейс

посредством протоколов XModem и YModem;

 Самотестирование при запуске.

Redboot может быть использован в качестве общей системы отладки и

контроля загрузки программного обеспечения для любых встроенных систем и

операционных систем. Например, с соответствующими дополнениями Redboot

может заменить широко используемые программы BIOS персональных

компьютеров.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]