Модуль взаимодействия с автоматизированной системой расчётов компании ОАО "Мобильные ТелеСистемы"

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

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

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

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

Размещено на http://www.allbest.ru/

Содержание

Перечень используемых сокращений

Введение

1. Характеристика предприятия

1.1 Модель информационных потоков

2. Проектирование информационной системы

2.1 Анализ существующих решений для администрирования СУБД

2.2 Анализ базы данных

2.3 Анализ языков программирования

3. Разработка модуля взаимодействия

3.1 Структура программы

3.2 Модуль соединения с базой данных

3.3 Модуль авторизации

3.4 Модуль формирования запросов к базе данных

4. Экономический расчет

4.1 Технико-экономическое обоснование разработки и внедрения темы дипломной работы

4.2 Расчет инвестиций

4.3 Расчет эксплуатационных затрат

4.4 Определение экономической эффективности внедрения системы

5. Безопасность жизнедеятельности

5.1 Характеристика условий труда работника

5.2 Требования к производственным помещениям

5.3 Состояние микроклимата в помещении с ПК

5.4 Освещение

5.4.1 Расчет естественного освещения

5.4.2 Расчет искусственного освещения

5.5 Электробезопасность

5.6 Классификация помещений по опасности поражения электрическим током

5.7 Расчет защитного заземления

5.8 Расчет обще-обменной вентиляции

5.9 Противопожарная защита

5.9.1 Профилактика пожарной безопасности

Заключение

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

Приложение

информационный программирование язык авторизация

Перечень используемых сокращений

ИС - информационная система

АИС - автоматизированная информационная система

ЛВС - локально-вычислительная сеть

ОС - операционная система

ПК - персональный компьютер

ПО - программное обеспечение

PK (Primary Key) - первичный ключ

FK (Foreign Key) - внешний ключ

БД - база данных

Введение

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

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

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

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

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

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

а) ознакомиться с хозяйственной, правовой и информационной деятельностью предприятия:

1) изучить организационно-функциональную структуру организации;

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

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

1) анализ информационных потоков;

2) выявление недостатков существующей ИС;

3) предложение способов оптимизации обработки информации.

в) построить информационные модели систем:

1) функциональная модель;

2) модель данных.

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

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

1. Характеристика предприятия

Компания "Мобильные ТелеСистемы" была образована Московской Городской Телефонной Сетью (МГТС), Deutсhe Telecom (DeTeMobil), Siemens и еще несколькими акционерами в виде закрытого акционерного общества в октябре 1993 года.

Четыре российских компании владели 53% акций, две немецкие компании - 47%. В начале 1995 года АФК "Система" приобрела пакет у российских держателей акций, а DeTeMobil выкупил акции компании Siemens.

1 марта 2000 года в результате слияния ЗАО "Мобильные ТелеСистемы" и ЗАО "РТК" было образовано Открытое Акционерное Общество "Мобильные ТелеСистемы". 28 апреля 2000 года Федеральная Комиссия по Ценным Бумагам РФ зарегистрировала начальную эмиссию акций ОАО "Мобильные ТелеСистемы".

На сегодняшний день ОАО "Мобильные ТелеСистемы" является крупнейшим оператором сотовой связи в Восточной и Центральной Европе. Компания имеет лицензии на предоставление услуг мобильной связи стандарта GSM 900/1800 в 57 регионах России, где проживают 106,4 миллионов человек или 74,3% населения страны, и активно работает в 47-и регионах.

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

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

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

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

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

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

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

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

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

Линейная структура управления является логически более стройной и формально определенной, но вместе с тем и менее гибкой.

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

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

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

- директор;

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

- функциональная группа поддержки продаж и подключений;

- функциональная группа учета и контроля;

- функциональная группа маркетинга.

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

Основная услуга компании - предоставление доступа в сеть и обеспечение высококачественной связи. Но поскольку на рынке сотовой связи огромное значение имеет весь спектр услуг, который может получить абонент, компания "Мобильные ТелеСистемы" стремится их предоставить своим клиентам в максимальном объеме, используя новейшие технологии.

На сегодняшний день компания "Мобильные ТелеСистемы" предоставляет услуги, касающиеся не только сотовой связи. Среди услуг компании: широкополосный доступ в интернет, доступ в интернет по технологиям 3G и 4G, а так же цифровое и кабельное телевидение.

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

В число такого оборудования входят: ПК, серверные станции, МФУ, принтеры, факсы и многое другое.

