Якщо з 10 або 11-розрядного зсувного регістру видана вся інформація(зсувний регістр передачі пустий), дані з UDR надсилаються у зсувний регістр. У цей час встановлюється біт UDRE(USART Data Register Empty) регістру статуса USART(UCSRA). При встановленому у стан 1 біті UDRE USART готовий прийняти наступний символ. Запис в UDR очищує біт UDRE. У цей самий час, коли дані пересилаються з UDR у 10(11)-розрядний зсувний регістр, біт 0 зсувного регістру скидається у стан 0(стан 0-стартовий біт), а біт 9 та 10 встановлюється у стан 1(стан 1 - стоповий біт). Також приємопередавач має налаштування для організації приємопередавача 9 бітних символів, налаштувати швидкість передачі можна за допомогою спеціального бод-генератора. Бод-генератор представляє собою дільник, генеруючий імпульси передачі із частотою, яка визначається виразом:
Де BAUD - частота в бодах, Fosc - частота тактового генератору CPU, UBRR - вміст регістру UBRRH та UBRRL. Для того, щоб можна було точно обирати усі швидкості прийому/передачі потрібно використовувати спеціальні частоти. Прийом виконується асинхронно, коли регістр данних заповнюється прийнятим байтом у регістрі UCSRA встановлюється біт RXC. Також USART підтримує обробку переривань по прийому та по передачі. Більш детальна інформація знаходиться у даташиті, який можна знайти на сайті виробника http:\\www.atmel.com.
3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕСПЕЧЕННЯ
3.1 Розробка програмного забеспечення мікроконтроллера
Розробка програмного забеспечення мікроконтроллера починається із розподілення його ресурсів для створення ПО в цілому. Оскільки мікроконтроллер використовується у складі стенда, треба взяти на увагу ресурси, які займає стенд, і оскільки він представляє собою закінчений пристрій, треба знайти вільні ресурси, які можна використовувати, без внесення змін у схему або монтажу печатної плати. На рис. 11 зображена принципова схема стенду. Стенд має два роз'єма розширення, один системний(X1) другий періферцйний(X10). Періферійний має 2 порта які працюють на вихід, 1 порт мікроконтроллера який просто виведений на раз'єм розширення і 1 порт який реалізований у системному контроллері. Для реалізації логічного аналізатора можна використати порт мікроконтроллера, який виведений на роз'єм розширення, а для реалізації генератора слів можна використати порт А стенду. Схема розподілення ресурсів стенду показана на рис. 12.
Рис. 12 Схема розподілення ресурсів стенду
3.1.1 Розробка логічного аналізатора
Найпростіший алгоритм, за яким можна зробити реестрацію вхідної послідовності, це лінійна послідовність команд, які читають порт та запам'ятовують данні у регістри. Всьго у мікроконтроллера ATMega8515 32 регістри, тому алгоритм дозволяє прочитати та зберегти 32 стани порту, а так як команда читання порту у регістр(in R0, PINB) займає 1 такт, такий код виконується із максимальною швидкістю. Швидкість буде дорівнювати швидкості тактового генератору мікроконтроллера - 7 372 800 Гц.
Рис 13. Блок схема алгоритму найшвидшої реестрації
Наступний алгоритм менш швидкий але дозволяє зареєструвати 512 станів вхідної послідовності. Він аналогічний попередньому тільки після кожної команди читання порту додається команда збереження у пам'ять. Швидкість виконання такого алгоритму дорівнює 7 372 800/3 = 2 457 600 Гц. Незважаючи на швидкісь код такого алгоритму займає багато пам'яті програм.
Наступний алгоритм дозволяє зареєструвати 1024 стани вхідної послідовності, але має ще менш швидкі характеристики, та займає ще більший об'єм програмної пам'яті мікроконтроллера. Швидкість такого алгоритму 7 372 800/5 = 1 474 560 Гц.
Наступний алгоритм виконує аналогічні дії попередньому але займає набагато менше пам'яті программ. Він складається із 4-ох послідовно розташованих однакових циклів. Це зв'язано з тим, що для підсумку необхідної кількості операцій використовується однобайтовий лічильник. 1024/256 = 4 послідовно розташованих циклів. Швидкість такого алгоритму 7 372 800/8 = 921 600 Гц. Для того щоб зменшити об'єм коду потрібно використати 2-ох байтовий лічильник, але тоді швидкість зменшиться до 7 372 800/9 = 819 200 Гц.
Можна піти іншим шляхом. 1024 у HEX коді це 0400h. А якщо початкова адреса пам'яті данних буде кратною 0100h, для перевірки того, що цикл був виконаний 1024 рази потрібно перевіряти тільки старший байт адреси.
Наступний алгоритм реалізує передпускову реєстрацію. Оскільки невідомо, коли з'явиться необхідна зміна стану пускового каналу, необхідно постійно реєструвати вхідну послідовність. Пам'ять у такому разі треба використовувати по кільцю рис. 15.
Коли виникає необхідна зміна стану пускового каналу, починається відлік зареєстрованих станів, він дорівнює:
1024 - [глибина передпускової реєстрації] (байт)
Рис. 14 Блок схема алгоритму реєстрації, яка виконується за допомогою циклів
Рис. 15 Використання пам'яті по кільцю
Коли вказівник стає на адрес 0700h, вказівник перенаправляється на адресу 0300h і реєстрація продовжується доки кількість зареєстрованих байт не дорівнюватиме 1024. Якщо зміна стану довго не відбувається мікроконтроллер увійде до вічного циклу тому передбачено перевірку на прийом команди “СТОП”. Також алгоритм реалізує керування швидкістю реєстрації. Оскільки для виконання затримки використовується таймер, для перевірки переповнення таймеру треба читати регістр стану, потім перевіряти чи виникла подія. Якщо подія виникла - скинути подію і перезапустити таймер, а інакще - перейти на читання регістру стану таймеру і т.д. Це призводить до того, що реакція на таймер буде залежити від швидкості, яка некратна швидкості 1 циклу перевірки таймеру на наявність події. Але з аналізу лабораторного практикуму необхідні швидкості реєстрації дорівнюють 50 гц тому розбіжність в декілька тактів не буде впливати на зареєстровану послідовність.
Всі алгоритми підпрограм аналізу знаходяться у додатках.
3.1.2 Розробка генератораслів
Генератор слів повинен використовувати порт А стенду. Доступ до цього порту можна отримати тільки завдяки звертанню до пам'яті, за адресою 8000h, це виконується за 4 такти. Можна налагодити мікроконтроллер для того, щоб виконувати доступ за 3 такти, а ле для роботи із пам'ятю потрібно знову переналогодити мікроконтроллер на 4 такти. А операції переналагоджування займуть 2 такти, це призведе до зменшення швидкості алгоритму.
Найшвидший і невеликий за обсягом програмного коду алгоритм читання з пам'яті та видачі у порт зображений на рис. 16
Рис 16. Блок схема алгоритму генератора слів(швидкий варіант)
Цей алгоритм не надає змогу змінювати швидкість генератору, та може працювати тільки у режимі одноразової генерації.
Наступний алгоритм дозволяє виконувати всі три режими: циклічний, одноразовий та шаговий; для перших двох дозволяє міняти швидкість генерації. Швидкість цього алгоритму набагато менша ніж у попередньому випадку, але відповідає технічному завданню. На початку алгоритму налагоджується початкова адреса ГС, потім перевіряється необхідність запуску таймера(пошаговий режим не використовує таймер). Далі йде тіло циклу, умова виходу з якого це, кінець виданих данних, або натиснення кнопки стоп у режимі цикл. Алгоритм зображений на рис. 17.
Рис. 17 Блок схема алгоритму генератора слів(повнофункціональний варіант)
3.1.3 Розробка алгоритму приємо передавача
Зв'язок забеспечується за допомогою синхронного/асинхронного приємо передавача RS-232. Але оскільки мікроконтроллер працює від блоку живлення 5 вольт, для зв'язку з ПК необхідний перетворювач рівня сигналів(рівень сигналів RS-232 - +/-12 В). Цей перетворювач існує на платі стенду. Тому для налагодження роботи із портом достатньо настроїти стенд записавши за адресою С000h число 1, це вибір другого режиму роботи послідовного порта(див. Табл. 1).
Пристрій USART має сигнали RXD та TXD, сигнал прийому та передачі відповідно. Пристрій підтримує стандартні швидкості і налашьовується за допомогою регістру UBRR. Оскільки периферія мікроконтроллеру тактується від загального тактового генератору, то швидкість передавання може бути із похибкою. Для того, щоб похибки не було у тактовому генераторі використовують спеціальні кварци із частотами кратними швидкостям передачі. Стенд EV8031 має кварц із частотою 7,3728 МГц, що відповідає 0%-ній похибці на усіх швидкостях.
Алгоритм налагодження USART складається з налагодження режиму роботи USART. Це поперше кількість стартових, стопових біт, перевірка на додавання або недодавання, кількість інформаційних біт, дозволити/ заборонити прийом і дозволити/заборонити передачу, дозволити/ заборонити обробку переривань за закінченням приймання або за закінченням передавання. Далі налагоджується швидкість записом у регістр UBRR обчисленого або взятого із таблицї даташиту [1]. У пороцессі розробки була знайдена помилка в роботі мікроконтроллера: він пошкоджує данні регістру UBRR, при виконнанні запису у інші регістри, які відносяться до налагоджування USART. Було прийнято рішення встановлювати швидкість USART останньою операцією його налагодження. В нашому випадку перевірка за додатними/недотаними числами не використовується, кількість інформаціонних біт - 8, 1 стартовий та 1 стоповий біт. Для початку передавання у порт данних необхідно зачекати доки попередній сеанс передачі закінчиться. Це виконується перевіркою біта UDRE регістру UCSRA. Далі для початку передавання байту потрібно записати його у регістр UDR. Після цього USART у фоновому режимі починає передачу і зупиняється коли байт переданий.
Для передачі масиву данних необхідно виконувати такі сеанси для кожного байту масиву.
Прийом по USART більш складний за передачу. Справа у тому, що прийом повинен бути у фоновому режимі, інакше це треба буде робити у головному циклі програми. Після прийому першого байту, треба чекати і приймати байти тільки на час називаємий таймаут, інакше якщо зв'язок раптом обірветься, або прийнятий байт буде результатом завади на лінії передачі, мікроконтроллер увійде у бекінечний цикл(зависання програми). Для цього USART має переривання RXC(Recieve complete). Коли байт надходить до рнгістру UDR спрацьовує переривання, мікроконтроллер починає виконувати обробник переривання. У обробнику перевіряється наявність першого байту команди, і якщо перший байт вірний, наступного разу виконується ініціалізація таймеру на час таймауту(цей час обчислюєтся згідно зі швидкістю прийому/передачі і кількості приймаємих байт) і піднімається прапорець, згідно з яким починається налаштовування приймаємих байт у пам'яті. Прийом продовжується доки не спрацює переривання за таймером, налаштованим на час таймауту. Обробник переривання таймеру зупиняє відлік і виконує діагностику прийнятої послідовності. Згідно з нею налаштовуються відповідні регістри, флаги і обчислюється код за яким виконується перехід до необхідного алгоритму.
3.1.4 Розробка головного циклу програми
У головному циклі програми виконується перевірка на наявність прийнятої послідовності. Якщо послідовність була прийнята і розпізнана як придатна до виконання виконується налаштовування необхідних пристроїв мікроконтроллера і перехід до необхідної підпрограми. Після виконання необхідного коду у випадку логічного аналізатора виконується передача зареєстрованих данних, у разі генератора слів відповідь, що код виконаний.
3.2 Розробка програмного забеспечення ПК
Розробка програмного забезпечення ПК починається з вибору мови програмування, та визначення, які ресурси комп'ютера і ОС необхідні для реалізації програми. Тому, для розробки програмного забеспечення була обрана мова програмування Delphi 7, а для звертання до ком порту використаний компонент SerialNG. Код цього компонента відкритий, не забороняється його використання у комерційних проектах. Також для відображення проаналізованих данних використаний стандартний компонент Chart, він дозволяє створювати графіки, та налагоджувати способ виводу. Інщі компоненти використані у програмі є загальновідомими і опис іхнього призначення можна знайти у [3].
Розробка прграмного забеспечення для ПК починається із розробки інтер фейсу користувача. Інтерфейс логічного аналізатора повинен мати елементи керування вибором частоти, вибором пкскового каналу і виглядом сиглалу запуску(за підвищенням або спадом). Головне, користувачеві повинно бути надано діаграму усіх 8-ми каналів за часом, та елементи, які дозволяють виконувати зручний перегляд та пошук необхідних послідовностей. Загальний вигляд розробленого інтерфейсу наданий на рис. 18.
3.2.2 Розробка інтерфейсу генератора слів
Інтерфейс користувача генератору слів повинен мати елементи керування режимом роботи генератора: циклічний, одноразовий та шаговий. Також він повинен дозволяти змінювати швидкість генерації, запускати та зупиняти генерацію. Головним елементом інтерфейсу генератора, є список вводу необхідної послідовності. Він повинен передбачати помилки при вводі шістнадцятирічних чисел, та налаштовуванню діапазонів. Загальний вигляд інтерфейсу користувача зображений на рис. 19.
Рис. 19 Інтерфейс користувача генератору слів
Також мова інтерфейсу яка була використана це російська.
3.2.3 Розробка інтерфейсу прийому/передачі
В усіх випадках, зв'язок виконаний через COM порт. Як і випадку із мікроконтроллером, необхідно спочатку налагодити порт. Сучасні ОС не дозволяють отримувати безпосередній доступ до портів вводу виводу, метою цього є боротьба за беспеку. Але вони надають спеціальні функції для реалізації таких дій. В данному випадку була обрана ОС Windows 2000 або XP. Вона має необхідний обсяг сервісних функцій для реалізації данної дії, їх називають API. Але при розробці за допомогою API виникли деякі проблеми. Більшість яких була зв'язана із великим обсягом часу для розробки стійкого коду роботи із послідовним портом. Були отримані деякі показники, але програма приймала сбійні байти, і інколи зависала. Тому було прийнято рішення використати компонент. Delphi дозволяє створювати і використовувати візуальні компоненти. Ці компоненти спрощують програмування, якщо при розробці непотрібні нестандартні компоненти, але незабороняється іх створювати або встановлювати. В інтернеті можна знайти безліч похідних кодів і багато з них можна використовувати вільно. Одним з таких компонентів є компонент SerialNG. Оскільки останнім часом велика кількість файлів “мігрує” з серверу на сервер, місце знаходження данного компоненту не вказується, але його назви достатньо для пошуку за допомогою відомих пошукових серверів(також не приводиться у цілях реклами). Цей компонент дозволяє візуально налагодити роботу із послідовним портом і нескладний у використанні.
3.2.3 Розробка алгоритму програми
Загальний алгорим за яким працює програма наданий у додатках. Текст програми не містить складних алгоритмів. Можна тільки зазначити, що для фільтрації вводу були використані перехоплювачі повідомлень WM_KEYPRESSED. Обробники таких перехоплювачів змінюють код отриманого символу на неіснуючий, якщо символ виходить за рамки встановлені при розробці обробника. Оскільки код виконаний у вигляді одного програмного модуля, проблем із використанням COM порту не виникає. Треба зазначити, що доступ який надає ОС Windows 2000/XP до порту є монопольним, і якщо на момент виконання данної програми будуть використовуватись інщі програми, які отримують доступ до COM порту, доступ залишиться тільки у вашої програми. Навпаки ж якщо якась з сторонніх програм виконується і доступ до порту належить їй, данна програма не зможе отримати доступ.
4 ТЕСТУВАННЯ ПРОГРАМНОГО ЗАБЕСПЕЧЕННЯ
При тестуванні програмного забеспечення були використані сторонні програмні та апаратні засоби. Одними з таких засобів є монітор послідовних портів wTerm.(рис. 20) Він надає зручний інтерфейс для контролю, передачі, та прийманню данних за допомогою послідовних портів. Перший тест це реакція на команди які надходять із інтерфейсу користувача до стенду. Для цього треба спочатку перевірити стенд. За допомогою wTerm в порт передається необхідна послідовність керуючих слів, якщо стенд прийняв послідовність і працює правильно він повинен у відповідь передати відповідь + 1024 байти проаналізованих данних. Для перевірки правильноі працездатності інтерфейсу користувача потрідно з'єднати 2 порти ПК нульмодумним кабелем(прийом передача - схрещені), і wTerm настроїти на роботу із портом COM2. Якщо після натиснення кнопки запуску логічного аналізатора у вікні прийому wTerm з'явиться необхідна послідовність, можна спробувати передати логічному аналізатору відповідь у форматі керуючі слова + 1024 байти данних. Якщо данні з'являться у елементі перегляду логічних станів логічного аналізатору можна візуально перевірити іх на достовірність. Аналогічни чином перевіряється генератор слів, тільки для аналізу видаваємих данних використовується осцилограф або ЛА стороннього виробництва. Остаочна перевірка закінчується повноцінною працездатністю програмного забеспечення. Стенд підєднується до порту COM1 і за допомогою генератору сигналів стороннього виробництва перевіряється працездатність ЛА, аналогічно перевіряється ГС, і останній режим - ЛА+ГС можна перевірити з'єднавши шину ЛА і шину ГС перемичками. Після генерації у пошаговому режимі сгенерована послідовність повинна з'являтись у вікні логічного аналізатора.
Остаточна перевірку можна виконати за допомогою генератору сигналів послідовно змцнюючи частоту генерації, таким чином намагаючись зняти реальні технічні показники системи. Але показники які необхідні для проведення лабораторних робіт за аналізом вхідного завдання повністю відповідають показникам працесдатності системи.
Рис. 20 Загальний вигляд монітору послідовного порту wTerm
5 БІЗНЕС-ПЛАН
Резюме
В даному бізнес-плані розглядається можливість реалізації програмного продукту “Віртуальний вимірювальний комплекс”. Даний проект має потребу у інвестиції 1800 грн. Передбачається, що кошти для інвестиції будуть взяті з власного рахунку розробників даного програмного продукту. Розробка програмного продукту триватиме 4 місяці, в ній будуть задіяні 2 спеціаліста, а саме: керівник проекту та програміст. Також буде найнятий інженер для тиражування програмного продукту. Розробка програмного продукту “Віртуальний вимірювальний комплекс” буде вестися на власному комп'ютері розробників, тому кошти для оренди комп'ютеру не потрібні.
В даному бізнес-проекті обрана спрощена форма оподаткування - єдиний податок по ставці 10%. Передбачається, що проект окупиться в перший же рік його реалізації. Потенційними покупцями даного програмного продукту можуть бути:
а) Будинки відпочинку, пансіонати і готелі, підприємства громадського харчування на Чорному й Азовському морях. Для цієї групи потенційних споживачів автономне безперебійне постачання гарячою водою дозволить підвищити рівень обслуговування відпочиваючих. Особлива привабливість гелиосистем для цієї групи клієнтів обумовлена тим, що їхня діяльність протікає в основному в літній період, що є найбільш сприятливим для роботи таких систем. статистичних даних показав, що на Україні функціонує більше 3000 будинків відпочинку й санаторіїв. Для великих пансіонатів і будинків відпочинку час функціонування не обмежується тільки літнім періодом. Тому для них більше кращими будуть двоконтурні системи, що працюють в автоматичному режимі. Для невеликих туристичних баз і кемпінгів, що працюють тільки в літній період, будуть кращими економічної термосифонної системи.
б) Фермерські господарства, селянські садиби, міське населення яке має дачі, для яких використання гелиосистем для одержання гарячої води є комерційно привабливим. Економічний аналіз показує, що якщо підігрів води вироблятися за рахунок електроенергії, то при існуючій собівартості електроенергії на Україні 0.03$/кВт*година матеріальні витрати на придбання колекторів окупаються за 3 роки, якщо вартість теплового колектора не вище 150$/м2. Аналіз статистичних показав, що на Україні функціонує 32400 фермерських господарств, близько 15.9 мільйона чоловік живе в селах і селах і кожна десята міська родина має дачну ділянку. Для структур ці господарства функціонуючих тільки в літній період будуть становити інтерес економічні одноконтурні термосифонні системи гарячого водопостачання й сонячні сушарки.
в) Громадян зі статком вище за середнє частки, що мають, будинку. Аналіз статистичних даних показав, що таких людей на Україні більше 100 000 чоловік (їхній щомісячний доход перевищує 500$). Для цієї категорії громадян, по міркуваннях забезпечення європейського рівня життя, для незалежності від можливих перебоїв із централізованим постачанням гарячою водою буде привабливим закупити системи сонячних колекторів, що працюють в автоматичному режимі. Прямим підтвердженням привабливості для населення автономних енергетичних систем є успішна реалізація десятками фірм на Україні електронагрівників води. Ціна електронагрівника становить 150-200$, витрати на оплату споживаної електроенергії для гарячого водопостачання родини з 4 чоловік становлять 1$ у день. Істотним недоліком цих систем є те, що вони функціонують тільки при подачі електроенергії. На Україні крім проблеми з постачанням гарячою водою гостро коштує проблема електропостачання. З метою економії практикується відключення електроенергії по кілька разів у добу протягом декількох годин. Таким чином, електронагрівники не в змозі забезпечити дійсно автономне постачання гарячою водою.
г) Будівельних фірм які займаються будівлею елітного житла. Такі фірми будуть постійними клієнтами на ринку гелиосистем. Використання гелиосистем дозволить підвищити не тільки якісні показники комфортності житла, але і його престижність за рахунок наближення до західних стандартів. Аналіз статистичних даних показав, що на Україні працює більше сотні будівельних компаній зазначеного вище профілю. Для таких будівельних фірм уже на стадії проектування житла може бути передбачено, що гаряче водопостачання буде здійснюватися на базі двоконтурних гелиосистем працюючих безперебійно в автоматичному режимі
Ціна нашого програмного продукту, який розроблюється, буде дорівнювати 3540 грн. Прибуток з однієї копії програмного продукту складатиме 590 грн. Передбачається, що в перший рік прибуток складатиме 112690 грн. Аналогів програмного продукту “ Віртуальний вимірювальний комплекс ” на ринку СНД та у країнах ближнього зарубіжжя немає.
5.1 Доцільність виробництва продукту
Мета розробки програмного продукту “Віртуальний вимірювальний комплекс ” полягає в тому, що сучасні установи все більше використовують комп'ютерні програмні продукти з діагностичною метою. Для забезпечення точності і логічності при встановленні вольт-амперних характеристик потрібен математичний підхід.
5.2 Опис характеристик продукту
5.2.1 Найменування та призначення
Програмний продукт має назву “ Віртуальний вимірювальний комплекс ”. Система проста у використанні й інтуїтивно зрозуміла користувачеві.
Розроблений програмний продукт може бути використаний при перетворенні сонячної енергії у електричну.
5.2.2 Загальні параметри продукту
Функціонування продукту повністю забезпечується стандартною конфігурацією IBM PC/AT сумісних персональних ЕОМ, наявністю процесора CPU-Intel Pentium II, Pentium III або його аналогів AMD К6, AMD K7 і вище з об'ємом оперативної пам'яті 32 Мб, наявністю відеоадаптеру SVGA та накопичувачу на жорсткому магнітному диску об'ємом не менш ніж 400 Мб.
Програмний продукт призначений для праці в середовищі WIN32 для операційної системи Microsoft Windows 98 і вище.
5.3 Оцінка витрат на розробку
5.3.1 Визначення потреби у матеріальних та трудових ресурсах
У таблиці 5.1 приведені витрати на матеріали при розробці програмного продукту.
Таблиця 5.1 - Покупні матеріали при розробці даного продукту
Матеріали
Кількість,шт.
Вартість, грн.
Загальна вартість, грн.
Призначення
Дискети
2
3,00
6,00
Збереження програми
Папір
200
0,03
6,00
Роздруківка вихідних текстів
Література
5
0,00
0,00
Уся література була узята в бібліотеці.
Тонер для принтера
2
8,00
16,00
Роздруківка документації
Сумарна вартість, грн.
28,00
Перелік спеціалістів для реалізації проекту приведений у таблиці 5.2.
Таблиця 5.2 - Перелік спеціалістів для реалізації проекту
Спеціаліст
Кількість, чол.
Призначення
Керівник проекту
1
Консультації
Програміст
1
Напис програмного продукту
Інженер
1
Тиражування
Розрахуємо розмір оплати спеціалістів.
Трудовитрати в людино-днях обчислюється по формулі:
Т = Тоф+Та+Тс+Тп+То+Тд, (5.1)
де Тоф - трудомісткість вивчення опису задачі та формулювання її постановки;
Та - трудомісткість на розробку алгоритму програми;
Тс - трудомісткість на складання схеми алгоритму;
Тп - трудомісткість на розробку програми;
То - трудомісткість на налагодження програми;
Тд - трудомісткість на оформлення документації.
Трудовитрати всіх видів визначаються через умовну кількість операторів (Q) програми, що обчисляються по формулі:
, (5.2)
де q - передбачувана кількість команд програми;
К - коефіцієнт складності програми (для рішення задач у реальному часі - 1,5);
Р - коефіцієнт корекції програми (від 0,4 до 0,8); n - кількість корекцій програми.
У даному програмному комплексі передбачуване число команд програми - 450. Приймаємо коефіцієнт складності програми К=1,5. При наладці програми, можливо, буде зроблено 6 корекцій, з них 4 з коефіцієнтом 0,7 і 2 з коефіцієнтом 0,3. Виходячи з цих даних, можна обчислити умовну кількість операторів програми:
Трудомісткість на вивчення опису програми і формулювання її постановки визначаємо по формулі:
, (5.3)
де Vоф - індивідуальна продуктивність виконавця (команд/години);
дані о продуктивності виконавця приведені у таблиці 6.3;
Ккв - коефіцієнт кваліфікації виконавця; v - коефіцієнт, що враховує якість опису (0,9-1,0), в нашому випадку даний коефіцієнт буде дорівнювати 1.
Таблиця 5.3 - Дані о продуктивності виконавця
Вигляд роботи
Продуктивність команд/години
Вивчення опису задачі, формулювання постановки задачі.
80
Розробка алгоритмів рішення задачі
20
Складання схеми програми
15
Розробка програми
20
Наладка програми
5
Оформлення документації
20
Коефіцієнт кваліфікації залежить від стажу роботи й дорівнює:
- до 2-х років - 0.8;
- від 2-х до 3-х років - 1.0;
- від 3-х до 5-ти років - 1.2;
- від 5-ти до 7-ми років - 1.4.
У нашому випадку коефіцієнт кваліфікації буде дорівнювати - 1,4.
Трудовитрати на інші види робіт розраховуємо по формулі:
, (5.4)
де i - вигляд роботи;
Vi - продуктивність виконавця (таблиця 6.3).
Зробимо розрахунок трудовитрат, який представлений в таблиці 5.4.
Таблиця 5.4 - Розрахунок трудовитрат
Вид роботи
Розрахункова кількість людино-діб
Вивчення опису задачі, формулювання постановки задачі
Тоф =2,56
Розробка алгоритмів рішення задачі
Та = 10,25
Складання схеми програми
Тс = 13,66
Розробка програми
Тп =10,25
Наладка програми
То = 40,98
Оформлення документації
Тд =10,25
Разом:
Т =87,95
Зарплату розробникам можна полічити виходячи з місячного окладу розробника і терміну, необхідного для розробки програмного продукту. Термін розробки визначається виходячи з 22 робочих днів в місяць:
Тм = Т/22 =87,95/22 = 3,99 місяця.
Розрахунок витрат на основну заробітну плату зображений в таблиці 5.5.
Пайова участь керівника проекту дорівнює 20 % від посадового окладу.
Для подальшої реалізації програмного продукту потрібно найняти інженера й встановити йому відрядну заробітну плату у розмірі 1 грн. за створення однієї копії.
Додаткова заробітна плата (Здоп.) вміщує до себе доплати, надбавки, гарантійні і компенсаційні виплати, передбачені законодавством.
Додаткову заробітну плату приймаємо 10 % від Зосн
Таблиця 5.5 - Розрахунок заробітної плати
Посада
Оклад, грн.
Кіл-ть, людин.
Час зайн-сті, міс.
Заробітна плата за місяць, грн.
Основна заробітна плата, грн.
Керівник проекту
300
1
4
300*0.2=60
1200*0.2=240
Програміст
200
1
4
200
800
Разом
260
1040
Таким чином додаткова заробітна плата буде дорівнювати 1040*0,1=104 грн.
5.4 Розрахунок витрат та договірної ціни продукту
При розрахунку експлуатаційних витрат необхідно визначити час налагодження програми (Тмв) на ЕОМ по наступній формулі:
, (5.5)
де m - витрати машинного часу на налагодження однієї команди (год.).
В дипломному проекті m прийнято рівним одній хвилині.
Після розрахунку Тмв буде дорівнювати
Тмв=2295/84 27
Вартість машинного часу визначається по наступній формулі:
Змв = См.ч·Тм.в, (5.6)
де Смч - вартість однієї машино-години, з розрахунку 1 грв за 1 год.
Таким чином вартість машинного часу буде дорівнювати Змв = 27 грв.
До відрахувань на соціальні заходи відносяться:
- відрахування на державне (обов'язкове) соціальне страхування, включаючи і відрахування на обов'язкове медичне страхування, що разом складає 2,5 % від Зосн+Здоп. Відрахування на соціальне страхування складає (1040+104)*0,025=28,60 грн.
- відрахування на державне (обов'язкове) пенсійне страхування (у Пенсійний фонд) складає 32 % від Зосн+Здоп. Відрахування на пенсійне страхування складає (1040+104)*0,32=366,08 грн.
- відрахування у Фонд сприяння зайнятості населення - 2.5 % від Зосн+Здоп. Відрахування у Фонд сприяння зайнятості населення складає (1040+104)*0,025=28,60 грн.
Відрахування на страхування від травматизму - 0,85% від Зосн.+Здоп. Дане відрахування складає (1040+104)*0,0085=9,724 грн.
Разом, відрахування на соціальні заходи складають 37,85% від Зосн. +Здоп. Відрахування на соціальні заходи складають (1040+104)*0,3785=433 грн.
До накладних витрат відносяться витрати на повне відновлення і капітальний ремонт Основного фонду (амортизаційні відрахування), орендна плата, вартість машинного часу, витрати на енергію і т.д. У даній роботі накладні витрати приймаються в розмірі 70 % від Зосн. Накладні витрати 1040*0,7=728 грн.
На підставі проведених розрахунків складаємо розрахунок витрат та договірної ціни програмного продукту, що приведений у таблиці 6.6. Необхідно врахувати те, що розрахунок витрат та договірної ціни проводиться для 100 копій програмного продукту. З цього приводу для розрахунку витрат на 1 копію програмного продукту - суму витрат необхідно поділити на 100.
Таблиця 5.6 - Розрахунок витрат та договірної ціни програмного продукту
Найменування статті витрат
Сума, грн.
1. Вартість матеріалів і покупних виробів
28,00
2. Основна заробітна плата
1040,00
3. Додаткова заробітна плата
104,00
4. Відрахування на соціальні заходи
433,00
5. Накладні витрати
728,00
6. Вартість машинного часу
27,00
7. Кошторисна вартість (сума пунктів з 1 по 6)
2360,00
8. Прибуток (25% від пункту 7)
590,00
9. Ціна розроблювача (сума пунктів 7, 8)
2950,00
10. ПДВ (20% від пункту 9)
590,00
11. Ціна продажу (сума пунктів 9, 10)
3540,00
5.5 Розрахунок витрат на тиражування
Витрати на тиражування розраховуються наступним чином: