Подсистема автоматизированной тарификации биллинговой системы 'Отик-интернет'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    284,25 kb
  • Опубликовано:
    2012-03-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Подсистема автоматизированной тарификации биллинговой системы 'Отик-интернет'

Введение

Сегодня самым распространенным видом подключения к сети Интернет является коммутируемый доступ через телефонную сеть общего пользования. В этом случае для подключения к Интернету пользователю необходимо иметь компьютер, телефонный модем, городскую телефонную линию и программу для работы в Интернете (browser). Как известно, работа в Интернете - это обмен данными между пользователем и сетью Интернет. Этот обмен осуществляется по протоколу TCP/IP, одна из особенностей которого заключается в том, что передача информации организована так, что пользователь кроме приема информации должен направлять запрос на нужную информацию, а также подтверждать факт корректного приема информации. Таким образом, работа в Интернете - это двунаправленный обмен данными между пользователем и сетью.

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

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

И они появились. Это ISDN (Integrated System Digital Network - интегрированные цифровые сети), DSL (Digital Subscriber Line- цифровая абонентская линия), оптоволоконные линии и некоторые другие. Всё это различные виды наземных коммуникаций. Эти достаточно дорогие технологии получили развитие только в крупных городах. А как быть с организацией скоростного доступа в тех местах, где нет средств на организацию таких систем, или в принципе нет никакого кабеля? Здесь на помощь пришли спутниковые технологии. Благодаря покрытию лучом спутника большой территории, со спутника есть возможность принимать данные в любой точке покрытия. А так как технологии передачи данных со спутника являются достаточно высокоскоростными, то необходимость прокладки высокоскоростных и дорогих наземных коммуникаций отпадает.

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

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

Для функционирования спутникового Интернета помимо аппаратных средств необходимо также программное обеспечение, которое имеет название - биллинговые системы или Автоматизированные Системы Расчетов (АСР).

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

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

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

1. Специальный раздел

 

.1 Введение


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

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

Функционирование программы позволит сократить трудовые и временные затраты администратора биллинговой системы “ОТИК-Интернет” и на этой основе повысить качество и скорость обработки данных.

1.2 Исследовательская часть

.2.1 Обзор существующих продуктов на рынке

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

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

Еще совсем недавно тиражируемые биллинговые системы (БС) для Интернет-провайдеров (ISP - Internet Service Provider) на российском рынке попросту отсутствовали. Сегодня предлагается уже около десятка.

Итак, рассмотрим следующие системы биллинга для ISP, имеющиеся на российском рынке:

1)   Тизона 2.0 от Quarta-Тelecommunications

2)      «Биллинг АйТи» компании «АйТи»;

)        «АЛМАЗ-Биллинг» (АО «КРЭГГ»);

4)      Traffic Inspector производства компании “СМАРТ-СОФТ»

)        Zenon производства Zenon N.S.P.

Для покупателя БС немаловажны три показателя: стоимость продукта, его аппаратная конфигурация и наличие документации. Минимальные аппаратные требования, а также стоимость каждой из систем определяют «масштабность» провайдера (число обслуживаемых им пользователей), на которого ориентируется производитель.

Рассмотрим особенности каждого из продуктов.

Тизона 2.0

Производитель Quarta-Telecommunications № ОС/1-СТ-243

Заметим, что первая «проба пера» Quarta-Telecommunications состоялась еще в 2000г.: тогда ее БС была установлена у нескольких провайдеров. Рекомендации пользователей и опыт эксплуатации были полностью учтены при создании новой БС.

Тизона 2.0 ориентирована на обслуживание Интернет-провайдеров среднего и мелкого масштаба.

Система выполняет следующие функции:

-      Публичная регистрация пользователей через WWW. Генерация лицевого счета, входного имени и пароля;

-             Доступ пользователей к статистике их работы через WWW, в том числе к отчетам по трафику и сеансам связи;

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

-             Просмотр списаний с лицевых счетов за услуги;

-             Смена пароля через WWW интерфейс;

-             Изменение параметров услуги;

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

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

-             Автоматическое выставление счетов на оплату, счетов фактуры;

-             Изменение реквизитов клиента через оператора системы;

-             Пополнение лицевого счета через Интернет-карту;

В состав биллинговой системы Тизона входят следующие основные компоненты:

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

-       Программное ядро системы биллинга, выполняющееся на соответствующем сервере;

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

-       Система Управления Базами Данных (СУБД), хранящая все необходимые для системы биллинга данные;

-       Виртуальная Java-машина, выполняющая процедуры тарификации, ограничения доступа и расчёта накопительных параметров.

Система биллинга устанавливается на платформе Linux 2.2.14 и старше.

Всё необходимое для функционирования системы биллинга ПО входит в комплект поставки.

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

Тизона 2.0 характеризуется невысокими требованиями к аппаратной платформе. Ее (пожалуй, единственную из рассматриваемых) можно назвать тиражируемой (если интерпретировать это понятие как «сам купил - сам установил»). Она действительно поставляется в коробке, в которой находятся также инсталляционный компакт-диск, подробная инструкция для самостоятельной установки и настройки, наконец, полная документация на систему.

Биллинг АйТи

Производитель Компания АйТи № ОС/1-СТ-155

Биллинг АйТи - автоматизированная система расчетов для предприятия.

Система выполняет следующие функции:

-   регистрация и учет клиентов и абонентов;

-       ведение договоров и соглашений с физическими и юридическими лицами;

-       назначение тарифов и других условий обслуживания;

-       обработка заявок на подключение/отключение ресурсов и предоставление услуг;

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

-       учет предоставленных услуг и ресурсов;

-       тарификация и расчет стоимости услуг, начисление на лицевые счета;

-       формирование счетов, счетов-фактур, извещений и прочих;

-       учет поступления платежей;

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

-       формирование отчетов;

-       информационно-справочное обслуживание клиентов, в том числе через Web-интерфейс;

-       взаиморасчеты с провайдерами услуг, дилерами и партнерами;

-       обработка статистической и аналитической информации;

-       оперативный биллинг (контроль состояния лицевого счета и управление ресурсами);

-       ведение и настройка услуг и ресурсов;

-       ведение и настройка тарифов и тарифных планов;

-       и т.д.

АСР Биллинг АйТи может быть настроена практически на любую номенклатуру предоставляемых услуг, используемых ресурсов и условий расчета за эти услуги и ресурсы.

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

АЛМАЗ-Биллинг

Акционерное общество "КРЭГГ"

Отсутствует информация о сертификации

Автоматизированная биллинговая система "АЛМАЗ-Биллинг" предназначена для выполнения в реальном масштабе времени следующих операций:

-   авторизация пользователей;

-       сбор и хранение информации о сессиях пользователей;

-       учет объема и номенклатуры предоставленных услуг, расчет их стоимости и формирование счетов для оплаты;

-       ведение лицевых счетов клиентов и взимание начисленной платы;

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

-       информационно-справочное обслуживание пользователей;

Система реализована на базе ОС UNIX и реляционной СУБД INFORMIX и обеспечивает непрерывный круглосуточный режим работы. Применение технологии баз данных INFORMIX снимает все технические проблемы и делает возможным гибкое определение программно-аппаратной конфигурации системы с учетом текущих потребностей и перспектив развития.

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

Система состоит из следующих специализированных подсистем:

-   подсистема авторизации пользователей и первичного сбора информации;

-       подсистема оперативного учёта пользователей, услуг, платежей.

Информация о сессиях пользователей, поступающая от предыдущей подсистемы, записывается в специальную таблицу в области данных INFORMIX в «родном» (присущем данной среде) формате. Оттуда затем ее берет специальная задача, запускаемая по расписанию, перерабатывает и записывает в таблицы долговременного хранения. Механизм биллинга использует уже переработанную таким образом информацию. Для ведения биллинга в системе определены следующие основные информационные объекты: клиент, лицевой счет, пользователь, услуга, схема обслуживания, сессия, платеж, денежная операция. Для каждого клиента, имеющего лицевой счет, определена схема обслуживания, т.е. список доступных услуг. Каждая услуга характеризуется периодичностью начисления платежа за ее использование (немедленно, ежедневно, еженедельно, ежемесячно и т.д.) и тарификационной зависимостью, по которой начисляется плата (от времени соединения и/или от трафика передачи/приема, от времени суток, от дня недели, от суммарного трафика клиента за месяц и т.д.). Для каждого пользователя клиента, проведшего сессию, система генерирует немедленный платеж. Сумма всех начисленных платежей списывается с лицевого счета клиента с помощью дебетовой денежной операции автоматически с нужной периодичностью (обычно раз в месяц). Клиент пополняет свой лицевой счет с помощью кредитовой денежной операции. Для каждого клиента определено 3 границы (количество денежных единиц на лицевом счете): желтая зона, красная зона и зона отключения. Если количество денежных единиц на счету клиента меньше, чем желтая зона или красная зона, то ему будет послано предупреждение по электронной почте. Если же это количество будет меньше, чем зона отключения, то клиент будет снят с обслуживания, т.е. все его пользователи будут отключены. Такой подход позволяет использовать как дебетовую, так и кредитовую политику по отношению к различным клиентам.

В биллинговой системе "АЛМАЗ-Биллинг" предусмотрены возможности ее развития и внесения изменений:

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

-       изменение форм оперативных отчетов - счетов, приходно-расходных ведомостей, справок о состоянии лицевых счетов и т.д.;

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

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

-       и другое

Traffic Inspector

Компания «СМАРТ-СОФТ»

Отсутствует информация о сертификации.Inspector - биллинговая система, сочетающая в себе достаточно мощную биллинг платформу и прокси-сервер.

Система обладает следующими характеристиками:

Внутренние и внешние сети - протоколы и топология.

-   Сервер может работать с несколькими внутренними интерфейсами в сложной по топологии сети.

-       Для съема трафика пользователей через другие сервера внутренней сети может также использоваться специальный режим сниффера ("прослушивания").

-       Сервер может работать с несколькими внешними интерфейсами. Т.е. может быть несколько подключений к сети Интернет.

-       Для работы с динамическими внешними интерфейсами имеется режим автоматического их выбора.

-       Обеспечивается корректная работа при разделении входящего и исходящего трафика на внешних интерфейсах (например, при работе через спутник).

-       и другие

Авторизация пользователей.

-   Авторизация по сетевому адресу - IP, MAC или обеим. Также можно задать диапазон IP адресов.

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

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

Реализовано ограничения работы пользователей .по датам, по расписанию (может быть задано индивидуально для пользователя, для группы или сразу для всех), по доступу к ресурсам (имеются групповые и общие фильтры на запрещение и разрешение), по IP и MAC адресам клиента.

Контроль внешнего трафика.

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

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

-       и другие

Клиентский сервис.

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

Производитель Zenon N.S.P. Сертификат № ОС/1-СТ-50 вправе претендовать на титул первой российской системы биллинга, поскольку обслуживает пользователей компании Zenon N.S.P. (хорошо известной по ее серверу aha.ru) уже более пяти лет. Причем Zenon обеспечивает не только биллинг - эта комплексная система поддерживает и весь бухгалтерский учет ISP. Для подготовки отчетов для представления в налоговую инспекцию достаточно провести экспорт данных в «1С:Бухгалтерию». Система многофункциональна, оснащена аналитическими функциями для обработки статистических данных и вполне надежна, что подтверждается практикой ее эксплуатации. Правда, ее никак не назовешь тиражируемой: слишком «тесно» она подогнана к особенностям и требованиям того поставщика услуг, который ее породил.

В данный момент описание системы и отдельных ее модулей практически отсутствует. Кроме того, немалая цена, жесткие требования к аппаратной платформе (только SUN) и необходимость в дорогостоящем комплекте СУБД Oracle 8i существенно ограничивают круг покупателей системы.

Были рассмотрены следующие системы: Биллинговая система Тизона 2.0, Биллинг АйТи, АЛМАЗ-Биллинг, Traffic Inspector и Zenon. Вследствие отсутствия полнофункциональных биллинговых систем для спутникого интернета асимметричного доступа с исходными кодами нет возможности адаптации системы к конкретным условиям работы провайдера спутникого интернета на Российском рынке. Общим недостатком всех вышеперечисленных систем является то, что они не могут осуществлять урезание (шейпинг) пользовательского интернет-канала, не предоставляют исходных кодов, не могут ограничивать трафик более, чем на месяц, и что самое главное - у них нет интеграции с Microsoft ISA Server. Таким образом, вследствие вышеприведенных недостатков, а также из-за дороговизны существующих, разработка биллинговой системы, в настоящее время достаточно актуальна.

1.2.2 Основные типы тарифных планов российских Internet-провайдеров

Все тарифные планы можно подразделить:

-   для служб доступа;

-       для телематических служб.

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

Повременная оплата соединения

Набор таких тарифных планов есть практически у каждого Internet-провайдера.

«Плоский» - оплата производится независимо от того, когда задействовалось соединение, и от объема прокачанного трафика. В плане указывается стоимость одного часа работы, а абонентская плата не взимается. Точность тарификации составляет несколько секунд. Используется 99% поставщиков услуг при dial-up-подключении.

«День/ночь» - аналогичен предыдущему, но расчет производится в зависимости от времени суток, в которое происходила сессия. Обычно происходит деление суток на «день» и «ночь», но бывают планы, учитывающие до четырех временных интервалов с различной оплатой для каждого. Абонентская плата не взимается.

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

«Разные номера» - почасовая оплата производится в зависимости от используемого абонентом номера доступа к провайдеру, т.е. при подключении по разным номерам взимается разная плата.

«Премиальный» - повременной тарифный план «с накоплением». При превышении за некоторый период (обычно месяц) установленного времени работы в Интернет стоимость последующего часа (минуты) уменьшается.

Плата за трафик

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

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

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

«При некоммутируемом соединении» - оплачивается только прокачанный объем трафика.

«Раздельная оплата» - расчет оплаты производится отдельно для зарубежного и российского трафика.

«В зависимости от объема» - стоимость единицы объема прокачанного трафика изменяется после достижения установленной величины.

Абонентская плата

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

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

«Не ограниченный по времени суток» - позволяет получать доступ без ограничения только в определенные часы (ночь, вечер, утро) либо в определенные дни недели (обычно в выходные).

Смешанные тарифы

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

