Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Визначення витрат на розробку програмного продукту

Поиск

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

Фонд оплати плати фахівців, грн.:

             (4.1)

 

де ФЗПосн., ФЗПдод. - фонд оплати праці основний та додатковий фахівців - розроблювачів програмного продукту.

Основна заробітна плата по тарифу (ЗПосн) розраховується за формулою, грн.:

               (4.2)

 

ЗПденна - денна заробітна плата фахівців, грн.

Дрозробки - тривалість розробки програмного продукту, днів

Денна заробітна плата фахівців розраховується за формулою, грн.:

 (4.3)

 


де О - посадовий оклад, грн.;

Дроб.дн - кількість робочих днів в місяці (в місяці може бути 22 робочих дня або 23 в залежності від календарної тривалості місяця)

Якщо місяць має 30 календарних днів, то кількість робочих днів складає:

 (4.4)

 

де Двих= 8 днів на місяць

Дроб.дн = 30 - 8 = 22

Якщо місяць має 31 календарний день, то кількість робочих днів складає:

 (4.5)

 

Дроб.дн = 31 - 8 = 23

Основна заробітна плата за тарифом програміста складає, грн.:

Основна заробітна плата за тарифом консультанта складає, грн.:

Результат розрахунків зведений в табл. 4.3.

 


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

Посада виконавця Чисельність фахівців, чол. Місячний оклад фахівців, грн. Кількість робочих днів розробки програми Сума зарплати, фахівців грн.
Програміст 1 1300 30 1772,7
Консультант 1 1410 12 769,08
Разом 2 2710 - 2541,78

 

Розрахунок додаткової заробітної плати виконується наступнім чином.

Додаткову заробітну плату приймаємо 25% від основної заробітної плати.

Розрахунок додаткової заробітної плати розраховується за формулою, грн.:

 

 (4.6)

Результат розрахунку додаткової заробітної плати приведений у (табл. 4.4)

 

Таблиця 4.3. Фонд оплати праці фахівців

Посада виконавця Додаткова заробітна плата, грн. ФОП (сума основної і додаткової зарплати), грн.
Програміст 433,18 2215,88
Консультант 192,27 961,35
Разом 625,45 3177,23

 

Відрахування на соціальне страхування й інші фонди

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


  (4.7)        

 

Інші види відрахувань на соціальні заходи проводяться аналогічно і наведені у таблиці 4.5

Таблиця 4.4. Відрахування на соціальні заходи

Види відрахувань % Сума, грн.
До фонду соціального страхування 2,9 92,14
До фонду соціального страхування на випадок безробіття 1,3 31,8 41,30
До пенсійного фонду   1010,36
До фонду страхування від нещасних випадків 1,76 55,92
Разом 37,76 1199,72

 

Визначення витрат на матеріали визначається таким чином.

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

Прямі матеріальні витрати (Мі) розраховуються за формулою, грн.:

                (4.8)

 

Мі - вартість матеріальних витрат і-го виду, грн.

Ці - ціна і-го матеріалу, грн.і - норма витрат матеріалу.

. Папір - 1 пакунок - 45 грн.

. Диск СD RW - 1 шт. по 5 грн. за шт. - 5 грн.

. Картридж для принтера - 100 грн.

Витрати на спеціальне устаткування.

Амортизаційні відрахування:

 

 (4.9)

 

Вб - балансова вартість комп‘ютера (ціна комп‘ютера + 5% на перевезення та монтаж), грн.

Ціна комп’ютера = 3500 грн.

На = 25% (друга група)

Витрати на електроенергію розраховуються за формулою, грн.:

 

 (4.10)

 

де Nн - номінальна потужність ЕОМ, кВт/ч;еф - річний ефективний фонд роботи ЕОМ, годин /рік;

Кзав. - середній коефіцієнт завантаження за часом = 0,9

Кзп - коефіцієнт завантаження за потужністю = 0,7

Цел - ціна електроенергії, грн. за кВ/ч = 0,26 грн.

Приймаємо Nн = 0,2 кВ/ч (за паспортом комп‘ютера),обсл = 104 год.зм - тривалість зміни = 8 годин

 

 (4.11)


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

 

 (4.12)

 

 - річний фонд ЗП (осн. + додатковий) обслуговуючих робітників;

 - час, необхідний на технічне обслуговування ЕОМ годин/рік = 104 години

 - річний ефективний фонд часу обслуговуючого персоналу годин/рік;

 = 0,3776

Основну зарплату приймаємо 670 грн., а додаткову - 30% до основної:

= 970 ∙ 11 ∙ 1 ∙ (1 + 0,3776) = 9581

 з відрахуванням на соціальні заходи:

Сума витрат по статті «Поточний ремонт» устаткування складає 3% від балансової вартості устаткування:

Інші витрати складають 3% від суми попередніх статей і розраховуються за формулою, грн.:


 

Складаємо кошторис витрат на утримання і експлуатацію устаткування:

 

Таблиця 4.5. Кошторис витрат на утримання і експлуатацію устаткування:

№ п/п Найменування статей витрат Сума, грн.
1 Амортизація устаткування 918,75
2 Експлуатація устаткування 62,90
3 ЗП основна і додаткова обслуговуючих робітників і відрахування на соціальні заходи 714,93
4 Поточний ремонт устаткування 110,25
5 Інші витрати 54,20

Разом

1861,03

 

Витрати на оплату машинного часу (Вмо) розраховуються за формулою, грн.:

 

 (4.13)

 

Експлуатаційні витрати на одну годину машинного часу комп’ютера

експл.1год.) розраховуються як відношення витрат на утримання і експлуатацію устаткування до річного ефективного фонду роботи комп’ютера, грн.:

- експлуатаційні витрати на годину машинно часу ЕОМ, грн. = 1861,03

- час роботи ЕОМ для написання програмного продукту. Комп’ютер буде працювати 30 днів по 4 години

tмо = 30 * 4 = 120

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

Вмо

Накладні витрати складають 50% від основної зарплати розроблювачів програмного продукту.

 

 

Таблиця 4.6. Калькуляція собівартості робіт з розробки програми.

№ п/п Найменування статей витрат Сума, грн. Питома вага до підсумку, %
1 Основна зарплата 3177,23 59
2 Додаткова зарплата 625,45 5
3 Відрахування на соціальні заходи 1199,72 22
4 Витрати на матеріали 150 6
5 Витрати на оплату машинного часу 116,4 4
6 Накладні витрати 1588,62 4

Разом

6857,42 100

 


Висновки

 

Була розробленна автоматизована система ведення реєстру власників землі.

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

а) додавання, редагування, видалення даних про земельну ділянку, власнка, категоріях земельних ділянок, документи;

б) дільтрація / пошук даних в БД;

в) три додаванні (редагуванні) земельної ділянки автоматично відкриваєтся вікно, в якому вибирається (є можливість додавання нового) власник ділянки. При натисканні кнопки «Зберегти» дані заносяться в БД, а також створюється зпис у таблиці «Документи», яка зберігає реквізити земельної ділянки та власника.

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

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

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

 


Додаток

 

Код програми

Підключення к БД

 

Init.php - подключение к БД

<? php_once './libs/base.class.php';_once './libs/test.class.php';_once './libs/pages_info.class.php';

 

$in_line           = 3;

$in_page         = 5;

 

$dblocation     = «localhost»;

$dbname                  = «db»;

$dbuser                    = «root»;

$dbpasswd     = «»;

 

$dbcnx = @mysql_connect ($dblocation, $dbuser, $dbpasswd);(!$dbcnx)(«В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.»);(!@mysql_select_db ($dbname,$dbcnx))(«В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.»);

print_p($var)

{'<pre>';_r($var);'</pre>';

}

?>

Клас у якому реалізовані всі методи (додавання, видалення, оновлення і т.д.…)

 

Base.class.php

<? php

/**

* Класс для работы с записями базы данных

*/cl_base

