Биллинговые системы для IP-телефонии

Реализация телефонной связи по IP-сети с помощью набора протоколов и оборудования. Разработка подсистемы динамической маршрутизации звонков для системы биллинга и менеджмента в сети IP-телефонии. Основные требования к графическому интерфейсу пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 08.11.2015
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Одной из особенностей Access является наличие встроенного языка программирования VBA, возможности которого позволяют создавать собственные приложения для удобства работы с БД.

Ядром БД в Access является компонент Microsoft Jet Database engine, механизм реляционной базы данных, обеспечивающий связь СУБД с физическими данными на жестком диске и организацию сетевого интерфейса для работы по модели клиент-сервер с БД под управлением Microsoft SQL Server 2000.

Access имеет стандартный пользовательский интерфейс приложений Windows, включающий в себя титульную строку, панель инструментов, главное меню, окно базы данных и строку состояния. В окне базы данных отображаются все имеющиеся объекты БД, а также инструменты создания и редактирования уже существующих объектов.

Объект БД представляет собой самодостаточный компонент базы данных, взаимодействующий с физическими данными и представляющий их в особом формате [11]. В Microsoft Access насчитывается 7 типов объектов БД:

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

2) Запросы - это инструменты для получения из одной или нескольких таблиц сведений, соответствующих какому-либо критерию. Также запросы могут быть использованы для изменения необходимых данных. Результаты выборки запроса предоставляются в виде таблицы. Запросы Access также могут служить источниками данных для новых запросов или других объектов БД. Для построения запросов в Access можно использовать такие средства, как Мастер или Конструктор запросов.

В MS Access выделяют следующие виды запросов:

- Запрос на выборку - для извлечения данных из одной или нескольких таблиц БД и их представления в заданном формате. Помимо этого запрос может выполнять какие-либо манипуляции с выбранными строками;

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

- Запрос на изменение - предназначен для создания новых таблиц, добавления записей, редактирования или удаления уже существующих данных;

- Перекрестный запрос - используется для группировки данных в строках (столбцах), позволяя анализировать полученную информацию;

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

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

5) Страницы доступа к данным - это HTML- страницы, используемые для просмотра и работы с данными через сеть. При просмотре страницы через веб-обозреватель (браузер) открывается ее локальная копия, через которую можно редактировать содержимое таблиц и генерировать отчеты.

6) Макросы - это объекты БД, с помощью которых выполнение часто повторяющихся операций может быть автоматизировано. Сам макрос состоит из нескольких макрокоманд с указанным именем, аргументами и условиями исполнения. Связанные макросы в Access можно объединять в группы, сохраняя их как отдельный макрос.

7) Модули - это объекты для хранения наборов текстов процедур на VBA. По своей сути модули, как и макросы, предназначены для автоматизации выполнения каких-либо операций, однако их возможности позволяют решать задачи более высокого уровня сложности. В Access модули используются либо как отдельный объект БД, либо как часть другого объекта (формы, отчета). Первые называются стандартными модулями, содержат некие стандартные процедуры и могут быть вызваны для обработки событий в различных объектах БД. Модули, включенные в другие объекты, называются модулями класса. Записанный в них код процедур на VBA используется для обработки событий, происходящих с элементами форм или отчетов.

В Microsoft Access есть возможность просматривать содержимое БД в различных форматах. К основным режимам просмотра относятся:

- Режим конструктора - доступен для всех объектов БД. При помощи него можно создавать новые объекты или изменять структуру уже существующих, в то время как изменить сами данные в БД нельзя.

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

- Режим SQL - позволяет просматривать и редактировать запросы в базовой форме синтаксиса языка SQL;

- Режим формы - используется для отображения и ввода данных в созданных формах, что позволяет редактировать содержимое таблиц. В этом режиме макет формы недоступен для изменений;

- Режим предварительного просмотра - доступен для просмотров печатных отчетов с заполненными фактическими данными;

- Режим просмотра страницы - демонстрирует содержимое страницы доступа к данным, например, источники записей, кнопки перехода и т.д.

Возможности Microsoft Access позволяют подключать дополнительные источники данных, например другие БД или текстовые файлы, а также разрешать использование данных Access во внешних БД.

В частности, есть возможность связывания между собой таблиц в форматах разных СУБД, что обеспечивает доступ Microsoft Access к данным в исходном файле БД. Данные в связанных таблицах могут быть изменены, однако их структура редактированию не подлежит. Работа со связанными таблицами зачастую может быть неудобной, поскольку Access каждый раз извлекает данные из исходной таблицы для их отображения, с чем связана невысокая производительность.

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