На всех персональных компьютерах установлена операционная система Windows 7 согласно лицензии. В качестве основного программного обеспечения используется пакет Microsoft Office (Word, Excel,Outlook).

Для выхода в сеть Интернет сотрудниками используются программы Internet Explorer и Google Chrome.

Среди узкоспециализированного ПО используются программы MySQLBrowser, WinSCP, PuTTy и другие. В качестве серверного ПО используется ОС Linux (Ubuntu), а так же система для работы с данными БД Oracle RDBMS - объектно-реляционная система управления базами данных компании Oracle. Однако данные программные продукты используются узким кругом сотрудников, работающих непосредственно с сетью и БД.

1.1 Модель информационных потоков

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 1.1 - Общая схема функционирования филиала

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

Рисунок 1.2 - Взаимодействие функциональных подразделений

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

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

Для анализа информационных потоков филиала использовалась методология DFD. Функциональные подразделения и потоки данных между ними отображены на рисунках 1.3 и 1.4.

Рисунок 1.3 - Диаграмма потоков данных (главная)

Рисунок 1.4 - Диаграмма потоков данных (декомпозиция)

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

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

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

2. Проектирование информационной системы

2.1 Анализ существующих решений для администрирования СУБД

Перед непосредственной работой с существующей базой данных, было решено провести анализ существующих приложения для администрирования СУБД.

phpMyAdmin - веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. phpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс. Однако необходимость постоянно использовать в работе SQL команды вызывает неудобства, в связи с чем от данного приложения пришлось отказаться. На рисунках 2.1-2.2 представлена программа phpMyAdmin.

Рисунок 2.1 - Интерфейс phpMyAdmin

Рисунок 2.2 - Главное окно phpMyAdmin

Плюсы:

— возможность управлять СУБД MySQL без непосредственного ввода SQL команд;

— как панель управления PHPMyAdmin предоставляет возможность администрирования выделенных БД;

— возможность интегрировать PHPMyAdmin в собственные разработки благодаря лицензии GNU General Public License.

К минусам можно отнести:

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

- неудобный редактор SQL запросов;

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

- является WEB-приложением;

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

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

На рисунке 2.3 представлено приложение MySQL Administrator.

Рисунок 2.3 - Главное окно MySQL Administrator

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

Плюсы:

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

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

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

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

- система восстановления данных;

- многоплатформенность, работает во всех популярных ОС.

Минусы:

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

- отсутствие редактора SQL запросов;

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

- отсутствие русской локализации.

На рисунке 2.4 представлено приложение MySQL Query Browser.

Рисунок 2.4 - Главное окно MySQL Query Browser

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

Все запросы, выполняемые в MySQL Query Browser, так же могут быть выполнены в консольном приложении mysql, MySQL Query Browser позволяет получать и редактировать данные интуитивно понятным графическим способом. MySQL Query Browser разработан для работы с MySQL версии 4.0 и выше.

Плюсы:

- функциональность, простота и удобство;

- приятный интерфейс;

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

- подсветка SQL кода.

Минусы:

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

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

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

- отсутствие русской локализации.

На рисунке 2.5 представлено приложение KMySQLAdmin.

Рисунок 2.5 - Главное окно KMySQLAdmin

Приложение для управления mysql-серверами, написанное с использованием QT и KDE.

Плюсы:

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

- экспорт результатов запроса в другой формат (ASCII, Latex, HTML);

- управление правами пользователей;

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

- изменение таблиц и ключей;

- непрерывный мониторинг состояния сервера и потоков.

Минусы:

- отсутствие русской локализации;

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

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

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

На рисунке 2.6 представлено приложение MySQL Navigator.

Рисунок 2.6 - Главное окно MySQL Navigator

MySQL Navigator представляет собой клиентскую программу графического пользовательского интерфейса (GUI) для сервера баз данных MySQL. Назначение MySQL Navigator состоит в обеспечении удобного клиентского интерфейса для серверов баз данных MySQL при поддержке многих операционных систем и языков. В настоящее время можно производить импорт/экспорт базы данных, вводить запросы, получать результирующие наборы, редактировать и запускать скрипты, добавлять, изменять и удалять пользователей и получать информацию о клиенте и сервере. Использует QT.

Плюсы:

- приложение использует QT;

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

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

- вывод информации о клиенте и сервере.

Минусы:

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

- отсутствие русской локализации;

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

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

Следующим приложением для анализа было FlashMyAdmin.

