НОВЫЙ МЕТОД ОПРЕДЕЛЕНИЯ ВРЕМЕНИ РАБОТЫ С ПРОЕКТОМ В ПРОГРАММНОМ КОМПЛЕКСЕ COSTINFORMATION

Научная статья
DOI:
https://doi.org/10.23670/IRJ.2017.66.200
Выпуск: № 12 (66), 2017
Опубликована:
2017/12/18
PDF

Завьялов Д.В. 1, Филиппов М.В. 2

1ORCID: 0000-0002-9497-9613, доктор физико-математических наук, 2кандидат технических наук,

1Волгоградский государственный технический университет,

2Волгоградский институт бизнеса

Программный комплекс разрабатывается при финансовой поддержке РГНФ и Правительства Волгоградской области в рамках проекта проведения научных исследований («Исследование механизма оплаты труда работников с учетом стоимости электронной информации, используемой в организации: проблемы, перспективы (на уровне Волгоградской области)»), проект № 16-12-34005

НОВЫЙ МЕТОД ОПРЕДЕЛЕНИЯ ВРЕМЕНИ РАБОТЫ С ПРОЕКТОМ В ПРОГРАММНОМ КОМПЛЕКСЕ COSTINFORMATION

Аннотация

Описан новый метод учета времени работы с проектами в созданном и описанном ранее авторами программном комплексе, который позволяет отслеживать действия пользователей и определять трудовые затраты сотрудника на создание электронной информации. Новый алгоритм обладает существенно более высокой производительностью и избавляет пользователя комплекса от обязательного закрытия файлов одного проекта при переходе к работе с файлами другого проекта, что является одним из самых значительных недостатков алгоритма в предыдущей версии программы.

Ключевые слова: стоимость информации, автоматизация учета трудовых затрат, расчет стоимости информации, электронная информация, учет трудовых затрат, информационная система.

Zavialov D.V.1, Filippov M.V.2

1ORCID: 0000-0002-9497-9613, PhD in Physics and Mathematics, 2PhD in Engineering,

1Volgograd State Technical University,

2Volgograd Institute of Business

The software is developed with the financial support from the Russian Humanitarian Science Foundation and the Government of the Volgograd Region within the framework of the research project ("Study of the mechanism of payment for labour of employees considering the cost of electronic information used in the organization: problems and outlooks (at the level of the Volgograd region)"), project No. 16- 12-34005

NEW METHOD FOR DETERMINING WORK TIME IN PROJECT IN  COSTINFORMATION SOFTWARE

Abstract

A new method for accounting of the work time in projects in the developed software complex is described in the paper, it allows to account user actions and determine the employee's labor costs for creating electronic information. The new algorithm has significantly higher performance and eliminates the need for the user to close the files of one project when switching to working with files of another project, which is one of the most significant drawbacks of the algorithm in the previous version of the program.

Keywords: information cost, automation of labor costs accounting, calculation of information cost, electronic information, labor cost accounting, informational system.

Авторами в [1], [2], [3] представлена методика измерений и программный комплекс, созданный для определения той части стоимости информации, которая определяется затратами на оплату труда пользователей за компьютером. Отметим, что на данное время авторам неизвестны компьютерные программы, подобные описанной в [3].

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

Программный комплекс CostInformation [3, 4] предназначен для оценки стоимости проектов на основе слежения за файлами проекта, расчета рейтинга их изменения и расчета стоимости этого изменения на основе рейтинга и информации о времени, затраченном на проект (за затраченным временем также следит программный комплекс). Комплекс оценки стоимости проектов CostInformation логически состоит из двух частей:

1) Администраторской части, предназначенной для:

- Управления пользователями в базе данных, которая позволяет добавлять пользователей в организацию, удалять их и менять основную информацию о них (в том числе почасовую ставку);

- Управления проектами в базе данных, которая предназначена для управления списком проектов и их краткой характеристикой;

- Назначения пользователей проектам и просмотра информации закрепления пользователя за проектами и проектов за пользователями;

- Просмотра статистики работы по пользователям;

- Просмотра статистики работы по проектам.

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

При этом процесс работы с программой также состоит из двух этапов. Сначала менеджер проектов должен в администраторской части программы внести  пользователя в базу и назначить ему проект (или проекты). После этого при запуске клиентской части программы пользователь получит сообщение о его добавлении в проект и сможет назначить папки, в которых находятся файлы проекта. Клиентская программа запоминает сопоставления проектов пользователя и их папок в файле на локальном компьютере и при следующем запуске (при условии, что менеджер проектов не уберет пользователя из этого проекта) загрузит эти сопоставления из файла. У пользователя есть возможность изменить папки, назначенные на проект в дальнейшем в любой момент, как только это понадобится.

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