Аналогичным образом Microsoft Access дает возможность экспорта объектов БД в другие программы, создавая для этого локальную копию используемого объекта БД в формате файла назначения [12].

7.1.2 Обоснование использования Microsoft Access

При выборе Microsoft Access в качестве среды разработки дипломного проекта были изучены основные характеристики и функциональные возможности данной СУБД. В итоге были сделаны следующие выводы:

- Microsoft Access входит в стандартный комплект поставки Microsoft Office, поэтому отсутствует надобность в приобретении и установке дополнительных средств разработки;

- Выбранная СУБД предоставляет широкие возможности для управления данными, используемыми в работе биллинговой системы, обеспечивая их наглядное представление;

- Встроенные средства конструирования запросов и язык VBA дают возможность разработать приложение для автоматизации системы маршрутизации звонков в короткие сроки.

7.2 Разработка программы

7.2.1 SQL-запросы

1) qryAMBS_Rates_Add - запрос на добавление данных из пяти таблиц AMBS на сервере в локальную таблицу Offer_Consolidated_Item (рис. 20).

Рис. 20. Вид конструктора запроса qryAMBS_Rates_Add

Текст запроса:

INSERT INTO Offer_Consolidated_Item (COUNTRY_CODE, DEST_TYPE, DEST_NAME, RouteName, Prefix, RateEff)

SELECT AMBS_DEST.COUNTRY_CODE, AMBS_DEST.DEST_TYPE, AMBS_DEST.DEST_NAME, AMBS_SITE_.SITENAME, AMBS_DEST_CODE.CODE, If ([CURRENCY]='RUB',[PRICE],cRoundUp([PRICE]*64,3)) AS PRICE_RUR

FROM (AMBS_SITE_ INNER JOIN (AMBS_DEST_CODE INNER JOIN (AMBS_DEST INNER JOIN AMBS_RATES ON AMBS_DEST.ID = AMBS_RATES.CODE_ID) ON AMBS_DEST_CODE.DEST_ID = AMBS_DEST.ID) ON AMBS_SITE_.rate_t = AMBS_RATES.RATE_ID) INNER JOIN AMBS_RATE_NAMES ON AMBS_RATES.RATE_ID = AMBS_RATE_NAMES.ID

WHERE (((AMBS_DEST.COUNTRY_CODE)="7") AND ((AMBS_DEST_CODE.CODE) Not Like "79*") AND ((AMBS_RATES.STOP_DATE)=#12/30/9999#) AND ((AMBS_RATE_NAMES.TYPE)=3) AND ((AMBS_RATES.state)=0) AND ((AMBS_SITE_.serve_rate_t)=1));

2) qryAMBS_Rates_Consolidated - перекрестный запрос формирующий консолидированную таблицу тарифных предложений (рис. 21).

Рис. 21. Вид конструктора запроса qryAMBS_Rates_Consolidated

Текст запроса:

TRANSFORM First (Offer_Consolidated_Item.RateEff) AS Rate

SELECT Offer_Consolidated_Item.Prefix

FROM Offer_Consolidated_Item

GROUP BY Offer_Consolidated_Item.Prefix

PIVOT Offer_Consolidated_Item.RouteName;

3) qryAMBS_Rates_Dest_Add - запрос, при помощи которого формируется справочная таблица направлений Offer_Consolidated_Dest (рис. 22).

Рис. 22. Вид конструктора запроса qryAMBS_Rates_Dest_Add

Текст запроса:

INSERT INTO Offer_Consolidated_Dest (COUNTRY_CODE, Prefix, DEST_NAME, DEST_TYPE)

SELECT Offer_Consolidated_Item.COUNTRY_CODE, Offer_Consolidated_Item.Prefix, Offer_Consolidated_Item.DEST_NAME, Offer_Consolidated_Item.DEST_TYPE

FROM Offer_Consolidated_Item

GROUP BY Offer_Consolidated_Item.COUNTRY_CODE, Offer_Consolidated_Item.Prefix, Offer_Consolidated_Item.DEST_NAME, Offer_Consolidated_Item.DEST_TYPE;

4) qryRoute_Param_Add - запрос, добавляющий записи в маршрутную таблицу Route_Param (рис. 23).

Рис. 23. Вид конструктора запроса qryRoute_Param_Add

Текст запроса:

INSERT INTO Route_Param (DEST_NAME, Rate1, Route1, Rate2, Rate3, Route2, Route3)