{

/**

* Название таблицы

*/$table_name = «;

/**

* Получить список записей из базы like

*/function get_few_data_bet ($f, $t, $num_page = '*', $order_arr = array ('status' => 'ASC', 'id' => 'ASC'), $get_children = true)

{

$data_info = array();

 

$limit_str = $this->_get_limit ($num_page, $where_arr);

$fields_str = $this->_get_fields();

$order_str = $this->_get_order ($order_arr);

 

$exist_parent  = $this->_exist_field ('parent_id');

$exist_date     = $this->_exist_field('date');

$exist_image   = $this->_exist_field('image');

$exist_name             = $this->_exist_field('name');

 

$max_status            = $this->get_max_status_data ('*');

 

$sql = «SELECT *». $this->table_name.» where `date` <= '$t' and `date` >= '$f'

$order_str

$limit_str»;

 

$result                      = $this->_execute_query ($sql, __LINE__);

($i = 0; $i < mysql_num_rows($result); $i++)

{

$data_info[$i] = mysql_fetch_array($result);

$parent_id      = '*';

 

$data_info[$i] ['n']   = $i + 1;

($exist_parent)

{

$parent_id                                  = $data_info[$i] ['parent_id'];

$where_arr ['parent_id']             = $data_info[$i] ['id'];($get_children)

$data_info[$i] ['children']  = $this->get_few_data ($where_arr, $num_page, $order_arr);

$data_info[$i] ['max_status'] = $this->get_max_status_data ($parent_id);

}

{

$data_info[$i] ['max_status'] = $max_status;

}

($exist_date)

{

$data_info[$i] ['s_day']     = date ('d', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_month'] = date ('m', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_year']    = date ('Y', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_hour']    = date ('H', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_minute'] = date ('i', strtotime ($data_info[$i] ['date']));

}

($exist_image)

{

$data_info[$i] ['image_size'] = (! empty ($data_info[$i] ['image']))? $GLOBALS['images']->get_image_size ($data_info[$i] ['image']): null;

($exist_name)

$data_info[$i] ['name_image']    = str_replace (array('&quot;', ' «', «'»), array ('', «, «), $data_info[$i] ['name']);

}

 

$data_info[$i] ['line_pos']           = $i% (int)$GLOBALS ['in_line'];

}

$data_info;

}

/**

* Получить список записей из базы like

*/function get_few_data_like ($where_arr = array(), $num_page = '*', $order_arr = array ('status' => 'ASC', 'id' => 'ASC'), $get_children = true)

{

$data_info = array();

 

$limit_str = $this->_get_limit ($num_page, $where_arr);

$fields_str = $this->_get_fields();

$order_str = $this->_get_order ($order_arr);

 

$exist_parent  = $this->_exist_field ('parent_id');

$exist_date     = $this->_exist_field('date');

$exist_image   = $this->_exist_field('image');

$exist_name             = $this->_exist_field('name');

 

$max_status            = $this->get_max_status_data ('*');

 

$sql = «SELECT $fields_str». $this->table_name.»». key ($where_arr).» like '».$where_arr [key($where_arr)]. «%'

$order_str

$limit_str»;

$result                      = $this->_execute_query ($sql, __LINE__);

($i = 0; $i < mysql_num_rows($result); $i++)

{

$data_info[$i] = mysql_fetch_array($result);

$parent_id      = '*';

 

$data_info[$i] ['n']   = $i + 1;

($exist_parent)

{

$parent_id                                  = $data_info[$i] ['parent_id'];

$where_arr ['parent_id']             = $data_info[$i] ['id'];($get_children)

$data_info[$i] ['children']  = $this->get_few_data ($where_arr, $num_page, $order_arr);

$data_info[$i] ['max_status'] = $this->get_max_status_data ($parent_id);                            

}

{

$data_info[$i] ['max_status'] = $max_status;

}

($exist_date)

{

$data_info[$i] ['s_day']     = date ('d', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_month'] = date ('m', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_year']    = date ('Y', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_hour']    = date ('H', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_minute'] = date ('i', strtotime ($data_info[$i] ['date']));

}

($exist_image)

{

$data_info[$i] ['image_size'] = (! empty ($data_info[$i] ['image']))? $GLOBALS['images']->get_image_size ($data_info[$i] ['image']): null;

($exist_name)

$data_info[$i] ['name_image']    = str_replace (array('&quot;', ' «', «'»), array ('', «, «), $data_info[$i] ['name']);

}

 

$data_info[$i] ['line_pos']           = $i% (int)$GLOBALS ['in_line'];

}

$data_info;

}

/**

* Получить список записей из базы

*/function get_few_data ($where_arr = array(), $num_page = '*', $order_arr = array ('status' => 'ASC', 'id' => 'ASC'), $get_children = true)

{

$data_info = array();

 

$where_str = $this->_get_where ($where_arr);

$limit_str = $this->_get_limit ($num_page, $where_arr);

$fields_str = $this->_get_fields();

$order_str = $this->_get_order ($order_arr);

 

$exist_parent  = $this->_exist_field ('parent_id');

$exist_date     = $this->_exist_field('date');

$exist_image   = $this->_exist_field('image');

$exist_name             = $this->_exist_field('name');

 

$max_status            = $this->get_max_status_data ('*');

 

$sql = «SELECT $fields_str». $this->table_name.»

$where_str

$order_str

$limit_str»;

 

$result                      = $this->_execute_query ($sql, __LINE__);

($i = 0; $i < mysql_num_rows($result); $i++)

{

$data_info[$i] = mysql_fetch_array($result);

$parent_id      = '*';

$data_info[$i] ['n']   = $i + 1;

($exist_parent)

{

$parent_id                             = $data_info[$i] ['parent_id'];

$where_arr ['parent_id']             = $data_info[$i] ['id'];($get_children)

$data_info[$i] ['children']  = $this->get_few_data ($where_arr, $num_page, $order_arr);

$data_info[$i] ['max_status'] = $this->get_max_status_data ($parent_id);

}

{

$data_info[$i] ['max_status'] = $max_status;

}

($exist_date)

{

$data_info[$i] ['s_day']     = date ('d', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_month'] = date ('m', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_year']    = date ('Y', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_hour']    = date ('H', strtotime ($data_info[$i] ['date']));

$data_info[$i] ['s_minute'] = date ('i', strtotime ($data_info[$i] ['date']));

}

($exist_image)

{

$data_info[$i] ['image_size'] = (! empty ($data_info[$i] ['image']))? $GLOBALS['images']->get_image_size ($data_info[$i] ['image']): null;

($exist_name)

$data_info[$i] ['name_image']    = str_replace (array('&quot;', ' «', «'»), array ('', «, «), $data_info[$i] ['name']);

}

 

$data_info[$i] ['line_pos']           = $i% (int)$GLOBALS ['in_line'];

}

$data_info;

}

 

/**

* Получить список имен и ид из базы

*/function get_few_name_data ($where_arr = array())

{

$data_info = array();

 

$where_str = $this->_get_where ($where_arr);

 

$sql                 = «SELECT id, name». $this->table_name.»

$where_str»;

$result                      = mysql_query($sql);(!$result)

$this->_execute_query ($sql, __FILE__);

($i = 0; $i < mysql_num_rows($result); $i++)

{

$row                                  = mysql_fetch_array($result);

$data_info [$row['id']] = $row['name'];

}

$data_info;

}

 

/**

* Получить одну запись из базы

*/function get_one_data ($where_arr = array())

{

$data_info      = array();

 

$where_str = $this->_get_where ($where_arr);

$fields_str = $this->_get_fields();

 

$sql = «SELECT $fields_str». $this->table_name.»

$where_str»;

 

$result                      = $this->_execute_query ($sql, __LINE__);

(mysql_num_rows($result) > 0)

{

$data_info = mysql_fetch_array($result);

($this->_exist_field('date'))

{

$data_info ['s_day']           = date ('d', strtotime ($data_info['date']));

$data_info ['s_month'] = date ('m', strtotime ($data_info['date']));

$data_info ['s_year'] = date ('Y', strtotime ($data_info['date']));

$data_info ['s_hour'] = date ('H', strtotime ($data_info['date']));

$data_info ['s_minute'] = date ('i', strtotime ($data_info['date']));

}

($this->_exist_field('image'))

{

$data_info ['image_save']  = $data_info['image'];

$data_info ['image_size']   = (! empty ($data_info['image']))? $GLOBALS['images']->get_image_size ($data_info['image']): null;

($this->_exist_field('name'))

$data_info ['name_image'] = str_replace (array('&quot;', ' «', «'»), array ('', «, «), $data_info['name']);

}

}false;

$data_info;

}

 

/**

* Получить предыдущую и последующую ид для выбранной записи

*/get_next_prev_ids ($id, $where_arr = array(), $order_arr = array ('status' => 'ASC', 'id' => 'ASC'))

{

$data_info = array();

$ids_info = array();

 

$current_i = -1;

 

$where_str = $this->_get_where ($where_arr);

$order_str = $this->_get_order ($order_arr);

 

$sql = «SELECT id». $this->table_name.»

$where_str

$order_str»;

 

$result            = $this->_execute_query ($sql, __LINE__);

($i = 0; $i < mysql_num_rows($result); $i++)

{

$row               = mysql_fetch_array($result);

$ids_info[$i]   = (int)$row['id'];($ids_info[$i] == $id)

$current_i = $i;

}

($current_i!= 0)

$data_info ['prev_id'] = $ids_info [$current_i - 1];

$data_info ['prev_id'] = $ids_info [count($ids_info) - 1];

($current_i!= count ($ids_info) - 1)

$data_info ['next_id'] = $ids_info [$current_i + 1];

$data_info ['next_id'] = $ids_info[0];

$data_info;

}



Поделиться:


Последнее изменение этой страницы: 2020-03-14; просмотров: 157; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.95.37 (0.007 с.)