Програмна система збору та аналізу статистичних даних про контакти користувача на основі ОС Android

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

Програмна система збору та аналізу статистичних даних про контакти користувача на основі ОС Android

Міністерство освіти, науки, спорту та молоді України

Національний університет «Львівська політехніка»









Бакалаврська кваліфікаційна робота

На тему

Програмна система збору та аналізу статистичних даних про контакти користувача на основі ОС Android

Виконав: студент гр. КІ-44

Волох Ю.А

Керівник: Кремінь В.Т





Львів 2011р.

Завдання

Створити програмну систему збору та аналізу статистичних даних про контакти користувача на основі ОС Android 2.2.

Вимоги:

використання телефонної книжки, з кількістю записів до 300.

Швидкість роботи: не більше 2 сек.

Анотація

В бакалаврьскій квалійікаційній роботі розглянуто проблему розробки програмної системи збору та аналізу статистичних даних про контакти користувача мобільного обчислювального пристрою під управлінням ОС Android. В роботі спроектовано та розроблено програмну систему збору та аналізу статистичних даних про контакти користувача з можливістю її подальшого розвитку до рівня персонального інтелектуального програмного агента. Програмна система розроблена на мові Python на основі програмної платформи SL4A.

Вступ

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

Людські потреби росли паралельно з нарощуваними потужностями виробників, ресурси неохідні для Java-машини вдалось вмістити в кишенькових компютерах, смартфонах.

Сьогодні смартфон є практично у кожного. Це мікро ЕОМ яка завжди з тобою. Ні для кого не буде новиною розміщення у смартфоні Будильника, органайзера та ін. Тобто програм які допомагають людині справлятись з завданнями які виникають перед нею щодня. Деякі аналітики стверджують, що в найближчі 5-10 років персональні комп’ютери і ноутбуки відійдуть в минуле. А комп’ютер буде виглядати як великий монітор, що стоїть на слолі, клавіатура, маніпулятор. Люди будуть приходити в офіс, підключати свій смартфон, і працювати на звичній великій клавіатурі, з великим екраном, а всі операції буде обробляти смартфон.

До речі, в минулому 2010 році кількість проданих смартфонів у США, більша аніж кількість проданих персональних компютерів.

В майбутньому смартфони будуть як засобом звязку, так і пристроями обробки інформації.

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

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

І наступним кроком буде створення Електронного помічника, тобто програми котра буде робити що небуть заміть власника. Ці програми будуть обладнані системами штучного інтелекту, тому власника навіть не обовязково про це повідомляти. У людини зявиться більше вільного часу. А час це найдорогоцінніший ресурс в сучасному світі. Программа Inteligent Personal Assistant - це спроба створити щось подібне.

Інтелектуальний програмний помічник - це програмний агент, який виконує завдання з мінімально специфічними напрямами від користувачів. Він розвивається з концепції "віртуальний особистий помічник", це когнітивний помічник, який вчиться і само організовується. Інтелектуальний програмний помічник поєднує в собі традиційні ізольовані підходи до штучного інтелекту <#"588141.files/image001.gif">

Рис. 1.5.1 Алгоритм роботи програми збору та аналізу статистичних даних про контакти користувача

2.    
Вибір інструментів розробки програмної системи збору та аналізу статистичних даних про контакти

2.1.  Вибір мови програмування та середовища

Розробники Android надали можливість створювати додатки для їхньої ОС, через використання Android SDK (Software Development Kit). Як і Android, SDK написаний на мові Java, тому розробка під Android відбувається виключно на мові Java[3]. Проте існує проект, який дозволяє програмувати на багальтьох інших мовах, таких як Python, PHP, Lua, Perl тощо. Він називається SL4A.

У двох словах, SL4A[15] є інфраструктурою для включення взаємодії сценаріїв мов двигунів, які були перенесені на платформу Android з Android API за допомогою віддаленого викликупроцедур (RPC) до сервера, що реалізований у вигляді стандартного додатка Android Java.

Як і Android, SL4A є open source і розповсюджується під Apache License Version 2.0, як і більшість програм Android.

Система SL4A підходить для наступних видів завдань:

1.   RAD програмування: З SL4A можна використовувати швидку розробку застосувань (RAD). Ви можете швидко створити прототип додатка для того аби перерити правильність ідеї. Якщо ідея правильна Ви можете створити повноцінну програму під Android

2.       Написання тестових скриптів. SL4A, може бути використана для створення тестових сценаріїв для інших програм

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

SL4A дозволяє взаємодіяти між сценаріями мов двигунів Android і Android API. Як ви побачите пізніше,вона не обмежена лише скриптовими мовами. Будь-яка програма, яка реалізує сумісні на основі JSON RPC8 модулі або набір процедур може потенційно викликати Server SL4A RPC.

Всередині, SL4A використовує JavaScript Object Notation (JSON) формат даних для обміну повідомленнями та даними між SL4A RPC Server та його клієнтами. Цей формат є основою для роботи тому нижче подамо короткий огляд JSON.

Акронім JSON спочатку використав Дуглас Крокфорд. Формат даних JSON описаний в RFC 4627,9

Цитата з специфікації про JSON:

