RUS || ENG || UKR

Угніченко Дмитро Олександрович

Магiстр ДонНТУ Угніченко Дмитро Олександрович
Факультет: Обчислювальної техніки і інформатики (ОТI)
Кафедра: Електронних обчислювальних машин
Спецiальнiсть: Системне Программування (СП)
Тема випускної роботи

Розробка методик побудування програмного
забезпечення для мобільних платформ


Науковий керівник:

к.т.н., доц. каф. ЕВМ, Мальчева Раїса Вікторівна

Автореферат

за темою: «Розробка методик побудування програмного забезпечення для мобільних платформ»

1. Вступ

З бурхливим розвитком глобальної мережі Internet і мереж GSM(у світі й в особливостi на території країн СНД)з'явилися тi тенденцiї, що змусили розроблювачів апаратних засобів змістити свою увагу у поле мобільних пристроїв. Якщо для цього раніше використався просто мобільний телефонний апарат, то тепер постала необхідність сполучення в такому пристрої функціонала й телефону й портативного комп'ютера. Потужностей звичайних мобільних апаратів не вистачало, а переносні портативні обчислювальні апарати з використанням модулів для роботи з GSM були громіздкими й незручними для кінцевого користувача. Також виникла необхідність використати мережі не тільки GSM, але й Wi-fi й WiMax. У такий спосіб у промисловості виділився окремий тип пристроїв, що одержав назву TabletPC. Родоначальником і лідером у виробництві подібних пристроїв є фірма Nokia. Також у якомусь ступені подібні пристрої роблять й інші компанії зі світовими іменами: HTC, Apple, Benq й інш.

У даній магістерській роботі буде розглянута , у плані конкретних випробувань отриманих результатів, саме продукція фірми Nokia. А конкретно, модель Nokia n810 Tablet PC. Хоча на момент написання даної роботи вже заявлено про випуск у швидкому майбутньому пристрою Nokia Tablet PC 9-го покоління. Докладний огляд існуючих платформ буде виконаний нижче, в основній частині.

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

2. Цілі і завдання роботи

У даній роботі планується розгляд й огляд існуючих мобільних платформ, що випускають різними виробниками. Далі будуть розглянуті принципи, по яких повинен будуватися процес розробки програмного забезпечення для мобільних платформ. І одне, найбільш важливе, буде розглянутий більш детально - аспект безпеки. Будуть розглянуті загальні теоретичні принципи розробки, що базуються на принципах объектно-ориентированной розробці, а також деякі конкретні реалізації в застосуваннях для побудови шифрованих бездротових мереж по протоколі Wi-fi. Також буде розглянутий фреймворк Qt4 - набір графічних бібліотек від фірми Trolltech, нині офіційно підтримуваний і приналежний Nokia Corporation для побудови графічних додатків і наведений приклад написання найпростішого додатка.

3. Передбачувана наукова новизна та практична цінність результатів роботи

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

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

Апробація роботи
З доповіддю по даній тематиці робив доповідь на а V міжнародної студентської науково-технічної конференції «Комп'ютерний моніторинг й інформаційні

4. Огляд існуючих розробок і досліджень за темою

4.1 Локальний огляд

  • http://eixin.livejournal.com/ «Разработка для мобильных устройств». Огляд характерних рис платформ (Windows Mobile и Symbian). Приклади коду.
  • http://twitter.com/pashka_r «Django на Google App Engine». Плюси, мінуси, підводні камені. Використання django trunk замість 0.96, установленої по-умовчанню. На прикладі RSS and twitter трекера за торрент-трекерами trackit4me.com .

4.2 Нацiональний огляд

  • http://twitter.com/podgorniy «Микроформаты». Навіщо потрібні, як працюють, практичне застосування.

4.3 Свiтовий огляд

5. Основний зміст роботи