«Абонемент» - доступ обычно оплачивается с помощью Интернет-карт, в стоимость которых включена плата за несколько часов работы. Этот тариф позволяет работать в Интернет в течение определенного периода (месяца, 10 дней, недели).

«Неограниченный по времени суток + плоский» - тариф, аналогичный неограниченному по времени суток, но доступ в определенный период оплачивается по повременному тарифу.

«Повременной доступ с минимальным списанием» - в этом случае при повременном доступе абонент должен выплачивать определенные суммы через оговоренные в плане периоды работы (обычно один месяц).

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

1.2.3 Постановка задачи

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

-   добавление, изменение и удаление записей о тарифах;

-       поиск и сортировку информации о тарифах;

-       предоставление всей информации о тарифе;

-       изменение параметров просмотра информации о тарифах;

-       контроль целостности баз данных;

-       контроль входных и выходных данных;

-       обработка входной информации, полученной из log-файла, поступающего от Proxy в базу данных учета трафика;

-       создание учетных записей на каждый день;

-       занесение служебной информации в базу данных пользователей;

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

-       простой, интуитивно понятный пользовательский интерфейс;

Программный модуль должен работать под управлением Windows 2003 Server, реализован в среде разработки Microsoft Visual 2003.NET с компонентами для работы с MySQL и должен состоять из трех компонентов - системы баз данных, пользовательского интерфейса и программы мониторинга клиентов. Структура самой БД реализована при помощи MySQL, что позволяет всей системе работать на сетевом уровне.

Надежность программы и хранимой информации должна достигаться следующим образом:

1)   Автоматическое резервное копирование информации, что обеспечивает возможность её восстановления в случае сбоя программы или случайной её порче.

2)      Шифрование БД учета трафика и БД учета тарифов средствами MySQL.

)        При любой случайной попытке удаления данных программа выдает соответствующие сообщения.

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

)        В программе предусмотрена система “черного ящика”, который записывает некорректные действия программы и который позволяет вывести причину сбоя программы.

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

 

1.3 Конструкторская часть

 

.3.1 Концепция баз данных

Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных" (СУБД). Вот список лишь нескольких потребностей, которые не покрывались возможностями систем управления файлами:

-    поддержание логически согласованного набора файлов;

-       обеспечение языка манипулирования данными;

-       восстановление информации после разного рода сбоев;

-       реально параллельная работа нескольких пользователей.

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

Архитектура СУБД

СУБД должна предоставлять доступ к данным любым пользователям, включая и тех, которые практически не имеют и (или) не хотят иметь представления о:

-   физическом размещении в памяти данных и их описаний;

-       механизмах поиска запрашиваемых данных;

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

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

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

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

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

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

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

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

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

Инфологическая модель данных "Сущность-связь"

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

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

Атрибут - поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей (например, ЦВЕТ может быть определен для многих сущностей: СОБАКА, АВТОМОБИЛЬ, ДЫМ и т.д.). Атрибуты используются для определения того, какая информация должна быть собрана о сущности.

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

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

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

Реляционная структура данных

В конце 60-х годов появились работа сотрудника компании IBM доктора Э.Колда, в которой вероятно, впервые был применен термин "реляционная модель данных". Будучи математиком по образованию, Э.Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение - relation

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

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

Заголовок состоит из такого фиксированного множества атрибутов A1, A2, ..., An, что существует взаимно однозначное соответствие между этими атрибутами Ai и определяющими их доменами Di (i=1,2,...,n).

Тело состоит из меняющегося во времени множества кортежей, где каждый кортеж состоит в свою очередь из множества пар атрибут-значение (Ai:Vi), (i=1,2,...,n), по одной такой паре для каждого атрибута Ai в заголовке. Для любой заданной пары атрибут-значение (Ai:Vi) Vi является значением из единственного домена Di, который связан с атрибутом Ai.

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

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

Уникальность: в произвольный заданный момент времени никакие два различных кортежа R не имеют одного и того же значения для Ai, Aj, ..., Ak.

Минимальность: ни один из атрибутов Ai, Aj, ..., Ak не может быть исключен из K без нарушения уникальности.

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

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

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

1.3.2 Общая структура системы

Асимметричный доступ в Интернет через спутник

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

Работа в Интернете подразумевает двусторонний обмен данными. С точки зрения пользователя, условно можно выразиться, что в системе присутствует входящий и исходящий каналы передачи данных. В системе доступа через городскую телефонную сеть, как и в симметричном спутниковом Интернете, оба эти канала объединены в один: в первом случае - это провод, во втором - спутниковый канал. Однако первая технология имеет недостаток в виде низкой скорости передачи данных, вторая - достаточно дорога для среднестатистического пользователя Интернет. Поэтому появилась третья - асимметричный доступ в Интернет через спутник. В такой системе обмен данными осуществляется следующим образом: передача данных из Интернета к клиенту производится через спутник, а от клиента в Интернет - по телефонной линии. Появление такой технологии было обусловлено следующими обстоятельствами. Если проанализировать характер работы среднестатистического пользователя с точки зрения объемов передаваемой и принимаемой информации, то статистика указывает на следующую особенность. Общий объем данных, переданный в обоих направлениях, делится в следующем соотношении от 80% до 90% - данные, полученные пользователем из Интернета, и, соответственно, от 20% до 10% - данные, переданные от пользователя в Интернет. То есть пользователь - это потребитель информации (текстов, картинок, программ, файлов, аудио- и видеоинформации), а от себя он посылает только короткие объемы данных в виде запросов и подтверждений о полученной информации.

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

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

Как уже было сказано, для работы с асимметричной системой доступа в Интернете необходимо не только приобрести приемный спутниковый комплект, но и иметь наземное соединение с провайдером Интернета (рис.1.4).

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

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

Работа биллинговой системы провайдера спутникого Интернета

Биллинговая система провайдера спутникого интернета получает информацию о работе клиентов в интернете из log-файла, который поступает от Proxy Internet Security and Acceleration Server (ISA). Еще не менее важные данные для работы биллинговой системы храниться в базах данных, в которых находиться информация обо всех клиентах, контрактах, тарифах и другая служебная информации. Информацию в базы данных заносит, удаляет и изменяет Администратор биллинговой системы, он так же просматривает служебную информацию в специально отведенных для этого файлах, следит за статистической, аналитической информацией и корректной работой биллинговой системы. Пользователь через web-интерфейс может просматривать статистическую информацию о своей работе в Интернет, информацию о своем текущем счете, изменять личную информацию.

1.3.3 Схема информационных потоков

Основную информацию биллинговая система получает от Proxy в виде log-файла, который обрабатывается в модуле учета трафика. В результате обработки модуль учета трафика систематизирует данные, которые содержат информацию о трафике, и заносит их в базу данных Traffic. После чего модуль учета тарифов, исходя из информации в базе данных Traffic, информации в базе данных Tarif, которая содержит данные о тарифе, и информации из базы данных Billing, которая содержит информацию о клиентах и их контрактах изменяет соответствующим образом данные во всех трех базах. Модуль учета пользователей предоставляет web-интерфейс для администратора и пользователей через Интернет. Вследствие изменения предоставляемых данных, меняется информация в базе данных Billing. Администратор биллинговой системы через модуль учета пользователей имеет доступ к более обширной информации, чем пользователь. Так как пользователь имеет доступ только к модулю учета пользователей, а администратор ко всем трем (модуль учета трафика, тарифов и пользователей), то схему информационных потоков можно представить:

Рис 1.6.Схема информационных потоков биллинговой системы.

1.3.4 Структура данных модуля учёта тарифов

Для работы программного модуля учета тарифов биллинговой системы были разработаны две базы данных: БД тариф (tarif), БД трафик (traffic). Для мониторинга клиентов используется БД биллинг (billing).

Структура объектов базы данных Tarif

Инфологическая модель базы данных

Рис.1.7. Инфологическая модель базы данных Tarif.

Даталогическая модель базы данных

База данных Tarif представлена таблицами Name_Tarif (Название тарифа), Time_Payment (Повременная плата), IdSinglePayment (Разовые платежи). Даталогическая модель этой базы данных представлена на рис.1.8.

Рис.1.8. Даталогическая модель базы данных Tarif

Таблица 1.1 Таблица Name_Tarif

Название поля

Описание поля

NameTarif

Уникальное название тарифа. Данный атрибут является ключевым.

AbonPayment

Абонентская плата.

IdSinglePayment

Поле для связи двух таблиц: Name_tarif и Single_Payment.

IdTimePayment

Поле для связи двух таблиц: Name_tarif и Time_Payment.

IdWeekEndPayment

Поле для связи двух таблиц: Name_tarif и Time_Payment.

FreeFavour

Бесплатное количество байт, входящих в абонентскую плату.


Таблица 1.2 Таблица Single_Payment

Название поля

Описание поля

IdSinglePayment

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

WhithEquipment

Цена за подключение с оборудованием.

WhithoutEquipment

Цена за подключение без оборудования.

MinPayment

Минимальная плата.


Таблица 1.3 Таблица Time_Payment

Название поля

Описание поля

NumberTimePayment

Уникальный номер повременной оплаты. Данный атрибут является ключевым.

IdTimePayment

Идентификационный номер повременной оплаты.

TimeBegin

Начало периода.

TimeEnd

Конец периода.

Price

Цена за соответствующий период входящего трафика.

PriceOut

Цена за соответствующий период исходящего трафика.


Таблица 1.4 Физическая структура БД Billing

Таблица БД

Атрибут

Тип

Размер

Допусти-мые  значения

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

Contract

FIO Adr Tphone Login* Password MAC IP CommBalance JPPerson NumContract DateContract

Varchar Varchar  Varchar  Varchar binary Varchar binary Varchar  Varchar  Decimal(15,6) Enum Varchar Date Varchar

50 70 15 20 20 12 15   15  50

        {P, J}

NULL NULL NULL     0.000000 P  0000-00-00 NULL

Paccess

IdService* Login* NameTarif FreeFavour Status DateDisconnect

Int(10) Varchar binary  Varchar Int(10) Enum Date

30 20 255 

    {C, D, B}

0   NULL B NULL

Traffic

Devent* IdService* Login* IIntraffic CIntraffic Outtraffic

Date Int(10) Varchar binary Int(10) Int(10) Int(10)

  20


0000-00-00 0  0 0 0

Pcount

Login* Devent* IdService* Income Expense Balance

Varchar binary Date Int(10) Decimal(10,2) Decimal (10,4) Decimal (10,4)

20 20


 0000-00-00 0 0.00 0.00 0.00


Таблица 1.5 Таблица Contract (Контракт)

Название поля

Описание поля

Login

Уникальное имя пользователя в системе. Данный атрибут является ключевым.

Password

Пароль пользователя.

FIO

Фамилия, имя и отчество пользователя.

Adr

Адрес проживания пользователя.

Tphone

Контактный телефон.

MAC

MAC-адрес компьютера пользователя.

IP

IP-адрес пользователя.

CommBalance

Денежный баланс пользователя.

JPPerson

Юридическое (J) или физическое (P) лицо.

DateContract

Дата заключения контракта.

NumContract

Номер контракта.

Email

Email пользователя.


Таблица 1.6 Таблица Paccess (Точка доступа)

Название поля

Описание поля

Id_Service

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

Login

Уникальное имя пользователя в системе. Является внешним ключом.

NameTarif

Уникальный идентификатор тарифа. Берётся из БД учета тарифов.

FreeFavour

Количество бесплатного трафика в байтах, входящего в абонентскую плату. Берётся из БД учета тарифов.

Status

Статус услуги. Услуга может быть включена, выключена и заблокирована.

Ddisconnect

Дата отключения/блокирования услуги.


Таблица 1.7 Таблица Traffic (Журнал долговременного трафика)

Название поляОписание поля

Дата сбора информации о суммарном трафике. Данный атрибут ключевой.

IdService

Уникальный идентификатор услуги в системе. Данный атрибут ключевой.

Login

Уникальное имя пользователя в системе. Данный атрибут ключевой.

Iintraffic

Суммарный входящий трафик из Интернет.

Cintraffic

Суммарный входящий трафик из кэша прокси-сервера.

Outtraffic

Исходящий трафик.


Таблица 1.8 Таблица Pcount (Журнал лицевого счёта)

Название поляОписание поля


Login

Уникальное имя пользователя в системе. Данный атрибут ключевой.

Devent

Дата сбора информации о суммарном денежном балансе. Данный атрибут ключевой.

IdService

Уникальный идентификатор услуги в системе. Данный атрибут ключевой.

Income

Денежный приход за указанную дату.

Expense

Денежный расход за указанную дату.

Balance

Денежный баланс за указанную дату.


1.3.5 Схемы алгоритмов модуля учёта тарифов

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

Рис.1.9 Общий алгоритм работы биллинговой системы.

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

Главный алгоритм работы подсистема автоматизированной тарификации представлен на рис.1.10.

Рис.1.10. Главный алгоритм работы подсистемы тарификации.

1.3.6 Описание работы программного модуля

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

При правильном вводе пароля открывается форма мониторинга клиентов и производится расчет необходимых параметров, изменение и ввод данных в базу данных Billing и Traffic.

В представленной форме пользователь (под пользователем в данном случае понимается администратор) может изменить два значения:

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

-       “Период работы”, который указывает на период времени, по истечении которого осуществляется мониторинг клиентов, т.е. расчет параметров необходимых для учета трафика.

Для ввода, редактирования и удаления тарифных планов необходимо нажать кнопку “Работа с тарифами ”, что приведет к вызову диалогового окна для ввода пароля.

После ввода правильного пароля появляется главная форма для работы с тарифами.

Главная форма предоставляет администратору полную информацию о тарифе, который будет выбран. Здесь же можно осуществлять поиск и сортировку тарифного плана по названию, а также сортировать по абонентской плате. Есть возможность, с помощью падающего меню, просматривать объем трафика включенного в абонентскую плату в Гигабайтах, Мегабайтах, Килобайтах, Байтах. Выход из формы возможен нажатием на кнопку “Выход” или на кнопку в виде креста, расположенной правом верхнем углу. В главной форме возможен только просмотр данных.

Для добавления нового тарифного плана необходимо нажать кнопку “Добавить”. После чего появляется форма для ввода/редактирования тарифа.

Здесь необходимо ввести следующие данные:

-   Название тарифа (любой текст до 255 символов);

-       Абонентская плата (число до 999999,99, означающее ежемесячный платеж клиента);

-       Объем трафика, включенного в абонентскую плату, который означает количество байт, которое клиент может скачать, заплатив абонентскую плату. Число, вводимое в данное поле, может интерпретироваться как Гигабайты, Мегабайты, Килобайты и Байты. Выбор единицы измерения осуществляется с помощью падающего меню, которое находиться рядом с полем. Максимальное значение, которое можно задать в Гигабайтах - 9313, в Мегабайтах - 9536743, в Килобайтах - 9765624999, в Байтах - 9999999999999.

-       Плата за подключение с оборудованием, приобретенным у ОТИК (число до 999999,99);

-       Плата за подключение с собственным оборудованием в офисах продаж ОТИК / у дилеров (число до 999999,99);

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

Если введенные данные, по какой либо причине не устраивают администратора, то их можно удалить, нажав кнопку “Очистить

Стоит отметить, то изначально формы для вводе информации о повременной оплате неактивны. Доступ к ним возможно получить путем проставления галочки в поле «разовые платежи».

При нажатии на кнопку “Сохранить” будут проверенны все введенные данные и если они правильные, то появиться сообщении о том, что тариф записан.

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

Если введенные данные окажутся ошибочными, то система выдаст следующие сообщения об ошибках

После ввода всех данных и возвращении на форму ввода/редактирования тарифа (рис.1.15), при нажатии на кнопку “Сохранить”, программа осуществит проверку введенной информации и при правильности всех данных тариф будет записан в базу данных Tarif с уведомлением в виде сообщения (рис.1.16).

Для того чтобы изменить тарифный план необходимо на главной форме (рис.1.14) выбрать тариф, который надо изменить, и нажать на кнопку “Изменить”. После нажатия на кнопку появится форма ввода/редактирования тарифов, где в соответствии с тарифом будут заполнены все поля, данные в которых можно изменять. Также на форме будет указано, имеется ли повременная оплата или нет, а если имеется, есть ли различие в оплате будних и выходных дней. После всех изменений на форме повременной оплаты надо нажать кнопку “Возвратиться с сохранением” после чего на форме разового платежа нажать кнопку сохранить, что вызовет проверку всех данных, и появления сообщения о том, что тариф изменен. Если при проверке данных обнаружиться ошибка, то появиться сообщение, в котором будет указана ошибка. После устранения всех ошибок и нажатия на кнопку “Сохранить” появиться главная форма для работы с тарифами с измененным тарифным планом.

Для удаления тарифного плана необходимо на главной форме выделить (выбрать) тариф, который надо удалить и нажать на кнопку “Удалить”. После чего появиться сообщение, где надо подтвердить удаление тарифного плана (рис 1.21.). В случае отказа тариф не будет удален.

Для контроля целостности, анализа всей информации, которая хранится в базе данных Tarif, предусмотрена форма для просмотра таблиц, где показаны все таблицы, все записи и поля соответствующих таблиц (рис.1.22). Для вызова формы просмотра таблиц, необходимо на главной форме для работы с тарифами нажать на кнопку “Показать таблицы”. В данной форме есть возможность только просматривать информацию.

1.3.7 Методика испытаний и результаты экспериментальной проверки

Общие сведения.

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

В жизненном цикле ПП можно выделить следующие виды испытаний:

-   испытания опытного образца ПП на полное соответствие требованиям технического задания;

-       испытания рабочей версии ПП, адаптированной к условиям конкретного применения;

-       испытания версии модернизированного ПП при сопровождении.

Наиболее полным и разносторонним испытаниям подвергается ПП при первичной проверке опытного образца.

Тестирование опытного образца при приемосдаточных испытаниях.

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

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

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

-       тестирование использования ресурсов ЭВМ - для проверки корректности распределения памяти и производительности;

-       эргономическое тестирование - для проверки удобства и простоты интерфейса программы;

-       тестирование документации - для проверки полноты и соответствия внутренним и внешним стандартам по структуре, оформлению.

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

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

Испытания программного продукта.

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

Рассмотрим процесс добавления нового тарифного плана с повременной оплатой.

На главной форме для работы с тарифами (рис.1.14) нажимаем на кнопку “Добавить”, при этом появляется форма добавления/редактирования тарифа.

В появившемся окне необходимо ввести: название тарифа, абонентскую плату, объем трафика, включенного в абонентскую плату, плату за подключение с оборудованием, приобретенным у ОАО «ОТИК», плату за подключение с собственным оборудованием в офисах продаж ОАО «ОТИК»/у дилеров, минимальный первоначальный авансовый платеж. При утвердительном ответе на вопрос “Есть повременная плата?”, ставим галочку в поле «Повременная оплата» и получаем доступ к соответствующей форме. Нажимаем на кнопку “Добавить”, после чего становится возможным разбивать день на периоды и указывать соответствующие цены. Вводим начальное время - “21:61”, конечное время - “22:30”, цену за входящий трафик -“10q ”, цену за исходящий трафик - “10” и нажимаем кнопку “Запомнить”. Появляется сообщение об ошибке, которое свидетельствует о корректной работе.

Исправляем начальное время - “21:61” на “ 21:50” и нажимаем кнопку “Запомнить”, что приводит к появлению сообщения об ошибке.

Изменяем цену за входящий трафик -“10q ” на “20” и нажимаем кнопку “Запомнить”, после чего запись благополучно добавляется, что свидетельствует о корректной работе программы.

На данный момент времени только 40 минут суток имеют определенную цену за трафик, что свидетельствует запить “Осталось 23:20:00”. Добавляем новую запись: начальное время уже заполнено - “22:30”, конечное время заполняем значением - “22:00”, цену за входящий трафик и цену за исходящий трафик заполняем значениями соответственно - “10” и “15”, нажимаем на кнопку “Запомнить”. Появляется сообщение об ошибке (рис 1.25), которое свидетельствует о корректной работе программы.

Исправляем конечное время - “22:00” на “ 21:50” и нажимаем кнопку “Запомнить”, после чего запись благополучно добавляется и становиться активной кнопка “Возвратиться”. Все эти проявления свидетельствует о корректной работе программы. Нажимаем кнопку “Возвратиться” и появляется форма ввода/редактирования тарифов.

Введем в поле “Название тарифа” значение, которое уже имеется в базе данных Tarif. Все остальные поля, кроме минимального первоначального авансового платежа, заполним значением равным 100, что является корректным значением для этих полей. Поле минимального первоначального авансового платежа заполняться не будет. Нажав на кнопку “Сохранить” появится сообщение (рис.1.26), которое свидетельствует о корректной работе программы.

После согласия на сообщение, введем минимальный первоначальный авансовый платеж, равный символу ”F” и нажмем на кнопку “Сохранить”, что приведет к появлению сообщения (рис. 1.27).

Изменяем, минимальный первоначальный авансовый платеж на корректное значение, например, на значение, равное 100, и нажимаем кнопку “Сохранить”. Появляется сообщение (рис.1.28.).

Изменяем минимальный первоначальный авансовый платеж, на значения равное 100 и нажимаем кнопку ”Сохранить”, что приводит к появлению сообщения о том, что тариф записан (рис.1.16) после чего появляется главная форма, где можно увидеть добавленный новый тарифный план.

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

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

1)   Обзор существующих продуктов на рынке

)     Основные типы тарифных планов российских Internet-провайдеров

Затронуты вопросы проектирования баз данных, рассмотрены общие положения, применяемые разработчиками СУБД, даны основные подходы создания реляционных баз данных.

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

Описана схема информационных потоков и рассмотрена структура данных.

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

Рассмотрена методика испытаний и представлены результаты экспериментальной проверки.

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

2. Технологическая часть

.1 Введение

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

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

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

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

2.2 Выбор среды и языка программирования

Для реализации дипломной работы была выбрана система программирования Microsoft Visual Studio.NET 2003, располагающая широкими возможностями по созданию приложений баз данных.

Прежде всего, стоит разобраться, зачем, собственно говоря, нужна платформа .NET. Для этого очень кратко рассмотрим технологии, имеющиеся в распоряжении программистов в настоящий момент, а затем перейдём к преимуществам, которые предоставляет платформа .NET и язык программирования C#.

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

Программирование с использованием Win32/C

Написание приложений с использованием только Windows API (Windows Application Programming Interface) - это очень трудоёмкая задача. Стоит отметить также что, что C- достаточно суровый по отношению к программисту язык. Тем, кто создает на нём свои приложения, приходится вручную заниматься управлением памятью, выполнять расчёты при использовании указателей и работать с совершенно неестественными с точки зрения человеческого языка синтаксическими конструкциями. Кроме того, в C, конечно, недостаточно возможностей для объектно-ориентированного программирования.

Программирование с использованием C++/MFC

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

Существует множество библиотек для C++, основное назначение которых - облегчить написание приложений под Windows, предоставив для этой цели уже готовые классы. Одна из наиболее распространенных библиотек - это MFC (Microsoft Foundation Classes). Она значительно упрощает работу программиста за счет использования готовых классов , макросов и мастеров. Однако это лишь частичное решение проблемы. Даже при использовании MFC программисту нужно работать со сложным для чтения кодом, весьма опасным с точки зрения возможных ошибок.

Программирование с использованием Visual Basic.

Visual Basic позволяет работать с достаточно сложными элементами интерфейса пользователя, библиотеками кода и средствами доступа к данным при минимальных затратах времени и сил. Однако Visual Basic обладает рядом недостатков. Главный из них - гораздо меньшие возможности, которые предоставляет этот язык по сравнению с С++. Visual Basic - это язык «для работы с объектами», а не объектно-ориентированный язык в обычном понимании этого слова. В Visual Basic нет классического наследования, нет поддержки создания параметризованных классов, нет собственных средств создания многопоточных приложений - и этот список можно продолжать ещё долго.

Программирование и использованием Java.

Язык Java -это полностью объектно-ориентированный язык, который в отношении синтаксиса многое унаследовал от C++. Но язык Java в отношении синтаксиса намного проще и логичнее, чем C++. Java - это очень элегантный и красивый язык. Однако при его использовании проблем избежать не удастся. Одна из серьёзных проблем заключается в том, что при создании сложного приложения на Java вам придётся использовать только этот язык для создания частей этого приложения. В Java предусмотрено не так уж много средств межъязыкового взаимодействия. В реальном мире существуют миллионы строк готового кода, который хотелось бы интегрировать с новыми приложениями на Java. Однако это очень трудно сделать. Таким образом, можем заключить, что Java - это далеко неидеальный язык во многих ситуациях.

2.2.2 Преимущества .NET

Один из главных принципов .NET звучит так: «Изменяйте всё, что хотите, откуда Вам угодно». .NET - это совершенно новая модель создания приложений под Windows (а в будущем, видимо, и под другими операционными системами). Основные возможности . NET можно охарактеризовать так:

-   Полные возможности взаимодействия с существующим кодом;

-       Полное и абсолютное межъязыковое взаимодействие;

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

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

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

2.2.3 Преимущества C#

Специально для платформы .NET Microsoft был разработан новый язык программирования C#. C# - это язык программирования, синтаксис которого очень похож на синтаксис Java (но не идентичен ему) Однако, назвать C# клоном Java было бы неверно. Как C#, так и Java основаны на синтаксических конструкциях C++. Если Lava во многих отношениях можно назвать очищенной версией C++, то C# можно охарактеризовать как очищенную версию Java.

Синтаксические конструкции C# унаследованы не только от C++, но и от Visual Basic. Например, в C#, как и в Visual Basic, используются свойства классов. Как C++, C# позволяет производить перегрузку операторов для созданных Вами типов. При этом C# синтаксически не менее (если не более) чист, чем Java, так же прост, как Visual Basic, и обладает практически той же мощью и гибкостью, что и C++.

Выделим основные особенности C#:

-   Указатели больше не нужны. В программах на C#, как правило, нет необходимости в работе с ними (однако если это потребуется, то, пожалуйста, возможности для работы с указателями в Вашем распоряжении);

-       Управление памятью производится автоматически;

-       В C# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов;

-       В C# осталась возможность перегружать операторы, унаследованные от C++. При этом значительная часть возникавших при этом сложностей ликвидирована;

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

-       Также предусмотрена полная поддержка аспектно-ориентированных программных технологий (таких как атрибуты).

Возможно, самое важное, что необходимо сказать о языке C#, - это то, что он генерирует код, предназначенный для выполнения только в среде выполнения .NET. Согласно терминологии Microsoft код, предназначенный для работы в среде выполнения .NET, - это управляемый код (managed code). Двоичный файл, который содержит управляемый файл, называется сборкой (assembly).

2.2.4 Создание приложений C# с использованием интегрированной среды разработки Microsoft Visual Studio.NET

Первое, что необходимо сказать об интегрированной среде разработки (integrated development environment, IDE) Visual Studio.NET, - то, то эта среда теперь едина для всех языков программирования .NET от Microsoft. Таким образом, какой бы тип проекта Вы ни создавали (ATL, MFC, C#, Visual Basic.NET, FoxPro, стандартный C++ и.т.п.), Вы всё равно будете работать в одной и той же среде.

В интегрированной среде разработки Visual Studio.NET проекты логически организуются в решения (solutions). Каждое решение состоит из одного или нескольких проектов. В свою очередь, каждый проект может состоять из любого количества исходных файлов, ссылок на внешние сборки и прочих ресурсов, которые и образуют приложение.

В Visual Studio.Net предусмотрены встроенные средства для работы с XML (как и HTML). Многие из этих средств были унаследованы от прежнего VisualInterDev. После подключения (или создания) файла XML к Вашему приложению Вы сможете производить редактирование его кода при помощи множества графических средств.

В Visual Studio.NET предусмотрены встроенные средства для организации соединения с базами данных.

Ещё один немаловажный аспект работы с Visual Studio.NET - это встроенная правка. Вместо того, чтобы постоянно переключаться между окнами среды разработки и MSDN, в Visual Studio.NET можно воспользоваться предусмотренным для этих целей окном Dynamic Help. Содержание этого окна изменяется динамически в зависимости от того, какой именно элемент выделен в настоящий момент.

2.2.5 MySQL-сервер и возможности MySQL

Для реализации дипломного проекта была выбрана СУБД MySQL.- компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании.был разработан компанией TcX для внутренних нужд, которые заключались в быстрой обработке очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 базами данных, которые содержат 10000 таблиц, из которых более чем 500 имеют более 7 миллионов строк.

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

Возможности MySQLподдерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД.

Краткий перечень возможностей MySQL:

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

2)      Количество строк в таблицах может достигать 50 млн.;

)        Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих;

)        Простая и эффективная система безопасности.

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

