1   2   3   4
Ім'я файлу: Основний розділ.doc
Розширення: doc
Розмір: 1193кб.
Дата: 04.03.2020

ВСТУП

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

Роботу по створенню програми автоматизованого керування я умовно поділю на два етапи, перший етап, це вибір СУБД(система управління базами даних) та створення в ній самої БД(бази даних), яка буде використовуватися. І другий етап, це написання програми, яка буде надавати доступ до цих даних, буде давати можливість зручно вводити, редагувати, видаляти та здійснювати пошук потрібних даних.

1. ОСНОВНИЙ РОЗДІЛ

    1. Вибір середовища розробки програмного забезпечення ПЗ

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

Окреслимо основні функції, які буде виконувати програма:

  • реєстрація вхідних замовлень абонентів, яким необхідно надати послуги пасажирсько-вантажних перевезень.

  • здійснення пошуку вхідних замовлень.

  • виїзди автомашин таксі та прикріплених до них шоферів.

  • середні відстані, які пройшла та чи інша автомашина таксі.

  • звітність пов’язана з викликами та виїздами авто.

Структура програми буде мати наступний вигляд, - ядром програми буде база даних (БД), де будуть зберігатися всі необхідні дані у вигляді таблиць. Щоб забезпечити нормальний стиль роботи з даними, їхнє введення та редагування, буде створено клієнтський модуль, що забезпечить доступ до даних в базі даних (БД).

В якості бази даних (БД) виберемо СУБД(система управління базами даних) SQLite, яка відповідає всім потребам і забезпечить потрібну функціональність. Головним плюсом СУБД SQLite є те, що вона досить компактна, проста, є цілком безкоштовною і за багатьма параметрами не поступається перед комерційними СУБД. Тим більше її функціональність задовольнить всі наші потреби.

Для розробки клієнтської частини потрібно вибрати середовище розробки, хоч і вибір тут досить широкий – Delphi, Java, Visual C#, але ми зупинимося на крос-платформовому рішенні Qt C++.



Загалом, структура програми буде мати вигляд, до якого входять три модулі:

  • База даних (БД)

  • СУБД SQLite

  • Клієнтська частина, розроблена в середовищі Qt, написана на мові С++

    1. Постановка задачі та аналіз предметної області

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

Система управління базами даних (СУБД) SQLite.



Рисунок 1. Логотип SQLite

SQLite – це реляційна база даних, запити до якої можна здійснювати за допомогою мови запитів SQL. База даних не підтримує всі особливості SQL і уступає у функціональності іншим розвиненим СУБД, але цілком підходить для зберігання і отримування інформації.

SQLite — компактна система управління базами даних, тобто бібліотека, де реалізовано багато зі стандарту SQL-92.

SQLite не використовує парадигму клієнт-сервер, тобто двигун SQLite не є окремим процесом, з яким взаємодіє програма, а надає бібліотеку, з якою програма компілюється і СУБД стає складовою частиною програми. Таким чином, як протокол обміну використовуються виклики функцій (API) бібліотеки SQLite. Такий підхід зменшує накладні витрати, час відгуку і спрощує програму. SQLite зберігає всю базу даних (включаючи визначення, таблиці, індекси і дані) в єдиному стандартному файлі на тому комп'ютері, на якому виконується програма. Простота реалізації досягається за рахунок того, що перед початком виконання транзакції весь файл, що зберігає базу даних, блокується; ACID-функції досягаються зокрема за рахунок створення файлу-журналу.

Кілька процесів можуть одночасно без жодних проблем читати дані з однієї бази. Запис в базу можна здійснити тільки в тому випадку, коли жодних інших запитів в цей час не обслуговується; інакше спроба запису закінчується невдачею, і в програму повертається код помилки. Іншим варіантом розвитку подій є автоматичне повторення спроб запису протягом заданого інтервалу часу.

Завдяки архітектурі, СУБД можливо використовувати як на вбудовуваних (embedded) системах, так і на виділених машинах з гігабайтними масивами даних.

Особливості SQLite:

  • транзакції атомні, послідовні, ізольовані, і міцні (ACID) навіть після збоїв системи і збоїв живлення

  • Встановлення без конфігурації — не потрібно ні установки, ні адміністрування

  • Реалізує більшу частину стандарту SQL92

  • Повна база даних зберігається в одному крос-платформовому файлі на диску

  • Підтримка терабайтних розмірів баз даних і гігабайтного розміру рядків і BLOB-ів

  • Малий розмір коду: менше ніж 350KB.

  • Швидший за популярні СУБД клієнт-серверних баз даних для найпоширеніших операцій

  • Простий, легкий у використанні програмний API

  • Написана на мові ANSI-C.

  • Добре прокоментований програмний код

  • Доступний як єдиний файл програмного коду на ANSI-C, який можна легко вставити в інший проект

  • Автономність: немає зовнішніх залежностей

  • Крос-платформовість: підтримується Unix (Linux і Mac OS X), OS/2, Windows (Win32 і WinCE). Легко переноситься на інші системи

  • Відкриті програмні коди