В останні роки одержує широке поширенні бездротової спосіб доступу до глобальної мережі Internet за допомогою wifi, 3G, gprs(edge) і інших технологій. Відповідно на ринку з'являються спеціально пристосовані пристрої, що дають можливість простого й «прозорого» доступу до мереж, і ,що найбільш важливе, що є компактними й мобільними. Остання риса надає користувачам більшу мобільність - наприклад, у дорозі, протягом перерви можна почитати останні новини або довідатися поточний курс валют на фондових ринках.

До таких пристроїв можна віднести три базових класи пристроїв:

  • КПК (кишенькові ПК) - тут на ринку домінують «наладонники» від таких фірм, як Asus, HP, HPC, Sharp(Zaurus). У перших трьох предустановлена ОС від компанії Microosft ® WinCE ®. Sharp використає ОС, засновану на ядрі ОС Linux
  • Мобільні tablet phones («таблетки»). Це мобільні телефони, постачені відповідною функціональністю. До світових лідерів по виробництву вищевказаних пристроїв можна віднести компанії Nokia
  • Macintosh (iPhones), HPC Останнім часом широке поширення одержали немає буки (netbooks) - відгалуження від laptop pc's. Звичайно, немає бук має монітор діагоналлю 7 - 10', ЖД на базі флеш накопичувачів, wifi+ethernet порти. CD/DVD-RW відсутній через непотрібність. До немає буків ставляться Asus eeePC (701, 901,1000), MSI Wind, модельний ряд Acer' ов. На цих моделях можна зустріти два види ОС - Microsoft ® Windows ® XP й GNU/Linux.

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

  • 1. Функціональність.
  • 2. Операційна система.
  • 3. Ціна.

 У першій категорії пристрою приблизно мають однакові властивості. Всі вони володіють GPR модулем - убудованим( у випадку HPC, iPhone) або що підключають як зовнішній модем (Nokia n8xx series). Iphone й HPC володіють touch-screen'ом, що дає можливість користувачеві не користуватися стилусом, а просто використати свої кінцівки для обігу із пристроєм.

Nokia phone такий функцинальсностью поки не володіє. Операційна система(ОС) на HPC Touch - Windows Mobile 2007. Це портированная на мобільну платформу ОС сімейства Windows, що володіє тими ж недоліками, що і її «старші» брати. Основна - слабка захищеність від шкідливих вірусних програм через непродуману в цьому плані архітектурі й процедурі безпечної взаємодії з користувачем. Також у дійсності набір прикладних програм дуже вбогий, і часом досить складно знайти необхідний додаток.