В MySQL отсутствуют:

1)  Не реализована поддержка транзакций. Взамен предлагается использовать LOCK/UNLOCK TABLE;

2)      Нет поддержки внешних (foreign) ключей;

)        Нет поддержки триггеров и хранимых процедур.

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

.3 Этапы решения задачи на ЭВМ

.3.1 Постановка задачи

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

Задание на разработку программы по форме и характеру должно быть аналогично техническому заданию (ТЗ) на разработку какого-либо технического продукта (см., например, ГОСТ 19.201-78 Единой системы программной документации).

Техническое задание полезно и в том случае, когда заказчик и исполнитель работают в одной и той же комнате или даже являются одним и тем же лицом. Наличие четкой письменной формулировки будет препятствовать подмене или отходу в процессе разработки программы от сформулированных в ТЗ требований в угоду каким-то другим побочным целям. Кроме того, письменно сформулированное задание делает возможным обсуждение, оценку или согласованную с заказчиками (пользователями) корректировку отдельных требований ТЗ в ходе разработки программы. ТЗ препятствует проникновению в программу таких ошибок и противоречий, которые могут быть обнаружены только после разработки большей части программы или уже на стадии анализа полученных результатов счета. Чем более формализованным по характеру будет техническое задание, тем больше шансов, что разрабатываемая программа будет решать именно ту задачу, которую имел в виду заказчик.

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

2.3.2 Составление проекта

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

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

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

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

2.3.3 Алгоритмизация

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

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

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

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

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

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

2.3.4 Программирование

В случае, когда на предыдущем этапе был получен детально разработанный алгоритм, составление программы на выбранном для программирования языке (алгоритмическом языке высокого уровня, автокоде, языке ассемблера или машинном языке) сводится к переводу этого алгоритма на язык программирования. Основные трудности и, следовательно, причины ошибок на этом этапе заключаются, во-первых, в необходимости знания всех требований и ограничений выбранного языка программирования и, во-вторых, в необходимости постоянного внимания ко многим деталям языка, которые приходится учитывать в ходе написания программы. Если этап 2.3.3. был выполнен некачественно и алгоритм представлен недостаточно детально, то его доводку придется выполнять «на ходу», во время программирования. Это затруднит процесс программирования-перевода и поведет к возникновению дополнительных ошибок в программе. Чем более процесс программирования будет походить на перевод, тем более «механическим» будет такой перевод, тем более легким будет составление программы, и тем меньше возникнет ошибок на этом этапе, самом щедром на ошибки.

После составления программы проводится ее проверка для обнаружения и исправления ошибок, внесенных на этом этапе. Если при проверке обнаруживаются ошибки, допущенные на предыдущем этапе 2.3.3., то соответствующие исправления вносятся и в алгоритм, поскольку к нему еще придется обращаться на следующих этапах, и тексты алгоритма и программы должны соответствовать друг другу.

2.3.5 Препарация

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

2.3.6 Трансляция

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

2.3.7 Отладка

На этапе отладки производится обнаружение с помощью ЭВМ ошибок в программе и их исправление. Этап отладки можно разделить на три подэтапа:

1)  Контроль правильности программы;

2)      Локализация ошибок;

)        Исправление ошибок.

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

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

После выполнения двух подэтапов производится исправление ошибок, выявленных на втором подэтапе. Исправления вносятся как в программу, так и в алгоритм, если он затрагивается этими исправлениями.

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

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

2.3.8 Оформление программы

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

2.3.9 Эксплуатация

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

2.3.10 Отчет о работе

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

2.3.11 Модернизация

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

Схема решения задачи. На рис.2.1. графически представлен процесс решения задачи на ЭВМ.

Рис.2.1. Этапы решения задачи на ЭВМ.

2.4 Необходимость отладки программного продукта

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

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

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

Стремление к максимально быстрому составлению программы с целью скорейшего начала (и окончания) ее отладки, приводит к тому что: отладка затягивается надолго, получение достоверных результатов откладывается на длительный срок. Такая задержка вызывается тем, что уже на поздних этапах отладки (а иногда - и эксплуатации) вскрываются все новые и новые ошибки, допущенные на этапах алгоритмизации и программирования, и приходится тратить много времени на их обнаружение и исправление. Отсюда можно сделать вывод, что кратность внутреннего цикла (этапы 2.3.6. и 2.3.7.) становится слишком большой, и при этом захватываются и этапы 2.3.3. и 2.3.4., а иногда и кратность внешнего цикла (от этапа 2.3.2 до 2.3.9.), оказывается отличной от единицы.

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

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

1)  Разработка общего плана проведения отладки, общей методики проверки правильности составленной программы, а также системы необходимых для отладки контрольных примеров.

2)      Проверка разработанных алгоритмов, выбор отладочных средств и определение контролируемых ими мест, участков, величин.

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

)        Ввод, печать и сверка текста программы, перенесенной на внешние носители.

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

)        Тщательный контроль первых результатов, получаемых по новой программе.

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

-   Получение задания, составление проекта программы и общего плана отладки 10%

-       Разработка алгоритма (15%) и детального плана отладки 20%

-       Программирование (5%) и изготовление тестов 15%

-       Препарация и первая трансляция 5%

-       Отладка 40%

-       Оформление программы 10%

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

Разработка программы =Изготовление + Доказательство.

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

1)  путем ускорения поиска и исправления ошибок, имеющихся в программе;

2)      путем уменьшения количества ошибок, допускаемых при разработке алгоритма и составлении программы.

Рис.2.2 Схема алгоритма отладки программы.

2.5 Тестирование

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

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

Существует три основных способа тестирования:

1)  Алгоритмическое;

2)      Аналитическое;

)        Содержательное.

Алгоритмическое тестирование

Алгоритмическое тестирование применяется для контроля этапов алгоритмизации и программирования. Проектируются тесты и начинаются готовиться эталонные результаты на этапе алгоритмизации, а используются они на этапе отладки.

Функциональное или аналитическое тестирование

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

Содержательное тестирование

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

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

На рис.2.3. графически представлена схема алгоритма тестирования программы:

Рис.2.3 Схема алгоритма тестирования программы

2.5.1 Типы тестов

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

Вырожденный тест

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

Тест граничных значений

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

Аварийный тест

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

2.6 Локализация ошибок

 
Способы локализации

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

Процесс локализации ошибок состоит из следующих трех компонент:

1)  Получение на машине тестовых результатов.

2)      Анализ тестовых результатов и сверка их с эталонными.

)        Выявление ошибки или формулировка предположения о характере и месте ошибки в программе.

2.7 Технология отладки программного модуля учета тарифов

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

1)  Просмотр текста программы с целью обнаружения явных синтаксических и логических ошибок.

)    Трансляция программы (транслятор выдает сообщения об обнаруженных им ошибках в тексте программы).

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

4)      Локализации ошибок.

Отладка программы производилась следующим образом:

1)  Запуск программы с набором тестовых входных данных и выявление наличия ошибок.

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

)        Новая прогонка программы. Если работа программы прервалась до обработки контрольной точки, значит, ошибка произошла раньше. Контрольная точка переносится, и процесс отладки возвращается к шагу 2.

)        Если контрольная точка программы была обработана, то далее следует изучение значений регистров, переменных и параметров программы с тем, чтобы убедиться в их правильности. При появлении ошибки - новый перенос контрольной точки и возврат к шагу 2.

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

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

В отношении разработанной в специальной части программы было дано описание алгоритма, использовавшегося при ее отладки и тестировании. Представлено обоснование выбора языка программирования и СУБД.

3. Сегментация рынка

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

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

3.1 Схема сегментации рынка

Общая схема сегментации рынка представлена на рис.3.1.

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

Принципы сегментации.

Для проведения успешной сегментации рынка целесообразно применять апробированные практической деятельностью пять принципов:

1)  различия между сегментами,

2)      сходства потребителей,

)        большой величины сегмента,

)        измеримости характеристик потребителей,

)        достижимости потребителей.

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

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

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

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

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

Методы сегментации

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

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

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

Виды и критерии сегментации.

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

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

-   микросегментация - выделение группы потребителей по более детальным критериям;

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

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

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

Сегментация рынка может производиться с использованием различных критериев и признаков.

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

-   региональные;

-       демографические;

-       критерии жизненного стиля потребителей.

Подробнее о каждой группе критериев.

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

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

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

Выбор целевого рынка

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

Целевой рынок фирмы может быть определен по трем измерениям:

1)  технологическому, описывающему технологии, способные удовлетворить потребности на рынке (“как?”);

2)      функциональному, определяющему функции, которые должны быть удовлетворены на данном рынке (“что?”);

)        потребительскому, обусловливающему группы потребителей, которые могут быть удовлетворены на данном рынке (“кого?”).

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

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

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

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

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

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

После выбора целевого рынка целесообразно перейти к его более детальной сегментации.

Выбор целевого сегмента

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

Следующим этапом после выбора соответствующих сегментов рынка является определение стратегии охвата целевого сегмента. Можно выделить следующие три направления деятельности предприятия в целевом сегменте:

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

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

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

Выбор любой из этих трех стратегий охвата рынка определяется:

-   числом идентифицированных и потенциально рентабельных сегментов;

-       ресурсами предприятия.

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

Позиционирование товара

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

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

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

Принципы сегментации с учётом специфики продукта

Особенностью рынка программного продукта (ПП) является постоянное расширение товарной массы (числа пакетов), что определяется следующими причинами:

-   индустрией производятся и выпускаются на рынок все новые и новые ПП;

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

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

Методика расчёта сегментации рынка

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

X= (3.1)

где w - число объектов; n - число признаков; ik - значение признака k для объекта i.

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

, (3.2)

, (3.3)

где k = 1, 2, ..., n ;

 (3.4)

стандартное отклонение признака k; zik - стандартизованное значение признака k для объекта i.


      (r, s = 1, 2, ... , w). (3.5)

Матрицу расстояний можно записать в следующем виде:

C =  (3.6)

Здесь символ  обозначает расстояние между элементами i и j.

Дальнейшее преобразование вышеприведенной матрицы заключается в том, что исчисленные расстояния разбиваются на классы по заранее установленным интервалам. Затем каждому выделенному классу присваивают условный знак: если элемент принадлежит интервалу, то пишут «X», иначе «-». Преобразованная таким образом таблица называется неупорядоченной диаграммой Чекановского (табл. 1).

Таблица 1. Неупорядоченная диаграмма Чекановского

Номера Единиц

1

2


1

X

-

X

-

2

-

-

-

X

W

-

X

-

X


В приведенной неупорядоченной диаграмме очередность записи случайна.

На это указывает явственный разброс символов, обозначающих разницу между изучаемыми элементами: наименьшее численное расстояние, обозначенное «C»; наибольшее расстояние, т.е. пары элементов, наиболее разнящиеся между собой, - «-».

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

Поиск сегментов рынка для БС «ОТИК-Интернет».

Биллинговая система автоматизирует работу оператора, тарифицирует Интернет-провайдеров спутникого Интернета.

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

Будем рассматривать следующие характеристики данного программного обеспечения, влияющие на функциональность системы:

1)  Простота и удобство интерфейса;

2)      Функциональность;

)        Быстродействие;

)        Надёжность;

)        Необходимость адаптации;

)        Дешевизна.

Сформируем матрицу наблюдений (табл. 3.2). Численные значения характеристик программного продукта выставляются по пятибалльной шкале следующим образом:

«1» - нет необходимости в данной характеристике;

«2» - характеристика безразлична;

«3» - более безразлична, чем необходима;

«4» - более необходима, чем безразлична;

«5» - необходима.

Таблица 3.2 Матрица наблюдений

Потребитель\ характеристика

Прос-тота

Функцио-нальность

Быстро-действие

Надёж-ность

Необхо-димость адаптации

Дешевизна

ОАО "ОТИК"

 5

 5

 5

 5

 1

 5

Интернет-провайдер со способом доступа:

Спутниковый Интернет

4

4

 4

 5

 3

4


Телефонная линия

5

4

 5

 5

 5

 5


Высокоскоро-стные наземные коммуникации

4

4

 4

 5

 5

3


X =

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

Далее, используя формулу (3.5), преобразуем матрицу наблюдений в матрицу расстояний (табл.3.3):

Таблица 3.3 Матрица расстояний


1

2

3

4

1

0

1

5/6

3/2

2

1

0

2/3

1/2

3

5/6

2/3

0

2/3

4

3/2

1/2

2/3

0


Приведем числа в ячейках матрицы к десятичному виду (табл.3.4):

Таблица 3.4 Матрица расстояний (в десятичном виде)


1

2

3

4

1

0

1

0,83

1,5

2

1

0

0,67

0,5

3

0,83

0,67

0

0,67

4

1,5

0,5

0,67

0


Учитывая тот факт, что мы имеем дело лишь с четырьмя группами потребителей разрабатываемого программного обеспечения, то разобьём полученные расстояния на два класса и каждому выделенному классу присвоим свой знак, т.е. получим неупорядоченную матрицу Чекановского (табл. 3.5): для первого интервала: [0; 0.75] - знак «Х»; для второго интервала: (0,75; 1.5] - знак «-».

Таблица 3.5 Неупорядоченная матрица Чекановского


1

2

3

4

1

Х

-

-

-

2

-

Х

X

X

3

-

X

Х

X

4

-

X

X

Х


Видно, что перегруппировка матрицы расстояний не требуется, знаки «Х», обозначающие наименьшие численные расстояния, уже оказались ближе к главной диагонали. Итак, мы получили упорядоченную матрицу Чекановского (табл. 3.6):

Таблица 3.6 Упорядоченная матрица Чекановского


1

2

3

4

1

X

-

-

-

2

-

Х

X

X

3

-

X

Х

X

4

-

X

X