Как видно из вышесказанного, одной из основных проблем при определении трудозатрат пользователя является определение к какому проекту относится то или иное нажатие клавиши. Целью настоящей работы является описание и сравнение предыдущего и нового методов соотнесения нажатия клавиши рабочим проектам.

В первой версии программного комплекса [4] определение осуществлялось следующим образом:

- программа определяет при нажатии клавиши процесс, которому принадлежит окно, «получившее» нажатие.

- далее определяются все файлы и папки, открытые процессом и, на основе сравнения этой информации со списками файлов проектов, делается вывод о том «принадлежит» ли нажатие какому-либо из проектов пользователя или нет. Если нажатая клавиша «принадлежит» какому-либо проекту, то некоторые служебные сведения о нажатии (время нажатия, код клавиши и т.д.) сохраняется в специальной структуре данных для дальнейшей обработки. Впоследствии программа проанализирует нажатия клавиш для проектов и посчитает время работы над каждым из них и, соответственно, стоимость работы сотрудника для каждого проекта (при этом может быть учтен рейтинг проекта, набранный за время работы пользователя над ним).

Отметим, что для определения файлов и папок открытых процессом, которому принадлежит дескриптор обрабатываемого окна, приходится использовать функцию ядра Windows NtQuerySystemInformation [5], [6], что, во-первых ограничивает область применимости пакета только платформой Windows (хотя подавляющая часть программного кода написана на языке C# [7], является платформонезависимой и может быть запущена на Linux под Mono [8]) и, во-вторых, вызов NtQuerySystemInformation очень “дорогой” по временным затратам, что требовало введения кэширования результатов, чтобы обновление информации можно было проводить реже, чем при каждом нажатии клавиш. Все это усложняло алгоритм работы и, кроме того, корректный расчет времени проводился только в случае, если с проектами пользователь работал последовательно и перед работой со следующим проектом сохранял изменения, сделанные в предыдущем.

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

Новый метод, в отличие от предыдущего, не соотносит клавишу для какого-либо проекта в момент нажатия, а запоминает и накапливает в связанном списке [9, С. 264], [10] пары «информация о нажатии – дескриптор активного окна в момент нажатия». Впоследствии в момент сохранения какого-либо файла проекта возникает событие файловой системы, которое перехватывается программным комплексом. Определяется дескриптор окна и из списка пар «информация о нажатии – дескриптор активного окна в момент нажатия» выбираются те элементы, дескриптор окна которых равен дескриптору активного окна в момент сохранения файла. По полученному диапазону списка проводится анализ времени работы с проектом, так как возникшее событие сохранения файла позволяет идентифицировать папку к которой относится событие и, следовательно, определить проект, содержащий данный файл. При этом промежутки времени между нажатиями больше некоторого заранее установленного интервала времени (порядка нескольких минут) вычитаются из общего времени.

Описанный подход к определению времени работы пользователя с проектом имеет следующий недостаток – считается, что возникшее событие файловой системы относится к файлу, редактируемому в текущем активном окне. Однако можно привести пример, когда это не так. В случае, если при сохранении файла произошел какой-либо сбой и пользователь успел переключиться на другое окно возникнет ситуация, когда дескриптор окна не имеет отношения к сохраняемому файлу. Но заметим, что это скорее искусственный пример, чем реальная ситуация. В процессе тестирования описанного метода определения времени работы с проектом не было отмечено ни одного такого случая.

В противовес описанному недостатку новый метод обладает несколькими неоспоримыми достоинствами по сравнению со старым. Во-первых, комплекс избавился от вызовов NtQuerySystemInformation, что значительно повысило его быстродействие. Это факт отмечали все, кто тестировал комплекс с новой версией алгоритма. Особенно заметным повышение производительности стало на компьютерах типичных офисных конфигураций с процессорами низшего ценового сегмента трех- четырехгодичной давности. Из вышесказанного  вытекает еще одно достоинство нового метода – освободившиеся вычислительные ресурсы можно тратить на дополнительный анализ нажатий клавиш, например статистический анализ распределения нажатых букв и/или интервалов времени между нажатиями с целью отсечь попытки «обмануть» программу. Подобный функционал планируется внедрить в следующих версиях программного комплекса.

Список литературы / References

  1. Филиппов М.В. Основные подходы к решению проблемы расчета стоимости информации, хранимой в электронном виде / Филиппов М. В. // Современное состояние и тенденции развития гуманитарных и экономических наук: Сборник научных трудов 3-й межвузовской научно-практической конференции с международным участием (Волгоград, 12 апреля 2011 г.) Волгоград : Волгоградское научное издание. - 2011. - C. 208–212.
  2. Филиппов М. В. Решение задачи расчета стоимости электронной информации, создаваемой сотрудниками организации, с учетом выполняемого вида работ / Филиппов М. В., Завьялов Д. В. // Бизнес. Образование. Право. Вестник Волгоградского института бизнеса. - 2016. - № 3. - С. 33–37.
  3. Филиппов М. В. Программный комплекс для автоматизации учета трудовых затрат на создание информации в электронном виде / Филиппов М. В., Завьялов Д. В. // Академический журнал Западной Сибири. - 2017. - № 1. - С. 44–45.
  4. Свидетельство о государственной регистрации программы для ЭВМ №2017612458. Программный комплекс оценки стоимости электронной информации CostInformation. / Филиппов М. В., Завьялов Д. В.; Правообладатель ЧОУ ВО «Волгоградский институт бизнеса».
  5. NtQuerySystemInformation function [Electronic resource]//URL: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms724509(v=vs.85).aspx (accesed: 1.11.2017)
  6. SetWinEventHook function [Electronic resource]//URL: https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd373640(v=vs.85).aspx (accesed: 1.11.2017)
  7. C# (programming language) [Electronic resource]//URL: https://en.wikipedia.org/wiki/C_Sharp_(programming_language) (accesed: 1.11.2017)
  8. Mono [Electronic resource]//URL: http://www.mono-project.com (accesed: 1.11.2017)
  9. Thomas H. Cormen. Introduction to Algorithms, Third Edition (3rd ed.) / Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. - The MIT Press., 2009. – 1292P.
  10. LinkedList<T> Class  [Electronic resource]//URL: https://msdn.microsoft.com/en-us/library/he2s3bh7(v=vs.110).aspx (accesed: 1.11.2017)

Cписок литературы на английском языке / References in English

  1. Filippov M. V. Osnovnye podhody k resheniju problemy rascheta stoimosti informacii, hranimoj v jelektronnom vide [Basic approaches to solving the problem of calculating the cost of information stored electronically] / Filippov M. V. // Sovremennoe sostojanie i tendencii razvitija gumanitarnyh i jekonomicheskih nauk: Sbornik nauchnyh trudov 3-j mezhvuzovskoj nauchno-prakticheskoj konferencii s mezhdunarodnym uchastiem (Volgograd, 12 aprelja 2011 g.) Volgograd : Volgogradskoe nauchnoe izdanie. [Current state and development tendencies of humanitarian and economic sciences: Collection of proceedings of the 3rd Inter-University Scientific and Practical Conference with International Participation (Volgograd, April 12, 2011) Volgograd: Volgograd Scientific Publication] - 2011. - P. 208–212. [in Russian]
  2. Filippov M. V. Reshenie zadachi rascheta stoimosti jelektronnoj informacii, sozdavaemoj sotrudnikami organizacii, s uchetom vypolnjaemogo vida rabot [Solution of the problem of calculating the cost of electronic information created by employees of the organization, taking into account the type of work performed] / Filippov M. V., Zav'jalov D. V. // Biznes. Obrazovanie. Pravo. Vestnik Volgogradskogo instituta biznesa. [Business. Education. Right. Bulletin of the Volgograd Institute of Business] - 2016. - № 3. - P. 33–37. [in Russian]
  3. Filippov M. V. Programmnyj kompleks dlja avtomatizacii ucheta trudovyh zatrat na sozdanie informacii v jelektronnom vide [Software package for automation of labor costs accounting for creation of information in electronic form] / Filippov M. V., Zav'jalov D. V. // Akademicheskij zhurnal Zapadnoj Sibiri. [Academic Journal of Western Siberia.]- 2017. - № 1. - P. 44–45. [in Russian]
  4. Svidetel'stvo o gosudarstvennoj registracii programmy dlja JeVM №2017612458. [Certificate of state registration of the computer program №2017612458] Programmnyj kompleks ocenki stoimosti jelektronnoj informacii CostInformation. [Software complex for estimating the cost of electronic information CostInformation.] / Filippov M. V., Zav'jalov D. V.; Pravoobladatel' ChOU VO «Volgogradskij institut biznesa». [The copyright holder is the Volgograd Business Institute] [in Russian]
  5. NtQuerySystemInformation function [Electronic resource]//URL: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms724509(v=vs.85).aspx (accesed: 1.11.2017)
  6. SetWinEventHook function [Electronic resource]//URL: https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd373640(v=vs.85).aspx (accesed: 1.11.2017)
  7. C# (programming language) [Electronic resource]//URL: https://en.wikipedia.org/wiki/C_Sharp_(programming_language) (accesed: 1.11.2017)
  8. Mono [Electronic resource]//URL: http://www.mono-project.com (accesed: 1.11.2017)
  9. Thomas H. Cormen. Introduction to Algorithms, Third Edition (3rd ed.) / Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. - The MIT Press., 2009. – 1292P.
  10. LinkedList<T> Class [Electronic resource]//URL: https://msdn.microsoft.com/en-us/library/he2s3bh7(v=vs.110).aspx (accesed: 1.11.2017)