«JavaScript Object Notation (JSON) являє собою легкий, текстовий, незалежний від мови формат обміну даними. Вона булла взята з ECMAScript стандарту мови програмування. JSON визначає малі набір правил форматування для представлення структурованих даних в портативних пристроях. JSON може представляти чотири примітивні типи (рядки, числа, логічні,змінні і нуль) і два структуровані типи (об'єкти та масиви).»

Щоб дати уявлення про цей формат даних навдем приклад JSON об’єкта. (лістинг 2.4.1)

Лістинг 2.4.1 Приклад JSON об’єкта

{

"Image":

{

"Width":

,

"Height":

,

"Title":

"View

from

th

Floor",

"Thumbnail":

{

"Url":

"#"588141.files/image002.gif">

Рис.2.1.1 Архітектура SL4A

Серед усіх мов які підтримуються SL4A, було обрано Python, через:

-     кросплатформовість[6]

Python працює практично на усіх сучасних платформах. Існує досить багато модифікацій[12]. Найбільш популярні - це CPython (під x86), Jython (під Java), IronPython (під .NET), PyS60 (під Symbian)[14].

      код написаний на Python в рази менший за еквівалент на Java[7]

§  Python не використовує окремих лексем для виділення блоку.[9]

§   Python використовує динаміну типізацію.[10]

§   Python використовує спрощений, інтуїтивно зрозумілий, синтаксис.[11]

-     гнучкість і швидкість розробки[8]

Швидкість розробки програми на мові Python значно вища аніж на Java[13].

2.2.    Встановлення Android SDK

Android SDK - це набір програм необхідних для розробки програм для Android[4]. Містить емулятор, утиліти передачі файлів між емулятором та комп’ютером.

Завантажити Android sdk можна з зображеного на рис. 2.2.1.

Рис.2.2.1 Сайт

Процес завантаження зображений на рис.2.2.2.

Рис.2.2.2 Завантаження Android sdk

.        Стартуєм програму AVD Manager з пакету Android SDK. Як це зробити зображено на рис.2.2.3.

Рис.2.2.3 Запуск AVD Manager

.        Тепер потрібно встановити сам пакет під конкретну платформу. В списку Avaliable Package вибираєм SDK Platform 2.2. (рис.2.2.4)

Рис.2.2.4. AVD Manager: Avaliable Packages

3.       Створюєм віртуальний пристрій з ОС Android 2.2 (рис.2.2.5)

Рис.2.2.5 Створення віртуального пристрою

.        Стартуєм віртуальний пристрій. (рис.2.2.6)

Рис.2.2.6 Запуск віртуального пристрою

.3 Встановлення SL4A

Для запуску програми (рис.2.3.1) наобхідно написнути на посилання в головному меню ОС Android.

Рис. 2.3.1 Запуск SL4A

Після запуску зявиться вікно (рис.2.3.2) зі списком файлів скритів та діями над ними.

Рис.2.3.2 Головне вікно програми

Для перегляду всіх встановлених інтерпретаторів необхідно натиснути кнопку View і вибрати пункт Interpretators (рис.2.3.3)

Рис.2.3.3 SL4A перегляд інтерпретаторів

Перед нами зявився список всіх інтерпретарів встановлених в середовищі(рис.2.3.4). Як бачимо середовище містить лише інтерпретатор командного рядка Linux - Shell.

Рис. 2.3.4 SL4A інтерпретатори: Shell

Інтерпретатор можна запустити клікнувши на ньому (рис.2.3.5.) Як видно з рисунку в інтерпретаторі була введені команди

$echo $PATH

та

$top

Рис.2.3.5 Команди Shell

Це означає що середовище SL4A було успішно встановлене. Проте для написання програм на мові Python необхідно встановити інтерпретатор Python.

З вікна Інтерпретатори (рис.2.3.4) натискаєм кнопку Add. У списку, що зявився вибираєм пункт Python.(рис.2.3.6)

Рис.2.3.6 Додавання Інтерпретатора

Після цього запуститься завантаження APK файлу інтерпретатора Python з сайту SL4A (рис.2.3.7).

Рис.2.3.7 SL4A Додавання інтерпретатора: Python завантажений

Вибираєм файл python_for_android.apk. Після чого зявиться вікно встановлення Python (рис.2.3.8).

Рис.2.3.8 SL4A Додавання інтерпретатора: встановлення Python

Необхідно натиснути на кнопку Install.

Процес встановлення може зайняти певний час. Протягом встановлення буде відображатись вікно встановлення Python for Android (рис.2.3.9).

Рис.2.3.9 SL4A Додавання інтерпретатора: встановлення Python

Якщо інсталяція завершиться успішно то на екрані зявиться вікно з повідомленням Application Installed(рис.2.3.10).

Рис.2.3.10 SL4A Додавання інтерпретатора: Python встановлений

Отже середовище SL4A встановлено, інтерпретатор мови Python встановлено. Що ще? Ще можна встановити файли підтримки до інтерпретатора Python. Для цього необхідно натиснути кнопку Open (рис.2.3.11). Інакше натиснути Done, щоб вийти.

Рис.2.3.11 Додавання інтерпретатора: Встановлення файлів підтримки

Встановлення файлів підтримки проводиться через інтернет тому спочатку буде проводитись завантаження файлів підтримки(рис.2.3.12), а потім встановлення.

Рис.2.3.12 Додавання інтерпретатора: Процес встановлення файлів підтримки

Якщо встановлення пройшло успішно то на екрані повинне зявитись вікно Python for Android (рис.2.3.12). Не наскати кнопку Uninstall.

Рис. 2.3.13 Додавання інтерпретатора: Встановлення файлів підтримки завершене

Повертаємось назад до SL4A список інтерпретаторів. Тепер у списку інтерпретаторів має зявитись ще один пунк - Python -<version> (рис.2.3.14).

Рис.2.3.14 Додавання інтерпретатора: Встановлення інтерпретатора завершене

Встановлення SL4A та Python успішно завершене. Тепер можна запустити Python у відлагоджувальному режимі.

Рис.2.3.15 SL4A. Python діалоговий режим

Для демонстрації взаємодії з Android API наберіть лістинг програми 2.3.1.

Лістинг.2.3.1

import android=android.Android().makeToast('Hello Practical Android Projects!')

На екрані повинно зявитись повідомлення (рис.2.3.16).

Рис.2.3.16 Результат лістингу 2.3.1

.4 Створення файлів, встановлення додатків Android (APK) з файлів скриптів на мові Python (*.py)

Середовище SL4A надає доступ до інтерпретора Python. Програми на мові Python представлені у вигляді *.py файлів що містять код програми. Це дуже зручно при розробці та відлагодженню програми, так як це дозволяє зекономити багато часу. Проте рано чи пізно виникає необхідність переносу програми на інший пристрій. Якщо в наявності є лише файл *.py то для переносу на інший пристрій необхідно на нбому, пристрої, встановлювати SL4A та Python, що є дуже незручно. Тому зявляється необхідність в конвертуванні *.py файлу в готовий додаток Android (*.apk)[5].

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

Перш за все необхідно завантажити та встановити Java Development Kit (JDK) з сайту Oracle,

Наступним кроком є завантаження та встановлення Eclipse Helios.

Далі нам необхідно завантажити та встановити Android Software Development Kit (SDK).

При запуску Eclipse створити робочу директорію та встановити ADT Plugin.

В Eclipse Window/Preferenses/Android вказати директорію з Android SDK.

Завантажити та встановити Mercurial

Створити робочу директорію sl4a командою: hg clone

Імпортувати в Eclipse проект директорію sl4a через File/Import/General/Existing Project

Включити ANDROID_SDK в списку Classpath Variable що знаходиться вWindows/Preferences/Java/BuildPathVariables/New.

Натиснути Project/Build Automatically, потім Project/Clean/Clean all Projects/OK.

Далі необхідно додати скрипт в директорію з проектом. Виділіть правою кнопкою миші файл build.xml /Run As/Ant Build. Перейменувати проект на свій смак через Refactor/Rename та /Refresh/Clean/Build the project.

Підєднати телефон до PC Натисніть settings/Connect to PC/Default connection type/Charge only/Done/Home

На телефоні слід натиснути /Applications/Development/USB debugging/OK/

З Eclipse встановити клон SL4A на телефон натисканням ScriptingLayerForAndroid щоб підсвітити, а потім Run/Run/AndroidApplication/OK.

Після встановлення SL4A клікнути на проекті, а потім Run/Run/AndroidApplication/OK.

Подвійний клік на пректі /res/drawable. Замінити Script_logo_48.png на зображення 48x48 що буде логотипом програми.

В файлі strings.xml. змінити Dummy Script на імя програми. Правий клік на екрані, щоб зберегти зміни.

Через Refactor/Rename змінити script.py на your_script_name.py тоді подвійний клік src/com.dummy.fooforandroid/Script.java щоб змінити R.raw.script на R.raw.your_script_name та зберегти зміни.

Подвійний клік src і перейменовуєм Refactor/Rename імя пакету com.dummy.fooforandroid на your.package.name

Через Project/Properties/Android вибрати версію Андроїда та натиснути OK

Подвійний клік на AndroidManifest.xml. Змінюємімя пакету в маніфесті з com.dummy.fooforandroid на your.package.name. Змінюєм minSdkVersion з "8".

Правий клік на your_script_name для відкиття його в текстовому редакторі. Виділяєм скрипт по замовчуванню, замінюєм його своїм власним і зберігаєм. Тоді Clean/Build/Refresh у проекті та запускаєм його. Якщо все пройшло успішно натискаєм File/Export для експорту в apk. Копіюєм apk на телефон та встановлюєм його.

3. Реалізація програмної системи збору та аналізу статистичних даних про контакти

.1 Загальна структура програми

Загальна структура структура програми представлена на схемі (рис.3.1.1).

Рис.3.1.1 Структура програми

Програма розділена на 5 незалежних модулів. Кожен модуль, окрім contacts_stat, виконує збір та аналіз статистичних даних про контакти або повідомлення виконує специфічних аналіз та відображає результати. Програма є високорівнева. Першим рівнем є Android API на мові Java, що надається через Android SDK. Наступним рівнем є середовище SL4A, що є написане на Java, яка надає API для Python. Саме з цього інтерфейсу отримується функції для роботи з контактами та повідомленнями.

3.2. Діаграма класів

При розробці програми мною також було створено діаграму класів (Рис.3.2.1). Діаграма класів це статичне представлення структури моделі[16]. Вона відображає статичні (декларативні) елементи, такі як: класи, типи даних, їх зміст та відношення. Також, діаграма класів може містити позначення деяких елементів поведінки, однак, їх динаміку розкрито в діаграмах інших типів[17].

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

Як видно з діаграми класів між класами є лише один тим зв’язку - агрегація. Тобто деякий клас використовує об’єкт іншого класу. Це дало змогу створити чітку модульну ієрархію класів. Що є дуже важливим при створенні будь-якого ПЗ.

Як видно з рисунку всього програма налічує 5 класів. Кожен клас має певну тематику. Кожен модуль представляє власний графічний інтерфейс, тому у кожному модулю є екземпляр класу android.Android. Кожен клас має зміннну contacts_name так як усі вони працюють з списком контактів. Усі поля є публічними (доступними), так як в мові Python усі поля є доступними.

Клас sociogramm та contacts_exchange не релізований. Призначення contacts_exchange - обмін між двома користувачами контактами. Це дасть змогу збільшити кількість вузлів в соціограмі та більш повно відображати соціо матрицю. Клас sociogramm призначений для графічної побудови соціограми.

3.3.    Опис збору та аналізу даних

Модуль contacts_reiting.py виконує збір даних про контакти, так як показана в лістингу 3.3.1.

Лістинг 3.3.1 Збір даних про контакти в contacts_reiting.py

def collect_contacts(self):

"""collect usefull information about contacts from Android"""_length = self.droid.contactsGetCount().resultcontacts_length == 0:"Error: You have not contacts yet".exit(1)= self.droid.contactsGet(['name','times_contacted'])i in range(len(contacts.result)):.contacts_name = self.contacts_name + [[contacts.result[i]['name'],.result[i]['times_contacted']]]self.contacts_name

Після чого аналізує їх (сортує за кількістю дзвінків) так, як показано в лістингу 3.3.2.

Лістинг 3.3.2 Аналіз контактів в contacts_reiting.py

def sort_contacts(self):

"""sort contacts by times_colled"""i in range(len(self.contacts_name)):= []j in xrange(1, len(self.contacts_name)):= self.contacts_name[j]self.contacts_name[j][1] > self.contacts_name[j-1][1]:.contacts_name[j] = self.contacts_name[j-1].contacts_name[j-1] = tmpself.contacts_name

Модуль activity_chart.py виконує збір даних про контакти, так як показана в лістингу 3.3.3. Тут використовується клас contact_managment з contact_reiting.py, оскільки збір відбувається аналогічно.

Лістинг 3.3.3 Збір даних про контакти в wordstat.py

contacts = contact_reiting.contacts_managment(droid)_all = contacts.get_contacts()

Після чого створює запит до #"588141.files/image027.gif">

Рис.3.4.1 Графік дзвінків

Насправді contacts_stat не малює графік. Модуль activity_chart.py формує запит до сервісу #"588141.files/image028.gif">

Рис.3.4.2 Рейтинг контактів

Графічний інтерфейс представлений вікном з вбудованим списком. Лістинг інтерфейсу представлений лістингом 3.4.2.

Лістинг 3.4.2 Графічний інтерфейс contact_reiting.py

droid = android.Android().dialogCreateAlert("Contacts reiting")= contacts_managment(droid).sort_contacts()= contacts.get_contacts_names().dialogSetItems(menu).dialogShow()= droid.dialogGetResponse()

droid.dialogDismiss()

Модуль contacts_stat.py виводить на екран список усіх функцій проекту. (рис.3.4.3)

Рис.3.4.3 Головне вікно програми contacts_stat

Графічний інтерфейс представлений вікном з вбудованим списком. Лістинг інтерфейсу представлений лістингом 3.4.3.

Лістинг 3.4.3 Графічний інтерфейс contact_stat.py

droid = android.Android().dialogCreateAlert("contacts_stat")= ["Contact reiting",

"Socio matrix",

"Activity chart",

"Word statistic",

"About"].dialogSetItems(items).dialogShow()

response = droid.dialogGetResponse()

Модуль socio_matrix.py виводить на екран список всіх контактів.

Згідно Дж.Як. Морено цей список можна використати як соціоматрицю, що в свою чергу використовується для побудови соціограми. (рис.3.4.4).

Рис.3.4.4 Соціо матриця

Графічний інтерфейс представлений вікном з вбудованим списком. Лістинг інтерфейсу представлений лістингом 3.4.4.

Лістинг 3.4.4 Графічний інтерфейс contact_stat.py

droid = android.Android().dialogCreateAlert("Socio matrix")_table = socio(droid)= socio_table.contacts_to_list().dialogSetItems(items).dialogShow()= droid.dialogGetResponse()

droid.dialogDismiss()

Модуль wordstat.py виводить на екран список слів за частоту вживання у повідомленні. (рис.3.4.5) Нажаль, цей модуль працює виключно на реальному пристрої з Android 2.2.

Рис.3.4.5 Статистика вживання слів у повідомленнях

Графічний інтерфейс представлений вікном з вбудованим списком. Лістинг інтерфейсу представлений лістингом 3.4.5.

Лістинг 3.4.5 Графічний інтерфейс wordstat.py

self.droid.dialogCreateAlert("Word statistic")= self.stat.keys()keys == []:.droid.dialogCreateAlert("Error:",

"Sorry, but you have not any messanges yet.").droid.dialogShow()= self.droid.dialogGetResponse().droid.dialogDismiss().exit(1):

#convert to list= self.stat.keys()= []i in range(len(keys)):j in range(len(keys)):(self.stat[keys[i]] < self.stat[keys[j]]):[i], keys[j] = keys[j], keys[i]= socio_matrix.socio(self.droid)i in keys:+= [i, self.stat[i]].data = data= socio.contacts_to_list().droid.dialogSetItems(items).droid.dialogShow()= self.droid.dialogGetResponse()

self.droid.dialogDismiss()

Модуль about.py виводить на екран список слів за частоту вживання у повідомленні. (рис.3.4.6) Нажаль, цей модуль працює виключно на реальному пристрої з Android 2.2.

Рис.3.4.6 Вікно Про

Графічний інтерфейс представлений вікном з вбудованим списком. Лістинг інтерфейсу представлений лістингом 3.3.6.

Лістинг 3.4.6 Графічний інтерфейс about.py

droid = android.Android()

droid.dialogCreateAlert("About")= ["Name: contacts_stat",

"Author: Yuriy Volokh",

"E-mail: yuriyvolokh@gmail.com",

"Web site: www.yuriyvolokh.co.cc"].dialogSetItems(items).dialogShow()= droid.dialogGetResponse()

droid.dialogDismiss()

інтелектуальний агент android статистичний

3.5 Розробка тестів

Тестування програмного забезпечення це процес, що використовується для виміру якості розроблюваного програмного забезпечення <#"588141.files/image033.gif">                (4.2)

де  - основна місячна ЗП розробника і-ї спеціальності, грн.;

h - коефіцієнт, що визначає розмір додаткової ЗП (приймемо h рівним 0.2); p - середня кількість робочих днів у місяці (22 дні).

Значення денної ЗП розробників:

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

                  (4.3)

де ni - чисельність розробників проекту і-ої спеціальності, чол.; ti, - час, витрачений на розробку проекту працівником і-ої спеціальності, дні.; Сi , - денна ЗП розробника і-ої спеціальності, грн.

Витрати на оплату праці розробників складають:

грн

грн

 грн

 грн

Розрахунок витрат на оплату праці розробників проекту зводимо у таблиці 4.1. Сумарні витрати на оплату праці розробників складають:

грн

Таблиця 4.1 Розрахунок витрат на оплату праці

П/п

Спеціальність розробника

Кількість Розробників чол. (ni)

Час роботи, днів (ti)

Денна ЗП розробника, грн. (Сi)

Витрати на оплату праці, грн. (Зi)

1

Керівник проекту

1

10

114,54

1145,4

2

студент-розробник

1

60

32,72

1963,2

3

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

1

1

93,49

93,49

4

Консультант з питань охорони праці

1

1

114,54

114,54

Всього

3316,63


Величину зборів у спеціальні державні фонди визначають у процентному співвідношенні від суми фонду оплати праці, в тому числі:

·   збори в обов'язкові фонди соціального страхування - 2,1%

грн

·   збори в обов'язкові фонди по безробіттю - 1.9%

 грн

·   збори в обов'язковий державний пенсійний фонд - 32%

 грн

·   збори у фонд страхування від нещасних випадків - 0,2%

 грн

Сумарні витрати на збори у спеціальні державні фонди складають:

 грн

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

Вихідні дані та результати розрахунків оформлені у вигляді таблиці 4.2. Транспортно-заготівельні витрати складають 10 - 15 % від суми витрат на куповані вироби.

Таблиця 4.2 Розрахунок витрат на куповані вироби

№ з/п

Найменування купованих виробів

Марка, тип

К-сть на розробку, шт.

Ціна за одиницю, грн.

Сума витрат, грн.

Сума витрат з урахуванням трансп.-загот. витрат, грн.

1

Диски

CD-R

1

2,50

2,50

3

2

Папір(пачок)

Формат А4

1

30

30

33

Всього





36


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

Нв = 0,3 х 3316,63 = 994,98(грн.).

Інші витрати відображають видатки, які не враховані в попередніх статтях витрат. Вони розраховуються за встановленими процентами (10%) до витрат на оплату праці і складають:

Ів = 0,1 х 3316,63 =331,663(грн.)

Витрати на розробку проектного рішення обчислюємо за формулою:

К1 = З + Вф +Пф+ Нв + Ів                                                            (4.4)

Підставивши результати розрахунків, отримаємо:

К1 = 3316,63+1200,6+1061,32+994,98+331,663= 5704,59 (грн.)

Витрати на відлагодження і дослідну експлуатацію програми визначаємо з формули:

                                                                                 (4.5)

Вартість оренди однієї машино-години роботи ПК у домашніх умовах складає вартість спожитої електричної енергії. Системний блок 250 Ват + монітор 60 Ват = 310 Ват, отже за годину буде спожито 0,56 КВат. На відлагодження і дослідну експлуатацію інформаційної системи затрачено 115 год. Отже, спожито 0,56 * 115 = 64,4 Кват/Год. З розрахунку діючого тарифу (0,23 Грн/Кват) витрати за годину становили 0,56*0,23=0,1288 (грн), а сумарні витрати становили: 64,4 * 0,23 = 14,81 грн.

Таким чином видатки на відлагодження і дослідну експлуатацію становлять:


Таблиця 4.3 Кошторис витрат на розробку проектного рішення

№ пп

Найменування елемента витрат

Сума витрат, грн

Витрати на оплату праці

3316,63

3

Витрати на експлуатацію ПЕОМ

14,81

4

Витрати на куповані вироби

36

2

Збори у спеціальні державні фонди

1200,6

5

Накладні витрати

994,98

6

Інші витрати

331,663

Всього

5894.68


4.2.    Вибір і обґрунтування аналогу

Для вирішення проектної задачі можуть бути використаний аналог YeaYe. Це програма з використанням бібліотек браузера доповненої реальності Wikitude. З іншого боку в дипломній роботі розробляється подібна програма, але у спрощеному вигляді.

1.       Показники призначення;

.1.      Стійкість до некоректних дій користувача;

.2.      Вартість від лагодження;

.        Показники надійності;

.1.      Стійкість до некоректних дій користувача;

2.2.       Стійкість до зовнішніх впливів;

3.       Ергономічність інтерфейсу;

.1.      Зручність експлуатації;

3.2.       Зручність інтерфейсу;

4.       Естетичні показники;

.1.      Раціональність форми;

4.2.       Товарний вигляд;

5.  Показники технологічності;

5.1.    Застосування сучасних технологій;

Таблиця 4.4

Визначення якості розроблювального програмного забезпечення

Назва показника

Одини-ця виміру

Числове значення показника

Диференційна оцінка розроблюваного ПЗ



Проектне рішення

Аналог


1. Показники призначення:





1.1. Час проектування

год

3

3,5

Перевищує

1.2. Об’єм дискового простору

Мб

2

3

Перевищує

2. Показники надійності:





2.1. Стійкість програми до некоректних дій користувача

%

80

85

Не відповідає

3. Ергономічні показники:





3.1. Зручність інтерфейсу

Бали

10

10

Відповідає

4. Естетичні показники:





4.1. Раціональність форми

Бали

8

8

Відповідає

4.2. Товарний вигляд

Бали

6

8

Не відповідає

5. Показник технологічності:





5.1. Застосування сучасних технологій

%

100

100

Відповідає


4.3.    Визначення комплексного показника якості розробки

Комплексний показник рівня якості розроблюваного програмного забезпечення визначається порівнянням його показників з відповідними значеннями показників аналога за формулою:

Πя = Σqя x ai                                                                                   (4.6)

Де ai - коефіцієнт вагомості і-го показника якості, що визначає відносну значущість у формуванні сукупної якості, визначається експертними методами з умови:

Σаі = 1і - показник рівня якості, визначений на основі одного часткового показника за формулами:

і = Πі2 / Πі1                                                                            (4.7)

абоі = Πі1 / Πі2                                                                               (4.8)

де Πі1 і Πі2 числові значення і-го часткового показника якості відповідно аналога і розроблюваного програмного забезпечення.

Розрахунок за формулою (6.7) використовується, якщо збільшення числового значення показника відповідає покращення якості. Розрахунок за формулою (6.8) виконується, якщо покращення якості відповідає зменшенням числового значення показників.

Таблиця 4.5 Визначення комплексного показника рівня якості проектного рішення за параметрами

Назва показника

Одиниця виміру

Числове значення показника

Частковий показник рівня якості

Коефіцієнт вагомості показника

qi*ai



Проектне рішення

Аналог




1. Показники призначення:







1.1. Час проектування

год.

3

3,5

1,17

0,2

0,234

1.2. Об’єм дискового простору

Мб

2

3

1,5

0,2

0,3

2. Показники надійності:







2.1. Стійкість програми до некоректних дій користувача

%

80

85

1,06

0,2

0,212

3. Ергономічні показники:







3.1. Зручність інтерфейсу

Бали

10

10

1

0,15

0,15

4. Естетичні показники:







4.1. Раціональність форми

Бали

8

8

1

0,05

0,05

4.2. Товарний вигляд

Бали

6

8

1,3

0,1

0,13

5. Показник технологічності







5.1. Застосування сучасних технологій

%

100

100

1

0,1

0,1

Підсумок






1,18


4.4.    Визначення експлуатаційних витрат

Річні експлуатаційні витрати визначаємо за формулою:

,                                                                          (4.9)

де N - періодичність експлуатації проектного рішення (аналогу), разів/рік;

ЕП(а) - одноразові експлуатаційні витрати на проектне рішення (аналог), грн.

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

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

Експлуатаційні одноразові витрати на проектне рішення включають вартість підготовки даних і вартість машино-годин роботи ЕОМ.

,                                                                          (4.10)

де ЕП(а) - одноразові експлуатаційні витрати на проектне рішення (аналог), грн.;

Е1П(а) - вартість підготовки даних для експлуатації проектного рішення (аналогу), грн.;

Е2П(а) - вартість машино-годин роботи ЕОМ для виконання проектного рішення (аналогу), грн..

Вартість підготовки даних для роботи на ЕОМ визначаємо з формули:

Е1П(а) =                                                                           (4.11)

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

Сі - годинна ставка співробітника і-ої категорії, грн./год.

Основна місячна заробітна плата оператора ЕОМ складає 1200 грн./міс.

Величину зборів у спеціальні державні фонди визначають у процентному співвідношенні від суми фонду оплати праці, в тому числі:

·   збори в обов'язкові фонди соціального страхування - 2,1%

CC = 1200 х 0,021 = 25,2 (грн.)

·   збори в обов'язкові фонди по безробіттю - 1.9%

ФБ = 1200 х 0,019 = 22,8 (грн.)

·        збори у обов'язковий державний пенсійний фонд - 32 %

ПФ = 1200 х 0,32 = 384 (грн.)

·   збори у фонд страхування від нещасних випадків - 0,2%

ФС=1200 х 0,002=2,4 (грн.)

Сумарні витрати на збори у спеціальні державні фонди становлять

ВФ = 25,2 + 22,8 + 384 + 2,4 = 434,4 (грн.)

Тоді основна місячна заробітна плата оператора ЕОМ з врахуванням виплат у державні фонди буде становити 1200 + 434,4 = 1634,4 (грн.).

Кількість робочих годин у місяці - 176 (22 дні по 8 год.). Тоді середньогодинна ставка оператора дорівнює: С = 1634,4 / 176 = 9,29 (грн.)

Вихідні дані та результати розрахунків витрат на підготовку даних для експлуатації на ЕОМ зводимо у таблицю 6.6.

Таблиця 4.6 Розрахунок витрат на підготовку даних для роботи на ЕОМ

Категорія персоналу

Чисельність співробітників і-тої Категорії, чол.

Час роботи співробітників і-тої категорії, год.

Середньогодина ЗП співробітника і-тої категорії, грн.

Витрати на підготовку даних, грн.

Проектне рішення Адміністратора

1

1

9,29

9,29

Всього:

9,29

Аналог Оператор

1

1,5

9,29

13,93

Всього:

13,93


Витрати на експлуатацію ЕОМ визначаються за формулою:

Е2П(а) = Sm * t,                                                                             (4.12)

де t - витрати машинного часу для реалізації проектного рішення- вартість однієї машинної години роботи ЕОМ, грн./год.

Е2П = 0,1288 x 1= 0,1288 грн.

Е2A = 2,5 x 1,5= 3,75 грн.

Таким чином, одноразові експлуатаційні витрати по проектному рішенню складають:

0,1288 + 9,29 = 9,42 грн.

3,75 + 13,93 = 17,68 грн.

Тоді річні експлуатаційні витрати складають:

В(е)П = 9,42 x 232 = 2185,44 грн.

В(е)A = 17,68 x 232 = 4101,76 грн.

4.5.    Розрахунок ціни споживання проектного рішення

Ціна споживання (Цс) - це витрати на придбання і експлуатацію проектного рішення за весь строк його служби:

ЦС(П) = ЦП + В(е)П pv,                                                                 (4.13)

де ЦП - ціна придбання проектного рішення, грн.:

ЦП = K* (1+Пр/100)+Ко +Кк,                                                                 (4.14)

де Пр - норматив рентабельності (30%);

Ко - витрати на прив'язку та освоєння проектного рішення на конкретному об'єкті (дорівнює нулю);

Кк - витрати на доукомплектування .технічних засобів на об'єкті (дорівнює нулю).

Таким чином, ціна придбання проектного рішення дорівнює:

ЦП = 5894,68 х (1+0,3) = 7663,08 (грн.)

В(е)П pv - теперішня вартість витрат на експлуатацію проектного рішення (за весь час його експлуатації), грн.:

В(е)П pv = ,                                                                      (4.15)

де В(е)П_t - річні експлуатаційні витрати в t-ому році, грн.;

Т - строк служби проектного рішення, років; R - річна ставка проценту банків (приймається рівним 0,08).

Якщо впродовж всього строку експлуатації В(е)П_t = const, то :

В(е)П pv = В(е)П * = pv * В(е)П,                                              (4.16)

де pv - коефіцієнт дисконту на період Т, який визначається залежно від процентної ставки R і періоду експлуатації Т (для нашого випадку Т = 4 роки).

Для даних R і Т отримаємо наступне значення коефіцієнта дисконту: pv=2,58.

Тоді ціна споживання проектного рішення дорівнюватиме:

Цс(П) = 3413,62 + 2185,44 х 2,58 = 9052,055 (грн.).

Аналогічно визначається ціна споживання для аналогу:

Цс(а) = 4101,76 х 2,58 = 10582,540(грн.)

4.6.    Визначення показників економічної ефективності

Коефіцієнт конкурентноздатності проектного рішення за ціновими параметрами:

Ккз = Кяк x Цс(а) / Цс(П) ;                                                            (4.17)

Ккз = 1,18 x 10582,540 / 9052,055.

Економічний ефект в сфері експлуатації:

Еекс = В(е)а - В(е)П ;                                                                      (4.18)

Еекс =4101,76 - 2185,44 = 1916,32 (грн.)

Розраховуємо строк окупності витрат на проектування рішення:

Ток = К / Еекс ;                                                                              (4.19)

Ток = 3413,62 / 1916,32 = 1,78

Оскільки Еекс>0, то розраховується додатковий економічний ефект в сфері експлуатації:

Еекс = Еекс x (1+R)Т ,                                                               (4.20)

де в нашому випадку Т=4;

Еекс = 1916,32 * (1+0,1)4 = 2805,684 (грн.) .

і додатковий економічний ефект в сфері експлуатації:

;                                                                    (4.21)

=8893,641

Таблиця 4.8 Показники економічної ефективності проектного рішення

№ з/п

Найменування показників

Одиниця вимірю-вання

Значення показників




Базовий варіант

Новий варіант

1

Капітальні вкладення

грн.

-

3413,62

2

Ціна придбання

грн.

0

4437,70

3

Річні експлуатаційні витрати

грн.

4101,76

2185,44

4

Ціна споживання

грн.

10582,540

9052,055

5

Економічний ефект в сфері проектування

грн.

-

-

6

Додатковий ефект в сфері проектування

грн.

-

-

7

Економічний ефект в сфері експлуатації

грн.

-

1916,32

8

Додатковий ефект в сфері експлуатації

грн.

-

8893,641

9

Коефіцієнт конкурентноздатності


-

1,38


Висновок

В даному розділі дипломної роботи проведена економічна оцінка проектного рішення. Визначений в результаті проведених розрахунків показник конкурентноздатності проектного-рішення ККЗ = 1,38 > 1. Отже, дане проектне рішення є конкурентноздатним і його впровадження є доцільним. Якість даного проекту є достатньою для створення високого рівня конкурентоспроможності в виділенні специфічній комірці на ринку збуту. Проведені розрахунки показують, що даний проект є економічно вигідний в усіх аспектах отримання фінансової вигоди.

5.    
Охорона праці

.1 Характеристика об’єкту дослідження

Оскільки програма Персональний помічник працює на мобільному пристрої то при її використанні існує декілька небезпек для здоров’я людини:

-      Погіршення зору

Компютерні монітори зробили великий шлях на шляху своєї еволюції і шкідливий вплив сучасни моніторів на зір не спів мірний з впливом перших прототипів. Однак шкода для зору від використання LCD моніторів все ж таки є. Єдиним способом боротьби з цим є використання більш сучасних мобільних пристроїв.

-      Вплив електромагнітних хвиль

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

5.2 Вплив електростатичних та електромагнітних полів на оргнанізм людини

Електромагнітні хвилі - взаємопов'язане поширення в просторі змінюються електричного і магнітного полів. Сукупність цих полів, нерозривно пов'язаних один з одним, називається електромагнітним полем.

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

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

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

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

Другий встановлює допустимі рівні електромагнітних полів радіочастот (ЕМП) на робочих місцях персонала, що здійснює роботи пов’язані з джерелами ЕМП і вимогами до проведення контролю.

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

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

Їх рівень регулюється ГОСТ 12.1.045-84 « Електростатичні поля».

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

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

Джерелами електростатичного поля та електромагнітних випромінювань в широкому діапазоні частот є персональні електронно-обчислювальні машини (ПЕОМ), відео дисплейні термінали (ВДТ) на електронно-променевих трубках, які використовуються як у промисловості, наукових дослідженнях, так і в побуті. Головну небезпеку для користувачів представляє електромагнітне випромінювання монітора і статичний електричний заряд на екрані.

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

Механізм впливу електромагнітних хвиль на біологічні об'єкти дуже складний і недостатньо вивчений. Цей вплив можна подати так: у постійному електричному полі молекули, з яких складається тіло людини, поляризуються і орієнтуються в напрямі поля: у рідинах, у тому числі в крові, під електричним впливом з'являються іони і, як наслідок, струми.

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

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

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

Органи і тканини людини, що володіють слабко вираженою терморегуляцією, більш чутливі до опромінення (мозок, очі, нирки <http://ua-referat.com/„N„y„‚„{„y>, кишечник). Перегрівання тканин і органів веде до їх захворювань, а підвищення температури тіла на 10С і вище неприпустимо з-за можливих незворотних змін.

Негативний вплив електромагнітного поля викликає оборотні, а також незворотні зміни в організмі: гальмування рефлексів <http://ua-referat.com/„Q„u„†„|„u„{„ѓ>, зниження кров'яного тиску (гіпотонія), уповільнення скорочень серця (брадикардія), зміна складу крові в бік збільшення числа лейкоцитів <http://ua-referat.com/„L„u„z„{„Ђ„€„y„„„y> і зменшення еритроцитів, помутніння кришталика ока (катаракта).

Суб'єктивні критерії негативного впливу електромагнітного поля - головні болі, підвищена стомлюваність, дратівливість, порушення сну, задишка, погіршення зору, підвищення температури тіла.

Вплив надвисоких частот (НВЧ) - випромінювання інтенсивністю більше 100 Вт/м2 може призвести до помутніння кришталика ока та втрати зору. При тривалому опроміненні помірної інтенсивності (10 Вт/м2) можливі порушення з боку ендокринної системи, зміна вуглеводного і жирового обміну, що супроводжується схудненням, підвищення збудливості, зміна ритму серцевої діяльності, зміни в крові.

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

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

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

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

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

Вплив випромінювання лазера на організм людини до кінця не вивчено. При роботі лазерних установок на організм людини можуть впливати наступні небезпечні та шкідливі фактори: іонізуюче випромінювання, інфрачервоне випромінювання, шум, вібрація. При дії лазерного випромінювання на організм людини виникають біологічні ефекти. Розрізняють первинні і вторинні біологічні ефекти, що виникають під дією лазерного випромінювання. Первинні зміни відбуваються в тканинах людини безпосередньо під дією випромінювання (опіки <http://ua-referat.com/„O„Ѓ?„{„y>, крововиливи), а вторинні (побічні явища) викликаються різними порушеннями в людському організмі, що розвилися внаслідок опромінення.

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

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

Підсумки до розділу

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

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

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

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

Висновки

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

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

3.       Поведено вибір інструметів розробки пограмної системи збору та аналізу статистичних даних про контакти користувача. Проведено: вибір мови програмування та середовища, встановлення Android SDK, створення файлів встановлення додатків Android з файлів скриптів на мові Python (*.py).

4.       Розроблено пограмну систему збору та аналізу статистичних даних про контакти користувача. Розроблено: загальну структуру програми, діаграму класів, інтерфейс користувача та тести.

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

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

1. Левин К. Теория поля в социальных науках / [Пер. Е. Сурпина]. - СПб.: Речь, 2000.

. Морено, Я. Л. Социометрия: Экспериментальный метод и наука об обществе / Пер. с англ. А. Боковикова. - Москва: Академический Проект, 2001.

3. Голощапов А. Google Android: программирование для мобильных устройств. - CПб.: БХВ-Петербург, 2010. - С. 448.

. Роджерс Р., Ломбардо Д. Android. Разработка приложений. - Москва: ЭКОМ Паблишерз, 2010. - С. 400. - ISBN 978-5-9790-0113-5

. Коматинэни С., Маклин Д., Хэшими С. Google Android: программирование для мобильных устройств = Pro Android 2. - 1-е изд.. - CПб.: Питер, 2011. С. 736.

6. Бизли, Дэвид М. Python. Подробный справочник, 4-е издание. - Перевод с английского. - СПб.: Символ-Плюс, 2010. - 864 с.

. Бизли, Дэвид М. Язык программирования Python. Справочник. - К.: ДиаСофт, 2000. - 336 с.

. Лейнингем ван Иван. Освой самостоятельно Python за 24 часа = Teach Yourself Python in 24 Hours. - М.: Вильямс, 2001. - С. 448.

. Лутц, Марк. Программирование на Python: Перевод с английского (+CD). СПб.: Символ-Плюс, 2002. - 1136 с.

. Пилгрим М. Вглубь языка Python

. Россум ван Г., Дрейк Ф. Л. Дж., Откидач Д. С. и др. Язык программирования Python. - СПб.: АНО «Институт логики». Невский Диалект, 2001. - 189 с.

12. Саммерфилд, Марк. Программирование на Python 3. Подробное руководство. - Перевод с английского. - СПб.: Символ-Плюс, 2009. - 608

. Сузи, Р. А. Python. Наиболее полное руководство (+CD). - СПб.: БХВ-Петербург, 2002. - 768 с.

. Сузи Р. А. Язык программирования Python: Учебное пособие. - М.: ИНТУИТ, БИНОМ. Лаборатория знаний, 2006. - 328 с.

. Jordan L., Greyling P. Practical Android Project: après, 2011. - 424 с.

6. Джозеф Шмуллер. Освой самостоятельно UML 2 за 24 часа. Практическое руководство = Sams Teach Yourself UML in 24 Hours, Complete Starter Kit. - М.: Вильямс <http://ru.wikipedia.org/w/index.php?title=%D0%92%D0%B8%D0%BB%D1%8C%D1%8F%D0%BC%D1%81_(%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE)&action=edit&redlink=1>, 2005. - 416 с

17. Грейди Буч, Джеймс Рамбо, Айвар Джекобсон. Язык UML. Руководство пользователя = The Unified Modeling Language user guide. - 2-е изд. - М., СПб.: ДМК Пресс, Питер, 2004. - 432 с.

. Калбертсон Р., Браун К., Кобб Г., Быстрое тестирование. - М.: «Вильямс», 2002. - 374 с.

. Синицын С. В., Налютин Н. Ю. Верификация программного обеспечения. М.: БИНОМ, 2008. - 368 с.

Додаток

Лістинг програми

#activity_chart.py

"""

@description: Module that show chart about contacts

@author: Yuriy Volokh, 2011

"""

androidcontact_reitingstring

chart:

"""Class that used for creating chart"""__init__(self, contacts_name):

"""Default constructor""".chart_type = "cht=lc".base_url = "http://chart.googleapis.com/chart?".chart_data = "chd=t:".chart_size = "chs=250x100".chart_labels = "chl=".contacts_name = contacts_name

get_chart_url(self):

"""generate url for http://chart.googleapis.com/ service"""

#generate labelsi in range(0,len(self.contacts_name),2):(i != len(self.contacts_name) - 1):.chart_labels += string.split(self.contacts_name[i], " ")[0] + "|":.chart_labels += string.split(self.contacts_name[i], " ")[0]

#generate datai in range(1,len(self.contacts_name),2):(i != len(self.contacts_name) - 1):.chart_data += str(self.contacts_name[i]) + ",":.chart_data += str(self.contacts_name[i])= self.base_url + self.chart_type + "&" + self.chart_data + "&"+= self.chart_size + "&" + self.chart_labelsurltest_chart_url(self):

"""Test for chart class"""= ["Victor Janukovych", 2,

"Victor Yuschenko", 5,

"Bill Clinton", 3].contacts_name = data_return = "http://chart.googleapis.com/chart?cht=lc&chd=t:2,5,3&chs=250x100&Janukovych|Yuschenko|Clinton"_url = self.get_chart_url()url == returned_url

main():

"""Default main function for module activity_chart.py"""= android.Android()= contact_reiting.contacts_managment(droid)_all = contacts.get_contacts()= chart(contacts_all)= chrt.get_chart_url().webViewShow(url)

__name__=="__main__":()

#wordstat.py

"""

@description: Module that collect info about words in messages

@author: Yuriy Volokh, 2011

"""

androidstringsyssocio_matrix

statistic:

"""Class that used for collecting info"""__init__(self):

"""Default constructor""".droid = android.Android().messanges = self.droid.smsGetMessanges(False).result

get_stat(self):

"""Function that collect statistic"""= [].stat = {}self.messanges != None:i in self.messanges:= string.split(i, " ")j in words:not self.stat.has_key(j):.stat[j] = 1:.stat[j] = self.stat[j] + 1show(self):

"""Function that display statistic""".droid.dialogCreateAlert("Word statistic")= self.stat.keys()keys == []:.droid.dialogCreateAlert("Error:",

"Sorry, but you have not any messanges yet.").droid.dialogShow()= self.droid.dialogGetResponse().droid.dialogDismiss().exit(1)

:

#convert to list= self.stat.keys()= []i in range(len(keys)):j in range(len(keys)):(self.stat[keys[i]] < self.stat[keys[j]]):[i], keys[j] = keys[j], keys[i]= socio_matrix.socio(self.droid)i in keys:+= [i, self.stat[i]].data = data= socio.contacts_to_list().droid.dialogSetItems(items).droid.dialogShow()= self.droid.dialogGetResponse().droid.dialogDismiss()test_wordstat(self):

"""Test for statistic"""_messange1 = "today we have a race You with us"_messange2 = "Race today at 04:00 am".messanges = [test_messange1, test_messange2]= {"today": 2, "race":2, "we":1, "have":1,

"a":1, "You":1, "with":1, "us":1, "at":1,

"04:00":1, "am":1}.get_stat()_stat = self.statstat == self.statmain():

"""Default main function for wordstat.py module"""= statistic().get_stat().show()

__name__=="__main__":()

#socio_matrix.py

"""

@description: Module for view socio matrix from contacts

@author: Yuriy Volokh, 2011

"""

androidcontact_reiting

socio:

"""class used to create socio matrix"""__init__(self, droid):= contact_reiting.contacts_managment(droid).data = contacts.get_contacts()contacts_to_list(self):

"""list of one lenght string: self.data = ['Yushchenko', 5, 'Yanukovych', 6]: ['Yushchenko 5',

'Yanukovych 6']

"""

#find line length= 0i in range(len(self.data) / 2):(len(self.data[i * 2]) + len(self.data[i * 2 + 1]) > maxlenght):= len(self.data[i * 2]) + len(self.data[i * 2 + 1])= []= ""i in range(len(self.data) / 2):= self.data[i * 2](maxlenght != len(item) + len(str(self.data[i * 2 + 1]))):+= " "+= self.data[i * 2 + 1]+= [item]itemstest_socio_matrix(self):

"""Test for socio matrix class"""= ["Victor Janukovych", 2,

"Victor Yuschenko", 5,

"Bill Clinton", 3]_result = ["Victor Janukovych 2",

"Victor Yuschenko 5",

"Bill Clinton 3"].data = data_data = contacts_to_list()returned_data == data_result

main():

"""Default main function in module"""= android.Android().dialogCreateAlert("Socio matrix")_table = socio(droid)= socio_table.contacts_to_list().dialogSetItems(items).dialogShow()= droid.dialogGetResponse()

.dialogDismiss()

__name__=="__main__":()

#contacts_stat.py

"""

@description: GUI for statistic utilyties for Android

@author: Yuriy Volokh, 2011

"""androidgui:main(self):

"""Default main function in module"""= android.Android().dialogCreateAlert("contacts_stat")= ["Contact reiting",

"Socio matrix",

"Activity chart",

"Word statistic",

"About"]

.dialogSetItems(items).dialogShow()= droid.dialogGetResponse()(response.result['item'] == 0):contact_reiting_reiting.main()(response.result['item'] == 1):socio_matrix_matrix.main()(response.result['item'] == 2):activity_chart_chart.main()(response.result['item'] == 3):wordstat.main()(response.result['item'] == 4):about.main().dialogDismiss()

__name__=="__main__":= gui().main()

#contact_reiting.py

"""

@description: Module for view most called contacts

@author: Yuriy Volokh, 2011

"""

android

contacts_managment:

"""class that used for manupulations with contacts"""__init__(self, droid):

"""default constructor""".contacts_name = [].droid = droid.collect_contacts()

#self.sort_contacts()

collect_contacts(self):

"""collect usefull information about contacts from Android"""_length = self.droid.contactsGetCount().resultcontacts_length == 0:"Error: You have not contacts yet".exit(1)= self.droid.contactsGet(['name','times_contacted'])i in range(len(contacts.result)):.contacts_name = self.contacts_name + [[contacts.result[i]['name'],.result[i]['times_contacted']]]

self.contacts_name

sort_contacts(self):

"""sort contacts by times_colled"""i in range(len(self.contacts_name)):= []j in xrange(1, len(self.contacts_name)):= self.contacts_name[j]self.contacts_name[j][1] > self.contacts_name[j-1][1]:.contacts_name[j] = self.contacts_name[j-1].contacts_name[j-1] = tmp

self.contacts_nameget_contacts_names(self):

"""return all contacts names (only names)"""= []i in range(len(self.contacts_name)):= names + [self.contacts_name[i][0]]namesget_contacts(self):

"""return all contacts"""= []i in range(len(self.contacts_name)):= items + [self.contacts_name[i][0], self.contacts_name[i][1]]itemstest_contact_managment(self):

"""test for contact managment class"""_input = [["Victor Janukovych", 2],

["Victor Yuschenko", 5],

["Bill Clinton", 3]]_result = [["Victor Yuschenko", 5],

["Bill Clinton", 3],

["Victor Janukovych", 2]].contacts_name = contacts_input.sort_contacts()_result = self.get_contacts()contacts_result == returned_result

main():

"""main method for this module"""= android.Android().dialogCreateAlert("Contacts reiting")= contacts_managment(droid).sort_contacts()= contacts.get_contacts_names().dialogSetItems(menu).dialogShow()= droid.dialogGetResponse()

.dialogDismiss()

__name__=="__main__":()

#about.pyandroidgui:main(self):

"""Default main function in module"""= android.Android().dialogCreateAlert("About")= ["Name: contacts_stat",

"Author: Yuriy Volokh",

"E-mail: yuriyvolokh@gmail.com",

"Web site: www.yuriyvolokh.co.cc"]

.dialogSetItems(items).dialogShow()= droid.dialogGetResponse().dialogDismiss()main():= gui().main()__name__=="__main__":()

Похожие работы на - Програмна система збору та аналізу статистичних даних про контакти користувача на основі ОС Android

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!