Проект по администрированию MySQL, базирующийся на Flash. Позволяет управлять таблицами и базами данных, просматривать и редактировать содержимое таблиц, редактировать структуры таблиц, импортировать/экспортировать (SQL, XML, CSV) данные, поддерживает интернационализацию, есть помощь. На рисунках 2.7-2.8 представлена программа FlashMyAdmin.

Рисунок 2.7 - Главное окно FlashMyAdmin

Рисунок 2.8 - Интерфейс FlashMyAdmin

Плюсы:

- интуитивно понятный интерфейс;

- просмотр видео, аудио и графики внутри интерфейса;

- импорт/экспорт (SQL, XML, CSV).

Минусы:

- использование Flash;

- проблемы с кодировкой;

- отсутствие русской локализации;

- отсутствие возможности выполнения SQL команд;

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

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

Так же было проанализировано приложение MySQL Workbench.

MySQL Workbench - инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL. Является преемником DBDesigner 4 от FabForce.

MySQL Workbench распространяется под свободной лицензией - Community Edition и с ежегодной оплачиваемой подпиской - Standard Edition. Последняя включает в себя дополнительные возможности, которые способны существенно улучшить производительность, как разработчиков, так и администраторов баз данных. На рисунках 2.9-2.10 представлена программа MySQL Workbench.

Рисунок 2.9 - Главное окно MySQL Workbench

Рисунок 2.10 - Интерфейс MySQL Workbench

Плюсы:

- возможность представить модель БД в графическом виде, а также редактирование данных в таблице;

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

- функция Reverse Engineering позволяет восстанавливать структуру таблиц и связей из той, которая была реализована ранее и хранится на сервере БД;

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

Минусы:

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

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

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

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

Не у всех рассмотренных программ корректное отображение русских символов (UTF-8) в таблицах базы данных. Каждая из программ имеет свои плюсы и минусы. В качестве сравнения были взяты приложения, использующие разные технологии: php, flash, qt. Стоит отметить, что ни одна из испробованных программ не отвечает необходимым критериям. В связи с этим было решено разработать собственное приложение для работы с MySQL.

2.2 Анализ базы данных

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

В ходе анализа базы данных было выявлено:

- база данных имеет сложную структуру;

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

- в базе данных присутствуют ключи двух видов: внешние FK (Foreign Key) и внутренние PK (Primary key).

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

Стоит отметить, что разрабатываемая ИС рассчитана на работу с огромным количеством данных. В связи с этим общая схема существующей БД имеет колоссальный объем. На рисунке 2.11 приведен пример схемы части БД, в частности таблицы accounts в связке с таблицей acc_phones.

Рисунок 2.11 - Схема таблиц accounts и acc_phone

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

2.3 Анализ языков программирования

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

Рассмотрим рейтинг популярности и характеристики языков программирования. В таблице 2.1 представлена двадцатка популярных языков программирования за 2014-ый год согласно проводимому рейтингу TIOBE. Измерения проводятся 10 раз в месяц.

Метод подсчета популярности языков программирования базируется и на количестве запросов в наиболее популярных поисковых системах и сайтах, по данным сайта alexa.com. Ключевое слово, которое используется для анализа статистики, - "<language> programming". TIOBE использует статистику запросов пользователей на следующих сайтах: Google, Blogger, Wikipedia, YouTube, Baidu, Yahoo!, Bing, Amazon.

Таблица 2.1 - Рейтинг языков программирования

На рисунке 2.12 приведен график рейтинга языков программирования за период времени с 2002 по 2014 год.

Рисунок 2.12 - Рейтинг языков программирования

Из представленных языков программирования выделим наиболее подходящие: C, C++, C#, Java, Python, Ruby. Языки С и С++ являются родственными, поэтому будем рассматривать их вместе.

С - язык программирования, разработанный в 1969--1973 годах сотрудниками Bell Labs Кеном Томпсоном и Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но, впоследствии, был перенесён на множество других платформ.

Благодаря близости по скорости выполнения программ, написанных на Си, к языку ассемблера, этот язык получил широкое применение при создании системного программного обеспечения и прикладного ПО для решения широкого круга задач. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования как C++, C#, Java и D .

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

Язык C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщенные типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. Переняв многое от своих предшественников (языков C++, Java, Delphi, Модула и Smalltalk), С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).

Второе место в списке занимает Java/JavaScript (88%). Java - объектно-ориентированный язык высокого уровня, потомок С++, но с более легким синтаксисом, удобен для интернет-программирования. Три фактора: простота освоения, удобство работы, лучшая (чем у C++) приспособленность к задачам проектирования - способствуют тому, что число программирующих на Java разработчиков огромно, оно исчисляется миллионами. На базе других языков сложно разрабатывать крупномасштабные комплексные системы для корпоративного сектора. В Java можно найти решения, обрабатывающие несколько миллионов параллельных потоков в сложных средах, например в системах фондовых бирж или онлайнового бронирования авиабилетов. Технология Java - это основа для веб- и сетевых сервисов, она позволяет надежно и безопасно наращивать информационную структуру предприятия. Все виды систем могут взаимодействовать друг с другом - начиная со смарт-карт и заканчивая суперкомпьютерами - независимо от аппаратной платформы и системного программного обеспечения. Главным конкурентом Java является технология Microsoft .NET. Предполагается, что полной интеграции с .NET не будет, обе платформы в ближайшие 10 лет будут существовать параллельно.

Ruby - динамический, интерпретируемый высокоуровневый язык программирования для быстрого и удобного объектно-ориентированного программирования. Язык обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и многими другими возможностями. Ruby близок по особенностям синтаксиса к языкам Perl и Eiffel, по объектно-ориентированному подходу - к Smalltalk. Также некоторые черты языка взяты из Python, Lisp, Dylan.

Python - высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты - динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Программный код организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты). На рисунках 2.13-2.16 представлены результаты сравнения языков программирования с сайта The Computer Language Benchmarks Game. Проведенные авторами сайта тесты оценивают скорость, потребление памяти и размер программного кода одних и тех же алгоритмов на разных языках программирования.

Рисунок 2.13 - Сравнение языков C++ и Java

Рисунок 2.14 - Сравнение языков Python и C++

Рисунок 2.15 - Сравнение языков С++ и С#

Рисунок 2.16 - Сравнение языков Python и Ruby

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

Таблица 2.2 - Результаты сравнения языков программирования по затраченному времени

Занимаемое место

Язык программирования

1

С++

2

Java

3

C#

4

Python

5

Ruby

Таблица 2.3 - Результаты сравнения языков программирования по затраченному объему памяти

Занимаемое место

Язык программирования

1

C++

2

Python

3

C#

4

Ruby

5

Java

Таблица 2.4 - Результаты сравнения языков программирования по затраченному объему программного кода

Занимаемое место

Язык программирования

1

Python

2

Ruby

3

C#

4

Java

5

C++

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

Таблица 2.5 - Рейтинг языков программирования

Занимаемое место

Язык программирования

Баллы

1

C++

7

2

Java

11

3

C#

9

4

Ruby

11

5

Python

8

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

Рассмотрим дополнительно статистику использования языков программирования, собранную сайтами github.com и stackoverflow.com.

GitHub - самый крупный веб-сервис для хостинга IT-проектов и их совместной разработки. Основан на системе контроля версий Git и разработан на Ruby on Rails и Erlang компанией GitHub, Inc (ранее Logical Awesome).

Stack Overflow - популярная система вопросов и ответов о программировании, разработанная Джоэлем Спольски и Джеффом Этвудом (англ.) в 2008 году. Является частью Stack Exchange Network. Как и в других системах подобного рода, Stack Overflow предоставляет возможность оценивать вопросы и ответы, что поднимает или понижает репутацию зарегистрированных пользователей.

На рисунке 2.17 по горизонтальной оси - количество проектов, реализованных на сайте Github, по вертикали - количество вопросов на сайте Stackoverflow по соответствующим языкам программирования.

Рисунок 2.17 - Статистика использования языков программирования на сайте Github и Stackoverflow

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

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

3. Разработка модуля взаимодействия

3.1 Структура программы

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

Программа включает в себя 12 методов выгрузки информации из базы данных:

- заключенные договора;

- подключенные абоненты;

- платежи;

- платежи (почта);

- баланс;

- дополнительные услуги;

- списания;

- списания по тарифам;

- основной свод;

- реестр платежей;

- реестр материалов;

- выгрузка телефонов.

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

- функциональная группа эксплуатации ИТ;

- функциональная группа поддержки продаж и подключений;

- функциональная группа учета и контроля;

- функциональная группа маркетинга.

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

Рисунок 3.1 - Диаграмма вариантов использования

Рисунок 3.2 - Диаграмма деятельности

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

Диаграмма компонентов представлена на рисунке 3.3:

Рисунок 3.3 - Диаграмма компонентов