Х


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

.2 Определение себестоимости и цены программного продукта

.2.1 Теоретические основы расчёта цены

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

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

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

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

Цпп=С+ Пн + Нэ , (3.7)

С - себестоимость единицы продукции, руб.;

Пн- нормативная прибыль, руб.;

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

Расчет цены программного продукта на основе роялти

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

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

 , (3.8)

где:а - ставка роялти в процентах от стоимости чистых продаж;

R - годовая сумма роялти;

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

Таким образом валовая сумма роялти, выплаченная собственнику программного продукта за период действия соглашения (t0 - tn), составит:

= (3.9)

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

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

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

3.2.2 Теоретические основы расчёта себестоимости ПП

Существует множество методов определения себестоимости нового продукта. Рассмотрим подробнее метод расчёта затрат на основе коэффициентов.

Метод расчета затрат на основе коэффициентов

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

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

- на изготовление опытного образца ПП;

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

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

- на повышение квалификации специалистов.

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

Таблица 3.7 Основные составляющие затрат в процессе разработки

Составляющие затрат

Основные влияющие факторы

Степень влияния

На непосредственную разработку комплекса программ, Объем ППвысокая




Надежность ПП

высокая


Степень использования ресурсов ЭВМ

высокая


Длительность разработки ПП

высокая


Длительность цикла жизни ПП

высокая


Уровень технологии разработки ПП

высокая


Уровень языка проектирования ПП

средняя

На изготовление опытного образца ПП, Объем ППвысокая




Уровень технологии разработки ПП

высокая


Способ материализации программ

средняя

На технологию программные средства автоматизации разработки ПП, Объем ППвысокая




Уровень технологии разработки ПП

высокая


Уровень языка проектирования ПП

средняя


Длительность цикла жизни ПП

средняя

На ЭВМ, используемые для разработки ПП, Объем ППвысокая




Уровень технологии разработки ПП

высокая


Длительность разработки ПП

высокая


Степень использования ЭВМ

высокая


Характеристики ЭВМ

средняя

На повышение квалификации разработчиков ПП, Тематическая квалификациявысокая




Технологическая квалификация

средняя


Программистская квалификация

средняя


П р и м е ч а н и е.

. Высокая степень влияния на затраты (>30%)

2. Средняя степень влияния на затраты ()

Затраты на разработку программного продукта определяются как частное от деления объема программного продукта (Кбайт) и производительности труда , коррелируемое на произведение коэффициентов изменения трудоемкости (КИТ) в зависимости от ряда факторов

 (3.10)

В состав коэффициентов входят:

) Изменение трудоемкости при увеличении объема программы :

 (3.11)

) Изменение трудоемкости при изменении базы данных

) Учет надежности функционирования ПП :

, (3.12)

где  - наработка на отказ в часах.

)        Ограничение ресурсов производительности и оперативной памяти реализующей ЭВМ :

, (3.13)

где - реальная загрузка (в относительных единицах)

) Длительность предполагаемой эксплуатации

, (3.14)

где , - время эксплуатации.

) Предполагаемый тираж программ:

. (3.15)

Затраты на изготовление опытного образца ПП  определяются необходимостью обеспечить отчуждение всего комплекса программ от его первичных разработчиков. Удельный вес этих затрат находится в пределах 10-15% от общих затрат на разработку.

Затраты на технологию  включают в себя:

-   затраты на создание технологии и приемлемой системы автоматизации разработки программ;

-       затраты на внедрение и освоение технологии и средств автоматизации;

-       затраты на эксплуатацию системы автоматизации разработки программ .

Затраты на ЭВМ  определяются как сумма затрат, в составе которых:

-   затраты на машинное время в процессе разработки программ;

-       первичные затраты на приобретение ЭВМ;

-       затраты на моделирующие ЭВМ.

Практический расчет себестоимости ПП

Проведем практический расчёт себестоимости программного комплекса методом на основе коэффициентов.

Определим себестоимость разрабатываемого программного продукта:

, (3.16)

где:

- затраты на разработку ПП, - накладные расходы,

Затраты на разработку определим как суммарные затраты на непосредственную разработку ПП , затраты на составление документации , затраты на ЭВМ  и затраты на технологию и средства автоматизации разработки ПП :

  (3.17)

Затраты на непосредственную разработку ПП рассчитаем по формуле (3.10), приведенной в теоретической части раздела.

Объем программного продукта :

 (3.18)

Коэффициент а характеризует относительную сложность программы (по отношению к так называемой типовой задаче, реализующей стандартные методы решения, сложность которой принята равной единице). Величина a лежит в пределах от 1,25 до 2. Для разрабатываемого программного продукта коэффициент сложности a=2

Коэффициент коррекции программы b - увеличение объема работ за счет внесения изменений в алгоритм или программу по результатам уточнения постановок. Так как в ходе написания программы кардинальных изменений внесено не было, то примем b=0,02.

В табл. 3.8 приведены исходные данные, которые используются в расчетах:

Таблица 3.8 Исходные данные для расчета затрат на разработку ПП

Наименование характеристики

Количество

1.Число строк ( Nстр)

8000 строк

2.Количество программистов (N)

4 человека

3. Заработная плата программиста

7000 рублей

4.Количество часов наработки на отказ (Tн)

50 часов

5.Длительность эксплуатации ПП (tэкс)

5 лет

6.Длительность разработки ПП (tp)

7 мес.(01/09/04 - 30/03/05)


Исходя из данных таблицы, получаем

Найдем значения коэффициентов изменения трудоемкости:

-       изменение трудоемкости при увеличении объема программы по формуле (3.11):

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

-       надежность функционирования ПП по формуле (3.12):

-       длительность предполагаемой эксплуатации по формуле (3.14):

-       относительное быстродействие ЭВМ : .

-       относительный объем памяти ЭВМ: если его недостаточно, то возможно снижение производительности труда на 10-20% : .

-       современные методы разработки:

-       уровень языка проектирования

провайдер учет тариф программирование

Таблица 3.9 Изменение трудоемкости в зависимости от уровня языка программирования

Характеристика языка Программирования

Коэффициент изменения трудоемкости

Покомандный автокод-Ассемблер

1

Макроассемблер

0,95

Алгоритмические языки высокого уровня

0,8 - 0,9

Алгоритмические языки сверхвысокого уровня

0,7 - 0,8


Выбранный для проектирования программы язык C# относится к языкам высокого уровня, поэтому, по данным таблицы 3.9 примем .

коэффициент квалификации разработчика С51 определяется в зависимости от стажа работы и составляет: для работающих до двух лет - 0,8; от двух до трех лет - 1,0; от трех до пяти лет - 1,1 - 1,2; от пяти до семи - 1,3 - 1,4; свыше семи лет - 1,5 - 1,6. Исходя из этих характеристик, примем


 (команд./чел./день)

Теперь определяем :

 (3.19)

(чел./день)

В разработке программного комплекса участвовали четыре программиста (N = 4), заработная плата з/п которых составляла 7000 рублей. Таким образом, непосредственные затраты на разработку продукта составили:

 (3.20)

(руб.)

Любой программный продукт должен сопровождаться документацией, оформленной в соответствии с ГОСТом. В состав документации входят такие документы, как руководство оператора, руководство программиста. Написание документации трудоемкая работа, поэтому будем считать, что:

(руб.) (3.21)

Затраты на ЭВМ определяются следующим образом :

, (3.22)

где - время эксплуатации ЭВМ, - стоимость машинного времени.

Стоимость машинного времени формируется из следующих составляющих:

) Cтоимость электроэнергии

Исходя из того, что стоимость 1 КВт/час электроэнергии составляет: 0,844 руб, а один компьютер потребляет 250 Вт/час, то за время разработки программного комплекса затраты на электроэнергию составили:


) Cтоимость амортизации

Амортизация вычислительной техники рассчитается, как 25% от балансовой стоимости вычислительной техники (120000 руб.). За год эта величина составит: .

Амортизация программного обеспечения при условии, что срок морального старения ПО составляет 4 года, считается, как 25% от его балансовой стоимости (70000руб). За год эта величина составит:

        

Общая амортизация за год составляет:


3) Стоимость ремонта

Затраты на ремонт в год рассчитываются, как 4% от стоимости комплекса ВТ, и составляют:

Действительный фонд времени работы вычислительного комплекса рассчитываем по следующей формуле (3.23):

 , (3.23)

где - номинальный фонд времени работы вычислительного комплекса,  - годовые затраты времени на профилактические работы (принимаются, как 15% от ).

Фонд работы вычислительного комплекса составляет:


Получаем, что стоимость машинного времени равна 19,52 (руб./час).

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

Таким образом получаем общие затраты на ЭВМ:


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

-   MS SQL Server 2000 Standart Edition International

-       Windows 2003 Server

-       MS Visual Studio+ MSDN Library

Общая стоимость этих продуктов: .

Накладные расходы рассчитываются, как 60% от суммарной основной заработной платы исполнителей и составляют:

Смета затрат на разработку программного продукта приведена в таблице 3.10.

Таблица 3.10 Смета затрат на разработку ПП

Статья расходов

Затраты, руб.

1.Непосредственная разработка ПП

118745

2.Составление документации

17811

3. Содержание и эксплуатация вычислительного комплекса

26894

4.Технология и средства автоматизации разработки ПП

300000

5.Накладные расходы

67800

Итого:

531250


Практическое определение цены программного продукта

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

Будем формировать цену программного продукта  на базе экономически обоснованной (нормативной) себестоимости его производства и прибыли:

, (3.24)

где Ц - себестоимость программы,         Прн - нормативная прибыль, руб.

Нормативная прибыль определяется как:

, (3.25)

где - рентабельность данной продукции - 30% по отношению к полной себестоимости Ц.

Определим нормативную прибыль:

Таким образом, по формуле (3.24) договорная цена разрабатываемого программного комплекса составит:

Проведённая сегментация рынка при помощи матрицы Чекановского выявила сегмент рынка программного продукта, содержащий следующих потенциальных потребителей:

-   Интернет- провайдеры, использующие коммутируемый доступ через телефонную линию;

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

-       Интернет-провайдеры спутникового Интернета.

Несмотря на то, что изначально система разрабатывалась именно для внутреннего использования в ОАО «ОТИК», следует обратить внимание на то, что в результате проведенного нами исследования, мы доказали универсальность данного решения на рынке биллинговых систем для провайдеров Интернет-услуг.

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

Кроме того, был проведен расчет себестоимости. При расчетах были учтены такие факторы, как объем программного продукта, язык программирования, квалификация разработчика, надежность функционирования и многие другие. В результате была получена стоимость разработки программного комплекса, равная Ц=531250 рублей.

Было выявлено, что договорная цена на биллинговую систему «ОТИК-Интернет», сформированная на основе себестоимости производства программного продукта и прибыли, составляет: ЦПП = 691000 руб.

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

Программный продукт, описанный в данной дипломной работе, предназначен для администратора и пользователей биллинговой системы. Администратор управляет и следит за её работой. Он является основным пользователем системы. Поэтому целесообразно рассмотреть вопросы рациональной организации рабочего места администратора биллинговой системы, которое представляет собой автоматизированное рабочее место в офисе, состоящем из одной комнаты размером 20 кв.м., высотой 2.75 м.

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

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

Освещенность

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

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

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

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

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

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

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

)        дежурное - минимальное искусственное освещение для несения дежурств охраны.

Освещение в помещениях должно быть смешанным. Естественное освещение должно осуществляться в виде бокового освещения. Величина коэффициента естественной освещенности (к.е.о.) должна соответствовать нормативным уровням по СНиП 11-4-96 “Естественное и искусственное освещение. Нормы проектирования”. При выполнении работ категории высокой зрительной точности к.е.о. должен быть не ниже 1,5%; при зрительной работе средней точности - не ниже 1,0%.

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

В качестве источников общего освещения должны использоваться люминесцентные лампы типа ЛБ или ДРЛ с индексом цветопередачи не менее 70, в качестве светильников - установки с преимущественно отраженным или рассеянным светораспределением (тип УСП-5-2х40, УСП-35-2х40, ЛВ003-2х40-002). Светильники общего освещения следует располагать над рабочими поверхностями в равномерно-прямоугольном порядке.

Уровни искусственной освещенности на рабочих местах должны соответствовать нормативным величинам СНиП 11-4-96 “Разряд зрительных работ III “г””.

Величина освещенности при искусственном освещении люминесцентными лампами должна быть в горизонтальной плоскости не ниже 300 лк - для системы общего освещения и не ниже 750 лк - для системы комбинированного освещения. С учетом зрительной работы высокой точности (разряд III, подразряд “б”) величина освещенности для системы комбинированного освещения может быть увеличена до 1000 лк.

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

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

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

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

Электромагнитное излучение

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

В настоящее время в России величина электромагнитных излучений от видео дисплейных терминалов соответствует стандартам только в 15-25 % случаев от общего числа обследованных в учреждениях и предприятиях.

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

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

Другим видом вредного излучения является радиационное, возникающее вместе со свечением люминофора в результате бомбардировки поверхности экрана электронами. В соответствии с ГОСТ 27954-88 мощность дозы рентгеновского излучения на расстоянии 5 см от поверхности экрана при 41-часовой рабочей неделе не должна превышать 0,03 мкР/с. Однако уровень этого излучения достаточно низок, быстро убывает с увеличением расстояния от поверхности ЭЛТ и не превышает действующих норм.

Основными мероприятиями по защите от воздействия излучения являются:

-   напряженность электромагнитного поля по магнитной составляющей на расстоянии 50 см от монитора не должна превышать 0,3 ампер/метр;

-       напряженность электромагнитного поля по электрической составляющей на том же расстоянии не должна превышать 25 вольт/метр в диапазоне частот 2 - 5 герц и 2,5 вольт/метр в диапазоне 2 - 400 килогерц;

-       поверхностный электростатический потенциал не должен превышать 500 вольт;

-       самыми эргономичными мониторами считаются плоские плазменные электролюминесцентные и жидкокристаллические экраны;

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

-       схемы размещения рабочих мест с ПК должны учитывать расстояния между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора), которое должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

Электроопасность и пожароопасность

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

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

ГОСТ 12.2007-75 устанавливает требования безопасности, предотвращающие или уменьшающие до допустимого уровня воздействие на человека электрического тока.