Macintosh iPhone містить у собі ОС сімейства Macintosh, побудовану на базі ядра Unix *bsd, що володіє стабільністю й високим ступенем захищеності. Всі позитивні сторони відпадають через закриту ліцензію. (Споконвічне ядро ОС BSD поширюється під open source ліцензією, але дозволяє надалі закривати продукт, при додаванні в нього своїх розробок, чим координально відрізняється від ліцензії, під якою поширюється GNU/Linux - GPL(v2, v3).

І, нарешті, Nokia n8xx series. Споконвічно, Nokia, всі свої продукти, коммуникаторы комплектувала своєї власної ОС, що зовсім недавно стала OpenSource. Але, саме Nokia tablets n8xx series працюють на ядрі GNU/Linux. Це дає широкі можливості по переносі програмного забезпечення на даний смартфон із платформ x86, x86_64. Це й стане подальшою темою, розглянутої в моїй роботі. Для написання графічних додатків, як під Microsoft Windows, Macintosh, Linux можна використати виклики API для побудови окремих графічних елементів, потім утворю з них кінцевий продукт. Але це трудомістко, іноді доводитися робити одну й тугіше роботу, тому з'явилися т.зв. графічні фреймворки - набір бібліотек, що полегшують написання графічних додатків, які використають свої «функції-обв'язки» для системного API. Існує безліч різних фреймворков. Для мов C - це GTK+, WxWidgets; для C++ - Qt. т.к. компанія Nokia недавно придбала компанію Trolltech ( розроблювача QT4 Framework), те саме цей фреймворк і використається на її коммуникаторах. Під Qt( а точніше Qt v4 - 4-ю версію програмного продукту).

Під Qt4 написана безліч додатків для настільних ПК, і завдання коштує не в написанні нових, а адаптації й переносу «старих» на нову платформу. Із чим чудово справляється Qt v4. Для мобільних платформ випущена спеціальна версія Qt - Qt embedded (Qt для убудованих платформ). Розглянемо наступні переваги Qt 4 embedded:

  • 1. Швидке створення розширеного користувальницького інтерфейсу з можливістю його модифікувати в подальшої, не докладаючи більших зусиль.
  • 2. Прискорення процесу розробки, використаю інтуїтивно зрозумілі API.
  • 3. Вибір тільки необхідних компонентів для продукту, використовуючи модульность бібліотек.
  • 4. Простий процес переносу ПО з однієї платформи на іншу - досить тільки перекомпілювати продукт.
  • 5. Оптимізація продуктивності, що досягається за рахунок убудованих засобів фреймворка й швидких тестів.
Розглянемо докладніше деякі з перерахованих вище аспектів. На рис 1. зображено структуру, каркас, що показує модульность фреймворка. Тут можна простежити чітке розбивки на 4 подчасти, кожна з якої містить модулі, відповідальні за певну область. Це користувальницька частина, частина, відповідальна за зміст самої системи(пакетний менеджер й ін.), комунікаційна частина й специфічна для кожного пакета. Використання окремих модулів дає можливість ощадливо витрачати оперативну пам'ять у пристроях, не перевантажувати ЦПУ, тим самим продовжуючи час «життя» батареї.

Модульна структура Qt4 Embedded
Рисунок 1 — Модульна структура Qt4 Embedded (анімація, 5 кадрів, 5 циклів, 126 Кбайта)


Розглянемо раніше описану можливість тестування додатків і програмних засобів, для знаходження схованих помилок і збільшення швидкості. Тест створюється й перебуває в тій же директорії, де перебувають вихідні тексти тестируемой програми або модуля. Приміром, створимо в тій же директорії,де розташовані вихідні тексти для helloqt директорії tests/sys_demo. Там же створимо файл із вихідним кодом для тестування - sys_demo.js Далі будемо приводити частини листингов з поясненнями їхньої роботи. Розглянемо листинг.

	testcase = {
		testFunction1: function()
		{
			print("Hello, World!\n");
		}
	}
	

Любою тест починається із ключового слова testcase, за яким треба список тих функцій, якими буде вироблятися тестування. У даному прикладі ми використаємо лише одну функцію, що поки не містить помилок, і друкує на екрані «Hello, World». Запустивши тест на виконання, одержимо наступну інформацію.

Рисунок 2.  Результат процесу тестування ПО.
Рисунок 2 — Результат процесу тестування ПО


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

Розглянута платформа, що одержала останнім часом має повну функціональність у плані підтримки шифрованих мереж, побудованих на основі WEP, WAP/WAP2. Для того, щоб організувати подібну мережу, можна скористатися двома способами. Можна використати засоби ОС, який вона управляється - Maemo OS. Дана ОС повністю реалізує GUI, відомий також за назвою GNOME. Системна утиліта Networking Manager дозволяє в режимі майстра установки мережі створити бездротову мережу із заданим рівнем шифрування або підключитися вже до існуючої мережі.

Для створення мережі із програмного оточення (при розробці відповідні ПО) можна скористатися API функціями з бібліотеки osso-wlan.[4] Підключивши заголовний файл wpa.h, можна одержати доступ до всіх необхідних функцій. Таким, як - set_wpa2_encryption(), handle_wps_ie() та інші. У такий спосіб можна повністю реалізувати функціональне з'єднання по протоколі wap/wap2, wep, забезпечивши тим самим безпека переданих даних.

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

  • Аналізу.
  • Проектування.
  • Реалізації.

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

6. Висновки

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

7. Лiтература


Важливе зауваження
 При написанні цього автореферату магістерська робота ще не завершена. Остаточне завершення: 1 грудня 2009 р. Повний текст роботи та матеріали за темою можуть бути отримані у автора або його керівника після зазначеної дати.