Програма для доступу до бази даних буде створюватися з використанням мови С++ в середовищі програмування Qt C++, розглянемо більш детально відомості про цей інструментарій створення програмного забезпечення.

Середовище програмування Qt C++.

Qt — крос-платформовий інструментарій розробки ПЗ мовою програмування C++. Дозволяє запускати написане за його допомогою ПЗ на більшості сучасних операційних систем шляхом простої компіляції тексту програми для кожної ОС без зміни початкового коду.



Рисунок 2. Логотоип Qt C++

Включає всі основні класи, які можуть бути потрібні при розробці прикладного програмного забезпечення, починаючи з елементів графічного інтерфейсу і закінчуючи класами для роботи з мережею, базами даних, OpenGL, SVG і XML.

Розробник

Digia

Написано на мові

C++

Операційна система

крос-платформова

Тип

Widget toolkit

Ліцензія

GPL 2/3, LGPL, Q Public License, Proprietary

Сайти

qt.digia.com, qt-project.org


Бібліотека дозволяє керувати потоками, працювати з мережею, і забезпечує крос-платформовий доступ до файлів. Qt також може бути використаним в багатьох інших мовах програмування: Ada (QtAda), C# (Qyoto/Kimono), Java (Qt Jambi), Qt Jambi, Pascal, Perl, PHP (PHP-Qt), Ruby (QtRuby), та Python (PyQt,PySide).

Історія розвитку

Хаавард Норд та Айрік Чемб-Інг почали розробку "Qt" в 1991 році, 3 роки пізніше було створено компанію Quasar Technologies, яка після була перейменована в Troll Tech, а потім в Trolltech.

Назва Qt з'явилася бо літера "Q" добре виглядала в Хаавардівському Emacs, а "t" позначало toolkit.

Nokia придбала Trolltech ASA 17 червня 2008, і змінила його назву спершу на Qt Software, потім на Qt Development Frameworks. Відтоді Nokia сфокусувалася на розвитку Qt, щоб зробити основною платформою для кожного свого мобільного пристрою, включаючи портування платформи Symbian S60. Версія Nokia Qt SDK 1.0 вийшла 23 червня 2010.[6]

Але після укладання стратегічної угоди з Microsoft з відмовою Nokia від будь-яких платформ для смартфонів, крім Windows Phone, Nokia втратила інтерес до технологій Qt, бо єдиною підтримуваною мовою програмування для Windows Phone є C#.

У березні 2011 фінська компанія Digia, постачальник ERP-систем, а також послуг і рішень в області мобільних систем і користувацьких інтерфейсів, оголосила про укладення угоди з Nokia про викуп у тої прав на комерційне ліцензування та надання послуг з підтримки розробки з використанням бібліотеки Qt. Відповідно до запропонованого угодою, близько 3500 компаній, що спеціалізуються на створенні програм для десктопів і мобільних пристроїв, перейдуть під заступництво Digia. У вересні 2012 Nokia повністю відмовилася від Qt і Digia купує у Nokia весь бізнес і програмні технології, пов'язані з Qt.

Компанія Nokia до продажу пов'язаного з Qt бізнесу передала управління над проектом Qt та пов'язані з прийняттям рішень повноваження окремому некомерційному проекту Qt Project, в якому представники спільноти можуть безпосередньо брати участь у розвитку Qt відповідно до принципів меритократії. В руки Qt Project передано розвиток як експериментальної гілки Qt 5, так і стабільної гілки Qt 4. Крім того, між компанією Nokia і організацією KDE Free Qt Foundation укладено угоду, яка передбачає в разі посилення ліцензійної політики, банкрутства Nokia або припинення розвитку Qt передачу проекту KDE права переліцензувати код Qt під ліцензією BSD або будь-якою іншою відкритою ліцензією, і продовжити розробку своїми силами. Ця угода продовжує діяти і при зміні власника Qt.

Платформи

Існують різні версії бібліотеки для наступних платформ:

  • Qt/X11 — для X Window System (Unix / Linux)

  • Qt/Mac — для Mac OS X

  • Qt/Windows — для Microsoft Windows

  • Qt/Embedded — для вбудовуваних платформ (PDA, смартфонів…)

  • Qt/WinCE — для Windows CE

  • Qt/Maemo - для Maemo

  • Qt/Symbian- для Symbian

Версія Qt/Embedded розповсюджувалася до недавнього часу. Тепер ця платформа перейменована в Qtopia Core і розповсюджується як окремий продукт. Qtopia Core забезпечує базову функціональність для всієї лінійки платформ, призначених для розробки програм для вбудовуваних і мобільних пристроїв (КПК, смартфонів тощо).

Qt 4 поширюєтсья в чотирьох редакціях:

  • Qt Console — для розробки застосунків без графічного інтерфейсу.

  • Qt Desktop Light — полегшена версія для розробки програм з графічним інтерфейсом, але без підтримки баз даних, мережі і XML.

  • Qt Desktop — повна версія, включає всі компоненти.

  • Qt Open Source Edition — повна версія для розробки відкритого програмного забезпечення, що поширюється під ліцензією GNU GPL. Не підтримує комерційні компілятори.