Одной из обязательных мер электробезопасности при работе с компьютером является надежное его заземление. Так как потребляемая ЭВМ мощность составляет 150-200Вт, а напряжение сети - 220В(+/-15В), то ток заведомо больше порогового Iпор=0,5мА, следовательно, сопротивление защитного заземления должно равняться Rз=4Ом. Для заземления компьютера, в первую очередь, могут применяться естественные заземлители, любые металлические конструкции, имеющие хорошую связь с землей. Если сопротивление естественных заземлителей больше нормируемого, то необходимо сооружать искусственные заземлители. Ими могут быть стальные трубы, угловая сталь, металлические стержни и др.

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

Для тушения пожара применяются ручные огнетушители и переносные установки. На предприятиях электронной промышленности широко применяются пенные огнетушители ОП-3,ОП-5, а также ОХП-10. Электросети и электроустановки находятся под напряжением, тушить водой их нельзя, так как через струю воды может произойти поражение электрическим током. Именно поэтому для тушения пожара, возникшего из-за неисправности электроприборов, применяются пенные огнетушители.

Защита от шума и вибрации

Шум - это беспорядочное сочетание звуков различной частоты и интенсивности.

Шум на рабочих местах в помещениях, где приходится работать программистам, создается внутренними источниками: техническими средствами, установками кондиционирования воздуха и другим оборудованием.

Допустимые шумовые характеристики рабочих мест регламентируются ГОСТ 12.1.003-83.

Мероприятия, проводимые для снижения уровня шума, определяются ГОСТ 12.1.029-80 "ССБТ. Средства и методы защиты от шума. Классификация".

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

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

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

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

-       применение на рабочих местах звукогасящих экранов;

-       отделение помещений с высоким уровнем шума от других помещений звукоизолирующими перегородками.

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

Нормируются параметры вибрации в соответствии с требованиями ГОСТ 12.1.012-78 "ССБТ. Вибрация. Общие требования безопасности".

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

Психофизиологические факторы

В современных условиях труд программиста изменился в таком направлении, что доля физических усилий сокращается, в то время как нагрузка на психику возрастает.

К психофизиологическим факторам относятся физические и нервно-психические нагрузки..

Таблица 4.1 характеризует уровень нагрузки за рабочую смену:

Таблица 4.1 Уровень нагрузки в рабочую смену

 Уровень нагрузки за рабочую смену

Суммарное время регламентированных перерывов (мин.)

Работа по считыванию информации (кол-во вводимых или считываемых знаков)

Ввод информации (кол-во знаков)

Работа в режиме диалога (суммарные часы)

При 8-часовой смене

При 12-часовой смене

До 20 тыс.

До 15 тыс.

До 2

30

70

До 40 тыс.

До 30 тыс.

До 4

50

90

До 60 тыс.

До 40 тыс.

До 6

70

120


К о м м е н т а р и й:

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

Пренебрежение опасностью этих факторов может повлечь за собой развитие остеохондроза, заболеваний кистей рук и т.д.

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

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

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

Согласно СН 4088-86 "Микроклимат производственных помещений" в залах с работающей вычислительной техникой параметры микроклимата должны быть следующими:

-   в холодные периоды года температура воздуха, скорость его движения и относительная влажность воздуха должны соответственно составлять: 22-24 градуса; 0.1 м/с; 40-60%; температура воздуха может колебаться в пределах от 21 до 25 градусов при сохранении остальных параметров в вышеуказанных пределах;

-       в теплые периоды года температура воздуха, его подвижность и относительная влажность воздуха должны соответственно составлять: 23-25 градуса; 0.1-0.2 м/с; 40-60%; температура воздуха может колебаться в пределах от 22 до 26 градусов при сохранении остальных параметров в вышеуказанных пределах;

Реально такие условия могут поддерживаться только кондиционером. Кондиционирование воздуха создает и автоматически поддерживает внутри помещения независимо от наружных метеоусловий заданную температуру, относительную влажность и скорость движения воздуха. Кондиционеры автономные общего назначения обеспечивают автоматическое регулирование воздуха в помещениях от 18 до 28 градусов Цельсия с точностью до одного градуса. Изготавливают кондиционеры с регулированием относительной влажности от 30 до 100 %.

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

Санитарными нормами установлено, что объем производственных помещений на одного работающего должен составлять не менее 15 кубометров, а площадь помещения - не менее 4.5 кв.м. (СН-245-71)

В производственных помещениях объемом до 20 кубометров на одного работающего при отсутствии загрязнения воздуха производственными вредностями вентиляция должна обеспечивать подачу наружного воздуха в количестве не менее 30 куб.м/час на одного работника, а в помещениях объемом 20 - 40 кубометров на одного работающего - не менее 20 куб.м/час. Во всех указанных случаях при этом должны быть выдержаны нормы по температуре и влажности воздуха.

Помещение, где располагается рабочее место программиста, имеет площадь 47.5 кв.м и объем 156.5 кубометров. Учитывая вышеприведенные требования, найдем допустимое количество одновременно работающих человек:

1)  N < 47.5 / 4.5 = 10.5

2)      N < 156.5 / 15 = 10.4

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

Произведем расчет воздухообмена.

Исходные данные:

1)  Норма температуры в рабочей зоне для помещений, характеризуемых избытком [>23 Вт/м3] теплоты для легкой работы t = 20-22 °C ;

2)      Объем помещения: 156.5 кубометров.

3)  Количество аппаратуры и выделяемая ей мощность:

Монитор Sony Trinitron:  =1 шт;  =150 Вт

ЭВМ IBM PC/AT: =1 шт; =300 Вт

4)  Количество работающих: n = 7.

Для одного человека необходимо L'= воздуха. Для удаления тепла выделенного аппаратурой тоже необходим воздухообмен.

Исходя из количества работающих, необходим следующий воздухообмен

 (4.1)

Для расчета воздухообмена по тепло избыткам используется следующая формула:

, (4.2)

где:

- явно выделяемое тепло в помещении в Дж/ч;- плотность воздуха - 1,2 кг/м3;- теплоемкость воздуха - 1 кДж/кг К;

- температура воздуха, уходящего из помещения;

- температура воздуха, подаваемого в помещение.

 обычно определяется по следующей формуле:

 , (4.3)

где:

- температура в рабочей зоне;- высота от пола до центра вытяжного отверстия;- температурный градиент (0,5 - 1,5 °C/м);- высота от пола до рабочей зоны.

Избыточное тепло, выделяемое аппаратурой:

 (4.4)


Избыточное тепло, выделяемое людьми :

, (4.5)

где:

 - площадь остекления = 7

- теплопоступления через 1  = 140

- коэффициент, учитывающий различные факторы.

В нашем случае при наличии внутренних солнцезащитных устройств, умеренной степени загрязнения окон, двойном остеклении в деревянной раме и окнах, ориентированных на юго-запад, = 1,22.


Явно выделяющееся избыточное тепло :

 (4.6)

 

Температура удаляемого воздуха :

°C.

Пусть температура поступающего воздуха  будет 20°C. Тогда


Таким образом, получаем, что система воздухообмена должна обеспечивать собственную производительность для поддержания нормального микроклимата. Таким требованиям удовлетворяет кондиционер автономный КТА1-2-04Б с компрессорно-конденсаторным агрегатом АК-ВФ-4Х и регулятором относительной влажности В4-51ОУ, который обеспечивает производительность по воздуху . При обеспечении кондиционером температура поступающего воздуха не более 20 °С.

В разделе “Производственная и экологическая безопасность” был проведен анализ вредностей и опасностей на рабочем месте администратора биллинговой системы.

Далее, был выполнен расчет необходимого воздухообмена, для обеспечения безопасности работы при работе оператора ЭВМ - программиста. Получены следующие результаты: на рабочем месте оператора ПК-программиста необходимо использовать кондиционер автономный КТА1-2-04Б с компрессорно-конденсаторным агрегатом АК-ВФ-4Х и регулятором относительной влажности В4-51ОУ, который обеспечивает производительность по воздуху .

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

Заключение

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

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

-   добавление, изменение и удаление записей о тарифах, поиск и сортировка информации о тарифах;

-       предоставление полной информации о тарифах;

-       контроль целостности баз данных;

-       контроль входных и выходные данных

-       администрирование подсистемы автоматизированной тарификации;

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

На данный момент подсистема автоматизированной тарификации внедрена и успешно используется в составе биллинговой системы, функционирующей на сервере ОАО «ОТИК».

Список литературы

1.     Костина Г.Д., Моисеева Н.К. Маркетинговые исследования при создании и использовании программных продуктов: Методические указания для выполнения курсовых и дипломных работ по специальности «Менеджмент». М.: МГИЭТ(ТУ),2006.

2.       Старков Ю.В. Экономическое обоснование дипломных проектов. М.,2007.

.        Родионова Л.Н., Руднева Ю.Р., Пашин С.Т. Методы расчета цены на новый товар. // М.: Маркетинг в России и за рубежом, №2/ 2008.

4.       Частухин В.В, Забродина М.В. Калькуляция и расчет цены программного продукта, 2009. - http://abr.pp.ru/docs/MIREA/diplom/

.        Кеворков В.В., Леонтьев С.В. Политика и практика маркетинга - <http://www.cfin.ru/marketing/kevorkov-04.shtml/>

.        Попов Е.В. // Маркетинг в России и за рубежом №2/2009 - <http://www.cfin.ru/press/marketing/>

.        Моисеева Н.К. Сборник деловых игр по маркетингу, М.:2008.

.        Лекции по курсу «Основы маркетинга».

.        С.В. Белов, Ф.А. Барбинов, А.Ф. Козьяков и др. Охрана окружающей среды: Учеб. Для техн. Спец. вузов / Под ред. С.В. Белова. 2-е изд., испр. и доп.- М.: Высш. шк., 2010.

.        Константинова Л.А., Писеев В.М. Методические указания по выполнению раздела «Охрана окружающей среды» в дипломных проектах/ Под ред. В.И. Каракеяна. МИЭТ. М., 2008.

.        Каракеян В.И., Константинова Л.А., Ларионов Н.М., Писеев В.М. Методические указания по выполнению раздела «Охрана окружающей среды» в дипломных проектах/ Под ред. В.И. Каракеяна. МИЭТ. М., 2008.

.        Каракеян В.И., Писеев В.М. Методы и средства обеспечения оптимальных параметров производственной среды на предприятиях электронной промышленности. МИЭТ. М., 2007.

.        Константинова Л.А., Ларионов Н.М., Писеев В.М. Методические указания по выполнению раздела «Охрана труда» в дипломных проектах для студентов МИЭТ/ Под ред. В.И. Каракеяна. МИЭТ. М., 2008.

.        Ульман Дж. Основы систем баз данных, М.:Финансы и статистика,2009

.        Hаумов А.Н., Вендров А.М. и др. Системы управления базами данных и знаний, М: Финансы и статистика, 2007

.        Диго С.М. Проектирование и использования баз данных. Москва: Финансы и статистика, 2006.

.        Троелсен Э. C# и платформа .NET, Питер-пресс, 2007

.        Шилдт Г. C#. Учебный курс, Питер, 2006

.        Либерти Д. Программирование на C#, Символ-плюс, 2008

.        Гагарина Л.Г., Зубов Н.Н., Стрижков А.В., Федотова Е.Л., Методические указания по подготовке дипломного проекта специалистов направления 654600 "Информатика и вычислительная техника" (специальность 220400 «Программное обеспечение вычислительной техники и автоматизированных систем»)

.        Паутов А. Описание СУБД MySQL, - <http://www.mysql.ru/docs/pautov>

Приложение

//=====================================================

// Форма аутентификации пользователей

//=====================================================

namespace WindowsApplication1

{class LoginForm : System.Windows.Forms.Form

{String username ;String password ;System.Windows.Forms.Label label1;System.Windows.Forms.Label label2;System.Windows.Forms.Button button1;System.Windows.Forms.Button button2;System.Windows.Forms.TextBox tbUsername;System.Windows.Forms.TextBox tbPassword;System.ComponentModel.Container components = null;LoginForm()

{();

}override void Dispose( bool disposing )

{( disposing )

{(components != null)

{.Dispose();

}

}.Dispose( disposing );

}

#region Windows Form Designer generated codevoid InitializeComponent()

{.tbUsername = new System.Windows.Forms.TextBox();.tbPassword = new System.Windows.Forms.TextBox();.label1 = new System.Windows.Forms.Label();.label2 = new System.Windows.Forms.Label();.button1 = new System.Windows.Forms.Button();.button2 = new System.Windows.Forms.Button();.SuspendLayout();

.tbUsername.Location = new System.Drawing.Point(108, 20);.tbUsername.Name = "tbUsername";.tbUsername.Size = new System.Drawing.Size(152, 20);.tbUsername.TabIndex = 0;.tbUsername.Text = "";

.tbPassword.Location = new System.Drawing.Point(108, 44);.tbPassword.Name = "tbPassword";.tbPassword.PasswordChar = '*';.tbPassword.Size = new System.Drawing.Size(152, 20);.tbPassword.TabIndex = 1;.tbPassword.Text = "";

.label1.AutoSize = true;.label1.Location = new System.Drawing.Point(16, 22);.label1.Name = "label1";.label1.Size = new System.Drawing.Size(82, 16);.label1.TabIndex = 2;.label1.Text = "Пользователь:";

.label2.AutoSize = true;.label2.Location = new System.Drawing.Point(50, 46);.label2.Name = "label2";.label2.Size = new System.Drawing.Size(47, 16);.label2.TabIndex = 3;.label2.Text = "Пароль:";

.button1.Location = new System.Drawing.Point(108, 76);.button1.Name = "button1";.button1.TabIndex = 4;.button1.Text = "Войти";.button1.Click += new System.EventHandler(this.button1_Click);

.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;.button2.Location = new System.Drawing.Point(186, 76);.button2.Name = "button2";.button2.TabIndex = 5;.button2.Text = "Отмена";

.AutoScaleBaseSize = new System.Drawing.Size(5, 13);.CancelButton = this.button2;.ClientSize = new System.Drawing.Size(266, 103);.Controls.Add(this.button2);.Controls.Add(this.button1);.Controls.Add(this.label2);.Controls.Add(this.label1);.Controls.Add(this.tbPassword);.Controls.Add(this.tbUsername);.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;.MaximizeBox = false;.MinimizeBox = false;.Name = "LoginForm";.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;.Text = "LoginForm";.ResumeLayout(false);

}

#endregionvoid button1_Click(object sender, System.EventArgs e)

{= this.tbUsername.Text ;= this.tbPassword.Text ;.DialogResult = System.Windows.Forms.DialogResult.OK ;

this.Close() ;

}

}

}