SELECT Offer_Consolidated_Dest.DEST_NAME, Route_List.Rate1, Route_List.Route1, Route_List.Rate2, Route_List.Rate3, Route_List.Route2, Route_List.Route3

FROM Route_List INNER JOIN Offer_Consolidated_Dest ON Route_List.Prefix = Offer_Consolidated_Dest.Prefix

GROUP BY Offer_Consolidated_Dest.DEST_NAME, Route_List.Rate1, Route_List.Route1, Route_List.Rate2, Route_List.Rate3, Route_List.Route2, Route_List.Route3

ORDER BY Offer_Consolidated_Dest.DEST_NAME;

5) qryRoute_Param_Upd - запрос, переводящий направления и маршруты в коды таблиц AMBS (рис. 24).

Рис. 24. Вид конструктора запроса qryRoute_Param_Upd

Текст запроса:

UPDATE (((Route_Param INNER JOIN AMBS_DEST ON Route_Param.DEST_NAME = AMBS_DEST.DEST_NAME) LEFT JOIN AMBS_SITE AS AMBS_SITE_1 ON Route_Param.Route1 = AMBS_SITE_1.SITENAME) LEFT JOIN AMBS_SITE AS AMBS_SITE_2 ON Route_Param.Route2 = AMBS_SITE_2.SITENAME) LEFT JOIN AMBS_SITE AS AMBS_SITE_3 ON Route_Param.Route3 = AMBS_SITE_3.SITENAME SET Route_Param.dest_id = [AMBS_DEST].[ID], Route_Param.first_route = [AMBS_SITE_1].[ID], Route_Param.second_route = [AMBS_SITE_2].[ID], Route_Param.third_route = [AMBS_SITE_3].[ID];

6) qryAMBS_CDR_Stat_add - запрос для формирования таблицы статистики Tmp_Term_Stat (рис. 25).

Рис. 25. Вид конструктора запроса qryAMBS_CDR_Stat_add

Текст запроса:

INSERT INTO Tmp_Term_Stat (FirstPrefix, DEST_NAME, DEST_ID, RATE_ID, Terminator, Attempts, Calls, Minutes, ASR, ACD)

SELECT First(AMBS_CDR_CUR.DST_CODE) AS [First-DST_CODE], AMBS_DEST.DEST_NAME, AMBS_DEST_CODE.DEST_ID, AMBS_SITE.rate_t, AMBS_SITE.SITENAME AS Terminator, Count(AMBS_CDR_CUR.CID) AS Attempts, Sum(AMBS_CDR_CUR.SUCC_FLAG) AS Calls, Sum(AMBS_CDR_CUR.DST_BILL_TIME) AS Minutes, Sum(AMBS_CDR_CUR.SUCC_FLAG)/[Attempts] AS ASR, If (Sum([SUCC_FLAG])=0,0,Sum([DST_BILL_TIME])/Sum([SUCC_FLAG])) AS ACD

FROM ((AMBS_CDR_CUR INNER JOIN AMBS_SITE ON AMBS_CDR_CUR.DST_SITE = AMBS_SITE.ID) INNER JOIN AMBS_DEST_CODE ON AMBS_CDR_CUR.DST_CODE = AMBS_DEST_CODE.CODE) INNER JOIN AMBS_DEST ON AMBS_DEST_CODE.DEST_ID = AMBS_DEST.ID

WHERE (((AMBS_CDR_CUR.BILL_DATE) Between GetDate(0) And GetDate(1)))

GROUP BY AMBS_DEST.DEST_NAME, AMBS_DEST_CODE.DEST_ID, AMBS_SITE.rate_t, AMBS_SITE.SITENAME

HAVING (((Count(AMBS_CDR_CUR.CID))>=GetMinAttempt()));

7) qryAMBS_CDR_Stat_del - запрос, удаляющий записи из таблицы Tmp_Term_Stat в соответствии с заданными через форму параметрами (рис. 26).

Рис. 26. Вид конструктора запроса qryAMBS_CDR_Stat_del

Текст запроса:

DELETE Tmp_Term_Stat.*, Tmp_Term_Stat.ASR, Tmp_Term_Stat.ACD

FROM Tmp_Term_Stat

WHERE (((Tmp_Term_Stat.ASR)>GetMinASR()) AND ((Tmp_Term_Stat.ACD)>GetMinACD()));

8) qryAMBS_Routes_del - запрос для удаления блока записей из маршрутной таблицы AMBS_rparam перед загрузкой новых маршрутов (рис. 27).