У каждого класса имеется свой собственный заголовочный файл и файл с расширением *.СРР, так что каждый класс преобразуется в свои собственные компоненты на диаграмме. Например, класс login преобразуется в два компонента: login.h и login.cрp. Вместе эти компоненты представляют тело и заголовок класса login. Компонент mts_prog.exe представляет поток обработки информации (thread of processing). В данном случае поток обработки - это исполняемая программа.

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

Рисунок 3.4 - Диаграмма последовательности взаимодействия

3.2 Модуль соединения с базой данных

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

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

- QSqlDriver;

- QsqlDriverCreator <T*>;

- QSqlDriverCreatorBase;

- QSqlDriverPlugin;

- QSqlResult.

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

SqlDriverCreator - шаблонный класс, предоставляющий фабрику SQL драйвера для специфичного типа драйвера. Шаблонный параметр должен быть подклассом QSqlDriver.

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

QSqlDatabase несет ответственность за загрузку и управление плагинов драйверов баз данных. Когда база данных добавлена с помощью функции QSqlDatabase::addDatabase()), необходимый плагин драйвера загружается, используя QSqlDriverPlugin. QSqlDriverPlugin предоставляет собой абстрактный базовый класс для пользовательских QSqlDriver плагинов.

QSqlResult предоставляет абстрактный интерфейс для доступа к данным специфичных БД. В данной работе использовался QSqlQuery вместо QSqlResult, поскольку QSqlQuery предоставляет обертку для БД-специфичных реализации QSqlResult.

Соединение с БД устанавливается функцией connOpen():

connOpen()

{

qt_mts=QSqlDatabase::addDatabase("QMYSQL"); драйвер

qt_mts.setHostName("localhost"); расположение БД

qt_mts.setDatabaseName("qt_mts"); имя БД

qt_mts.setUserName("qt_mts"); имя пользователя БД

qt_mts.setPassword("qt_mts"); пароль

if(!qt_mts.open()){

qDebug()<<("Fail to connect"); сообщение об ошибке

return false;

}

else{

qDebug()<<("database connected"); сообщение при подключении

return true;}}

В проекте файла mts_programm.pro записываются все основные подключения и название проекта. Для того чтобы, проект мог работать с базой банных и обрабатывать запросы на sql в первой строке указывается код:

QT += core gui sql

Так же в этом файле записываются ссылки на ресурсы и файлы проекта:

- Заголовочные файлы *.h

- Исходные файлы *.cpp

- Формы *.ui

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

Листинг 1 - Пример заголовочного файла Login.h

#ifndef LOGIN_H

#define LOGIN_H

#include <QMainWindow> //окно Qmainwindow

#include <QtSql> //модуль для работы с SQL

#include <QDebug> //модуль для отладки

#include <QFileInfo>

#include "mainwork.h" //подключение стороннего заголовочного файла

namespace Ui {

class login;

}

class login : public QMainWindow //описание класса и наследование

{

Q_OBJECT

public:

QSqlDatabase qt_mts; //указатель на подключение или создание

void connClose() //функция стандартного подключения к БД

{

qt_mts.close();

qt_mts.removeDatabase(QSqlDatabase::defaultConnection);

}

bool connOpen()//функция подключения к БД

{

qt_mts=QSqlDatabase::addDatabase("QMYSQL");

qt_mts.setHostName("localhost");

qt_mts.setDatabaseName("qt_mts");

qt_mts.setUserName("qt_mts");

qt_mts.setPassword("qt_mts");

if(!qt_mts.open()){

qDebug()<<("Fail to connect");

return false;

}

else{

qDebug()<<("database connected");

return true;

}

}

public:

explicit login(QWidget *parent = 0); //описание конструктора

~login();

private slots:

void on_pushButton_ok_clicked(); //функция нажатия на кнопку

private:

Ui::login *ui; //указатель на класс

};

#endif // LOGIN_H

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

Листинг 2 - Реализация класса Login.cpp

#include "login.h" //подключение заголовочного файла

#include "ui_login.h" //подключение формы

login::login(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::login)

{

ui->setupUi(this);

QPixmap img("C:/Users/BENJi/Desktop/mts_logo.png");

ui->label_image->setPixmap(img);

if(!connOpen())

ui->label_status->setText("Ошибка подключения");

else

ui->label_status->setText("Соединение с БД установлено");

}

login::~login()

{

delete ui;

}

void login::on_pushButton_ok_clicked()