//=====================================================

// Основная форма работы с тарифами

//=====================================================

…MainForm(System.Data.Odbc.OdbcConnection cnt)

{();= cnt ;= panelDescrTarif.Height ;

{() ;                               () ;

}(Exception ex)

{.Show(ex.Message) ;

}.fmPayment = new PaymentForm(cnt) ;.fmHelp = new HelpForm() ;.fmTables = new ViewAllForm(cnt) ;

}override void Dispose( bool disposing )

{( disposing )

{(components != null)

{.Dispose();

}

}.Dispose( disposing );

}

//

//работа с БД

//void InitializeSQLDataBase()

{                 = new System.Data.DataTable("name_tarif") ;= new System.Data.Odbc.OdbcDataAdapter("SELECT NameTarif, AbonPay FROM name_tarif", TarifConnection) ;= new System.Data.Odbc.OdbcCommandBuilder(NameTarifTableAdapter) ;.Fill(NameTarifTable) ;= new System.Data.DataTable("time_payment") ;= new System.Data.DataTable("weekend_payment") ;.DataSource = NameTarifTable ;                            .Windows.Forms.DataGridTableStyle ts = new System.Windows.Forms.DataGridTableStyle();                             .Windows.Forms.DataGridTextBoxColumn cs1 = new System.Windows.Forms.DataGridTextBoxColumn();.Windows.Forms.DataGridTextBoxColumn cs2 = new System.Windows.Forms.DataGridTextBoxColumn();.Width = 350 ;.HeaderText = "Название тарифа" ;.MappingName = "NameTarif" ;.HeaderText = "Абонентская плата" ;.Width = 150 ;.MappingName = "AbonPay" ;.GridColumnStyles.Add(cs1) ;.GridColumnStyles.Add(cs2) ;               .MappingName = "name_tarif" ;.TableStyles.Add(ts) ;                

} void UpdateNameTarif()

{                 .Clear() ;.Fill(NameTarifTable) ;.Refresh() ;() ;

} void CalculateTraficSize()

{i = 0 ;(Object s in cbTraficType.Items)

{(cbTraficType.Text.Equals(s.ToString())) break ;+= 10 ;

} scale = System.Math.Pow(2, i) ;size = System.Convert.ToDouble(tbTraficSize.Tag.ToString()) ;.Text = System.Convert.ToString( (System.UInt64)((size / scale))) ;

} void BindDataToControls()

{

{NameTarif = dgNameTarif[dgNameTarif.CurrentRowIndex, 0].ToString() ;.Data.Odbc.OdbcDataAdapter SelectTarif = new System.Data.Odbc.OdbcDataAdapter(

"SELECT * FROM name_tarif WHERE NameTarif='"+NameTarif+"'", TarifConnection) ;.Data.DataTable TarifTable = new System.Data.DataTable() ;.Fill(TarifTable) ;( TarifTable.Rows.Count < 1 )   return ;IdSinglePayment = TarifTable.Rows[0]["IdSinglePayment"].ToString() ;IdTimePayment = TarifTable.Rows[0]["IdTimePayment"].ToString() ;IdWeekEndPayment = TarifTable.Rows[0]["IdWeekEndPayment"].ToString() ;.Tag = TarifTable.Rows[0]["FreeFavour"].ToString() ;() ;.Data.Odbc.OdbcDataAdapter SelectSinglePayment = new System.Data.Odbc.OdbcDataAdapter(

"SELECT WithEquipment, WithoutEquipment, MinPayment FROM single_payment WHERE IdSinglePayment="+IdSinglePayment, TarifConnection) ;.Data.Odbc.OdbcDataAdapter SelectTimePayment = new System.Data.Odbc.OdbcDataAdapter(

"SELECT TimeBegin, TimeEnd, Price, PriceOut FROM time_payment WHERE IdTimePayment="+IdTimePayment, TarifConnection) ;.Data.Odbc.OdbcDataAdapter SelectWeekEndPayment = new System.Data.Odbc.OdbcDataAdapter(

"SELECT TimeBegin, TimeEnd, Price, PriceOut FROM time_payment WHERE IdTimePayment="+IdWeekEndPayment, TarifConnection) ;.Data.DataTable SinglePaymentTable = new System.Data.DataTable() ;.Fill(SinglePaymentTable) ;( SinglePaymentTable.Rows.Count > 0 )

{.Text = SinglePaymentTable.Rows[0]["WithEquipment"].ToString() ;.Text = SinglePaymentTable.Rows[0]["WithoutEquipment"].ToString() ;.Text = SinglePaymentTable.Rows[0]["MinPayment"].ToString() ;

}    .Clear() ;.Clear() ;.Fill(TimePaymentTable) ;.Fill(WeekEndPaymentTable) ;.DataSource = TimePaymentTable ;.DataSource = WeekEndPaymentTable ;

}(Exception ex)

{.Show(ex.Message) ;

}

}

[STAThread]void Main()

{login = false ;fmLogin = new LoginForm() ;.Data.Odbc.OdbcConnection MySqlConnection = new System.Data.Odbc.OdbcConnection() ;(!login)

{                         

{.ShowDialog() ;( fmLogin.DialogResult != System.Windows.Forms.DialogResult.OK ) return ;connectstr = "DRIVER={MySQL ODBC 3.51 Driver};"+

"SERVER=localhost;"+

"UID="+fmLogin.username+";"+

"PASSWORD="+fmLogin.password+";"+                                                                 

"DATABASE=tarif";.ConnectionString = connectstr ;.Open() ;= true ;

}(Exception ex)

{       

MessageBox.Show("В доступе отказано") ;

}

}.Run(new MainForm(MySqlConnection));.Close() ;

}void btAppend_Click(object sender, System.EventArgs e)

{.OpenedForChanging = false ;.NameTarif = dgNameTarif[dgNameTarif.CurrentRowIndex, 0].ToString() ;.ShowDialog(this) ;() ;

}void btChange_Click(object sender, System.EventArgs e)

{.OpenedForChanging = true ;.NameTarif = dgNameTarif[dgNameTarif.CurrentRowIndex, 0].ToString() ;.ShowDialog(this) ;() ;

}void btExit_Click(object sender, System.EventArgs e)

{.Close() ;

}void btDelete_Click(object sender, System.EventArgs e)

{( MessageBox.Show(this, "Подтверждаете удаление?", "Confirm",.Windows.Forms.MessageBoxButtons.YesNo,.Windows.Forms.MessageBoxIcon.Question) ==.Windows.Forms.DialogResult.Yes )

{

{NameTarif = dgNameTarif[dgNameTarif.CurrentRowIndex, 0].ToString() ;.Data.Odbc.OdbcCommand killCmd = new System.Data.Odbc.OdbcCommand(

"DELETE FROM name_tarif WHERE NameTarif='"+NameTarif+"'", TarifConnection) ;.ExecuteNonQuery() ;() ;                                             

}(Exception ex)

{.Show(ex.Message) ;

}

}

}void btHelp_Click(object sender, System.EventArgs e)

}void btUpdate_Click(object sender, System.EventArgs e)

{() ;

}void btShowTable_Click(object sender, System.EventArgs e)

{.ShowDialog() ;

}void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs ce)

{

{.Close() ;

}(Exception ex)

{.Show(ex.Message) ;

}

}void dgNameTarif_CurrentCellChanged(object sender, EventArgs e)

{                 () ;                       

}void btDescription_Click(object sender, System.EventArgs e)

{(panelDescrTarif.Height == 0)

{.Height = dpHeight ;.Height += dpHeight ;

}

{.Height = 0 ;.Height -= dpHeight ;

}                 .panel1.Focus() ;

}void tbFind_TextChanged(object sender, System.EventArgs e)

{( int f=0 ; f<NameTarifTable.Rows.Count ; f++ )

{( dgNameTarif[f, 0].ToString().StartsWith(tbFind.Text) )

{.CurrentRowIndex = f ;() ;;

}

}               

}void cbTraficType_SelectedIndexChanged(object sender, System.EventArgs e)

{() ;

}

}

}

…void chbTimePayment_CheckedChanged(object sender, System.EventArgs e)

{(chbTimePayment.Checked)

{= false ;.Enabled = true ;

}

{.Enabled = false ;

}

}void btWeekEnd_Click(object sender, System.EventArgs e)

{(panelWeekEnd.Height == 0)

{.Height = dpWEHeight ;.gbTimePayment.Height += dpWEHeight ;.Height += dpWEHeight ;

}

{.Height = 0 ;.gbTimePayment.Height -= dpWEHeight ;.Height -= dpWEHeight ;

}                 .panel5.Focus() ;

}void btBudni_Click(object sender, System.EventArgs e)

{(panelBudni.Height == 0)

{.Height = dpBHeight ;.gbTimePayment.Height += dpBHeight ;.Height += dpBHeight ;

}

{.Height = 0 ;.gbTimePayment.Height -= dpBHeight ;.Height -= dpBHeight ;

}                 .panel5.Focus() ;           

}void PaymentForm_Load(object sender, System.EventArgs e)

{= false ;= false ;.Enabled = OpenedForChanging ;() ;(OpenedForChanging)

{    .Data.Odbc.OdbcDataAdapter SelectTarif = new System.Data.Odbc.OdbcDataAdapter(

"SELECT * FROM name_tarif WHERE NameTarif='"+NameTarif+"'", TarifConnection) ;.Data.DataTable TarifTable = new System.Data.DataTable() ;.Fill(TarifTable) ;( TarifTable.Rows.Count < 1 )

{.Close() ;;

}= (int)TarifTable.Rows[0]["IdSinglePayment"] ;= (int)TarifTable.Rows[0]["IdTimePayment"] ;= (int)TarifTable.Rows[0]["IdWeekEndPayment"] ;.Tag = TarifTable.Rows[0]["FreeFavour"].ToString() ;.Text = TarifTable.Rows[0]["NameTarif"].ToString() ;.Text = TarifTable.Rows[0]["AbonPay"].ToString() ;.Text = tbTraficSize.Tag.ToString() ;.Text = "Байтах" ;() ;.Checked = ( IdTimePayment != 0 ) ;= CalculateTimePayment() ;= CalculateWeekEndPayment() ;

}

}void btReset_Click(object sender, System.EventArgs e)

{() ;

}void btClear_Click(object sender, System.EventArgs e)

{() ;

}void InsertData()

{( chbTimePayment.Checked )

{.Data.Odbc.OdbcCommand maxTimePayment = new System.Data.Odbc.OdbcCommand(

"SELECT MAX(NumberTimePayment) FROM time_payment ", TarifConnection) ;max_tp = (int)maxTimePayment.ExecuteScalar() ;( System.Data.DataRow row in TimePaymentTable.Rows )

{_tp++ ;prIn = row[2].ToString().Replace(",", ".") ;prOut = row[3].ToString().Replace(",", ".") ;.TimeSpan ets = ((System.TimeSpan)row[1]) ;endtStr = System.Convert.ToString(ets.Days*24+ets.Hours)+":"+ets.Minutes+":"+ets.Hours ;req = "INSERT INTO time_payment (TimeBegin, TimeEnd, Price, PriceOut, IdTimePayment, NumberTimePayment, test) "+

"VALUES ('"+row[0].ToString()+"', '"+endtStr+"', "+prIn+", "+prOut+", "++", "+max_tp+", 1)" ;.Data.Odbc.OdbcCommand addTimePayment = new System.Data.Odbc.OdbcCommand(, TarifConnection) ;.ExecuteNonQuery() ;

}( WeekEndPaymentTable.Rows.Count == 0 ) IdWeekEndPayment = 0 ;( IdWeekEndPayment != 0 )

{                                    ( System.Data.DataRow row in WeekEndPaymentTable.Rows )

{_tp++ ;prIn = row[2].ToString().Replace(",", ".") ;prOut = row[3].ToString().Replace(",", ".") ;.TimeSpan ets = ((System.TimeSpan)row[1]) ;endtStr = System.Convert.ToString(ets.Days*24+ets.Hours)+":"+ets.Minutes+":"+ets.Hours ;                                           .Data.Odbc.OdbcCommand addWeekEndPayment = new System.Data.Odbc.OdbcCommand(

"INSERT INTO time_payment (TimeBegin, TimeEnd, Price, PriceOut, IdTimePayment, NumberTimePayment, test) "+

"VALUES ('"+row[0].ToString()+"', '"+endtStr+"', "+prIn+", "+prOut+", "++", "+max_tp+", 1)", TarifConnection) ;.ExecuteNonQuery() ;

}                                   

}

}

{= IdWeekEndPayment = 0 ;

}.Data.Odbc.OdbcCommand insertSinglePayment = new System.Data.Odbc.OdbcCommand(

"INSERT INTO single_payment (IdSinglePayment, WithEquipment, WithoutEquipment, MinPayment) "+

"VALUES ("+IdSinglePayment+", "+tbSPWithEquip.Text+", "+tbSPWithoutEquip.Text+

", "+tbSPMinPayment.Text+")", TarifConnection) ;.ExecuteNonQuery() ;               .Data.Odbc.OdbcCommand insertNameTarif = new System.Data.Odbc.OdbcCommand(

"INSERT INTO name_tarif (NameTarif, IdSinglePayment, IdTimePayment, IdWeekEndPayment, AbonPay, FreeFavour) "+

"VALUES ('"+tbNameTarif.Text+"', "+IdSinglePayment+", "+IdTimePayment+", "+IdWeekEndPayment+

", "+tbAbonPayment.Text+", "+tbTraficSize.Tag.ToString()+")", TarifConnection) ;.ExecuteNonQuery() ;

}void DeleteData()