Рис. 27. Вид конструктора запроса qryAMBS_Routes_del

Текст запроса:

DELETE AMBS_rparam.*, AMBS_rparam.dest_id

FROM AMBS_rparam

WHERE (((AMBS_rparam.dest_id) In (SELECT dest_id FROM Route_Param;)));

9) qryAMBS_Routes_Upload - запрос для выгрузки маршрутной таблицы на сервер (рис. 28).

Рис. 28. Вид конструктора запроса qryAMBS_Routes_Upload

Текст запроса:

INSERT INTO AMBS_rparam (dest_id, first_route, second_route, third_route, oper_id, direction, route_oper, enable, [user])

SELECT Route_Param.dest_id, Route_Param.first_route, Route_Param.second_route, Route_Param.third_route, -2 AS oper_id, 0 AS direction, 0 AS route_oper, 1 AS enable, 'admin' AS [user]

FROM Route_Param;

10) qryAMBS_Rates_Block - запрос, блокирующий неработающие предложения в таблице AMBS_RАTES путем изменения значений в поле state (рис. 29).

Рис. 29. Вид конструктора запроса qryAMBS_Rates_Block

Текст запроса:

UPDATE AMBS_RATES INNER JOIN Tmp_Term_Stat ON (AMBS_RATES.RATE_ID = Tmp_Term_Stat.RATE_ID) AND (AMBS_RATES.CODE_ID = Tmp_Term_Stat.DEST_ID) SET AMBS_RATES.state = 1

WHERE (((AMBS_RATES.state)=0) AND ((AMBS_RATES.RATE_DATE)<Date()) AND ((AMBS_RATES.STOP_DATE)>Date()));

7.2.2 Алгоритмы процедур

7.2.2.1 Экстраполяция тарифов

7.2.2.2 Формирование LCR

7.3 Разработка интерфейса

7.3.1 Основные требования к графическому интерфейсу пользователя

Графический интерфейс пользователя - это совокупность средств и методов взаимодействия пользователя с устройством, реализованная через представление всех доступных функций и объектов в виде графических элементов на экране (диалоговых окон, кнопок, сообщений и т.д.), доступ пользователя к которым осуществляется при помощи устройств ввода информации.

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

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

2) Качественный интерфейс также должен быть согласованным, что для пользователя означает возможность переноса имеющихся знаний на новые задания для экономии времени их освоения.

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

4) При создании интерфейса важно использовать принцип обратной связи: каждое действие пользователя должно сопровождаться определенными визуальными или звуковыми эффектами для подтверждения того, что команда принята программой.

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

6) Дополнительным качеством хорошего интерфейса является его гибкость - способность адаптироваться к пользователям различного уровня подготовки. Гибкий интерфейс предоставляет возможности ведения сокращенного диалога с программой.

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

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

Объединение элементов в группы позволяет обозначить их взаимосвязь и облегчить ориентирование пользователя.

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

7.3.2 Создание формы в Microsoft Access при помощи средств VBA

В VBA существует возможность создания и использования диалоговых окон для связи разрабатываемого приложения с пользователем путем обеспечения ввода и вывода данных в гибкой форме. Для этого применяется объект UserForm, представляющий собой пустое диалоговое окно, имеющий определенные свойства, события и методы.

Добавление новой формы в проект осуществляется через команду меню Insert>UserForm (Вставка>UserForm). На ней можно размещать выбранные из служебной панели элементы управления - составляющие диалогового окна, позволяющие пользователю осуществлять взаимодействие с программой.

При разработке пользовательского интерфейса были использованы следующие элементы управления:

- Label (Надпись) - предназначен для создания на форме надписей и заголовков в виде статического текста;

- Field (Поле) - редактируемое поле для ввода текстовых данных в произвольной форме;

- OptionButton (Переключатель) - кнопка переключения для выбора альтернативных вариантов;

- CommandButton (Кнопка) - кнопка с прикрепленной к ней VBA-процедурой. Как правило, заголовок кнопки раскрывает ее назначение;

- ComboBox (Поле со списком) - раскрывающееся поле со списком, содержащее предлагаемые пользователю значения. В некоторых случаях может редактироваться пользователем с целью добавления новых значений;

- Frame (Прямоугольник) - рамка, при помощи которой можно визуально и логически группировать элементы диалогового окна.

Работа с выбранными элементами управления осуществляется при помощи процедур, связанных с наступлением каких-либо событий (активации, щелчка мыши, редактирования и т.д.). В разработанном проекте были использованы следующие события:

- Click - вызывается щелчком мыши по объекту;

- Open - используется при открытии диалогового окна.

7.3.3 Функции используемых элементов

В соответствии со структурой программы элементы формы разделены на 2 группы: относящиеся к составлению маршрутной таблицы и управляющие параметрами контроля качества соединений (рис. 30). Назначение каждого элемента описано в таблице 1.

Таблица 1. Функции элементов управления формы

Наименование элемента управления

Выполняемое действие

Значение по умолчанию

Выборка тарифов на дату

Задает дату выборки тарифов

Текущая дата

Маска телефонного кода

Фильтр, определяющий диапазон выбираемых кодов направлений

7 (Россия)

Курс для тарифов в USD

Указывает текущий курс валюты, в которой составлены тарифы

55

Ограничения экстраполяции тарифов

Предполагает выбор одного из трех режимов: без экстраполяции, с экстраполяцией по кодам или по типам направлений (разделение на стационарные, сотовые и спутниковые)

по типу

Максимальное число маршрутов

Осуществляет выбор числа автоматически составляемых маршрутов (от 1 до 6)

6

Загрузка тарифов

Запускает функцию загрузки таблиц с сервера, выполнение которой доступно при наличии прав доступа к базе данных. При отсутствии связи с сервером выдает сообщение об ошибке (рис. 31)

-

Синтез LCR

Инициирует процесс составления маршрутной таблицы

-

Обновление маршрутов

Удаляет старые маршруты из БД AMBS на сервере и загружает на их место новые. Обновляется не вся таблица, а только блок записей, соответствующий содержимому локальной таблицы Route_Param

-

Период

Задает границы интересующего оператора периода статистики

текущие сутки

Минимальное число попыток

Минимальное число попыток соединений по данному направлению, используемое для формирования статистики. При меньшем числе попыток данное направление не анализируется

100

Минимальный ASR

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

0,05

Минимальный ACD

Задает минимальную среднюю длительность звонка, достаточную для отбраковки направления

0,10

Сбор статистики

Запускает процедуру сбора статистики с коммутаторов

-

Просмотр статистики

Позволяет просмотреть таблицу, содержащую маршруты с неудовлетворительным качеством связи

-

Блокировка тарифов

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

-

Рис. 30. Внешний вид формы

Рис. 31. Сообщение об ошибке

7.4 Технология отладки программы

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

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

7.4.1 Основные типы ошибок

Ошибки, возникающие при создании и эксплуатации программы, можно условно разделить на четыре группы:

- синтаксические ошибки;

- ошибки компиляции;

- ошибки времени исполнения (runtime-ошибки);

- логические ошибки.

Синтаксические ошибки возникают в результате неправильного ввода кода. Это самые простые ошибки: они обнаруживаются редактором кода Visual Basic сразу и являются результатом несоблюдения разработчиком синтаксиса языка или просто невнимательности при вводе кода [14]. Большинство синтаксических ошибок может быть распознано редактором VBA в процессе введения или редактирования текста программы. При таком распознавании на экран выводится окно текстового сообщения, сопровождающееся звуковым сигналом.

Стоит отметить, что в сообщении редактора VBA ошибка обозначается как Compile error, то есть ошибка компиляции, поскольку проверка синтаксиса осуществляется при помощи запуска компилятора. Тем не менее, ошибки такого рода относят к синтаксическим.

Ошибки компиляции возникают при попытке запустить подпрограмму, содержащую оператор, который VBA не в состоянии правильно откомпилировать [14]. В таком случае оттранслированный код не создается, а компилятор выдает сообщение об ошибке.

Ошибки времени исполнения или runtime-ошибки возникают, когда VBA встречает выражения или операторы, которые не удается вычислить или выполнить, например, содержащие недопустимые аргументы в процедурах и функциях, или недопустимые математические операции [14]. Примерами таких ошибок могут служить деление на ноль, присваивание не соответствующих типов, открытие несуществующих файлов или математическое переполнение массивов.

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

7.4.2 Средства отладки кода в VBA

7.4.2.1 Режим прерывания

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

Для выхода из режима прерывания можно воспользоваться командой Run>Continue (Запуск>Продолжить), в этом случае программа продолжит свое выполнение в обычном режиме до тех пор, пока не будет осуществлено ее запланированное завершение. Помимо этого для той же цели могут быть использованы также нажатие клавиши F5 или щелчок мыши по кнопке Continue (Продолжить) на панели Debug (Отладка).

