5fan_ru_Средства моделирования беспроводных сенсорных сетей на б. Характеристики дипломного проекта
Скачать 3.33 Mb.
|
1.4.4 Выводы Из таблицы 9 видно что максимальное время работы некоторых устройств составляет 173 часа, а минимальное - 130 часов. 130 часов это максимальное время работы PAN-координатора, когда это устройство закончит работать, работоспособность сети прекратится. Для обеспечения полной функциональности сети необходимо заменять батарейки во всех устройствах через 130 часов. 1.5 Расчет надежности системы Для разрабатываемого программного обеспечения необходимо определение следующих свойств: завершенность; устойчивость; восстанавливаемость; доступность или готовность. 1.5.1 Завершенность Завершенность – свойство программного обеспечения (ПО) не попадать в состояния отказов вследствие ошибок и дефектов в программах и данных. Данное свойство ПО определяется через такие показатели как наработка на ошибку и степень покрытия ПО тестами функций и структуры программы. 1. Среднее время наработки на ошибку. Средняя наработка на ошибку рассчитывается следующим образом: , где λПО – интенсивность ошибок программного обеспечения. Интенсивность ошибок разрабатываемого программного обеспечения рассчитывается по формулам: , , где t – фактическое время отладки; α – коэффициент крутизны линии, характеризующий скорость роста надежности; N0 – число обнаруженных ошибок за время отладки t; N – общее число строк; КТП – коэффициент, учитывающий влияние методологии программирования на надежность ПО; КТПi – коэффициент, учитывающий использование i–ой технологии программирования; КЯЗi – коэффициент, учитывающий использование i–ого языка программирования; КПЛi– коэффициент, учитывающий использование i–ой платформы программирования. В данном программном обеспечении использована объектно-ориентированная технология программирования ( ) в Castalia (поскольку Castalia базируется на языке C++, то ) на 32-разрядной платформе (для платформ, не являющихся .NET, ). Исходное число строк кода N=11341. Отладка программного обеспечения производилась с помощью тестирования в течение 8 часов. Результаты тестирования представлены в таблице 10.
Таблица 10: Результаты тестирования ПО На основе полученных данных можно построить кривую зависимости интенсивности ошибок от времени отладки (рис. 21). Рис. 21 Зависимость интенсивности ошибок от времени отладки Как показано выше, функциональная зависимость интенсивности ошибок ПО от времени отладки описывается экспоненциальным законом и зависит от коэффициента крутизны линии, характеризующей скорость роста надежности α, и от фактического времени отладки ПО. Анализ результатов тестирования ПО позволил определить α = 0,0133. Таким образом, интенсивность ошибок разрабатываемого ПО составляет: (1/час) (1/час) Для разрабатываемого программного обеспечения средняя наработка на ошибку составит 2587 часа. 2. Степень покрытия тестами функций и структуры программы. Существуют три типа покрытия, для каждого из которых требуется различное число тестовых примеров: покрытие утверждений; покрытие ветвей; покрытие условий. Покрытие утверждений. Здесь нужно следить затем, выполнялась ли каждая строка кода, по крайней мере, один раз. Чтобы достичь 100%-го покрытия утверждений, понадобится выполнить утверждение IF, причем оно должно принять значение TRUE для выполнения соответствующего требования THEN. Покрытие ветвей. Здесь нужно следить затем, была ли взята каждая ветвь или точка принятия решения при всех возможных исходах. Чтобы покрытие было100%-м, требуется два прохода через условие IF, когда при одном проходе оно принимает значение TRUE, а при другом – FALSE. Каждый цикл DO–WHILE также должен быть выполнен при условиях TRUE и FALSE. Для утверждений CASE или SWITCH требуются тестовые примеры, которые будут брать все возможные ветки, включая заданные по умолчанию пути. Покрытие условий. Оно известно также как покрытие предикатов и следит затем, принимает ли каждый операнд в комплексных логических выражениях значения FALSE/TRUE. Комплексные логические выражения содержат операторы AND, OR и XOR. Каждый из этих типов покрытия содержит в себе более низкие уровни. Достижение 100%-го покрытия ветвей означает 100%-ное покрытие утверждений. Аналогично достижение 100%-го покрытия условий автоматически приводит к удовлетворению 100%-го покрытия ветвей. На основе тестирования были получены следующие коэффициенты: 1. Коэффициент полноты: , где Р – степень покрытия тестами в процентах. . 2. Коэффициент достоверности: , где Nпр – число прогонов; Nош – число ошибок, обнаруженных во время данных прогонов. . 1.5.2 Устойчивость Устойчивость к дефектам и ошибкам – свойство ПО автоматически поддерживать заданный уровень качества функционирования при проявлениях дефектов и ошибок или нарушениях установленного интерфейса. Появление дефектов, ошибок или нарушение интерфейса в данной системе может возникнуть только из-за сбоя технических средств. Поскольку вся вводимая пользователем информация проверяется на соответствие необходимому типу данных, то есть устойчивость программы обеспечивается за счет алгоритма. Для выявления дефектов вследствие сбоя технических средств в системе присутствует возможность осуществлять контроль над входными, промежуточными и конечными данными. Таким образом, любое несоответствие данных действительности будет обнаружено оператором. 1.5.3 Восстанавливаемость Восстанавливаемость – свойство ПО в случае отказа возобновлять требуемый уровень качества функционирования, а также поврежденные программы и данные. В случае отказа, чтобы разрабатываемая система соответствовала требуемому уровню качества функционирования, данную систему необходимо запустить заново, что составляет 0,5 минут. Однако при этом данные, обрабатываемые системой на момент отказа, будут потеряны, и работу с программой нужно начинать сначала. Данное свойство ПО основано на временной избыточности. 1.5.4 Готовность Доступность или готовность – свойство ПО быть в состоянии выполнять требуемую функцию в данный момент времени при заданных условиях использования. Коэффициент готовности рассчитывается по формуле: , где То – средняя наработка на ошибку (2587 часов), Тв – время восстановления программы (0,5 минуты=0,0083 часа). Таким образом, коэффициент готовности разрабатываемой системы: . 2. Технологическая часть Castalia - это система, включающая в себя набор элементов и библиотек для моделирования беспроводных сенсорных сетей, написанных на C-подобном языке, и использующая программный пакет OMNET++ в качестве основы для моделирования событий. OMNET++ является объектно-ориентированным модульным дискретно-событийным средством для моделирования сетей. С его помощью возможно: моделировать проводные и беспроводные сети; моделировать сети массового обслуживания; моделировать многопроцессорные и другие аппаратно-распределенные системы; оценивать производительность сложных программных систем. 2.1 Выбор ОС OMNET++ изначально создавался для работы в среде Linux (поддерживаются дистрибутивы Ubuntu 8.04 и старше, Fedora Core 13, Red Hat Enterprise Desktop Workstation 5.5 и OpenSUSE 11.2). Так же существуют версии для Windows, Mac OS X и Unix. Castalia разрабатывалась только для Linux-подобных систем, так как для моделирования сетей применяются скрипты, написанные на языке Python (встроенный язык интерпретатора). При использовании Castalia на других ОС необходимо предварительно установить на персональный компьютер Python и внести необходимые изменения в скрипты. Исходя из этого, для работы с OMNET++ и Castalia была выбрана OS Linux. На данный момент стабильной версией Linux является Ubuntu 10.10. 2.2 Установка и настройка Для корректной работы OMNET++ и Castalia необходимо учесть следующие требования к системе: 2.2.1. Оборудование На диске должны быть свободными минимум 400 МБайт, для выходных файлов моделирования потребуется дополнительное место. Минимальная оперативная память 512 МБайт, рекомендуемая память 1ГБайт. 2.2.2. Загрузка программного обеспечения OMNET++ можно скачать по следующим ссылкам: для Linux и MAC OS: http://omnetpp.org/download/release/omnetpp-4.1-src.tgz для Windows: http://omnetpp.org/download/release/omnetpp-4.1-src-windows.zip Castalia можно скачать по ссылке: http://castalia.npc.nicta.com.au/download.php Необходимо заполнить форму (указать почтовый адрес, подтвердить его и принять пользовательское соглашение) и нажать кнопку Continue. В новой странице необходимо нажать на кнопку DownloadCastalia. 2.2.3. Установка и настройка программного обеспечения Для установки OMNET++ необходимо скопировать архив omnetpp-4.1-src.tgz в домашний каталог /home/<you>. В меню выбрать Приложения > Стандартные > Терминал (Applications > Accessories > Terminal). В появившемся окне ввести команду: $ tar xvfz omnetpp-4.1-src.tgz она создает директорию omnetpp-4.1 с установочными файлами OMNET++. Перед началом установки OMNET++ необходимо обновить базу данных доступных системных пакетов Linux. Вводим команду: $ sudo apt-get update Для корректной работы OMNET++ необходимо установить следующие пакеты. Вводим команду: $ sudo apt-get install build-essential gcc g++ bison flex perl \ tcl-dev tk-dev blt libxml2-dev zlib1g-dev openjdk-6-jre \ doxygen graphviz openmpi-bin libopenmpi-dev libpcap-dev На появившейся вопрос (Хотите продолжить? [Д/н]/Do you want to continue? [Y/N]), отвечаем: Y. Рис. 22 Установка пакетов Так же можно произвести установку файлов через графический менеджер пакетов Synaptic. В меню выбираем Система > Администрирование > Менеджер пакетов Synaptic (System > Administration > Synaptic package manager), в появившемся окне необходимо найти и поставить галочку напротив следующих пакетов: build-essential, gcc, g++, bison, flex, perl, tcl-dev, tk-dev, blt, libxml2-dev, zlib1gdev, openjdk-6-jre, doxygen, graphviz, openmpi-bin, libopenmpi-dev, libpcap-dev. Рис. 23 Установка пакетов в графическом режиме После выбора всех пакетов нажимаем кнопку Применить (Apply). В появившемся окне Внести следующие изменения? (Apply the following changes?) снова нажимаем Применить (Apply). Дожидаемся, пока установятся все пакеты, и нажимаем клавишу Закрыть (Close). Для корректной установки OMNET++ необходимо подключить библиотеку TCL/TK и указать путь к каталогу bin в директории omnetpp-4.1 в конфигурационном файле операционной системы. Вводим команду: $ gedit /.profile и добавляем в конец открывшегося файла строчки: export PATH=$PATH:/home/ export TCL_LIBRARY=/usr/share/tcltk/tcl8.4 После внесенных изменений необходимо перезагрузить операционную систему. Для определения всех файлов OMNET++ необходимо ввести в терминале следующие команды: $ cd omnetpp-4.1 $ . setenv Этот скрипт проверяет наличие всех установочных файлов и их целостность. Для установки OMNET++ вводим команду: $ ./configure Рис. 24 Установка OMNET++ После завершения установки необходимо скомпилировать OMNET++. Вводим команду: $ make Рис. 25 Компиляция установочных файлов OMNET++ Для запуска OMNET++ вводим в терминале команду: $ omnetpp Рис. 26 Рабочее окно OMNET++ Для установки Castalia необходимо скопировать архив Castalia-3.1.tar в домашний каталог /home/<you>. В меню выбираем Приложения > Стандартные > Терминал (Applications > Accessories > Terminal). В появившемся окне вводим команду: $ tar xvfz Castalia-3.1.tar она создает директорию Castalia-3.1 с установочными файлами Castalia. Для корректной установки и запуска Castalia необходимов конфигурационном файле операционной системы указать путь к каталогу bin в директории Castalia-3.1. Вводим команду: $ gedit /.profile и добавляем в конец открывшегося файла строчку: export PATH=$PATH:/home/ После внесенных изменений необходимо перезагрузить операционную систему. Для установки Castalia вводим команды: $ cd Castalia-3.1 $ ./makemake Рис. 27 Установка Castalia После завершения установки необходимо скомпилировать Castalia. Вводим команду: $ make Рис. 28 Компиляция установочных файлов Castalia Для корректной работы Castalia необходимо установить пакет gnuplot. Для этого вводим в терминале команду: $ sudo apt-get install gnuplot Так же можно произвести установку данного приложения через графический менеджер пакетов Synaptic. Установка и настройка программного обеспечения завершена. 2.2.4 Проверка работоспособности установленного ПО Для проверки работоспособности установленного ПО вводим в терминале команды: $ cd omnetpp-4.1/samples/dyna $ ./dyna По умолчанию симуляции выполняются с использованием графической среды Tcl/Tk. При корректном функционировании системы должен появиться диалогово-оконный интерфейс. Рис. 29 Моделирование в графическом режиме Если необходимо перекомпилировать OMNET++, следует ввести следующие команды: $ cd omnetpp-4.1 $ ./configure $ make cleanall $ make Если ли же нужно перекомпилировать только одну библиотеку, необходимо перейти в каталог с этой библиотекой (например cdsrc/sim) и ввести: $ make clean $ make Для проверки работоспособности Castalia в терминале вводим следующие команды: $ cd Castalia-3.1/Simulations/radioTest $ Castalia Этот скрипт выводит на экран список всех доступных конфигурационных файлов и симуляций: List of available input files and configurations: * omnetpp.ini General InterferenceTest1 InterferenceTest2 CSinterruptTest varyInterferenceModel Для симуляции и просмотра данных вводим команды: $ Castalia -c [General] -o sim.txt Running configuration 1/1 $ CastaliaResults -i sim.txt +----------------------+----------------------------------+------------+ | Module | Output | Dimensions | +----------------------+----------------------------------+------------+ | Application | Application level latency, in ms | 1x1(11) | | | Packets received per node | 1x2 | | Communication.Radio | RX pkt breakdown | 1x1(3) | | | TXed pkts | 2x1 | | ResourceManager | Consumed Energy | 3x1 | +----------------------+----------------------------------+------------+ NOTE: select from the available outputs using the -s option Просмотрим сколько энергии затратила каждая станция по отдельности: $ CastaliaResults -i sim.txt -s energy -n ResourceManager:Consumed Energy +--------+--------+--------+ | node=0 | node=1 | node=2 | +--------+--------+--------+ | 6.8 | 6.288 | 6.288 | +--------+--------+--------+ Выведем значение таблицы в файл: $ CastaliaResults -i sim.txt -s energy -n | CastaliaPlot -o energy.jpg -s histogram Рис. 30 Количество потраченной энергии (в мАч) Установленное программное обеспечение функционирует корректно. |