{.Data.Odbc.OdbcCommand killNameTarif = new System.Data.Odbc.OdbcCommand(

"DELETE FROM name_tarif WHERE NameTarif='"+NameTarif+"'", TarifConnection) ;.ExecuteNonQuery() ;( IdSinglePayment != 0 )

{.Data.Odbc.OdbcCommand killSinglePayment = new System.Data.Odbc.OdbcCommand(

"DELETE FROM single_payment WHERE IdSinglePayment="+IdSinglePayment, TarifConnection) ;.ExecuteNonQuery() ;

}( IdTimePayment != 0 )

{.Data.Odbc.OdbcCommand killTimePayment = new System.Data.Odbc.OdbcCommand(

"DELETE FROM time_payment WHERE IdTimePayment="+IdTimePayment, TarifConnection) ;.ExecuteNonQuery() ;

}( IdWeekEndPayment != 0 )

{.Data.Odbc.OdbcCommand killWeekEndPayment = new System.Data.Odbc.OdbcCommand(

"DELETE FROM time_payment WHERE IdTimePayment="+IdWeekEndPayment, TarifConnection) ;.ExecuteNonQuery() ;

}

}bool ValidateData()

{.Text = tbAbonPayment.Text.Replace(",", ".") ;.Text = tbSPWithEquip.Text.Replace(",",".") ;.Text = tbSPWithoutEquip.Text.Replace(",",".") ;.Text = tbSPMinPayment.Text.Replace(",",".") ;.Text.Trim() ;( tbNameTarif.Text == "" )

{.Show("Неврное имя тарифа!", "Ошибка",.Windows.Forms.MessageBoxButtons.OK,.Windows.Forms.MessageBoxIcon.Error) ;false ;

}( (chbTimePayment.Checked) && (TimePaymentTable.Rows.Count == 0) )

{

MessageBox.Show("Введите временные платежи!", "Ошибка",

System.Windows.Forms.MessageBoxButtons.OK,.Windows.Forms.MessageBoxIcon.Error) ;false ;

}( (chbTimePayment.Checked) && (!tpOk || !wpOk) )

{

MessageBox.Show("Проверте временные платежи!", "Ошибка",

System.Windows.Forms.MessageBoxButtons.OK,.Windows.Forms.MessageBoxIcon.Error) ;false ;

}true ;

}void btApplay_Click(object sender, System.EventArgs e)

{( !ValidateData() ) return ;( MessageBox.Show(this, "Подтверждаете изменения?", "Confirm",.Windows.Forms.MessageBoxButtons.YesNo,.Windows.Forms.MessageBoxIcon.Question) ==.Windows.Forms.DialogResult.Yes )

{success = false ;( TarifConnection.State == System.Data.ConnectionState.Closed )

{.Open() ;

}

{() ;( OpenedForChanging )

{() ;

}

{.Data.Odbc.OdbcCommand maxIdSinglePayment = new System.Data.Odbc.OdbcCommand(

"SELECT MAX(IdSinglePayment) FROM single_payment ", TarifConnection) ;= (int)maxIdSinglePayment.ExecuteScalar() + 1 ;

}.Data.Odbc.OdbcCommand maxIdTimePayment = new System.Data.Odbc.OdbcCommand(

"SELECT MAX(IdTimePayment) FROM time_payment ", TarifConnection) ;max_IdTP = (int)maxIdTimePayment.ExecuteScalar() ;( IdTimePayment == 0 )

{= max_IdTP + 1 ;( IdWeekEndPayment == 0 ) IdWeekEndPayment = max_IdTP + 2 ;

}( IdWeekEndPayment == 0 ) IdWeekEndPayment = max_IdTP + 1 ;() ;= true ;

}(Exception ex)

{.Show(ex.Message) ;

} ( success ) this.Close() ;

}

}

bool CalculateTimePayment()

{    ( !chbTimePayment.Checked       ) return true;( TimePaymentTable.Rows.Count == 0 )

{.Text = "Введите данные!" ;false;

}f = 1 ;                           ( ; f < TimePaymentTable.Rows.Count ; f++)

{                          ( (dgTimePayment[f-1, 1].ToString() == "") || // == System.Convert.DBNul

(dgTimePayment[f, 0].ToString() == "") )

{.Text = "заполните строку " + (f+1) ;false;

}.TimeSpan odt = (System.TimeSpan)dgTimePayment[f-1, 1] ;.TimeSpan ndt = (System.TimeSpan)dgTimePayment[f, 0] ;( (ndt.Hours != odt.Hours+odt.Days*24) || (ndt.Minutes != odt.Minutes) )

{.Text = "ошибка в строке " + (f+1) ;false;

}

}.TimeSpan bdt = (System.TimeSpan)dgTimePayment[0, 0] ;.TimeSpan edt = (System.TimeSpan)dgTimePayment[f-1, 1] ;= edt.Subtract(bdt) ;                                                           .TimeSpan rts = new System.TimeSpan(23, 59, 59) ;= rts.Subtract(edt) ;.Text = rts.ToString() ; // rts.Hour + ":" + rts.Minute ;true ;

}bool CalculateWeekEndPayment()

{        ( !chbTimePayment.Checked   ) return true ;         ( WeekEndPaymentTable.Rows.Count == 0 ) return true ;f = 1 ;                   ( ; f < WeekEndPaymentTable.Rows.Count ; f++)

{                          ( (dgWeekEndPayment[f-1, 1].ToString() == "") || // == System.Convert.DBNul

(dgWeekEndPayment[f, 0].ToString() == "") )

{.Text = "заполните строку " + (f+1) ;false ;

}.TimeSpan odt = (System.TimeSpan)dgWeekEndPayment[f-1, 1] ;.TimeSpan ndt = (System.TimeSpan)dgWeekEndPayment[f, 0] ;( (ndt.Hours != odt.Hours+odt.Days*24) || (ndt.Minutes != odt.Minutes) )

{.Text = "ошибка в строке " + (f+1) ;false ;

}

}.TimeSpan bdt = (System.TimeSpan)dgWeekEndPayment[0, 0] ;.TimeSpan edt = (System.TimeSpan)dgWeekEndPayment[f-1, 1] ;= edt.Subtract(bdt) ;                                                        .TimeSpan rts = new System.TimeSpan(23, 59, 59) ;= rts.Subtract(edt) ;.Text = rts.ToString() ; // rts.Hour + ":" + rts.Minute ;true ;

}bool CheckTime(int bh, int bm, int eh, int em)

{errMsg = "" ;( (bh < 0) || (bh > 23) ) errMsg = "Некорректное начальное время! Введите часы в диапазоне от 0 до 23" ;

else if( (bm < 0) || (bm > 59) ) errMsg = "Некорректное начальное время! Введите минуты в диапазоне от 0 до 59" ;

else if( (eh < 0) || (eh > 24) ) errMsg = "Некорректное конечное время! Введите часы в диапазоне от 0 до 24" ;

else if( (em < 0) || (em > 59) ) errMsg = "Некорректное конечное время! Введите минуты в диапазоне от 0 до 59" ;

else if( eh < bh ) errMsg = "Начальное время должно быть меньше конечного!" ;

else if( (eh == bh) && (bm >= em) ) errMsg = "Начальное время должно быть меньше конечного!" ;

else if( (eh == 24) && (em > 0) ) errMsg = "Время должно быть в диапазоне от 00:00 до 24:00" ;                

if( errMsg.Length != 0 )

{.Show(errMsg, "Ошибка",.Windows.Forms.MessageBoxButtons.OK,.Windows.Forms.MessageBoxIcon.Error) ;false ;

}true ;

}void dgTimePayment_CurrentCellChanged(object sender, EventArgs e)

{();i = dgTimePayment.CurrentRowIndex;                     (dgTimePayment[i, 0] != System.Convert.DBNull)

{.TimeSpan bdt = (System.TimeSpan)dgTimePayment[i, 0] ;.Text = bdt.Hours.ToString() ;.Text = bdt.Minutes.ToString() ;

}(dgTimePayment[i, 1] != System.Convert.DBNull)

{.TimeSpan edt = (System.TimeSpan)dgTimePayment[i, 1] ;.Text = System.Convert.ToString(edt.Hours + edt.Days*24) ;.Text = edt.Minutes.ToString() ;

}.Text = dgTimePayment[i, 2].ToString() ;.Text = dgTimePayment[i, 3].ToString() ;

}void btAddTimePayment_Click(object sender, System.EventArgs e)

{.Data.DataRow row = TimePaymentTable.NewRow() ;.Rows.Add(row) ;

}void btSaveTimePayment_Click(object sender, System.EventArgs e)

{bh, bm, eh, em ;intr, outr ;.Text.Replace('.', ',') ;.Text.Replace('.', ',') ;

{= System.Convert.ToInt32(tbBegHoursTP.Text) ;= System.Convert.ToInt32(tbBegMinutesTP.Text) ;= System.Convert.ToInt32(tbEndHoursTP.Text) ;= System.Convert.ToInt32(tbEndMinutesTP.Text) ;= System.Convert.ToDouble(tbInTraficTP.Text) ;= System.Convert.ToDouble(tbOutTraficTP.Text) ;

}(Exception ex)

{.Show(ex.Message) ;;

}( !CheckTime(bh, bm, eh, em) ) return ;i = dgTimePayment.CurrentRowIndex ;.TimeSpan bt = new TimeSpan(bh, bm, 1) ;.TimeSpan et = new TimeSpan(eh, em, 0) ;[i, 0] = bt ;[i, 1] = et ;[i, 2] = intr ;[i, 3] = outr ;.CurrentRowIndex = 0 ;.Invalidate() ;= true ;.CurrentRowIndex = i ;                         

}void btDelTimePayment_Click(object sender, System.EventArgs e)

{currencyManager =

(CurrencyManager)BindingContext[dgTimePayment.DataSource, dgTimePayment.DataMember];.RemoveAt(currencyManager.Position); () ;

}void dgWeekEndPayment_CurrentCellChanged(object sender, EventArgs e)

{();i = dgWeekEndPayment.CurrentRowIndex;                                                          (dgWeekEndPayment[i, 0] != System.Convert.DBNull)

{.TimeSpan bdt = (System.TimeSpan)dgWeekEndPayment[i, 0] ;.Text = bdt.Hours.ToString() ;.Text = bdt.Minutes.ToString() ;

}(dgWeekEndPayment[i, 1] != System.Convert.DBNull)

{.TimeSpan edt = (System.TimeSpan)dgWeekEndPayment[i, 1] ;.Text = System.Convert.ToString(edt.Hours + edt.Days*24) ;.Text = edt.Minutes.ToString() ;

}.Text = dgWeekEndPayment[i, 2].ToString() ;.Text = dgWeekEndPayment[i, 3].ToString() ;

}void btAddWeekEndPayment_Click(object sender, System.EventArgs e)

{    .Data.DataRow row = WeekEndPaymentTable.NewRow() ;.Rows.Add(row) ;

}void btSaveWeekEndPayment_Click(object sender, System.EventArgs e)

{bh, bm, eh, em ;intr, outr ;.Text.Replace('.', ',') ;.Text.Replace('.', ',') ;

{= System.Convert.ToInt32(tbBegHoursWP.Text) ;= System.Convert.ToInt32(tbBegMinutesWP.Text) ;= System.Convert.ToInt32(tbEndHoursWP.Text) ;= System.Convert.ToInt32(tbEndMinutesWP.Text) ;= System.Convert.ToDouble(tbInTraficWP.Text) ;= System.Convert.ToDouble(tbOutTraficWP.Text) ;

}(Exception ex)

{.Show(ex.Message) ;;

}( !CheckTime(bh, bm, eh, em) ) return ;i = dgWeekEndPayment.CurrentRowIndex ;.TimeSpan bt = new TimeSpan(bh, bm, 1) ;.TimeSpan et = new TimeSpan(eh, em, 0) ;[i, 0] = bt ;[i, 1] = et ;[i, 2] = intr ;[i, 3] = outr ;.CurrentRowIndex = 0 ;.Invalidate() ;= true ;.CurrentRowIndex = i ;            

}void btDelWeekEndPayment_Click(object sender, System.EventArgs e)

{currencyManager =

(CurrencyManager)BindingContext[dgWeekEndPayment.DataSource, dgWeekEndPayment.DataMember];.RemoveAt(currencyManager.Position); () ;

}void dgTimePayment_Paint(object sender, PaintEventArgs e)

{( NeedToCalculate )

{= CalculateTimePayment() ;= false ;

}

}void dgWeekEndPayment_Paint(object sender, PaintEventArgs e)

{( NeedToCalculate )

{= CalculateWeekEndPayment() ;= false ;

}

}

}

}

//=====================================================

// Просмотр всех таблиц, входящих в базу

//=====================================================ViewAllForm(System.Data.Odbc.OdbcConnection cnt)

{

//

// Required for Windows Form Designer support

//();= cnt ;

{= new System.Data.DataSet() ;() ;

} (Exception ex)

{.Show(ex.Message) ;

} ;

}void InitializeMySql()

{

/* Подключение к базе данныхconnectstr = "DRIVER={MySQL ODBC 3.51 Driver};"+

"SERVER=localhost;"+

//    "UID=;"+

//    "PASSWORD=;"+                                                                   

"DATABASE=tarif";= new System.Data.Odbc.OdbcConnection(connectstr) ;.Open() ;

*/.Clear() ;= new System.Data.Odbc.OdbcDataAdapter("SELECT * FROM name_tarif", TarifConnection) ;= new System.Data.Odbc.OdbcDataAdapter("SELECT * FROM single_payment", TarifConnection) ;= new System.Data.Odbc.OdbcDataAdapter("SELECT * FROM time_payment", TarifConnection) ;

/*= new System.Data.Odbc.OdbcCommandBuilder(NameTarifTableAdapter) ;= new System.Data.Odbc.OdbcCommandBuilder(SinglePaymentTableAdapter) ;= new System.Data.Odbc.OdbcCommandBuilder(TimePaymentTableAdapter) ;

*/.Fill(TarifDataSet, "name_tarif") ;.Fill(TarifDataSet, "single_payment") ;.Fill(TarifDataSet, "time_payment") ;.SetDataBinding(TarifDataSet, "name_tarif") ;.SetDataBinding(TarifDataSet, "single_payment") ;.SetDataBinding(TarifDataSet, "time_payment") ;                   

}

Похожие работы на - Подсистема автоматизированной тарификации биллинговой системы 'Отик-интернет'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!