Если необходимо выйти из режима прерывания с завершением работы программы, то нужно воспользоваться командой Run>Reset (Запуск>Сброс), или нажать кнопку Reset на панели Debug.

Существует несколько способов переведения редактора VBA в режим прерывания:

1) Переход из окна сообщения об ошибке - осуществляется при помощи нажатия кнопки Debug в диалоговом окне сообщения о runtime-ошибке при его возникновении. Диалоговое окно содержит информацию о номере ошибки и краткое описание причины ее возникновения. Нажатие на кнопку Debug открывает окно кода программы. В нем желтым цветом выделен оператор, из-за которого возникла runtime-ошибка.

2) Переход в процессе исполнения кода - путем нажатия Esc или Ctrl+Break в процессе работы программы. Стоит заметить, что в этом случае неизвестно заранее, в какой точке выполнения программа находится на данный момент времени. После прерывания исполнения программы возникает диалоговое окно сообщения об ошибке с надписью о том, что выполнение кода было прервано. Нажатие кнопки Debug в этом случае также переведет программу в режим прерывания; редактор выделит текущий выполняющийся оператор.

3) Переход через использование точек останова. Точки останова (иногда - контрольные точки, breakpoints) - это специальным образом помеченные строки в программе, в которых ее выполнение приостанавливается. При достижении установленной точки останова VBA переключается в режим прерывания. В ходе использования таких точек та часть команд программы, которая не нуждается в проверке, выполняется с полной скоростью, и только по достижении тех операторов, работу которых необходимо тщательно проконтролировать, программа переходит в режим прерывания. Точка останова может быть помещена в любой строке программы, содержащей исполняемый оператор, работа которого служит предполагаемым источником возникновения ошибок. В разных процедурах одного проекта может быть задано несколько контрольных точек. Установить или снять точку останова можно, установив курсор вставки на строке, в которой необходимо переключение в режим прерывания, и произведя одно из следующих действий: использовав команду Debug>Toggle Breakpoint (Отладка>Точка останова), нажав клавишу F9, использовав кнопку Toggle Breakpoint панели инструментов Debug или щелкнув левой кнопкой мыши на границе окна модуля напротив нужной строки. В результате совершенных действий строка выделяется темно-красным, и слева напротив нее появляется крупная точка такого же цвета. Точки останова действительны до тех пор, пока их не удалили или не закрыли рабочий проект, в котором они были установлены.

4) Переход при использовании оператора Stop - осуществляется по достижении вставленного в текст программы оператора Stop. Этот метод напоминает предыдущий, но с той разницей, что ключевое слово Stop сохраняется при закрытии проекта, поэтому с его помощью отладку можно проводить в несколько сеансов. Когда редактор встречает оператор Stop, он приостанавливает выполнение программы и отображает модуль и процедуру, которые содержат исполняемый оператор; происходит переход в режим прерывания. После того, как отладка выполнена, все операторы Stop должны быть удалены из текста программы.

7.4.2.2 Пошаговое выполнение программы

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

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

Существуют четыре команды для запуска пошагового выполнения программы:

1) Debug>Step Into (Отладка>Шаг с заходом) или клавиша F8 - выполняет по одной строке программы, начиная с первой. При переходе к вызову процедуры выполняет первый ее оператор.

2) Debug>Step Over (Отладка>Шаг с обходом) или клавиши Shift+F8 - аналогично выполняет по одной строке программы, но при вызове процедуры выполняет ее как одну инструкцию. Такая команда используется при отладке в том случае, если заранее известно, что в данной процедуре ошибок нет, и позволяет сэкономить время.

3) Debug>Step Out (Отладка>Шаг с выходом) или клавиши Ctrl+Shift+F8 - используется для выхода из текущей процедуры и передает управление следующей по порядку инструкции, если она существует.

4) Debug>Run To Cursor (Отладка>Выполнить до текущей позиции) или клавиши Ctrl+F8 - выполняет процедуру от текущего места до установленного в выбранной инструкции курсора. Благодаря этой команде есть возможность проконтролировать место остановки программы, выполнив без прерываний не содержащие ошибок инструкции.

7.4.2.3 Наблюдение за значениями переменных

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

Окно Locals (Локальные переменные) позволяет вывести все локальные переменные процедуры или функции, которая выполняется в данный момент. Помимо прочего, в этом окне также можно просмотреть иерархическую структуру переменных или объектов выполняемой функции или процедуры.