До версії 4.0.0, під вільною ліцензією розповсюджувалися лише Qt/Mac, Qt/X11, Qt/Embedded, але починаючи з 4.0.0 (випущеної в кінці 2005 червня) Trolltech «звільнили» і Qt/Windows. Слід зазначити, що існували сторонні вільні версії Qt/Windows і до 4.0.0, зроблені на основі Qt/X11.

Qt 5

Qt 5, який вийшов у грудні 2012, примітний модульною структурою і зміщенням акценту в бік використання для написання застосунків засобів декларативного опису інтерфейсу з визначенням логіки взаємодії з користувачем на мові JavaScript, в той час як застосування C++ позиціонується для реалізації критичних до часу виконання або надмірно складних частин програми, а також для створення нових модульних бекендів для Qt Quick. Незважаючи на велике число істотних поліпшень і змін, Qt 5 зберігає базову зворотну сумісність з минулими випусками, підтримує в повній мірі засоби для створення Qt-програм мовою C++ і містить майже всі компоненти Qt 4 (припинена підтримка давно застарілих елементів), більшість модулів з колишнього Qt Mobility і деякі експериментальні елементи з Qt Labs.

Компоненти

Qt 4

Бібліотека розділена на декілька модулів, для четвертої версії бібліотеки це:

  • QtCore — класи ядра бібліотеки використовувані іншими модулями;

  • QtGui — компоненти графічного інтерфейсу;

  • QtNetwork — набір класів для мережевого програмування. Підтримка різних високорівневих протоколів може мінятися від версії до версії. У версії 4.2.x присутні класи для роботи з протоколами FTP і HTTP. Для роботи з протоколами TCP/IP і UDP призначені такі класи як: QTcpServer, QTcpSocket для TPC/IP і QUdpSocket для UDP;

  • QtOpenGL — набір класів для роботи з OpenGL;

  • QtSql — набір класів для роботи з базами даних мовою структурованих запитів SQL. Основні класи цього модуля у версії 4.2.х: QSqlDatabase — клас для надання з'єднання з базою, для роботи з якоюсь конкретною базою даних, вимагає об'єкт успадкований від класу QSqlDriver — абстрактного класу, який реалізується для конкретної бази даних і може вимагати для компіляції SDK бази даних. Наприклад, для збірки драйвера під базу даних FireBird/InterBase вимагає .h файли і бібліотеки статичної лінковки, що входять в комплект постачання даної БД;

  • QtScript — класи для роботи з Qt Scripts;

  • QtSvg — класи для відображення і роботи зі Scalable Vector Graphics (SVG) даними;

  • QtXml — модуль для роботи з XML, підтримується SAX і DOM моделі роботи;

  • QtDesigner — класи створення розширень QtDesigner'а для своїх власних віджетів;

  • QtUiTools — класи для обробки в застосунку форм Qt Designer;

  • QtAssistant — довідкова система;

  • Qt3Support — модуль з класами, необхідними для сумісності з бібліотекою Qt версії 3.х.х;

  • QtTest — модуль для роботи з UNIT тестами;

  • QtWebKit — модуль WebKit інтегрований в Qt і доступний через її класи;

  • QtXmlPatterns — модуль для підтримки XQuery 1.0 і XPath 2.0;

  • Phonon — модуль для підтримки відтворення і запису відео і аудіо, як локально, так і з пристроїв і з мережі;

  • QtCLucene — модуль для підтримки повнотекстового пошуку, застосовується в новій версії Assistant в Qt 4.4;

  • ActiveQt — модуль для роботи з ActiveX і COM технологіями для Qt-розробників під Windows. Модуль доступний тільки в комерційній редакції Qt.

Також реалізована технологія WOC — widgets on canvas, за допомогою якої буде реалізована Plasma в KDE 4.1, Буде можливим використовувати віджети бібліотеки Qt прямо в аплетах. Забезпечує розташування віджетів на QGraphicsView з можливістю масштабування і різних графічних ефектів.

Бібліотека використовує власний формат проекту, що іменується .pro файлом, в якому зібрана інформація про те, які файли будуть скомпільовані, за якими шляхами шукати заголовні файли і багато іншої інформації. Згодом за допомогою утиліти qmake з них виходять makefile для make-утиліти компілятора. Також є можливість роботи за допомогою інтеграторів з такими середовищами програмування як Microsoft Visual Studio 2003/2005 і зовсім недавно стала доступна інтеграція в Eclipse, для версії бібліотеки 4.х.х.

Розробники на Java можуть використовувати Qt за допомогою фреймворка Qt Jambi від того ж виробника, проте його розробка була припинена у 2009.

Qt 5

Компоненти, що входять до складу пакета Qt 5.0:

Базові бібліотеки

  • Qt Core

  • Qt Network

  • Qt Gui

  • Qt Sql

  • Qt Testlib

  • Qt Widgets

  • Qt QML

  • Qt Quick

  • Qt Multimedia

  • Qt WebKit

  • Qt WebKit Widgets

  1   2   3   4

скачати

© Усі права захищені
написати до нас