{

QString login,pass;

login=ui->lineEdit_login->text();

pass=ui->lineEdit_pass->text();

if(!connOpen()){

qDebug()<<"Failed to open the db";

return;

}

connOpen();

QSqlQuery qry;

qry.prepare("select * from managers where login='"+login+"' and pass='"+pass+"'");

if(qry.exec())

{

int count=0;

while(qry.next())

{

count++;

}

if(count==1){

ui->label_status->setText("Вход");

connClose();

this->hide();

Mainwork mainwork;

mainwork.setModal(true);

mainwork.exec();

}

if(count>1)

ui->label_status->setText("Дублирование логина/пароля");

if(count<1)

ui->label_status->setText("Неправильный ввод логина/пароля");

}

}

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

3.3 Модуль авторизации

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

QString login,pass; //объявление переменных

login=ui->lineEdit_login->text(); //присваивание значения

pass=ui->lineEdit_pass->text();//присваивание значения

if(!connOpen()){

qDebug()<<"Failed to open the db"; //сообщение при ошибке

return;

}

connOpen(); //вызов функции подключения к БД

QSqlQuery qry;

qry.prepare("select * from managers where login='"+login+"' and pass='"+pass+"'");// sql запрос

if(qry.exec())//условие

{

int count=0;

while(qry.next())

{

count++;

}

if(count==1){

ui->label_status->setText("Вход");

connClose();

this->hide();

Mainwork mainwork;

mainwork.setModal(true);

mainwork.exec();

}

if(count>1)

ui->label_status->setText("Дублирование логина/пароля");

if(count<1)

ui->label_status->setText("Неправильный ввод логина/пароля");}

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

На рисунке 3.5 представлено окно авторизации приложения.

Рисунок 3.5 - Окно авторизации

3.4 Модуль формирования запросов к базе данных

Во всех 12 методах выгрузки информации из базы данных используется следующая конструкция SQL запроса:

QSqlQueryModel * model = new QSqlQueryModel();

conn.connOpen();

QSqlQuery* qry = new QSqlQuery(conn.qt_mts);

qry->prepare("select '"+pa_uslugi_p+"' '"+pa_ocn_p+"' '"+pa_sum_p+"' ac.name,acc_ondate from vgroups v, agreements a, accounts ac, agreements_addons_vals aav where a.uid = ac.uid and aav.agrm_id = a.agrm_id and v.agrm_id = a.agrm_id and date(v.acc_ondate) >='"+pa_ot+"' and date(v.acc_ondate) <='"+pa_po+"' '"+pa_polz_type+"' '"+pa_usl_type+"' and date(v.acc_offdate) ='0000-00-00' and ((a.date >= '"+pa_ot+"' - interval 1 month) or (a.date >= '"+pa_po+"' - interval 1 month)) and v.tar_id !=14 and v.tar_id !=145 order by creation_date;");

qry->exec();

model->setQuery(*qry);

ui->tableView->setModel(model);

conn.connClose();

В данной конструкции объявляется модель Qsql, далее запускается функция соединения с базой данных. При успешном соединении создается модель QsqlQuary, которой далее присваивается значение, а именно sql запрос.

На рисунках 3.6-3.8 представлен интерфейс программы.

Рисунок 3.6 - Интерфейс программы

Стоит отметить, что значения, выделенные знаком "+" являются переменными, объявленными ранее, и вводимые пользователем через интерфейс. Далее выполняется построенный ранее SQL запрос, результат отправляется в модель таблицы tableView. И конечным этапом является закрытие соединения с БД.

Рисунок 3.7 - Работа программы. Подключенные абоненты

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

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

4. Экономический расчет

4.1 Технико-экономическое обоснование разработки и внедрения темы дипломной работы

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

– уменьшение затрат на бумагу;

– снижение времени на обработку информации;

– увеличение уровня обслуживания абонентов;

– уменьшение затрат на зарплату вследствие уменьшения времени работ;

– возможность контроля статистики в реальном времени;

– возможность своевременно реагировать на просьбы и пожелания абонентов;

– уменьшить нагрузку на отдел эксплуатации информационных технологий.

4.2 Расчет инвестиций

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

Капитальные вложения в организации направляются на:

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

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

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

K=•Ц+ •Ц+•T•k+K, (4.1)

где mi - количество оборудования, шт.(кг);

Ц м i - цена оборудования, руб.;

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

Ц к i - цена хостинга, стоимость программных продуктов, руб./шт. ;

C ч j - часовая тарифная ставка рабочего j-го разряда, руб./час;

Тр j - время программиста, необходимое для написания программы, час;


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

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