Окно Immediate (Проверка) представляет собой доступный в режиме прерывания свободный по формату редактор, в котором можно проверять результат выполнения функций и содержимое выражений, контролировать или менять значения переменных и проводить вычисления.

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

Если необходимо сократить время отладки, то окно Immediate можно вызывать вне режима пошагового выполнения программы. Для этого необходимо поместить в тело программы оператор Debug.Print совместно с оператором Stop, который переведет программу в режим прерывания, и требуемые значения переменных будут показаны в окне Immediate.

Дополнительно существует метод Debug.Assert, с помощью которого можно при выполнении некоторого условия приостановить исполнение кода в строке, содержащей этот метод. После этого оператора в качестве аргумента записывается некое логическое выражение. В случае, когда оно принимает значение False, оператор выполняется и прерывает работу программы аналогично оператору Stop.

Окно Watches (Просмотры) используется для просмотра значений выражений или переменных при пошаговом или обычном выполнении программы путем добавления их в данное окно через вызов опции Add Watch из контекстного меню. Добавленные таким образом выражения можно редактировать, используя опцию Edit Watch, или удалить.

Окно Call Stack (Стек вызова) позволяет просмотреть список последовательно вызванных процедур, которые привели к функции или процедуре, выполняющейся в данный момент. В этом окне кнопка Show (Показать) используется для поиска в тексте программы оператора, вызвавшего исполняемую функцию.

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

Встроенные функции ввода и вывода значений переменных и выражений в документ в VBA не предусмотрены, поэтому для их осуществления необходимо создавать собственные процедуры.

7.4.2.4 Обработчик ошибок

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

Для создания обработчика ошибок потребуется установить ловушку прерываний (error trap) путем сообщения места кода, куда следует перейти при возникновении ошибки, написать саму процедуру обработки прерываний и обеспечить выход из нее.

Ловушка прерываний устанавливается с помощью оператора On Error, указывающего на местоположение обработчика прерывания в процедуре. Для выхода из блока обработки ошибок используется оператор Resume. Важным является не только указать место возникновения ошибки в коде, но и обозначить причины ее появления. Для этого чаще всего используется объект Err и его методы Number, указывающий номер возникшей ошибки, и Description, содержащий ее краткое описание.

7.5 Решение задачи на ЭВМ

Функциональные возможности разработанного приложения отвечают заданным требованиям. Результат работы приложения продемонстрирован на рис. 32-40.

Рис. 32. Операция загрузки тарифов

Рис. 33. Загруженная таблица Offer_Consolidated_Item

Рис. 34. Процесс формирования маршрутной таблицы

Рис. 35. Полученный справочник направлений

Рис. 36. Сформированная таблица Route_Param

Рис. 37. Обновление маршрутов на сервере

Рис. 38. Сбор статистики соединений

Рис. 39. Сформированная таблица Tmp_Term_Stat

Рис. 40. Блокировка тарифов

8. Охрана труда

8.1 Охрана труда

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

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

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

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

В соответствии с нормами действующего законодательства каждый работодатель обязан обеспечить работникам безопасные условия труда, то есть такие, при которых воздействие на работников вредных и/или опасных производственных факторов исключено, либо уровни их воздействия не превышают установленных нормативов [15].

Охрана труда включает в себя следующие элементы:

- техника безопасности;

- санитарно-гигиенические нормы;

- пожарная безопасность;

- электробезопасность;

- управление рисками профессии [16].

8.2 Микроклимат рабочей зоны

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

Микроклимат производственных помещений определяется:

- относительной влажностью воздуха, измеряемой в %;

- скоростью движения воздуха, м/с;

- температурой воздуха, °С;

- температурой поверхностей окружающих конструкций (стен, пола, потолка, технологического оборудования и т.д.), °С;

- интенсивностью теплового облучения, Вт/м2.

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

Значения данных параметров в рабочей зоне производственных помещений должны соответствовать нормам, установленным в ГОСТ 12.1.005 - 76. Под рабочей зоной понимается пространство высотой до 2 метров над уровнем пола, где располагается рабочее место. Рабочее место считается постоянным, если работающий сотрудник находится за ним более половины своего рабочего времени или более двух часов непрерывно. При работе в различных местах рабочей зоны вся она считается постоянным рабочим местом.

Таблица 2. Оптимальные нормы температуры, относительной влажности и скорости движения воздуха в рабочей зоне производственных помещений

Сезон года

Категория работ

Температура, °С

Относительная влажность, %

Скорость движения воздуха, м/с, не более

Холодный и переходный периоды года

Легкая - I

20-23

