98210

Розробка мобільного додатку, що використовує хмарні сховища даних

Дипломная

Информатика, кибернетика и программирование

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

Украинкский

2015-10-30

6.31 MB

2 чел.

67

Консульт.

перелік умовних позначень, скорочень, термінів

SDK - SDK (від англ. Software development kit) - комплект засобів розробки.

API - Прикладни́й програ́мний інтерфе́йс (англ. Application Programming Interface, API) — набір визначень взаємодії різнотипного програмного забезпечення. API — це зазвичай (але не обов'язково) метод абстракції між низькорівневим та високорівневим програмним забезпеченням.

IDE - Інтегроване Середовище Розробки (ІСР) — від Integrated Development Environment (також можливі інтерпретації Integrated Design Environment — інтегроване середовище проектування.

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

JSON -    це текстовий формат обміну даними між комп'ютерами. JSON базується на тексті, і може бути з легкістю прочитаним людиною. Формат дозволяє описувати об'єкти та інші структури даних. Цей формат головним чином використовується для передачі структурованої інформації через мережу (завдяки процесу, що називають серіалізацією).


ЗМІСТ

ВСТУП 7

РОЗДІЛ 1 9

Характеристика та аналіз СТВОРЕННЯ МОБІЛЬНОГО ДОТАТКУ, ЩО ВИКОРИСТОВУЄ ХМАРНІ СХОВИЩА ДАНИХ 9

1.1. Сучасний стан розробки мобільних додатків в Україні 9

1.2. Опис предметної області і напрямків дослідження 10

1.2.1. Опис використаних хмарних сховищ даних 12

1.2.2. Опис роботи хмарних сховищ та додатку 13

1.3. Вибір і обґрунтування структури проектування системи 14

1.3.1. Статистичний аналіз 14

1.3.2. Аналіз функціональної частини 17

1.4. Огляд існуючих рішень 18

1.5. Постановка задачі 19

Висновки 21

РОЗДІЛ 2 22

Проектування інформаційної системи 22

2.1. Аналіз і автоматизація інформаційних потоків мобільного додатку 22

2.1.1. Використання OAuth 2.0 для доступу до API 25

2.1.2. Аналіз активності додатку 27

2.2. Розробка структури системи 28

2.3. Вибір засобів розробки 30

2.3.1. Аналіз ОС “OSX” 30

2.3.2. IDE “xCode” 32

2.3.3. Реєстрація мобільного додатку в хмарних сховищах 33

2.4. Використання API хмарних сховищ 36

2.4.1. Drive REST API 36

2.4.2. Core API DropBox 38

Висновки 40

Розділ 3 41

Програмна реалізація 41

3.1. Структура і функціональне призначення модулів системи 41

3.2. Розробка програмних модулів 43

3.3. Вимоги до технічних засобів 50

Розділ 4 51

ВПРОВАДЖЕННЯ ТА ЕКСПЛУАТАЦІЯ 51

4.1. Інструкція користувача системи 51

4.2. Тестування  роботи запитів для розробника 61

ВИСНОВКИ 63

Список використаних джерел 64

ДОДАТОК А 65


ВСТУП

Мало хто в сучасному світі представляють життя без мобільних пристроїв.

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

Сьогодні мобільні пристрої надає користувачу великий спектр можливостей: запис та відображення мультимедійних файлів, перегляд та редагування документів, розважальні відео ігри та багато іншого.

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

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

Метою даної роботи є розробка мобільного додатку, що використовує хмарні сховища даних.

З мети роботи виникають такі завдання:

  1.  вивчити та виконати аналіз предметної області;
  2.  виконати аналіз існуючого програмного;
  3.  виконати аналіз операційної системи;
  4.  виконати аналіз середовища розробки;
  5.  виконати доступ до можливостей хмарних сховищ;
  6.  виконати проектування додатку;
  7.  тестування додатку.

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

Предмет дослідження – створення мобільного додатку для смартфону компанії Apple.


РОЗДІЛ 1

Характеристика та аналіз СТВОРЕННЯ МОБІЛЬНОГО ДОТАТКУ, ЩО ВИКОРИСТОВУЄ ХМАРНІ СХОВИЩА ДАНИХ

  1.  Сучасний стан розробки мобільних додатків в Україні

Світовий ринок мобільних додатків є одним із найбільш трендових і показує найшвидше зростання. Рік тому компанія Facebook придбала додаток Instagram майже за $1 млрд, а потім і месенджер WhatsApp, тільки вже за $19 млрд. З'явилася інформація, що інший популярний месенджер − Viber − купить компанія Rakuten за $900 млн. Значення транспорту для економіки важко переоцінити, тому що він поєднує всі галузі економіки, забезпечує умови для ефективного розвитку виробництва, сприяє розвитку міжгалузевих та міжрегіональних зв’язків.

В Україні ситуація не настільки оптимістична, адже мобільних додатків, орієнтованих на український ринок, практично немає. Більшість компаній з розробки мобільних додатків працюють із замовниками з США, Канади, Ізраїлю.

Цю ситуацію зумовили кілька причин:

  1.  Український ІТ-ринок, в основному, є аутсорсовим, це означає, що більшість розробників пишуть софт для зарубіжних компаній і не орієнтовані на створення продуктів. Продуктові компанії є, але їх не так багато, і вони, як правило, теж орієнтовані на західний ринок;


  1.  Український бізнес переважно консервативний, нові технології та інновації впроваджуються дуже повільно. У той час як на Заході вже формується ринок додатків для автомобілів, розумних пристроїв (наприклад, Google Glass), Smart TV, наш бізнес все ще сперечається, навіщо потрібні мобільні додатки, якщо є мобільний веб-сайт, і, в кращому випадку, замовляють адаптивний дизайн для своїх сайтів. Ті бізнеси, які таки випустили мобільні додатки, зробили це, швидше, з принципу «щоб було», і, як правило, ці додатки є «доповненням» до основного сервісу. Також важливу роль відіграє досить низька конкуренція на ринку, через що компанії не надто замислюються про програми лояльності, утримуванні наявних клієнтів, де застосування мобільних технологій є виправданим і ефективним;
  2.   Ціна розробки мобільного додатку вже давно стала співмірною з ціною розробки веб-сайту. З урахуванням того, що основних мобільних платформ існує декілька (iOS / Android / Windows Phone / Windows 8), а оновлення систем виходять досить часто, то ціна розробки та підтримки висока, тому більшість компаній не можуть дозволити собі розробку додатків за західними цінами.

  1.  Опис предметної області і напрямків дослідження

Мобільний додаток - це клас відносно невеликих програм, що доповнюють і розширюють можливості основного застосування(англ. application) або ж міняють його зовнішній вигляд. Ці програми використовують дозволений і окремо специфікований програмний інтерфейс основного застосування і мають смисл тільки в межах основного застосування. Виробники програмного забезпечення називають ці продукти по різному: англ. add-on (доповнення), plug-in (вставка), англ. extension (розширення), іноді англ. module (модуль). Хоча деякі розробники навіть будують внутрішні ієрархії з цих понять, в цілому індустрія не виробила стандартних визначень для них, і їхнє використання визначається в рамках кожної компанії чи спільноти розробників. Як правило розробники зацікавлені в створенні системи додатків до своїх провідних продуктів.

Додатки не тільки забезпечують гнучку систему налаштування і розширення під потреби користувача — така архітектура підключених модулів допомагає залучити до розробки численних незалежних розробників, які пропонують свої розробки на платній чи безоплатній основі. Створений мною додаток застосування на мобільні телефони компанії “Apple”, які використовують власну операційну систему iOS.

iOS (відома як iPhone OS до червня 2010 року) — це власницька мобільна операційна система від Apple. Розроблена спочатку для iPhone, вона стала операційною системою також для iPod Touch, iPad і Apple TV. Apple не дозволяє роботу ОС на мобільних телефонах інших фірм. iOS є похідною від OS X, отже, є за своєю природою Unix - подібною операційною системою.Користувацький інтерфейс iOS заснований на концепції прямої маніпуляції з використанням жестів Multi-Touch. Елементи інтерфейсу управління складаються з повзунків, перемикачів і кнопок. Він призначений для безпосереднього контакту користувача з екраном пристрою. Внутрішній акселерометр використовуються деякими програмами для реагування на струшування пристрою, яке є також загальною командою скасування, або обертати пристрій у трьох вимірах, що є загальною командою перемикання між книжковим та альбомним режимами. Усі додатки в операційній системі iOS виконуються в середовищі розробки xCode на мові програмування Objective-c.

Хмарні технології — це технологія, яка надає користувачам Інтернету доступ до комп’ютерних ресурсів сервера і використання програмного забезпечення як онлайн - сервісу, тобто якщо, є підключення до Інтернету то можна виконувати складні обчислення, опрацьовувати дані використовуючи потужності віддаленого сервера.

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

  1.  Опис використаних хмарних сховищ даних

Google Диск - це файловий хостинг, створений і підтримуваний компанією Google. Його функції включають зберігання файлів в Інтернеті, загальний доступ до них і спільне редагування. До складу Google Диску входять Google Документи, Таблиці та Презентації - набір офісних додатків для спільної роботи над текстовими документами, електронними таблицями, презентаціями, кресленнями, веб-формами та іншими файлами. Загальнодоступні документи на Диску індексуються пошуковими системами.

До складу Google Диску входять Google Документи, Таблиці та Презентації - набір офісних додатків для спільної роботи над текстовими документами, електронними таблицями, презентаціями, кресленнями, веб-формами та іншими файлами. Загальнодоступні документи на Диску індексуються пошуковими системами. Google Диск був представлений 24 квітня 2012 року, а до жовтня 2014 налічував 240 мільйонів щомісяця активних користувачів.

Dropbox - хмарне сховище даних, яке належить компанії Dropbox Inc., що дозволяє користувачам зберігати свої дані на серверах в хмарі і ділитися ними з іншими користувачами в Інтернеті. Робота побудована на синхронізації даних.

Dropbox дозволяє користувачеві розміщувати файли на віддалених серверах за допомогою клієнта або з використанням веб-інтерфейсу через браузер. При установці клієнтського програмного забезпечення Dropbox на комп'ютері створюється синхронізуються папка. Хоча головний акцент технології робиться на синхронізацію і обмін інформацією, Dropbox веде історію завантажень, щоб після видалення файлів з сервера була можливість відновити дані. Також ведеться історія зміни файлів, яка доступна на період останніх 30 днів, крім цього доступна функція безстрокової історії зміни файлів «Pack-Rat».

  1.  Опис роботи хмарних сховищ та додатку

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

Рис. 1.1 Контекстна діаграма

  1.  Вибір і обґрунтування структури проектування системи

  1.  Статистичний аналіз

Вже зараз сформувалася величезна армія мобільних розробників, більш того, в силу бурхливого зростання саме цього сегменту ринку їх кількість також постійно зростає і розширюється (в першу чергу за рахунок йдуть з більш традиційної десктоп-розробки). При цьому всю достатньо різнорідну масу мобільних «девелоперів» можна, з метою зручності класифікації, розбити на дві умовні групи. Перші - це ті, хто вибрав тематику свого застосування за принципом особистих переваг, - «мені ця тема подобається». Це відбувається з кількох причин: або в силу того, що одного дня хтось уперся в якусь проблему і придумав, як її вдало автоматизувати; або якщо «девелопер» добре розбирається саме в обраній прикладної області; або, що теж часто зустрічається: «так склалося з історичних причин». Друга велика група розробників, навпаки, спочатку повністю абстрагується від своїх особистих переваг і будь-яких випадковостей, відразу підлаштовуючись під певні тренди, зростання конкретних сегментів, під безсторонні цифри попиту і статистику кількості продажів, відразу оптимізуючи свої стратегії під поточну торгову кон'юнктуру і переваги ринку.

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

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

Згідно найсвіжішими даними від Chitika, поточні співвідношення сил на ринку Північної Америки (як найбільш динамічно зростаючого і платоспроможного ринку) складаються приблизно так (дані на лютий 2013 року):

Рис. 1.2  Статистичний малюнок №1

Навіть незважаючи на успіх деяких окремих моделей смартфонів, наприклад, таких як LG / Google Nexus 4, добре видно, що основна битва розгорнулася між провідними вендорами - Samsung (Android) і Apple (iOS).

Розробникам, які часто орієнтуються на технічні характеристики топових на ринку моделей смартфонів, можна підказати, що двома найбільш популярними в світі смартфонами на даний момент є Samsung Galaxy S3 і Apple iPhone 5. Їх поточне співвідношення сил можна виразити через інтернет трафік, генерований ними в наступному співвідношенні:

Рис. 1.3  Статистичний малюнок №2

  1.  Аналіз функціональної частини

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

Таблиця 1.1 Таблиця послуг хмарних сховищ за місяць користування

Сервіс

Валюта

20 ГБ

100 ГБ

500 ГБ

1 ТБ

Безкоштовно

iCloud

Долар США

1

4

10

20

5 ГБ

Google Drive

Долар США

2

10

15 ГБ

DropBox

Долар США

10

2 ГБ

  1.  Огляд існуючих рішень

App Store - магазин додатків, розділ онлайн-супермаркету iTunes Store, що містить різні додатки для мобільних телефонів iPhone, плеєрів iPod Touch і планшетів iPad, а також для персональних комп'ютерів Mac і дозволяє їх купити, або скачати безкоштовно.

В App Store існує можливість завантажити окремо додатки Google Drive та DropBox але це два різні додатки і користувач повинен буде включити одночасно їх для роботи, що дасть додаткове навантаження на операційну пам’ять iPhone.

Також Google та DropBox надає можливість розробникам готові SDK своїх сервісів, що успрощує роботу.

Не дивлячись на це створений додаток розроблявся в ручну, що надає можливість оперуючись на створене власне рішення для Google Drive та DropBox розробнику підключити додаткові хмарні сховища знаючи основні API-запити сервісу.

  1.  Постановка задачі

Метою дипломного проекту є створення мобільного додатку, який здатний під ‘єднатись до хмарних сервісів та використовувати їх сховища даних.

Завданнями розробки є:

  1.  мобільний додаток повинен надавати можливість авторизації у хмарному сховищі DropBox. Google Drive;
  2.  мобільний додаток повинен надавати можливість обрати хмарне сховище;
  3.  мобільний додаток повинен надавати можливість показувати список файлів обраного сховищ;
  4.  пункт списку файлів повинен містити коротку інформацію о файлі(назва, тип, розмір);
  5.  тип файлу повинен показувати графічно;
  6.  повинен надавати можливість переходу по ієрархії файлів;
  7.  надавати можливість редагування файлів поточної тека:
    1.  можливість видалення файлу;
      1.  можливість завантаження файлу в сховище;
      2.  можливість локального збереження файл.
  8.  надати можливість обновити список файлів;
  9.  надати можливість вийти з акаунту;
  10.  додаток має відповідати стандарту ООП.


Висновки

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

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


РОЗДІЛ 2

Проектування інформаційної системи

  1.  Аналіз і автоматизація інформаційних потоків мобільного додатку

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

Основними інформаційними об'єктами автоматизованої системи продажу квитків є:

  1.  клієнт(користувач додатку);
  2.  сервер(хмарне сховище);
  3.  смартфон(iPhone);
  4.  мобільний додаток;
  5.  сервіс авторизації(OAuth).

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

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


В області розробки програмного забезпечення використовується спеціальна мова для графічного опису об'єктного моделювання - мова UML (Unified Modeling Language). При опису роботи програми створена абстрактна модель системи або підсистеми, звана UML- моделлю.

Рис. 2.1 Загальна модель діяльності користувача та хмарного сховища

На  моделі висче зображено загальна модель  діяльності  користувача та хмарного сховища та  дії які повинні виконувати  актори системи:

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

Рис. 2.2 Функціональна схема роботи додатку

  1.   Використання OAuth 2.0 для доступу до API

Якщо додаток відразу відправить запити до API сервер поверне помилку додатку, бо не було здійснено авторизацію самого додатку.

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

Маркери доступу видаються сторонніх клієнтів, сервера авторизації з твердження власника ресурсу. Клієнт використовує маркер доступу до доступу до захищених ресурсів, розміщених на сервері ресурсів. Наприклад, кінцевий користувач (власник ресурсу) може надати друк Послуги (клієнт) доступ до її захищені фотографії зберігаються в фото обміну послуги (сервер ресурсу), не розділяючи її ім'я і пароль зі службою друку. Замість цього, вона виконує автентифікацію безпосередньо з сервером довіреної службою обміну фотографіями (Сервер авторизації), який видає служби друку delegation - конкретні облікові дані (маркер доступу).

Рис. 2.3  Використання OAuth 2.0 для доступу до API

Абстрактний OAuth 2.0 потік показано на малюнку 1.1 описує Взаємодія між чотирма ролями і включає в себе наступні кроки:

  1.   клієнт запитує дозвіл від власника ресурсу. Запит авторизації може бути зроблено безпосередньо на власника ресурсу (Як показано), або переважно побічно через авторизації Сервер в якості посередника;
  2.   клієнт отримує грант авторизації, яка посвідчення, що представляє дозвіл власника ресурсу, у виражається за допомогою одного з чотирьох типів грантів визначається в цьому Специфікація або з використанням типу розширення гранту. Тип видачі дозволу залежить від методу, використовуваного клієнт авторизації запиту і типи, підтримувані Сервер авторизації;
  3.   клієнт запитує маркер доступу, автентифікації з Сервер авторизації та подання грант авторизації;
  4.   сервер авторизації автентифікацію клієнта і перевіряє давати дозвіл, і якщо діє, видає маркер доступу;
  5.   клієнт запитує захищений ресурс з ресурсом Сервер і аутентифікацію по представляючи маркер доступу;
  6.   сервером ресурсів перевіряє маркер доступу, і якщо діє, служить запит.
    1.   Аналіз активності додатку

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

Рис. 2.4 Діаграма активності

  1.  Розробка структури системи

Ефективність функціонування інформаційної системи (ІС) багато в чому залежить від її архітектури. Архітектура − це концептуальний̆ опис структури системи, що включає опис елементів системи, їх взаємодії̈ та зовнішніх властивостей̆. Її технічний̆ рівень являє собою інтегрований̆ комплекс технічних засобів, що використовуються в автоматизованій̆ системі для реалізації̈ завдань підприємства, і включає в себе як логічні, так і технічні (програмні і апаратні) компоненти.

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

Переваги використання архітектури "клієнт-сервер":

  1.  різке зменшення мережевого трафіку;
  2.  зниження складності програм-клієнтів (для них немає необхідності забезпечувати цілісність і безпеку бази даних (БД) і стежити за параметрами багатокористувацької̈ роботи з БД);
  3.  зниження вимоги до апаратних засобів, на яких додатки функціонують (комп'ютерів користувачів);
  4.  підвищення надійності БД, її цілісність, безпеки і секретності.

Для розробки мобільного додатку було вирішено використовувати мову програмування – Objective-C.

Так, як додаток створений на мові програмування Objective-C яка є повністю об’єктно орієнтованою не обійшлось без використання  проектування. Шаблони проектування програмного забезпечення (англ. software design patterns) — ефективні способи вирішення задач проектування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код. Об'єктно-орієнтований шаблон найчастіше є зразком вирішення проблеми й зображати відношення між класами та об'єктами, без вказівки на те, як буде зрештою реалізоване це відношення. Основним патерном який використовується у розробленому додатку це патерн MVC.

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

Рис. 2.5 Модель роботи MVC

  1.  Вибір засобів розробки

Розробка програмного забезпечення (англ. software engineering, software development) — це рід діяльності (професія) та процес, спрямований на створення та підтримку працездатності, якості та надійності програмного забезпечення, використовуючи технології, методологію та практики з інформатики, керування проектами, математики, інженерії та інших областей знання.

Так, як додаток розроблений для смартфону iPhone та використовує API хмарних сховищ виникає необхідність використання факторів:

  1.  продукція компанії Apple обслуговується тільки в ОС “OSX”;
  2.  розробка програм на мові Objective-C виконується тільки в IDE “xCode”;
  3.  для використовування API сервісів необхідно зареєструватися, як розробник та створити проект на сервері.

  1.  Аналіз ОС “OSX”

OS (до версії 10.7 включно - Mac OS X) - POSIX сумісна операційна система корпорації Apple. Є спадкоємицею Mac OS 9 - так званого остаточного релізу «класичної» Mac OS - основної операційної системи корпорації Apple з 1984 року. OS X входить в сімейство операційних систем Apple OS X, до якого також відноситься ОС для мобільних пристроїв - Apple iOS. В OS X використовується ядро Darwin, засноване на мікроядрі Mach, що містить код, написаний самою компанією Apple та код, отриманий з ОС NeXTSTEP та FreeBSD. Apple Mac OS випускається для комп'ютерів Macintosh (Макінтош) на базі процесорів PowerPC і Intel (починаючи з версії 10.6, OS підтримує тільки комп'ютери Mac на базі процесора Intel. Mac OS - друга за популярністю у світі операційна система. Її ринкова частка (разом з OS X) в червні 2010 року - ▲ 6.8%. OS X значно відрізняється від попередніх версій Mac OS. Основою системи є ядро під назвою Darwin. Його ядром є XNU (Рекурсивний акронім від «Xnu Not Unix» — «Xnu — не Юнікс»), в якому використовується ядро Mach і стандартні сервіси BSD. Всі можливості Unix доступні через інтерфейс командного рядка. Поверх цієї основи компанією Apple розроблено багато своїх компонентів, таких як Quartz Composer і Finder. OS X включила безліч можливостей які роблять її більш стабільною, ніж попередня версія Mac OS 9. OS X використовує витісняючи багатозадачність і захист пам'яті які дозволяють запускати декілька процесів, що не зможуть перервати або зашкодити один одному. На архітектуру OS X вплинув OPENSTEP, який був задуманий як операційна система що легко портується. Наприклад, NEXTSTEP була портована з 68k платформи NeXT комп'ютера, до того як він - NEXTSTEP - був куплений Apple. Так і OPENSTEP був портований на PowerPC в рамках проекту Rhapsody. Найпомітнішою зміною був інтерфейс Aqua. Використання округлих кутів, напівпрозорих кольорів, і світлих смужок так само вплинуло і на зовнішній вигляд апаратного забезпечення перших iMac 'ів. Деяким користувачам це не сподобалося — вони вважали це непрофесійним. Інші були задоволені, і вважали це кроком вперед. Після виходу першої версії OS X інші розробники теж стали використовувати дизайн Aqua. Для запобігання використання свого дизайну на інших платформах Apple скористалася послугами юристів OS X також включає середовище розробки програмного забезпечення Xcode, що дозволяє розробляти програми на декількох мовах включаючи C, C++, Objective-C, і Java. Вона підтримує компіляцію в так звані «універсальні програми» (Universal Binary), які можуть запускатися на декількох платформах (x86, PowerPC), так само, як «fat binaries» використовувалися для запуску однієї програми на як на 68k і так на PowerPC платформах. Apple заявила, що Mac OS X не буде запускатися на Intel-базованих персональних комп'ютерах, які не розроблені Apple, однак існують зламані версії Mac OS X, які запускаються на обладнанні з архітектурою x86. Вони розробляються спільнотою OSx86 і доступні за допомогою файлообмінних мереж.

  1.  IDE “xCode” 

Xcode - інтегроване середовище розробки програмного забезпечення під OS X і iOS, розроблена корпорацією Apple. Перша версія випущена в 2001 році, поширюється безкоштовно через Mac App Store. Xcode включає в себе більшу частину документації розробника від Apple і Interface Builder - додаток, що використовується для створення графічних інтерфейсів. Пакет Xcode включає в себе змінену версію вільного набору компіляторів GNU Compiler Collection і підтримує мови C, C ++, Objective-C, Objective-C ++ (англ.) Рос., Swift, Java, AppleScript, Python і Ruby з різними моделями програмування, включаючи ( але не обмежуючись) Cocoa, Carbon і Java. Сторонніми розробниками реалізована підтримка GNU Pascal, Free Pascal, Ada], C #, Perl, Haskell і D. Пакет Xcode використовує GDB в якості back-end'а для свого відладчика. У серпні 2006 Apple оголосила про те, що DTrace, фреймворк динамічного трасування від Sun Microsystems, випущений як частина OpenSolaris, буде інтегрований в Xcode під назвою Xray. Пізніше Xray був перейменований в Instruments.


Рис. 2.6 Зовнішній вигляд IDE xCode

  1.  Реєстрація мобільного додатку в хмарних сховищах

Для того, що мати доступ до API серверу необхідно перш за все зареєструватися як розробник і внутрішніх налаштуваннях зареєструвати свій проект.

Перш за все необхідно зареєструватися на сайті Google, як розробник мобільних додатків та обрати напрям вашої розробки.

Рис. 2.7 Сторінка Google мобільних розробників

Наступним кроком є створення проекту на сервері, який надає необхідність необхідні нам можливості серверу.

Рис. 2.8 Створення проекту розробника на сервері

Після того, як ми зареєструємо наш проект ми зможемо налаштувати его для роботи з нашим мобільним додатком. Наступним кроком є отримання даних для доступу (OAuth), те треба вказати назву проекту, який був створений у середовищі розробки та адресу домену.

Рис. 2.9 OAuth дані проекту

Залишилось підключити до проекту необхідні модуль: Drive API.

Рис. 2.10 Лист модулів Google

Рис. 2.11 “Підключення модуля Drive API

Створення проекту в DropBox Developer схожій на Google, але там відсутній вибір API, треба лише вказати адресу домену в проекті.

Рис. 2.12 Відображення проекту DropBox

  1.  Використання API хмарних сховищ

XMLHttpRequest — API-запит веб-клієнта (браузера) до веб-сервера за протоколом HTTP у фоновому режимі, для мов програмування JavaScript, JScript, VBScript і подібних. Використовується для синхронного або асинхронного обміну інформацією в довільному текстовому форматі (наприклад XML, JSON, HTML). Дозволяє здійснювати HTTP-запити до віддаленого сервера без потреби перезавантажувати сторінку. Застосування XMLHttpRequest справляє враження «миттєвої» відповіді сервера, у порівнянні з класичними методом перезавантаження всієї сторінки для оновлення представленої на ній інформації.

  1.   Drive REST API

 Це посилання API організована за типом ресурсів. Кожен тип ресурсів має один або кілька подань даних і один або декілька методів.

 Для отримання детальної інформації файлів ресурсів, відвідайте сторінку уявлення ресурсу.

Рис. 2.13 Лист API команд Google Drive

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

 

Рис. 2.14 Приклад роботи Google Developer Playground

  1.   Core API DropBox

 

Рис. 2.15 DropBox API


Висновки

На основі аналізу предметної області в даному розділі дипломної роботи була розроблена функціональна схема додатку, що використовує хмарні сховища даних.

Представлена модель організації діяльності залізничних кас. Зроблено обґрунтування про доцільність автоматизувати систему саме  засобами розробки платформи iOS в середовищі xCode мовою Objective-C.


Розділ 3

Програмна реалізація

  1.  Структура і функціональне призначення модулів системи

Модуль - функціонально закінчений фрагмент програми, оформлений у вигляді окремого файлу з вихідним кодом або пойменованої безперервної її частини (наприклад, Активний Оберон), призначений для використання в інших програмах. Модулі дозволяють розбивати складні завдання на більш дрібні відповідно до принципу модульності. Зазвичай проектуються таким чином, щоб надавати програмістам зручну для багаторазового використання функціональність (інтерфейс) у вигляді набору функцій, класів, констант. Модулі можуть об'єднуватися в пакети і, далі, в бібліотеки. Зручність використання модульної архітектури полягає в можливості поновлення (заміни) модуля, без необхідності зміни іншої системи. У більшості випадків різні модулі можуть запускатися як на одному сервері, так і на різних, для розподілу навантаження і створення розподіленої архітектури.

 Під час розробки було створено декілька модулів для кращої роботи мобільного додатку:

  1.   модуль запитів;
  2.   модуль web-браузеру;
  3.   основний модуль.


Модуль запитів – набір класів, які виконують запити до API хмарних сховищ даних.

Рис. 3.1 Список класів модуля запитів

Модуль web-браузеру – клас який відповідає за можливість авторизації користувача хмарного сховища, та налаштування web-браузеру додатку.

Рис. 3.2 Модуль web-браузеру

Основний модуль -  використовує патерн проектування MVC,що містить у собі:

  1.  три моделі (папки, файли, поле);
  2.  два контролери (головний контролер, контролер таблиці)
  3.  два уявлення (головний екран, поле).

Рис. 3.3 Основний модуль

Усі модулі взаємодіють між собою через основний модуль

Рис. 3.4 Зв’язок модулів системи

  1.  Розробка програмних модулів

Об’єктно-орієнтоване програмування (ООП) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. Основу ООП складають три основні концепції: інкапсуляція, успадкування та поліморфізм. Одною з переваг ООП є краща модульність програмного забезпечення (тисячу функцій процедурної мови, в ООП можна замінити кількома десятками класів із своїми методами). Попри те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих, коли розвиток комп'ютерів та комп'ютерних мереж дозволив писати надзвичайно об'ємне і складне програмне забезпечення, що змусило переглянути підходи до написання програм. Сьогодні багато мов програмування або підтримують ООП (Lua) або ж є цілком об'єктно-орієнтованими (зокрема, Java, C#, C++, Python, PHP, Ruby та Objective-C, ActionScript 3, Swift, Vala).

Клас поряд з поняттям «Об'єкт», є важливим поняттям об'єктно-орієнтованого підходу в програмуванні (хоча існують і беcклассовие об'єктно-орієнтовані мови, наприклад, JavaScript). Під класом розуміється якась сутність, яка задає деякий загальна поведінка для об'єктів. Таким чином, будь-який об'єкт може належати або належати певного класу, тобто володіти або з мати поведінкою, яка даний клас увазі. Клас визначає для об'єкта контракт, тобто правила, за допомогою яких з об'єктом можуть працювати інші об'єкти (зазвичай це робиться за допомогою визначення методів класу). Крім того класи можуть перебувати один з одним в різних відносинах, таких як Спадкування або Агрегація.

Для створення додатку мною було створено дванадцять класів, які виконують ролі:

  1.  три моделі;
  2.  два контролери;
  3.  шість класів які виконують запити.

 

Рис. 3.5 Діаграма класів

 RDFolderModel -  клас, який відіграє роль моделі для створення об’єкту папок, що знаходяться на сервері.

Атрибути:

  1.  ‘title’ – заголовок;
  2.  ‘uuid’ – унікальний ідентифікатор;
  3.  parent’ – ідентифікатор батьківської папки.

Операції:

  1.  jsonConvert’ – приватний метод, який перетворює вхідні дані у потрібний формат;
  2.  initWithJson’ – ініціалізація об’єкту через вхідні дані.

RDItemModel  -  клас, який відіграє роль моделі для створення об’єкту файла, що знаходяться у папці на сервері.

Атрибути:

  1.  ‘uuid’ – унікальний ідентифікатор;
  2.  ‘title’ – заголовок файлу;
  3.  ‘size’ – розмір файлу;
  4.  ‘parentId’ – ідентифікатор батьківської папки;
  5.  ‘icon’ – іконка файлу;
  6.  ‘isFolder’ – тип - папка;
  7.  ‘downloadUrl’ – url для завантаження.

Операції:

  1.  jsonConvert’ – приватний метод, який перетворює вхідні дані у потрібний формат;
  2.  initWithJson’ – ініціалізація об’єкту через вхідні дані.

RDDeleteRequst – клас, який відповідає за відправку запиту до серверу с командою на видалення файлу.

Операції:

  1.  ‘deleteItems’ – публічний метод видалення файлу.

RDGetItemSender - клас, який відповідає за відправку запиту до серверу с командою на отримання інформації о файлі.

Операції:

  1.  ‘getItemWithCompletionHandler’ – публічний метод класу на отримання інформації о файлі.

RDgetAccessToken – клас, отримання коду доступу до API.

Протокол:

  1.  ‘refresh’ – протокол оновлення даних.

Операції:

  1.  ‘getAccessToken’ – метод отримання коду доступу.

RDInsertRequest - клас, який відповідає за відправку запиту до серверу с командою на відправку файлу.

Операції:

  1.  ‘uploadFileForImage’ – метод відправки зображення з телефону.

RDSaveRequest - клас, який відповідає за відправку запиту до серверу с командою на збереження файлу.

Операції:

  1.  ‘saveItems’ – метод збереження файлу.

RDRootFolder - клас, який відповідає за відправку запиту до серверу с командою на отримання списку файлу.

Атрибути:

  1.  ‘folderObjectsArray’ – масив папок;
  2.  ‘itemsObjectsArray’ – масив файлів.

Операції:

  1.  ‘getChaildsWithCompletionHandler’ – метод класу, що виконує запит на список файлів.

RDTableViewCell – модель поля таблиці.

Атрибути:

  1.  ‘icon’– зображення файлу;
  2.  ‘title’ – зоголовок файлу;
  3.  ‘size’ – розмір файлу.

RDTableViewController -   клас, контролер, який відповідає за роботу таблиці файлів сховища.

Атрибути:

  1.  ‘tableView' – підключення компоненту таблиці;
  2.  ‘folders’ – масив папок;
  3.  ‘items’ – масив файлів.

Операції:

  1.  ‘setup’ – метод запуску таблиці;
  2.  ‘reloadWithFolder’ – перезавантаження таблиці через папку.

RDWebView – клас, що надає змогу роботи компонента WebView.

Атрибути:

  1.  ‘webView’ – підключення компоненту webView;
  2.  ‘getAccessToken’ – підключення класу RDgetAccessToken;
  3.  ‘authCode’ – код авторизації;
  4.  ‘previousTime’ – час виклику web-браузеру.

Операції:

  1.  ‘authCodeWithId’ – метод авторизації в хмарному сховищі.

MainViewController – клас, відіграє роль головного контролеру.

Атрибути:

  1.  ‘editButton' – підключення кнопки редагування;
  2.  ‘webViewController’ – підключення класу web-браузера;
  3.  ‘tableViewController’ – підключення контролеру таблиці;
  4.  ‘prethentView’ – підключення стартового вікнв;
  5.  ‘googleButton’ – підключення кнопки google;
  6.  ‘startViewButton’ – кнопка повернення до головного екрану;
  7.  ‘refreshButton’ – кнопка оновлення списку файлів таблицці;
  8.  ‘logOut’ – кнопка виходу з акаунту;
  9.  ‘dropBoxButton’ – кнопка DropBox;
  10.  ‘folder’ – масив папок;
  11.  ‘deleteRequest’ – підключення класу видалення;
  12.  ‘selectedItemsId’ – ідентифікатор обраного файлу;
  13.  ‘selectedItemsTitle’ – заголовок обраного файлу;
  14.  ‘selectedItemsDownload’ – адреса завантаження;
  15.  ‘saveRequst’ – підключення класу, що дозволяе завантажети файл в телефон;
  16.  ‘insertRequest’ – підключення класу, що дозволяе завантажети файл в хмарне сховище;
  17.  ‘step’ – крок каталогу.

Операції:

  1.  ‘googleAction’ – метод запуску даних Google диску;
  2.  ‘back’ – метод повернення до попередньої папки;
  3.  ‘dropBoxAction’ – метод запуску даних DropBox;
  4.  ‘editButton’ – метод, який викликає меню редагування;
  5.  ‘toStartView’ – метод повернення до головного екрану;
  6.  ‘refreshAction’ – метод оновлення списку файлів;
  7.  ‘logOut’– метод виходу з хмарних сховищ.
  8.   Вимоги до технічних засобів

 Додаток розроблений для смартфонів компанії Apple – iPhone. Смартфон повинен мати операційну систему iOS 8.0 та вище, а також підключення до інтернету  зі швидкістю не менше 10 МБ/с.


Розділ 4

ВПРОВАДЖЕННЯ ТА ЕКСПЛУАТАЦІЯ

  1.  Інструкція користувача системи

Щоб встановити будь-який додаток з магазину App Store, навіть безкоштовне, необхідно насамперед зареєструватися в App Store (зареєструвати аккаунт). Після цього ви зможете встановити будь-які додатки для вашого пристрою з офіційного магазину Apple.

Як це можна зробити, є два варіанти:

За допомогою програми ITunes, по кабелю USB

Підключіть iPhone до комп'ютера. Запустіть ITunes.  Перейдіть на вкладку "Itunes Store,". Виберіть з каталогу вподобану вам програму. Натискаєте кнопку БЕЗКОШТОВНО (або ціну). Введіть дані облікового запису: ім'я та пароль. Почнеться процес завантаження обраного файлу на комп'ютер. Подивитися скачані програми можна на вкладці "Програми". Перейдіть на вкладку пристрої "iPhone". У верхньому меню виберіть "Програми" і переконайтеся що стоїть галочка "Синхронізувати". Натисніть "Застосувати", піде процес синхронізації програм з iPhone.

 


Рис. 4.1 Установка додатку через USB

По мережі Wi-Fi через програму в App Store

Відкрийте програму App Store на айфоне. Виберіть програму, вподобане вам. Натисніть кнопку БЕЗКОШТОВНО (або ціну). Натисніть кнопку Install (або КУПИТИ). Далі введіть дані облікового запису: ім'я (якщо просить) і пароль. Додаток встановлюється.

 

Рис. 4.2 Установка додатку через iPhone

Після того, як додаток буде завантажений необхідно  запустити його.

Рис. 4.3 Головний екран додатку

Далі користувач обирає яке хмарне сховище він хоче використати, натиснув на відповідну кнопку.

Рис. 4.4 Вікно авторизації

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

Рис. 4.5 Вікно підтвердження доступу

Після підтвердження доступу, користувач отримує список власних файлів у хмарному сховищі.

Рис. 4.6 Вікно списку файлів

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

 Додавання файлу до хмарного сховища:

 Рис. 4.7 Вікно вибору дій

Рис. 4.8 Вікно вибору файлу

Рис. 4.9 Вікно підтвердження вибору файлу

Після оновлення списку ,ми бачимо новий  файл у хмарному сховищі.

Рис. 4.10 Вікно оновленого списку

Завантаження файлу з хмарного сховища:

 

Рис. 4.11 Завантаження файлу

Завантажений файл можна відкрити в галереї телефону.

Рис. 4.12 Галерея телефону

Видалення файлу з хмарного сховища:

Для видалення файлу необхідно виділити необхідний файл та натиснуть на видалення.

Рис. 4.13 Видалення файлу

Рис. 4.14 Оновлений список

  1.   Тестування  роботи запитів для розробника

 Так, як данні з серверу приходять в JSON форматі, розробнику необхідно знати, що в цих даних міститься. Для прикладу розглянемо  запит, який повертає інформацію  про файл:

 

Рис. 4.15 Фрагмент коду

На рисунку 4.15 присутній рядок в якому JSON результат конвертується у спеціальний тип списку NSDictionary.  Щоб побачити данні необхідно  додати   новий рядок коду NSLog(@"%@",json); та додати зупинку проекту .

Рис. 4.16 Тестування вхідних даних

 Після запуску проекту та вибору хмарного сховища проект повинен зупинитись на обраній ділянці та у лозі проекту показати вміст   змінної – json.

  

Рис. 4.17 Результат тестування

Таким чином  виконується тестування усіх запитів до серверу. Помилки які зв’язані з синтаксисом  або не вірною операцією IDE xCode знаходить сам при компіляції проекту або навіть завчасно.

  

Рис. 4.18 Синтаксична помилка


ВИСНОВКИ

 

В цій роботі був проведений аналіз використання технологій хмарних сховищ у мобільному додатку для смартфонів компанії Apple - iPhone. Використання даних технологій дуже ефективно в вирішенні проблеми з обмеженістю пам’яті смартфону. А також при зміні або несправності пристрою хмарні сховища наддадуть змогу швидко повернути файли користувача.

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

Під час програмної розробки було виконано такі дії:

  1.  аналіз та використання API хмарних сховищ Google Диск та DropBox;
  2.  аналіз мови розробки Objective – C та створення мобільного додатку;
  3.  тестування запитів та синтаксичних помилок при розробці.

Сам додаток виконує клієнтську роль з основні функції: додавання, завантаження, видалення файлу з серверу; з простим інтерфейсом.

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


Список використаних джерел

  1.  


ДОДАТОК А

Текст програми головного модуля

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Diagnostics;

using System.Data.SqlClient;

namespace JDTiket

{

   public struct QueryParam

   {

       public string  ArrivalTime, DepartureStation, ArrivalStation;

   }


   public partial class Form1 : Form

   {

        

       public string SQLvalue1;

       public Form1()

       {

           InitializeComponent();

       }


       private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

       {

             QueryParam QueryParam1;

           QueryParam1.ArrivalTime = String.Empty;

           QueryParam1.DepartureStation = String.Empty;

           QueryParam1.ArrivalStation = String.Empty;

           Form2 Form2 = new Form2(QueryParam1);

           Form2.ShowDialog();  

       }

       private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

       {

           Form3 Form3 = new Form3();

           Form3.ShowDialog();  

       }

       private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

       {

           Form4 Form4 = new Form4();

           Form4.ShowDialog();

       }

       private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

       {

           Form6 Form6 = new Form6();

           Form6.ShowDialog();

       }

       private SqlConnection sqlCon;

    

       private void Form1_Activated(object sender, EventArgs e)

       {

       

           sqlCon = new SqlConnection

                        (@"server =.\sqlexpress; database = ПродажаЖДБилетов; integrated security = true");

           sqlCon.Open();

           SqlCommand sqlCommand = new SqlCommand

         ("Select Станция_отправления from Станц_отправления  ", sqlCon);

           SqlDataReader reader = sqlCommand.ExecuteReader();

           comboBox1.Items.Clear();

   

           while (reader.Read())

           {

               comboBox1.Items.Add(reader["Станция_отправления"].ToString());

           }

           reader.Close();

           sqlCommand.Dispose();

           sqlCon.Close();

        

           sqlCon.Open();

           SqlCommand sqlCommand1 = new SqlCommand

         ("Select Станция_прибытия from Станц_прибытия ", sqlCon);

           SqlDataReader reader1 = sqlCommand1.ExecuteReader();

           comboBox2.Items.Clear();

           while (reader1.Read())

           {

               comboBox2.Items.Add(reader1["Станция_прибытия"].ToString());

           }

           reader1.Close();

           sqlCommand1.Dispose();

           sqlCon.Close();

       }

       private void button1_Click(object sender, EventArgs e)

       {

           sqlCon = new SqlConnection

                      (@"server =.\sqlexpress; database = ПродажаЖДБилетов; integrated security = true");

           sqlCon.Open();

           SqlCommand sqlCommand = new SqlCommand

         ("Select ID_станц_отправ from Станц_отправления  ", sqlCon);

           SqlDataReader reader = sqlCommand.ExecuteReader();

            comboBox1.Items.Clear();

         while (reader.Read())

           {

               comboBox1.Items.Add(reader["ID_станц_отправ"].ToString());

           }

           reader.Close();

           sqlCommand.Dispose();

           sqlCon.Close();

           

           sqlCon.Open();

           SqlCommand sqlCommand1 = new SqlCommand

         ("Select ID_станц_прибытия from Станц_прибытия  ", sqlCon);

           SqlDataReader reader1 = sqlCommand1.ExecuteReader();

           comboBox2.Items.Clear();

           while (reader1.Read())

           {

               comboBox2.Items.Add(reader1["ID_станц_прибытия"].ToString());

           }

           reader1.Close();

           sqlCommand1.Dispose();

           sqlCon.Close();

      

            QueryParam QueryParam1;

           QueryParam1.ArrivalTime = string.Empty;

           QueryParam1.DepartureStation = comboBox1.Text;

           QueryParam1.ArrivalStation = comboBox2.Text;

           Form2 Form2 = new Form2(QueryParam1);

           Form2.ShowDialog();

       

       }

      

   }

}

Арк.

61

 КК НАУ 15 08 08 00А Д

Виконав

Діденко Р.І.

Керівник

Кудинов В.В.

 Консульт.

 Дроздова А.М.

Додаток А

Літ.

Аркушів

2

67

 Голова ЦК

Кравчатий А.В. В.

337  6.050103

Комісія ПЗ ЕОМ

Консульт.


 

А также другие работы, которые могут Вас заинтересовать

48951. Прототип программной системы «Гостиница» 1.73 MB
  Постояльцы проживают в гостиницах по разным целям – это может быть, как и в случае отдыха, так и по работе. Наша цель – подобрать доступную гостиницу из имеющейся на сайте базы данных. Так же вы можете оставлять ваши отзывы и пожелания
48952. Система электроснабжения района города в Московской области 2.53 MB
  Сечения жил кабелей линий 380 В должны выбираться по соответствующим расчётным электрическим нагрузкам линий в нормальных и послеаварийных режимах работы на основе технических ограничений допустимого нагрева и допустимых потерь напряжения а также с учётом применения минимальных сечений по условиям механической прочности в условиях монтажа и эксплуатации. Выбор сечений КЛ 04 кВ по техническим ограничениям по допустимым потерям напряжения. Далее необходимо выполнить проверку кабелей на допустимые потери напряжения в нормальном и...
48953. Проект системы электроснабжения района города в Московской области 4.02 MB
  Подача горячей воды и отопление осуществляется от ЦТП. В микрорайоне расположено 23 жилых здания высотой 9 этажей 5 жилых зданий высотой 12 этажей и 11 высотой 16 этажей 5 детских садов на 150 мест каждый 2 школы на 1176 мест каждая кафе на 50 мест 7 центральных тепловых пунктов ЦТП универмаг магазин Мебель магазин Электротовары магазин Сантехника автосалон поликлиника.1 ЦТП№1 11.2 ЦТП№2 11.
48955. Аварийные и особые режимы работы электрооборудования 814 KB
  Содержание Задание по расчету курсового проекта Справочные данные Введение Расчет начальных значений токов трехфазного К. Расчет ударного тока трехфазного К. Схема замещения обратной последовательности Схема замещения нулевой последовательности Расчет периодической составляющей токов двухфазного К. Расчет периодической составляющей токов однофазного К.
48956. ППР на строительство центральной ремонтной мастерской для хлопкосеющих хозяйств с парком 50 тракторов 1.39 MB
  Содержание Составление крточки определителя продолжительности работ Расчёт и построение основной модели Расчёт запаса времени Определение длины критического пути График потребности в трудовых ресурсах График поступления на объект строительных конструкций изделий материалов и оборудования График движения основных строительных машин Методы производства работ Внутренние работы Земляные работы Монтажные работы Кирпичная кладка стен Отделочные работы Проектирование...