60-40

0,2

Средней тяжести - II а

18-20

60-40

0.2

Средней тяжести - II б

17-19

60-40

0,3

Тяжелая - III

16-18

60-40

0,3

Теплый период года

Легкая - I

22-25

60-40

0,2

Средней тяжести -II а

21-23

60-40

0,3

Средней тяжести - II б

20-22

60-40

0,4

Тяжелая - III

18-21

60-40

0,5

В рамках дипломного проекта предполагается рассмотреть факторы микроклимата рабочей зоны, влияющие на оператора персональной электронно-вычислительной машины (ПЭВМ). Данный вид работы может быть отнесен к легкой категории. Таким образом, в соответствии с таблицей 2 во время холодного периода года температура воздуха в помещении должна составлять 20-23 °С, относительная влажность воздуха - 40-60 %, скорость движения воздуха - не более 0,2 м/с.

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

Перегрев

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

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

Повышенная влажность воздуха

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

Сухость воздуха

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

Ветер и сквозняки

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

8.3 Рекомендации по поддержанию оптимального микроклимата

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

Если такую систему установить невозможно, то нужно постараться максимально защитить рабочую зону от проникновения тепла извне, а также увеличить вентиляцию в помещениях в жаркое время года, тогда как в более холодные сезоны необходимо позаботиться об отсутствии сквозняков и установить системы отопления.

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

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

- регулярное проветривание помещений, особенно в вечернее и утреннее время, когда воздух не такой жаркий;

- использование светлых, отражающих свет покрытий для стен и крыш зданий;

- оборудование окон плотными шторами или жалюзи, позволяющими избегать попадания прямого солнечного света;

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

- установление перегородок перед непосредственными источниками тепла.

В качестве мер индивидуальной защиты можно рассматривать:

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

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

9. Экологическая часть

9.1 Природа электромагнитного излучения

Электромагнитное излучение - процесс испускания электромагнитных волн ускоренно движущимися заряженными частицами, а также само переменное электромагнитное поле этих волн [17]. Скорость распространения электромагнитных волн в вакууме составляет 3*108 м/с, а в различных веществах - в зависимости от их магнитной проницаемости.

Полоса частот электромагнитных излучений (ЭМИ) составляет спектр (рис. 41), в котором ЭМИ характеризуются длиной волны, частотой излучения и энергией кванта [17]. Все эти величины связаны друг с другом: энергия кванта прямо пропорциональна частоте волны и обратно пропорциональна ее длине (таблица 3).

Рис. 41. Спектр ЭМИ

ЭМИ, обладающие высокими энергиями кванта, способны ионизировать атомы вещества, в которое они проникают. Такие излучения называют ионизирующими; к ним относятся гамма- и рентгеновское излучение, длины волн которых составляют менее 100 нм. В рамках данного дипломного проекта предполагается рассмотреть воздействие на человека неионизирующих электромагнитных излучений радиоволнового диапазона, поскольку работа программиста или оператора ПЭВМ связана с приборами, которые являются его источниками.

Таблица 3. Общая классификация неионизирующих электромагнитных излучений

Вид излучения

Диапазон длин волн

Диапазон частот

Энергия кванта

Ультрафиолетовое излучение

100 - 400 нм

3000 - 750 ТГц

12,4 - 3,11 эВ

Оптическое излучение

400 - 780 нм

750 - 385 ТГц

3,11 - 1,58 эВ

Инфракрасное излучение

780 нм - 0,1 мм

385 - 3 ТГц

1,58 эВ - 1,24 мэВ

Гипервысокочастотное излучение

0,1 - 1 мм

3000 - 300 ГГц

1,24 мэВ - 1240 мкэВ

Сверхвысокочастотное или микроволновое излучение

1 мм - 1 м

300 - 0,3 ГГц

1240 мкэВ - 1240 нэВ

Радиочастотное излучение

1 м - 1 км

300 - 0,3 МГц

1240 нэВ - 1240 пэВ

Низкочастотное излучение

1 - 10 км

300 кГц - 3 Гц

1240 пэВ - 12,4 фэВ

9.2 Источники электромагнитного излучения

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

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

Рабочее место оператора ПЭВМ в радиусе полутора метров, таким образом, постоянно находится под воздействием ЭМИ, исходящего как от монитора, так и от самого процессора. При работе за ноутбуком следует учитывать еще и электромагнитные поля батареи аккумулятора.

9.3 Влияние электромагнитного излучения на здоровье человека

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

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

Влияние на нервную систему

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.