Разработка системы тестирования для кандидатов на позиции в компании с целью определения их профессиональной компетенции

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

Разработка системы тестирования для кандидатов на позиции в компании с целью определения их профессиональной компетенции

Оглавление

Введение

1. Исследовательская часть

1.1 Технико-экономическая характеристика предметной области

1.2 Описание сущности задачи автоматизации

1.3 Обоснование необходимости и цели использования вычислительной техники

1.4 Анализ существующих разработок и обоснование выбора технологии проектирования ИС

1.5 Обоснование проектных решений по разработке ИС

1.5.1 Обоснование выбора средств разработки клиентской части

1.5.2 Выбор средств управления данными

2. Проектная часть

2.1 Информационное обеспечение системы тестирования

2.2 Проектирование базы данных

2.3 Проектирование интерфейса

2.4 Руководство пользователя

3. Расчет экономической эффективности

3.1 Определение этапов разработки

3.2 Определение численности исполнителей

3.3 Структура сметы затрат

3.3.1 Расчет прямых материальных затрат

3.3.2 Расчет затрат на основную заработную плату

3.3.3 Расчет затрат на дополнительную заработную плату

3.3.4 Отчисления на социальные нужды

3.3.5 Расходы на приобретение, содержание и эксплуатацию комплекса технических средств

3.3.6 Накладные расходы

3.3.7 Прочие расходы

3.3.8 Смета на разработку программного продукта

3.3.9 Выявление факторов, влияющих на цену разработанного программного продукта

3.4 Определение оптимального объема продаж

3.5 Выводы

Заключение

Список использованных источников

Приложение. Листинг программных модулей

Введение

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

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

По мнению специалистов «Института информатизации образования» ЮНЕСКО, к наиболее важным направлениям формирования перспективной системы образования можно отнести:

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

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

·  обеспечение большей доступности образования для населения планеты путем широкого использования возможностей дистанционного обучения и самообразования с применением информационных и телекоммуникационных технологий;

·  повышение творческого начала (креативности) в образовании для подготовки людей к жизни в различных социальных средах (обеспечение развивающего образования).

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

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

Объектом исследования является процесс подбора кандидатов для приема на работу.

Целью проекта является разработка системы тестирования для кандидатов на позиции в компании с целью определения их профессиональной компетенции.

В соответствии с целью, сформулированы следующие задачи:

·        Обоснование необходимости введения системы тестирования;

·        Анализ понятия теста и его классификация;

·        Разработка требований к программе;

·        Разработка структуры программы;

·        Разработка системы тестирования, включая информационное, программное и техническое обеспечение.

1.     
Исследовательская часть

1.1    Технико-экономическая характеристика предметной области

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

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

Работа предприятия во многом зависит от способностей людей, включенных в производственный процесс, поэтому отбор персонала, подключение новых кадров является одной из важнейших задач предпринимателя, поскольку от успешности выбора в конечном итоге зависит работа и качество продукции. Адекватный отбор вызывает затраты, которые, как ожидается, будут компенсироваться эффективной работой персонала, наиболее подготовленного для осуществления деятельности предприятия. Конечно, прием работника, который по своим качествам не отвечает требованиям, не является непоправимой ошибкой, поскольку такой работник может быть отстранен. Однако эта ошибка может, кроме морального ущерба, нанесенного человеку, нанести затраты предприятию. Сюда входят, во-первых, затраты, относящиеся собственно к отбору персонала, во-вторых, затраты, вызванные неэффективной работой без желаемых результатов, и, в третьих, затраты, связанные с увольнением. Отсюда очевидна необходимость процесса отбора, который позволит сократить до минимума возможность ошибки. Цель отбора персонала заключается в выборе работника для определенного рабочего места с помощью тестов или оценок, которые позволяют сравнивать качества кандидатов. Следует иметь в виду, что занятость на предприятии позволяет работающему сочетать как материальную заинтересованность, так и нематериальную. Наем на работу имеет особенности, связанные с временным или постоянным ее характером. Временная занятость связана с такими особенностями, как сезонное увеличение производства продукции вследствие сезонных или пиковых распродаж, а также из-за необходимости покрыть временно понижение цен, вызванное внешними или внутренними причинами. Очевидно, что потребности во временном или постоянном персонале имеют разное значение и соответствующий персонал должен иметь разную квалификацию. Среди причин, вызывающих потребность в найме постоянного персонала, выделяются происходящие на предприятии технические изменения, понимаемые в широком смысле, включая как экономический, так технологический аспекты, а также изменения, связанные со структурно реорганизацией или заменой оборудования на новейшее, что приводит к необходимости найма персонала, соответствующего новым задачам. При этом следует учитывать, что существует отношение, которое требуется оптимизировать и которое включает эффективность труда затраты по его использованию. Для количественной оценки отношения «затраты - эффективность» необходимо уметь оценивать специфику рабочего места и уровень требований к каждому заданию с целью сравнения качеств кандидатов.

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

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

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

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

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

1.2    Описание сущности задачи автоматизации

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

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

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

Основными задачами отдела кадров являются:

-        организация отбора, набора и найма персонала, необходимой квалификации и в требуемом объеме;

-       создание эффективной системы штатных сотрудников;

-       разработка карьерных планов сотрудников;

-       разработка кадровых технологий и др.

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

Как и в любой организации, в данной организации есть отдел кадров, который осуществляет следующие функции:

-        оформление новых сотрудников;

-       оптимизирует соотношение внутреннего (перемещения внутри предприятия) и внешнего (прием новых сотрудников) привлечения персонала;

-       разрабатывает критерии отбора персонала;

-       распределяют новых работников по рабочим местам.

-       проведение собеседований с сотрудниками;

-       хранение документации относительно действующих сотрудниках;

-       работа с пенсионным фондом и с другими государственными структурами;

-       изменение персональных данных о сотрудниках;

-       составление кадровых документов;

-       составление различных стандартных форм.

В отделе кадров имеется входная и выходная информация. Работнику отдела кадров при необходимости нужно сформировать поток документов относительно сотрудников. На сегодняшний день в отделе кадров в основном для учета личных данных используется стандартные офисные приложения: текстовые редакторы, электронные таблицы и т.п. кроме того, не редки случаи хранения данных на бумажных носителях в подшитых папках для отдельных сотрудников. Данные методы не эффективны поскольку требуется значительные затраты времени при создании отчетности для руководителей предприятия, для пенсионного фонда или для других потребителей информации из отдела кадров. При хранении информации на бумаги возникают и другие сложности, такие как необходимость наличия помещения для хранения информации, ее структурирование, поскольку в ином случае затруднителен поиск информации.[19]

Руководит деятельностью отдела начальник отдел кадров. Он выполняет следующие обязанности:

·        осуществляет руководство работой отдела;

·        обеспечивает выполнение работ;

·        разрабатывает необходимую документацию, предложения, рекомендации, инструкции и т. п.;

·        проводит работу по защите информации, составляющей государственную, коммерческую и служебную тайну;

·        обеспечивает рациональное распределение нагрузки между работниками отдела;

·        создает условия для роста и повышения квалификации персонала;

·        осуществляет контроль за соблюдением работниками правил внутреннего трудового распорядка, правил и норм охраны труда и противопожарной безопасности, производственной и трудовой дисциплины;

·        вносит предложения о поощрении отличившихся работников, наложении взысканий на нарушителей производственной дисциплины;

·        обеспечивает своевременное составление отчетности.

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

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

Основные процессы, протекающие в отделе кадров любой организации:

-        поиск и прием персонала;

-       планирование, регистрация и учет рабочего времени;

-       подготовка персонала и повышение квалификации;

-       управление и регистрация переводов персонала;

-       увольнение персонала;

Почти каждый из данных процессов, протекающих в отделе кадров может разбить еще на подпроцессы. Наиболее удобная форма представления информации относительно протекающих бизнес-процессов это диаграммы стандарта IDEF0.- Function Modeling - методология функционального моделирования и графическая нотация, предназначенная для формализации и описания бизнес-процессов. Отличительной особенностью IDEF0 является её акцент на соподчинённость объектов. В IDEF0 рассматривается логические отношения между работами, а не их временная последовательность (WorkFlow).

Так же отображаются все сигналы управления, которые на DFD (Диаграмме Потоков Данных) не отображались. Данная модель является одной из самых прогрессивных моделей и используется при организации бизнес проектов и проектов, основанных на моделировании всех процессов как административных, так и организационных. [12]

Данные процессы, протекающие в отделе кадров более подробно представлены на диаграммах стандарта IDEF0 на рисунках 1.3-1.11. Контекстная диаграмма, представленная на рисунке 1.2, отображает общую концепцию процессов, а именно отображает входную и выходную информацию (документацию), а также кто выполняет данные функции и кто регулирует и контролирует их выполнение. Регулировать выполнение может как отдельное лицо, так и законодательные акты или другие документы.

Все входящие документы можно сгруппировать по следующим группам:

-        приказы;

-       бланки;

-       документы соискателей;

-       штатное расписание;

-       программы СП;

-       заявления;

-       резюме.

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

Бланки - формы стандартных документов. Необходимы для оформления стандартной отчетности.

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

Заявления - документы написанные сотрудниками и поданные в отдел кадров (например, заявление на увольнение по собственному желанию)

Рассмотрим функции сотрудника отдела кадров (рисунок 1.2).

Рисунок 1.1 Деятельность сотрудника отдела кадров

Декомпозиция процесса представлена на рисунке 1.2.

Рисунок 1.2 Декомпозиция деятельности сотрудника отдела кадров

Одной из основных функций сотрудника отдела кадров является проведения тестирования кандидатов для приема на работу (рисунок 1.3).

Рисунок 1.3 Проведение тестирования кандидатов

Для проведения тестирования работников, работодатель должен утвердить локальный нормативный акт (как вариант - положение), определяющий:

·        порядок, сроки и формы проведения тестирования;

·        состав тестов;

·        критерии оценки кандидатов (систему определения соответствия кандидата занимаемой должности путем проставления соответствующих оценок и/или баллов; установление количества / процента правильных ответов, определяющих успешное прохождение работником тестирования);

·        виды решений, принимаемых по результатам тестирования и порядок их принятия;

·        иные положения, способствующие, по мнению работодателя, наиболее эффективному проведению данной процедуры.

Тестирование проводится отдельно для каждой специальности или специализации. Для каждого направления тестирования создается тест, как правило, состоящий из 25 вопросов и 3-4 вариантов ответов на них, один из которых является верным. Результаты тестирования сравниваются после завершения тестирования и учитываются при решении о приеме кандидата на работу.

1.3   
Обоснование необходимости и цели использования вычислительной техники

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

Таблица 1.1 Характеристики описанных процессов

Действие

Среднее количество за рабочий день

Время, необходимое для выполнении одного действия, минут

Общее время, минут

Подбор вопросов и ответов для тестов

10

10

100

Предварительный отбор кандидатов

10

10

100

Учет должностей для кандидатов

3

15

45

Формирование теста

15

7

105

Проведение тестирования

15

3

45

Анализ результатов тестирования

15

3

45

Подготовка отчетов

1

35

35

ИТОГО, минут:

475


Для данного способа также характерны следующие недостатки:

·        Невысокая скорость и точность выполнения расчетов.

·        Неэффективное использование рабочего времени.

·        Бюрократия - увеличивающийся «поток» бумажной работы.

·        Возможность допущения ошибок из-за усталости сотрудников.

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

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

Проведем расчет ожидаемого эффекта от внедрения средств автоматизации.

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

Таблица 1.2 Расчет эффекта внедрения

Действие

Среднее количество за рабочий день

Время, необходимое для выполнения одного действия, минут

Общее время, минут

Подбор вопросов и ответов для тестов

10

1

10

Предварительный отбор кандидатов

10

1

10

Учет должностей для кандидатов

3

2

6

Формирование теста

15

2

30

Проведение тестирования

15

3

45

Анализ результатов тестирования

15

2

30

Подготовка отчетов

1

1

1

ИТОГО, минут:

132


Таким образом, ожидаемая экономия рабочего времени составляет около 6 часов (475-132=342 минут) ежедневно, что позволяет увеличить эффективность работы сотрудников отдела кадров при подготовке и проведении тестирования кандидатов.

1.4   
Анализ существующих разработок и обоснование выбора технологии проектирования ИС

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

На Западе в настоящее время в отношении автоматизированных систем для рекрутинга употребляется термин «applicant tracking system», или аббревиатура - ATS. В России же зарубежное понятие пока не прижилось.

Основные причины необходимости внедрения автоматизированных систем заключены, прежде всего, в борьбе за конкурентное преимущество, в стремлении сократить временные издержки. Говоря более конкретно и касаясь функциональных возможностей автоматизированных систем в целом, стоит отметить, что в настоящее время особое значение приобрела возможность не только собирать резюме в одном месте, но и хранить всю сопутствующую информацию в привязке с этими резюме (историю взаимодействия с контактом, комментарии и др.). Когда речь идет о перманентном подборе каких-либо специалистов, очень важной для работы будет являться история взаимоотношений с кандидатами. Например, сегодня в России работают около 6,5 тыс. консультантов по программным решениям SAP, узкий рынок которых заставляет рекрутеров знать буквально поименно каждого из специалистов.

Первые появившиеся системы были основаны на базовых программных продуктах CRM (Customer Relationship Management, или, как их также называют, Client Resource Management - системы управления взаимоотношениями с клиентами). Эти продукты, однако, отличались простотой и «нефункциональностью». В результате повышения требований стали появляться и первые специализированные программы, которые приобрели базовые функции, присущие и всем современным системам:

·        Работа с кандидатами;

·        Работа с клиентами/партнерами;

·        Работа с вакансиями;

·        Связь с внешними контрагентами программы (корпоративный сайт, сайты поиска работы);

·        Составление отчетов.

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

В настоящее время для российского пользователя представлено ограниченное количество (в сравнении с Западом) автоматизированных систем управления процессом подбора персонала. Наиболее популярными среди них являются «тяжелые» E-staff Рекрутер и Experium, решение от компании SAP - E-Recruiting, более «легкие» Резюмакс, Матрица. Эпитеты «тяжелые» и «легкие» здесь применяются исключительно в связи с распространенностью и известностью, а не простотой в использовании системы.

В результате опроса «Какую программу автоматизации подбора персонала вы используете в работе?», проведенного на портале HRM.ru, были получены следующие результаты : максимальное количество (36%) опрошенных отдали предпочтение программному продукту E-staff, 23,3% используют в работе систему 1С, такое же количество участников опроса ответили, что автоматизированной системой подбора персонала их компания не оснащена, 14% используют программу собственной разработки и, наконец, 3,5% респондентов работают с программным решением Experium.

Таблица 1.3 Результаты опроса

Программа

Количество

%

E-staff

31

36,0

Никакую не используем

20

23,3

20

23,3

Программа собственной разработки

12

14,0

Experium

3

3,5

Итого

86

100


Итак, E-staff на сегодняшний день оправданно занимает позицию лидера на правах старейшей автоматизированной системы по управлению процессом подбора персонала. Действительно, программный продукт обладает лучшим соотношением цена/качество. Но, тем не менее, у E-staff появился достойный конкурент - Experium, который, как нам кажется, в ближайшее время займет значительную часть рынка программ автоматизации процесса подбора персонала.

Мы рассмотрим несколько хорошо знакомых нам систем, добавив лишь экзотичный пока для России программный продукт Zoho Recruit. Решение компании SAP E-Recruiting мы оставим за рамками рассмотрения, т.к. данная система выпускается без специальной версии для кадровых агентств. Мы допускаем, что SAP E-Recruiting может быть интересна крупным компаниям, решение является достаточно «тяжеловесным» и дорогим продуктом.

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

·        Календарь: возможность планирования работы, напоминания и т.д.;

·        Работа с клиентами/партнерами: ведение карточки клиента, истории взаимодействия;

·        Работа с кандидатами: ведение карточки кандидата, истории взаимодействия;

·        Работа с вакансиями: ведение карточки вакансии, истории кандидатов по ним;

·        Импорт данных: возможность импорта данных с автоматическим заполнением полей карточки, поддержка основных форматов документов doc., rtf, pdf и других;

·        Поиск: поиск по параметрам в собственной базе;

·        Письма: возможность отправки писем из шаблонов;

·        Отчеты: возможность составления отчетов по проектам, ведения документации по всему процессу подбора персонала.

Преимущества той или иной системы могут быть связаны с дополнительными возможностями программ: возможностью удаленной работы, интеграции программы с сайтами поиска работы и корпоративным сайтом, возможностью работы с социальными сетями, работы на мобильных устройствах. Сравнительная характеристика нескольких автоматизированных систем представлена в таблице 1.4.

Таблица 1.4 Сравнительная характеристика нескольких автоматизированных систем


E-Staff

Experium

Резюмакс

Zoho Recruit

Базовые функции(календарь, работа с клиентами/партнерами, работа с кандидатами, работа с вакансиями, импорт резюме, поиск, письма, отчеты)

есть

есть

есть

есть

Размещение на сервере

собственный сервер

собственный сервер

собственный сервер

сервер разработчика

Интеграция с сайтами поиска работы и корпоративным сайтом

Размещение на 40 сайтах поиска работы, редактирование, поиск

Анонсировано появление возможности размещения на сайтах hh.ru, superjob.ru, job.ru, rabota.ru, zarplata.ru. Связь с корпоративным сайтом через "web-кабинет"

Связь с корпоративным сайтом

Связь с корпоративным сайтом

Интеграция с социальными сетями

Нет

Анонсировано появление возможности работы с сетями LinkedIn, Мой круг, Мой мир, Facebook

Нет

Есть

Возможность удаленной работы

Клиент-серверное приложение

Клиент-серверное приложение

Веб-интерфейс

Веб-интерфейс

Возможность работы с мобильного устройства

Нет

Нет

Есть

Есть


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

Теоретически у всех из них присутствует возможность удаленной работы, отличия связаны с решением этой задачи разными разработчиками; решение Zoho Recruit и Резюмакс кажутся более удобными, при их использовании есть возможность работы с любого стационарного или мобильного устройства, имеющего выход в интернет, когда для E-Staff и Experium потребуются дополнительные настройки связи с сервером и наличие установленной программной оболочки на самом компьютере, с которого Вы хотите работать в программе.

Возможность работы с сайтами поиска работы лучше всего реализована на данный момент у программы E-Staff - более 40 федеральных и региональных сайтов. «Гелиософт» только анонсировал дополнительный модуль для Experium, позволяющий автоматическое размещение на сайтах поиска работы. В противовес у решений Zoho и Резюмакс есть хорошая привязка к корпоративному сайту с функциями автоматического размещения и редактирования вакансий. В Experium интеграция с корпоративным сайтом происходит через модуль «web-кабинет». Но создание web-кабинета через сайт experium.net может показаться несколько сомнительным; какие цели преследует данное решение, кроме увеличения трафика на сайт, можно только догадываться.

И, наконец, затронем работу программ с социальными сетями. Пока возможности работы с социальными сетями (LinkedIn, Facebook) есть только у Zoho Recruit. Анонсировано, что новый модуль работы с социальными сетями появится у Experium, который позволит размещать вакансии, посты с объявлениями в сетях Мой круг, LinkedIn и других, работать с профилями людей.

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

Говоря о ценовых характеристиках рассмотренных нами систем, отметим разную политику продвижения продуктов разных компаний. В настоящий момент преобладает вариант с единовременной оплатой полнофункциональной версии программы, компания-клиент получает «коробку» с программой, устанавливает на своем сервере и работает с ней. Однако последние тенденции (облачные технологии, SaaS - программное обеспечение как услуга) на западном рынке информационных технологий позволяют предположить, что в будущем вариант с абонентской платой также будет популярным среди производителей. В настоящий момент отдельные части программ можно отнести SaaS, например, в E-Staff интернет-модуль, позволяющий интегрировать программу с сайтами поиска работы, предоставляется по подписке. Использование дополнительных модулей в программе Experium предполагает абонентскую плату (ежеквартально или ежегодно). Новый подход к оплате демонстрирует программа Zoho Recruit, за использование которой взимается абонентской плата.

Полагаем, что при выборе информационной системы, для компаний вопрос цены стоит не на последнем месте. За продукт, к сожалению, придется заплатить в независимости от того, сколько сотрудников работает с программой. Объявленные «бесплатные» версии программ для одного рекрутера (у Experium даже до 25) таковыми на самом деле не являются. В большинстве своем «бесплатные» версии ограничены по функционалу настолько, что нормальная, полноценная работа невозможна. Например, у Zoho Recruit, помимо всего прочего, ограничивается до 5 количество возможных вакансий в работе, а у Experium в бесплатной версии будут отсутствовать многие базовые функции (импорт резюме, отправка сообщений и др.). Дальше можно говорить о минимальной и максимальной возможной плате за использование программ.

Стоимость полнофункциональных версий программ на одного пользователя 13 тыс. руб. у E-Staff, 29 900 руб. у Experium, 90 000 руб. у Резюмакс, 19 долларов у Zoho Recruit, причем у первой это фиксированная плата вместе с годовой подпиской на обновление интернет-модуля, у второй - годовая плата, у третьей - полное приобретение программы, у четвертой - плата за месяц.

С увеличением количества пользователей оплата за использование программы прогрессирует, здесь разработчики опять пошли своим путем. В E-Staff за каждого нового пользователя предусмотрена плата 8,5 тыс. рублей, а версия с неограниченным количеством пользователей стоит 120 тыс. рублей (опять же с годовой подпиской на обновление интернет-модуля). «Гелиософт» разбил варианты оплаты за Experium по количеству пользователей: за возможность работы 26 рекрутеров компании сделают единовременную выплату 50 тыс. рублей + 57 500 рублей годовой абонентской платы за использование дополнительных модулей, для крупнейших клиентов с количеством пользователей более 150 сотрудников предусмотрена оплата безлимита - 600 тыс. рублей единовременной выплаты + 70 500 рублей годовой абонентской платы. У Zoho Corporation все просто: оплата работы каждого нового пользователя стоит те же 19 долларов в месяц.

Почти все разработчик· предлагают дополнительные услуги по доработке и сервисному обслуживанию своих программных продуктов, что стоит дополнительных денег.

Рассмотренные решения выполняют свойственные такого рода системам задачи, однако имеют несколько недостатков, к основным из которых для бесплатных систем относятся:

-       большая трудоемкость настройки, требуют значительной доработки под бизнес-процессы компании;

-       отсутствие технической поддержки;

-       малые возможности для масштабируемости и модернизации.

У коммерческих же систем большая стоимость покупки и внедрения решения, что не позволяет использовать их в компании.

Для решения поставленной задачи была выбрана технология прототипного проектирования, в силу своих следующих особенностей:

·        Отсутствует необходимость в большой группе разработчиков;

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

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

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

Достоинства прототипного проектирования:

·        возможность разработки приложения итерациями;

·        необязательность полного завершения работ на каждом из этапов для начала работ на следующем;

·        возможность вовлечения пользователей в процесс проектирования и построения системы;

·        высокая параллельность работ;

·        повторное использование частей проекта;

·        применение средств управления конфигурациями, облегчающее внесение изменений в проект и сопровождение готовой системы;

·        использование автоматических генераторов (мастеров);

·        использование прототипирования, позволяющего полнее выяснить и удовлетворить потребности конечного пользователя;

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

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

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

1.5    Обоснование проектных решений по разработке ИС

1.5.1 Обоснование выбора средств разработки клиентской части

Для создания программ под Windows существует огромное количество интегрированных сред разработки. К таковым можно отнести: Visual Basic, Visual С+ +, Delphi, С+ + Builder.

С появлением средств быстрой разработки приложений (RAD - rapid application development) появилась возможность программировать с помощью готовых компонентов и шаблонов. Сравним Delphi и C++Builder, выберем среду программирования для автоматизированной системы.

Система визуального программирования Delphi, разработана компанией Borland International на базе языка Object Pascal. Объектно-ориентированный подход к созданию компонент был серьезным шагом вперед. Дополнительный выигрыш обеспечивался за счет нормальной компиляции, обеспечивающей получение более производительных программ. Первые две версии Delphi довольно быстро завоевали симпатии не только у вузовских аудиторий, где Pascal пользовался особым уважением, но и среди профессионалов. Это подтолкнуло одно из подразделений фирмы Borland International на перенос визуальной технологии в среду C++. Так, почти одновременно с появлением Delphi 2.0 на рынке появилась первая версия Borland C++ Builder (ВСВ). Основу первой версии ВСВ составила библиотека визуальных компонент VCL (Visual Component Library), перенесенная без изменений из Delphi 2. Интерфейсы сред Delphi и ВСВ похожи друг на друга как близнецы, да и большая часть ВСВ была разработана на языке Object Pascal в среде Delphi. Благодаря своему происхождению система ВСВ оказалась двуязычной. Кроме своего основного языка программирования она позволяет практически без каких-либо доработок использовать формы, объекты и модули, разработанные в среде Delphi. Чтобы еще больше расширить сферу влияния среды ВСВ, ее авторы в последующих версиях обеспечили возможность использования библиотеки классов MFC (Microsoft Foundation Classes), разработанной фирмой Microsoft.

Delphi 7 2010 г - это прекрасный инструмент, но в то же время и сложная программная среда, состоящая из многих элементов. Включает в себя новый интерфейс Galileo, а так же interbase server и desktop, remote debugger server, Model Maker, Install Shield

Особенно привлекательными в Delphi являются такие изначальные возможности, как объектно-ориентированный подход к программированию, основанный на формах, ее высоко производительный (32-разрядный оптимизирующий компилятор), замечательная поддержка баз данных, тесная интеграция с программированием под Windows и технология компонентов. Но самой важной частью является язык Object Pascal, на фундаменте которого строится все остальное.

Delphi 7 2010 г обладает открытой архитектурой, полностью поддерживает технологии Microsoft OLE Automation, ActiveX, ODBC. Компилятор позволяет иметь доступ ко всем ресурсам операционных систем, реализующих интерфейс Win32 (Windows ХР и Windows 7 ).

Программы Delphi используют объектно-ориентированную структуру под названием VCL - Visual Component Library (Библиотека Визуальных Компонентов). Именно VCL поднимает быструю разработку приложений на новый уровень. Можно расширить свои возможности за счет создания своих собственных компонентов. К тому же независимые поставщики уже создали множество компонентов такого рода.

Delphi 7 2010г имеет много других улучшений IDE, расширенную поддержку баз данных (по специальным наборам данных ADO и InterBase), улучшенную версию MIDAS с поддержкой Интернета, инструмент управления версиями TeamSours, возможности перевода, концепцию фреймов и большое количество новых компонентов.

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

C++Builder 6 2010 - очередная версия системы объектно-ориентированного программирования для операционных систем Windows 2000, Windows XP, Windows Vista и Windows 7. Интегрированная среда системы (Integrated Development Environment, IDE) обеспечивает ускорение визуального проектирования, а также продуктивность многократно используемых компонентов в сочетании с усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.

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

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

В контексте C++Builder RAD подразумевает не только реальное ускорение типичного цикла «редактирование - компиляция - компоновка - прогон - отладка», но и придает создаваемым проектам изящество компонентной модели.

Уникальная среда разработки C++Builder 6 2010 IDE Insight позволяет обращаться ко всем возможностям, параметрам и компонентам интегрированной среды разработки, не тратя время на их поиск в меню и диалоговых окнах; обозреватель классов, обеспечивающий управление классами в проекте и быстрый переход между ними; объединяет Дизайнер форм, Инспектор объектов, Палитру компонентов, Менеджер проектов и полностью интегрированные Редактор кода и Отладчик - основные инструменты RAD.

В Builder C++ 6 2010 добавлены поддерживаемые отладчиком средства визуализации данных, упрощающие отладку, позволяя настраивать отображение типов данных в отладчике; поддерживаемые отладчиком средства управления потоками, обеспечивающие заморозку, разморозку и изоляцию потоков, а также установку контрольных точек для выбранных потоков, что упрощает разрешение проблем; Builder C++ 6 2010 содержит новые параметры отладчика: Scroll new events into view («Прокрутка новых событий в представлении») и Ignore non-user breakpoints («Игнорирование не пользовательских контрольных точек»), как на уровне исходных инструкций, так и на уровне ассемблерных команд - в расчете удовлетворить высокие требования программистов-профессионалов.

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

Визуальная разработка методом «перетаскивания» (drag-and-drop) многократно упрощает и ускоряет трудоемкий процесс программирования приложений СУБД. В основе объектно-ориентированного взаимодействия клиент - сервер лежит понятие наборов данных (dataset) - таблиц, запросов, хранимых процедур - основных сущностей БД, которыми оперируют компоненты доступа. Широкий выбор компонентов визуализации и редактирования позволяет легко изменять вид представления наборов данных. C++Builder использует проводник баз данных и масштабируемый словарь данных для того, чтобы автоматически настроить средства отображения и редактирования применительно к специфике вашей информации.

Наряду с дизайнерами и художниками-оформителями к прикладным разработкам в ключевых областях сети все чаще привлекаются профессионалы-программисты. Качественное приложение способно динамически выбирать информацию с сервера и предоставлять ее в формате, удобном для потребителей разного уровня, так, чтобы они смогли составить свое заключение и принять адекватное решение в кратчайший срок. C++Builder 6 2010 полностью удовлетворяет этим требованиям, обеспечивая:

–        высокую надежность, степень интеграции и качество управления;

–       быстрое визуальное проектирование эффективных приложений для переработки больших объемов информации;

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

Какую систему выбрать? Delphi использует язык Объектный Паскаль, который преподается во многих специализированных школах и учебных институтах. Система C++Builder, как следует из названия, построена на языке C++, который наиболее распространен в крупных фирмах, занимающихся разработкой математического обеспечения профессионального уровня.

Учитывая все вышесказанное и результаты анализа экспертным оцениванием можно сделать выбор среды программной разработки в пользу C++Builder, который обеспечивает чрезвычайно высокую производительность и удобство использования.

Для разработки будем использовать среду разработки RAD Studio Professional.Studio Professional включает высокопроизводительные интегрированные среды разработки собственных приложений Windows и .NET. Интегрированная среда разработки Delphi и C++Builder с поддержкой Unicode для разработки собственных приложений включает сотни готовых компонентов и функций, к числу которых относятся рефакторинг, дополнение кода, выделение синтаксиса, интерактивные шаблоны, полнофункциональная отладка и тестирование модулей. Интегрированная среда разработки поддерживает разработку приложений для платформы .NET, включая поддержку новейших технологий .NET.

1.5.2 Выбор средств управления данными

Для выбора СУБД проведем анализ существующих решений. Для этого выберем наиболее часто используемые языки и проведем сравнение.

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

В общем случае, перечень требований к СУБД, может изменяться в зависимости от поставленных целей. Тем не менее можно выделить несколько групп критериев:

-             Структура данных;

-             Функциональные возможности;

-             Особенности разработки приложений;

-             Производительность;

-             Требования к рабочей среде.

Рассмотрим каждую из этих групп в отдельности.

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

. Функциональные возможности. В данной группе требований выделяются следующие критерии: мобильность (независимость системы от

среды, в которой она работает), масштабируемость (сможет ли данная система соответствовать росту информационной системы), триггеры и хранимые процедуры, сетевые возможности.

. Особенности разработки приложений. Многие производители СУБД выпускают также средства разработки приложений для своих систем. Как правило, эти средства позволяют наилучшим образом реализовать все возможности сервера, поэтому при анализе СУБД стоит рассмотреть также и возможности средств разработки приложений. К данной группе требований можно отнести следующие: средства проектирования, многоязыковая поддержка, возможности разработки Web-приложений.

. Производительность. Производительность системы является одним из самых важных показателей, который будет использоваться в статье в качестве основного критерия для выбора СУБД. Существует несколько факторов, которые можно отнести к производительности системы и которые могут учитываться для оценки производительности данной СУБД. Такими факторами являются следующие: рейтинг ТРС (Transactions per Cent), возможности параллельной архитектуры, возможности оптимизирования запросов.

. Требования к рабочей среде. К данной группе требований можно отнести следующие: поддерживаемые аппаратные платформы, минимальные требования к оборудованию и операционной системе [1].

Рассмотрим 5 различных реляционных СУБД. Согласно методу анализа иерархий, предложенному Т. Саати, проводится попарное сравнение всех СУБД по каждому критерию, в результате чего получается 5 матриц попарных сравнений альтернатив.

В качестве альтернатив рассмотрим следующие СУБД:

1)   DB2;

2)   Oracle;

3)   Microsoft SQL Server;

4)   MySQL;

5)   PostgreSQL.

Сравним выбранные СУБД по критерию «Структура данных».

Все рассматриваемые альтернативы реализуют реляционную модель данных (РСУБД) или объектно-реляционную модель данных (ОРСУБД), следовательно, все рассматриваемые системы подходят для анализа и сравнения. Проводится анализ рассматриваемых альтернатив по предусмотренным типам данных. По результатам этого анализа можно построить матрицу попарных сравнений альтернатив по первому критерию (таблица 1.5), рассчитать вектор приоритетов, главное собственное значение и остальные показатели [3].

Таблица 1.5 Матрица попарных сравнений альтернатив по критерию «Структура данных»


DB2

Oracle

MySQL

MS SQL

Postgre SQL

DB2

1

1

1

1

1

Oracle

1

1

1/4

1/5

1/3

MySQL

1

4

1

1/2

2

MS SQL

1

5

2

1

2

Postgre SQL

1

3

1/2

1/2

1


Вектор приоритетов: ОД 8 0,08 0,24 0,33 0,17

Главное собственное значение: 5,34. Индекс согласованности (ИС): 0,084. Отношение согласованности (ОС): 0,07. Как видно, ОС в пределах нормы.

Сравним выбранные СУБД по критерию «Функциональные возможности».

Пункт «Триггеры и хранимые процедуры» определяет наличие в некоторой СУБД класса процедур, функций. Триггер -программа базы данных, вызываемая всякий раз при вставке, изменении или удалении строки таблицы. Триггеры обеспечивают проверку любых изменений на корректность, прежде чем эти изменения будут приняты. Хранимая процедура - программа, которая хранится на сервере и может вызываться клиентом. Поскольку хранимые процедуры выполняются непосредственно на сервере баз данных, обеспечивается более высокое быстродействие, нежели при выполнении тех же операций средствами клиента БД [1]. Проведем анализ альтернатив по данному пункту (таблица 1.6).

Таблица 1.6 Анализ альтернатив по пункту «Триггеры и х ранимые процедуры»


Триггер

Функция

Процедура

DB2

+

+

+

Microsoft SQL Server

+

+

+

MySQL

+

+

+

Oracle

+

+

+

PostgreSQL

+

+

+


Пункт «Масштабируемость» предполагает возможности рассматриваемой СУБД по увеличению объема данных со временем и в случае необходимости [4]. Необходимо рассмотреть максимально возможный объем хранимых данных для каждой альтернативы (таблица 1.7).

Таблица 1.7 Анализ альтернатив по пункту «Масштабируемость»


Размер БД

Размер таблицы

Размер строки

DB2

512ТБ

512 ТБ

32677 В

Microsoft SQL Server

524258 ТБ

524258 ТБ

MySQL

256ТВ

64KB

Oracle

4 Гб* Размер блока

8KB

Postgre SQL

32 ТБ

1,6 ТБ


Таким образом, проведен анализ рассматриваемых альтернатив по пунктам критерия «Функциональные возможности». По результатам анализа можно построить матрицу попарных сравнений альтернатив по второму критерию (таблица 1.8), рассчитать вектор приоритетов и основные показатели.

Таблица 1.8 Матрица попарных сравнений альтернатив по критерию «Функциональные возможности»


DB2

Oracle

MySQL

MS SQL

Postgre SQL

DB2

1

1/4

2

1/7

1/5

Oracle

4

1

1

1/4

1/2

MySQL

1/2

1

1

1/4

1/2

MS SQL

7

4

4

1

3

Postgre SQL

5

2

2

1/3

1


Вектор приоритетов: 0,07 0,13 0,09 0,49 0,22

Главное собственное значение: 5,45. Индекс согласованности (ИС): ОД 11. Отношение согласованности (ОС): 0,09.

Рассмотрим критерий «Особенности разработки приложений». При рассмотрении этого критерия необходимо оценить трудозатраты на администрирование баз данных. Основные задачи такого администрирования: установка и конфигурирование базы данных, текущее администрирование базы данных, резервное копирование/восстановление [5].

Таким образом можно построить матрицу попарных сравнений альтернатив по третьему критерию (таблица 1.9), рассчитать вектор приоритетов и основные показатели.

Таблица 1.9 Матрица попарных сравнений альтернатив по критерию «Особенности разработки приложений»


DB2

Oracle

MySQL

MS SQL

Postgre SQL

DB2

1

1

1

1/6

1

Oracle

1

1

1

1/4

1

MySQL

1

1

1

1/4

1

MS SQL

6

4

4

1

3

Postgre SQL

1

1

1

1/3

1


Главное собственное значение: 5,04. Индекс согласованности (ИС): 0,01. Отношение согласованности (ОС): 0,01.

Сравним выбранные СУБД по критерию «Производительность».

Для тестирования производительности применяются различные средства, и существует множество тестовых рейтингов. Одним из самых популярных и объективных является ТРС-анализ производительности систем. Показатель ТРС - это отношение количества запросов, обрабатываемых за некий промежуток времени, к стоимости всей системы. Следует отметить, что для СУБД PostgreSQL не проводится тест ТРС, а система MySQL проводит собственные тесты производительности. Результаты теста производительности ТРС-С представлены в таблице 1.10 [6].

Таблица 1.10 Результаты теста TPC

Название

Количество транзакций, tpmC

Стоимость транзакции, долл./tpmC

Монитор транзакций

Microsoft SQL Server 2005 х64

661,475

1.16USD

Microsoft COM+

Oracle Database Standard

631,766

1.08 USD

Microsoft COM+

IBM DB2 9.5

1,200,011

1.99 USD

Microsoft COM+


По имеющимся данным оценим рассматриваемые СУБД по критерию «Производительность», построим матрицу попарных сравнений альтернатив (таблица 1.11).

Таблица 1.11 Матрица попарных сравнений альтернатив по критерию «Производительность»

по

DB2

Oracle

MySQL

MS SQL

Postgre SQL

DB2

1

4

5

3

5

Oracle

1/4

1

3

1/2

3

MySQL

1/5

1/3

1

1/4

1

MS SQL

1/3

2

4

1

4

Postgre SQL

1/5

1/3

1

1/4

1


Вектор приоритетов: 0,47 0,15 0,07 0,24 0,07

Главное собственное значение: 5,14. Индекс согласованности (ИС): 0,036. Отношение согласованности (ОС): 0,03.

Рассмотрим критерий «Требования к рабочей среде». В таблице 1.12 приводятся результаты анализа альтернатив по критерию «Поддерживаемые операционные системы» [3].

Таблица 1.12 Поддерживаемые ОС рассматриваемых систем


DB2

MS SQL Server

MySQL

Oracle

Postgre SQL

Windows

+

+

+

+

+

Mac OS

+

+

+

+

+

Linux

+

+

+

+

+

BSD

-

+

+

-

+

UNIX

+

+

+

+

+

AmigaOS

-

+

+

-

-

Symbian

-

+

+

-

-


Оценим рассматриваемые СУБД относительно критерия «Требования к рабочей среде», построим матрицу попарных сравнений альтернатив (таблица 1.13).

Таблица 1.13 Матрица попарных сравнений альтернатив по критерию «Требования к рабочей среде»


DB2

Oracle

MySQL

MS SQL

Postgre SQL

DB2

1

1

1/4

1/4

1/3

Oracle

1

1

1/4

1/4

1/2

MySQL

4

4

1

1

3

MS SQL

4

4

1

1

3

Postgre SQL

3

2

1/3

1/3

1


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

Построим матрицу попарных сравнений критериев (таблица 1.14), для удобства пронумеруем критерии от 1 до 5.

Таблица 1.14

Матрица попарных сравнений критериев


1

2

3

4

5

1

1

1/2

1/6

1/4

2

1

1

1/2

1/6

1/3

3

2

2

1

1/5

1/2

4

6

6

5

1

2

5

4

3

2

1/2

1


Вектор приоритетов альтернатив: 0,07 0,07 0,12 0,49 0,25

Главное собственное значение: 5,03. Индекс согласованности (ИС): 0,01. Отношение согласованности (ОС): 0,01.

Таким образом, веса рассматриваемых СУБД распределены следующим образом: MySQL (0.32), DB2 (0.28), MS SQL Server (0.16), Oracle (0.13), PostgreSQL (0.11).

На основании данного сравнения выбираем для использования СУБД MySQL.

2.     
Проектная часть

2.1    Информационное обеспечение системы тестирования

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

Основными элементами модели прецедентов являются актеры и прецеденты.

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

Прецеденты - предназначены для моделирования диалога между системой и ее субъектами. Они представляют собой возможности, которые система может обеспечить конкретному субъекту.

На рис. 3.1 представлена диаграмма прецедентов, которая представляет функции администратора по работе с системой .

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

Рисунок 2.1 Диаграмма прецедентов

Администратор также заносит в БД всю необходимую информацию, производит регистрацию кандидатов и других администраторов, работает со справочниками системы, в том числе календарем.

Кандидат после авторизации проходит тесты.

Прецедент «Аутентификация пользователя» активизируется всеми субъектами ИС. Прежде чем пользователю начать работу с БД, система запрашивает его пароль и логин. Если пользователь не зарегистрирован или в пароле и/или логине допустил ошибку, то он не получает доступа к работе в ИС. После успешной проверки логина и пароля пользователя открывается главное окно программы. На рисунках представлены диаграмма последовательности и диаграмма действий этого прецедента.

Рисунок 2.2 Диаграмма последовательности «Аутентификация пользователя»

Прецедент «Учет теста» активизируется субъектом ИС администратор. Данный прецедент описывает процесс ввода новых данных в БД. Этим занимается пользователь с ролью администратор. Данные вводятся в формы ввода на основании документов клиента, а также вся справочная информация, которая нужна в процессе работы с системой. На рисунках представлены диаграмма последовательности и диаграмма действий данного прецедента.

Рисунок 2.3 Диаграмма последовательности «Учет тестов»

Диаграмма пакетов показывает, из каких частей состоит проектируемая система и как эти части связаны друг с другом.

Пакет - совокупность описаний классов и других программных ресурсов, в том числе и самих пакетов.

Анализ концептуальной модели позволил выделить следующие пакеты:

·        интерфейсные элементы - классы, реализующие интерфейсные компоненты;

·        пользовательский интерфейс - классы, реализующие объекты интерфейса с пользователем;

·        интерфейс с БД - классы, реализующие интерфейс с базой данных;

·        база данных

Рисунок 2.4 Диаграмма пакетов

Диаграмма развертывания системы представлена на рисунке.

Рисунок 2.5 Диаграмма развертывания

Как следует из приведенной диаграммы, для развертывания системы необходим сервер с установленными пакетами ПО (Apache, MySQL) и клиентское автоматизированное рабочее место.

2.2    Проектирование базы данных

Инфологическая (концептуальная) модель - это формализованное описание предметной области, выполненное безотносительно к используемым в дальнейшем программным и техническим средствам.[3] Инфологическая модель должная быть динамической и позволять легкую корректировку. К основным требованиями, предъявляемым к инфологической модели, можно отнести следующие:

·        инфологическая модель должна содержать всю необходимую и достаточную информацию для последующего проектирования базы данных;

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

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

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

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

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

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

В соответствии с данными функциями для базы данных были определены следующие сущности и отношения между ними:

Рисунок 2.6 Логическая модель базы данных

Календарь

·        Код_мероприятия

·        Код_должности

·        Код_пользователя

·        Дата_записи

·        Контрольная_точка

·        Запись

Ответы

·        Код_ответа

·        Код_вопроса

·        Ответ

·        Верный

Пользователи

·        Код_пользователя

·        Имя

·        Пароль

·        Признак_администратора

Вопросы

·        Код_вопроса

·        Код_должности

·        Вопрос

·        Изображение

·        5 Должности

·        Код_должности

·        Наименование

·        Права_доступа

Тесты

·        Код_теста

·        Код_пользователя

·        Дата_теста

·        Время_начала

·        Время_окончания

·        Описание

·        Код_кандидата

Результаты

·        Код_записи

·        Должность

·        Код_пользователя

·        Код_вопроса

·        Код_ответа

После чего для каждого реквизита определены тип поля и его значение.

Рисунок 2.7 Физическая модель базы данных

Характеристика каждой таблицы и полей приведена в таблицах ниже.

Таблица 2.1 Структура таблицы hr_Answers

Поле

Тип

Связи

Id

int(11)

 

QuestionId

int(11)

hr_questions -> Id

QuestionText

varchar(255)

 

isTrue

tinyint(1)

 


Таблица 2.1 Структура таблицы hr_Meeting

Поле

Тип

Связи

Id

int(11)

 

UserId

int(11)

hr_users -> Id

DateMeeting

date

 

BeginTime

time

 

EndTime

time

 

Description

varchar(255)

 

ClientId

int(11)

 


Таблица 2.1 Структура таблицы hr_Positions

Поле

Тип

Id

int(11)

Name

varchar(50)

NeedPoints

int(11)


Таблица 2.1 Структура таблицы hr_Posting

Поле

Тип

Связи

Id

int(11)

 

PositionId

int(11)

hr_positions -> Id

UserId

int(11)

hr_users -> Id

DatePost

datetime

 

CountPoint

int(11)

 

isAccept

tinyint(1)

 


Таблица 2.1 Структура таблицы hr_Questions

Поле

Тип

Связи

Id

int(11)

 

PositionId

int(11)

hr_positions -> Id

QuestionText

varchar(255)

 

Pict

varchar(255)

 


Таблица 2.1 Структура таблицы hr_Results

Поле

Тип

Связи

Id

int(11)

 

PositionId

int(11)

hr_positions -> Id

UserId

int(11)

hr_users -> Id

QuestionId

int(11)

hr_questions -> Id

AnswerId

int(11)

hr_answers -> Id


Таблица 2.1 Структура таблицы hr_Users

Поле

Тип

Id

int(11)

Name

varchar(50)

Password

varchar(15)

isAdmin

tinyint(1)


2.3    Проектирование интерфейса

Интерфейс должен разрабатываться в соответствии с требованиями юзабилити. Юзабилити - это свойство системы или продукта. Если продукт является юзабельным, то это означает, что пользователи могут достичь свои цели при использовании этого продукта; это значит, что не существует барьеров в решении задач. Специалисты по юзабилити учитывают в своей работы эти цели и задачи.

Определения юзабилити согласно стандарту ISO 9241-11 звучит так: «юзабилити - это степень эффективности, продуктивности и удовлетворенности, с которыми продукт может быть использован определенными пользователями в определенном контексте использования для достижения определенных целей» (the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use).

Типичный процесс проектирования GUI-интерфейса для приложений ИС начинается с прецедентов. Аналитик, занимающийся описанием потока событий для прецедента, обладает некоторым зрительным образом GUI-интерфейса для поддержки человеко-машинного взаимодействия. Сложные человеко-машинные взаимодействия нельзя верно передать, пользуясь лишь “языком прозы”. Иногда процесс сбора и согласования требований заказчика делает необходимым выработку эскизов GUI-интерфейса.

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

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

В большинстве существует стандартный набор элементов интерфейса, включающий следующие элементы управления:

·        кнопка (button)

·        split button (сдвоенная кнопка) - кнопка, вызывающая список со вторичным(и) действием(и) (кнопками)

·        радиокнопка (radio button)

·        флажок (check box)

·        значок (иконка, icon)

·        список (list box)

·        дерево - иерархический список (tree view)

·        раскрывающийся список (combo box, drop-down list)

·        метка (label)

·        поле редактирования (textbox, edit field)

·        элемент для отображения табличных данных (grid view)

·        меню (menu)

·        главное меню окна (main menu или menu bar)

·        контекстное меню (popup menu)

·        ниспадающее меню (pull down menu)

·        окно (window)

·        диалоговое окно (dialog box)

·        модальное окно (modal window)

·        панель (panel)

·        вкладка (tab)

·        панель инструментов (toolbar)

·        полоса прокрутки (scrollbar)

·        ползунок (slider)

·        строка состояния (status bar)

·        всплывающая подсказка (tooltip, hint)

Для разрабатываемого приложения будут использованы следующие типы элементов:

·        кнопка (button)

·        значок (иконка, icon)

·        список (list box)

·        поле редактирования (textbox, edit field)

·        элемент для отображения табличных данных (grid view)

·        меню (menu)

·        главное меню окна (main menu или menu bar)

·        вкладка (tab)

·        полоса прокрутки (scrollbar)

·        ползунок (slider)

·        строка состояния (status bar)

Для использования требований к интерфейсу были использованы следующие технологические решения при разработке экранных форм:

·        Использование специальных программных средств при проектировании макетов экранных форм;

·        Использование традиционного расположения таких элементов интерфейса, как кнопки «Закрыть окно», «Свернуть в окно», «Свернуть»;

·        Использование крупных интерфейсных элементов для перехода к пунктам меню программы.

2.4    Руководство пользователя

Рассмотрим порядок использования разработанной системы тестирования. В системе предусмотрено 2 вида пользователей - администратор и тестируемый. Рассмотрим работы администратора. Для входа в систему необходимо пройти авторизацию.

Рисунок 2.8 Страница авторизации

При корректном вводе пароля и логина осуществляется переход на главную страницу системы тестирования.

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

Рисунок 2.9 Главная страница

Рисунок 2.10 Пользователи

Рисунок 2.11 Редактирование данных кандидата

При переходе на страницу «Должности» открывается экранная форма, в которой можно добавить, удалить или редактировать существующие тесты для должности.

Рисунок 2.12 Должности

Рисунок 2.13 Добавление должности

Для каждого теста можно задать произвольное количество вопросов.

Рисунок 2.14 Добавление вопроса

Результаты теста приведены на отдельной странице.

Рисунок 2.15 Результаты теста

Также администратор учитывает должности.

Рисунок 2.16 Учет должностей

Также администратор имеет возможность заметки в календарь.

Рисунок 2.17 Календарь

Рассмотрим далее порядок работы кандидата. Для начала тестирования пользователь должен выбрать тест.

Рисунок 2.18 Выбор теста

И начать тестирование. Тестирование проходит в виде выбора верного ответа на каждый вопрос.

Рисунок 2.19 Прохождение теста

Результаты теста показываются на отдельной странице.

Рисунок 2.20 Результаты тестирования

3.     
Расчет экономической эффективности

3.1    Определение этапов разработки

Общие затраты труда на разработку и ПО определим следующим образом:

,(1)

где - затраты труда на выполнение i -го этапа проекта.

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

,(2)

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

Полный перечень работ с разделением их по этапам приведён в таблице 3.1.

Таблица 3.1 Разделение работ по этапам

Этап

№ работы

Содержание работы

, чел/ часы

, чел/ часы

, чел/ часы

, чел/ дни

Разработка технических требований

1

Получение задачи, уяснение требований

17

25

3

4


2

Уточнение требований заказчика

45

5

6


3

Разработка технического задания

67

75

9

10


4

Определение структуры программы, ее основных модулей

57

65

8

9

Разработка алгоритмов

5

Разработка описание модулей программы, их функциональных возможностей

37

45

5

6


6

Разработка интерфейса программы, экранных форм для ввода информации и получения отчетов

47

55

6

7

Разработка программных модулей

7

Разработка базы данных

47

55

6

7


8

Разработка алгоритма работы программы

37

45

5

6


9

Разработка программного кода

67

75

9

10

Тестирование и отладка разрабатываемого ПО

10

Разработка клиентской части программы

57

65

8

9

Разработка документации

11

Разработка инструкции пользователю

27

35

4

5

=Qож= 69 чел/дней = 675 чел/час.

3.2    Определение численности исполнителей

Для оценки возможности выполнения проекта имеющимся в распоряжении разработчика штатным составом исполнителей нужно рассчитать их среднее количество, которое при реализации проекта разработки и внедрения ПО определяется соотношением:

 (3)

где  - затраты труда на выполнение проекта (разработка и внедрение ПО), F - фонд рабочего времени и определяется по формуле:

(4)

где tp- продолжительность рабочего дня, DK - общее число дней в году, DB - число выходных дней в году, DП - число праздничных дней в году.

Таким образом, фонд времени в текущем месяце составляет

(5)

Время выполнения проекта (Т) - 3 месяца.

Величина фонда рабочего времени составляет 498 часов.

Затраты труда на выполнения проекта были рассчитаны в предыдущем разделе, их величина равна 552 чел/час. В соответствии с этими данными и выражением (3), среднее количество исполнителей равно:

(6)

Округляя до большего, получим число исполнителей проекта N = 2.

Для иллюстрации последовательности проводимых работ приведем диаграмму Гантта данного проекта, на которой по оси X изображены календарные дни от начала до конца проекта, а по оси Y - выполняемые этапы работ.

Диаграмма Гантта приведена на рисунке 3.1.

Рисунок 3.1 Диаграмма Гантта проводимых работ

3.3    Структура сметы затрат

Производственные затраты на разработку представляют собой расходы на всех этапах процесса: исследование, разработка, внедрение. Определение затрат на разработку производится путем составления калькуляции плановой себестоимости. В плановую себестоимость включаются все затраты, связанные с ее выполнением, независимо от источника их финансирования. Смета затрат состоит из прямых и накладных расходов. Расходы на разработку проекта включают в себя следующие статьи:

1.       Прямые материальные затраты;

2.      Основная заработная плата;

.        Дополнительная заработная плата;

.        Отчисления на социальные нужды;

.        Расходы на приобретение, содержание и эксплуатацию комплекса технических средств;

.        Накладные расходы.

3.3.1 Расчет прямых материальных затрат

К прямым материальным затратам относятся затраты на материалы и комплектующие, необходимые для выполнения работ по разработке системы учета отказов. Учитываются все затраты на материалы и комплектующие, целевым назначением идущие на данную разработку.

Таблица 3.2 Расчет материалов и комплектующих

№ п/п

Элемент материальных затрат

Количество

Цена за шт. (руб.)

Общая стоимость (руб.)

1

Компакт-диски

10

25

250

2

Бумага А4, пачек

5

120

600

3

Ручка и карандаши

15

15

225

4

Картридж для принтера

2

450

900

ИТОГО, рублей

1975


3.3.2 Расчет затрат на основную заработную плату

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

Таблица 3.3 Расчет основной заработной платы

Должность

«Чистый» оклад, руб.

Оклад, руб в час.

Трудозатраты, чел-дни

Затраты на зарплату, руб.

1

Разработчик

42000

250

460

115000

2

Руководитель

75600

450

255

89250

Итого:

715

206750


3.3.3 Расчет затрат на дополнительную заработную плату

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

ЗП доп.= 14% от 206750 (руб.).

ЗП доп. = 28945 (руб.)

3.3.4 Отчисления на социальные нужды

Единый социальный налог рассчитывают в процентах от суммы основной и дополнительной заработных плат, в пенсионный фонд, в ФСС и мед.страхование. На 2013 год данный процент составляет 30,2%.

ЕСН = 30,2% от (ЗП осн. + ЗП доп.)

ЕСН = 0,302 *(206750+28945) =71179,89 (руб.)

3.3.5 Расходы на приобретение, содержание и эксплуатацию комплекса технических средств

Используемые аппаратные средства предназначен не только для выполнения данной разработки, поэтому будем учитывать только текущие затраты.

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

Таблица 3.4 Расчет стоимости КТС

Наименование

Kол-во

Цена за шт.

Сумма руб.

1

Персональный компьютер Моноблок Dell XPS One 2720

1

74000

74000

2

ИБП APC by Schneider Electric Power Saving Back-UPS Pro 1500

1

14000

14000

3

HP LaserJet Pro M1132 MFP

1

5500

5500

 

ИТОГО


93520


Расходы на содержание и эксплуатацию КТС определяют как произведение стоимости часа работы КТС на количество часов машинного времени, затраченного на разработку.

В стоимость часа работы КТС включают следующие затраты:

1.       Амортизационные отчисления, приходящиеся на 1 час работы КТС:

Ач = Фперв* ,

Где Фперв - первоначальная стоимость КТС или отдельных его элементов;

а - норма амортизации (0.25);д- фонд времени работы КТС за год (2 000-3 000 часов).

Таблица 3.5 Расчет амортизационных отчислений

№ п/п

Элемент КТС

Фперв

Ач

Количество часов работы

Общая стоимость (руб.)

1.

Персональный компьютер Моноблок Dell XPS One 2720

74000

3000

6,17

675

4162,5

2

ИБП APC by Schneider Electric Power Saving Back-UPS Pro 1500

14000

3000

1,17

675

787,5

3

HP LaserJet Pro M1132 MFP

5500

3000

0,46

675

309,375

ИТОГО

5259


2.       Затраты на силовую энергию, приходящиеся на 1 час работы КТС; определяют как произведение установленной мощности КТС в кВт на стоимость 1 кВт в час. Уровень тарифов на электроэнергию для города Москва - 3.58 руб. за кВт/ч.

Таблица 3.6 Расчет затрат на силовую энергию

№ п/п

Элемент КТС

Установленная мощность, кВт

Стоимость 1кВт в час (руб.)

Количество часов работы

Общая стоимость

1.

Персональный компьютер Моноблок Dell XPS One 2720

0,66

3,58

675

1594,89

1.

ИБП APC by Schneider Electric Power Saving Back-UPS Pro 1500

1

3,58

675

2416,5

1.

HP LaserJet Pro M1132 MFP

0,2

3,58

675

483,3

ИТОГО

4494,69


3.       Затраты на текущий ремонт и профилактику, приходящиеся на 1 час работы КТС; определяют аналогично амортизационным отчислениям, но вместо нормы амортизации используют процент указанных затрат (5-10%).

Bч = Фперв* ,, где b = 0,05

Таблица 3.7 Расчет затрат на текущий ремонт и профилактику

№ п/п

Элемент КТС

Фперв

Количество часов работы

Общая стоимость (руб.)

1.

Персональный компьютер Моноблок Dell XPS One 2720

74000

3000

1,23

675

832,5

2

ИБП APC by Schneider Electric Power Saving Back-UPS Pro 1500

14000

3000

0,23

675

157,5

3

HP LaserJet Pro M1132 MFP

5500

3000

0,09

675

61,875

ИТОГО

1051,875


Таким образом, расходы на содержание и эксплуатацию комплекса технических средств составляют: 5259+4494+1051=10804 (руб.)

3.3.6 Накладные расходы

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

Как правило, накладные расходы определяются в процентах от основной заработной платы разработчиков.

Процент накладных расходов = (70-80%) ЗПосн.

НП = 75%*206750= 155062,5 (руб.)

3.3.7 Прочие расходы

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

3.3.8 Смета на разработку программного продукта

Таблица 3.8 Смета затрат

№ п/п

Элементы затрат

Сумма, руб.

 1

Прямые материальные затраты

1975

 2

Затраты на основную заработную плату

206750

 3

Затраты на дополнительную заработную плату

28945

 4

Единый социальный налог

71179

 5

Расходы на покупку, содержание и эксплуатацию КТС

104324

6

Накладные расходы

155062

7

Прочие расходы

0

ИТОГО, рублей

568275


Соотношение статей сметы затрат приведено на рисунке 3.2.

Рисунок 3.2 Соотношение статей сметы затрат

3.3.9
Выявление факторов, влияющих на цену разработанного программного продукта

Для оценки эффективности использования разработанного продукта у потенциального пользователя, необходимо выявить факторы, определяющие эффективность. Такими факторами являются:

·        централизация доступа к информации;

·        снижение времени поиска информации;

·        повышение производительности труда;

·        стандартизация интерфейса доступа к информации.

Заказанная разработка системы рассчитана под нужды рассматриваемого предприятия, стоимость будет равна сумме затрат + прибыль разработчика(15%):

Цпо=C+П=568275+ 568275*0,15 = 653516,25 руб.

3.4    Определение оптимального объема продаж

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

, где

E - норма дисконта;

Т - планируемый срок использования разработанного ПП (лет), Т = 3 года;

А по - износ нематериальных активов (разработанный ПП);

Норма дисконта для собственного капитала устанавливается самим предприятием и определяется дивидендной политикой компании, в данном случае - 15%.

Прогнозируемый темп инфляции за 2013 год - 5,9 %. (учтён в 15%)

Уровень риска вложений интенсификации производства на базе освоенной продукции - низкий и составляет 4 %. Следовательно:

.

Износ нематериальных активов рассчитывается по формуле:

АПП= ЦПП / Т,


Таблица 3.9 Расчет показателей экономической эффективности

Показатель

Единица измере-ния

Значение показателя до внедрения ПП

Значение показателя после внедрения ПП

Среднее время на выполнение одной операции (время загрузки одной карты)

Мин.

1

0,3

Среднее количество операций, выполняемых за год


100000

100000

Общая трудоемкость выполнения операций за год

Час

1*100000/60= 1666,7

0,3*00000/60= 555

Чел.

1666,7/1800= 0,926

555/1800= 0,3

Средняя заработная плата одного работника за год

Руб.

360000

360000

Заработная плата за выполнение операций

Руб.

36000*0,926= 333360

360000*0,3= 12000

Отчисления на социальные нужды(30,2%)

Руб.

333360*0,302= 100674,7

12000*0,302= 3624,088

Расходы на содержание и эксплуатацию КТС

Руб.

10804

10804

Износ нематериальных активов

Руб.

-

217838

Накладные расходы (120%)

Руб.

360000*1.2= 120809,664

360000*1,2= 4348,8

Годовые затраты на выполнение операций

Руб.

565648,4

92186,07

Дополнительная прибыль

Руб.

317033,584,3

Дополнительная чистая прибыль (ставка налога на прибыль Н= 20%)

Руб.

317033,584*0,8=253626,8672


Расчет чистого дисконтированного дохода:


Дисконтированный доход за один год составляет:


Срок окупаемости ПП:


3.5    Выводы

В данной главе дипломной работы были рассмотрены вопросы, связанные с затратами на разработку информационной системы. Был проведен расчет временных и денежных затрат на разработку системы, среди которых: затраты на материалы, арендная плата, зарплата сотрудников, накладные расходы и др.; составлена смета затрат на разработку; рассчитан срок окупаемости программного продукта, который составляет 9 месяцев..

Заключение

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

В результате был реализован программный продукт, призванный помочь в работе отдела кадров организации.

В процессе написания дипломного проекта были выполнено следующее:

-        анализ предметной области;

-       анализ деятельности предприятия;

-       расчет экономической эффективности программного продукта;

-       проектирование базы данных;

-       физическая реализация базы данных;

-       разработка приложения пользователя;

-       физическая реализация приложения пользователя.

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

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

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

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

Список использованных источников

1.      Баранова Е.Н, , Бабаш А.Н., Информационная безопасность и защита информации, Издательство: РИОР, Инфра-М, М., 2012 год, 256 стр.,

.        Билл Карвин, Программирование баз данных SQL. Типичные ошибки и их устранение, Издательство: Рид Групп, 2012 г., 336 стр.

.        Бобровский С. Программирование в Delphi 7 - СПб.: Информ-Пресс, 2011. - 806 c. : ил.

.        Вендров А.М., CASE-технологии. Современные методы и средства проектирования информационных систем - М.: Финансы и статистика, 2007 г, 456 стр.

.        Вигерс Карл, Разработка требований к программному обеспечению, Пер, с англ. - М.:Издательско-торговый дом "Русская Редакция", 2011. -576с.: ил

.        Гашков С. Б., Э. А. Применко, М. А. Черепнев Криптографические методы защиты информации, М, Издательство: Академия, 2010 г., 304 стр.

.        Голицына О. Л., И. И. Попов, Н. В. Максимов, Т. Л. Партыка, Информационные технологии, М, Издательство Инфра-М, 2012 г., 608 стр.

.        ГОСТ Р ИСО/МЭК 12207/99. Государственный стандарт РФ. Информационная технология. Процессы жизненного цикла информационных систем. Издание официальное. - М., 1999

.        Дарахвелидзе, П.Г. Программирование в Delphi 7. - СПб.: БХВ-Петербург, 2011. - 784 с.

.        Джон Гудсон, Роб Стюард, Практическое руководство по доступу к данным, Издательство: БХВ-Петербург, Спб, 2013 год, 304 стр.

.        Дэвид Паттерсон, Джон Хеннесси, Архитектура компьютера и проектирование компьютерных систем, Издательство: Питер, М., 2012 год, 784 стр.,

.        Емельянова Н. З., Партыка Т. Л., И. И. Попов, Проектирование информационных систем, М, Издательство: Форум, 2012 г., 432 стр.

.        Заботина Н.А, Проектирование информационных систем, Издательство: Инфра-М, М., 2013 год, 336 стр,

.        Илюшечкин В. М. , Основы использования и проектирования баз данных, М, Издательство Юрайт, 2011 г., 224 стр.

.        Котляров В. П., Т. В. Коликова, Основы тестирования программного обеспечения, Издательства: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2011 г., 288 стр.

.        Кристофер Д. Маннинг, Прабхакар Рагхаван, Хайнрих Шютце, Введение в информационный поиск, Издательство: Вильямс, 2011 г., 528 стр.

.        Крэг Ларман, Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку, Издательство: Вильямс, М., 2013 год, 736 стр.

.        Кузин А. В., С. В. Левонисова, Базы данных, М, Издательство: Академия, 2012 г., 320 стр.

.        Кузнецов С. Д., Основы баз данных, М, Издательства: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2012 г., 488 стр.

.        Кумскова И. А., Базы данных, Издательство: КноРус, 2011 г., 488 стр.

.        Луки В.А., Введение в проектирование баз данных, Издательство: Вузовская книга, М., 2013 год, 144 стр.

.        Маклаков С. В. ВРWin и ERWin. САSЕ-средства разработки информационных систем - М.: Диалог-МИФИ, 2012 - 455 с.: ил.

.        Малюк А. А., Пазизин С. В., Погожин Н. С., Введение в защиту информации в автоматизированных системах, Издательство: Горячая Линия - Телеком, 2011 г., 146 стр.

.        Мельников В. П., Клейменов С. А., Петраков А. М., Информационная безопасность и защита информации, Издательство: Академия, 2012 г., 336 стр.

.        Молчанов А. Ю., Системное программное обеспечение, М, Издательство: Питер, 2012 г., 400 стр.

.        Незнанов А. А., Программирование и алгоритмизация, М, Издательство: Академия, 2012 г., 304 стр.

.        Перерва А.И,, Иванова В. Н., Путь аналитика. Практическое руководство IT-специалиста, Издательство: Питер, Спб, 2013 год, 304 стр.

.        Пирогов В. Ю., Информационные системы и базы данных. М, Организация и проектирование, Издательство: БХВ-Петербург, 2012 г.528 стр.

.        Платонов В.А., Программно-аппаратные средства защиты информации, Издательство: Академия, М., 2013 год, 336 стр.,

.        Роберт Дж. Мюллер, Проектирование баз данных и UML, Издательство: Лори, М., 2013 год, 432 стр.

.        Рябко Б. Я., Фионов А. Н., Криптографические методы защиты информации, Издательство: Горячая Линия - Телеком, 2012 г., 230 стр.

.        Сергеева Ю. С., Защита информации. Конспект лекций, Издательство: А-Приор, 2011 г., 128 стр.

.        Симионов Ю.Ф., Боромотов В.В. Информационный менеджмент. - Ростов н.Д: Феникс, 2011, 250с., ил.

.        Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. ГОСТ 19.701-90 (ИСО 5807-85) / Государственный комитет СССР по управлению качеством продукции и стандартам, 01.01.1992.

.        Шаньгин В.А., Защита информации в компьютерных системах и сетях, Издательство: ДМК Пресс, М., 2013 год, 592 стр.

.        Энди Орам, Грегори Уилсон, Идеальная разработка ПО. Рецепты лучших программистов, Издательство: Питер, Спб, 2013 год, 592 стр.

Приложение. Листинг программных модулей

#pragma once

#include "MySqlInterface.h"

#include "QuestionAnswers.h"

#include "TestResults.h"HR {namespace System;namespace System::ComponentModel;namespace System::Collections;namespace System::Windows::Forms;namespace System::Data;namespace System::Drawing;

/// <summary>

/// Сводка для Candidates

/// </summary>ref class Candidates : public System::Windows::Forms::Form

{: int _IdUser = 0;:(void)

{();

//

//TODO: добавьте код конструктора

//

}(int idUser)

{>_IdUser = idUser;();

//

//TODO: добавьте код конструктора

//

}:

/// <summary>

/// Освободить все используемые ресурсы.

/// </summary>

~Candidates()

{(components)

{components;

}

}: System::Windows::Forms::Panel^ BasePanel;:: System::Windows::Forms::Button^ ShowTestButton;: System::Windows::Forms::Button^ ExitButton;: System::Windows::Forms::TabControl^ CandidateTab;: System::Windows::Forms::TabPage^ AvailableTestsTab;: System::Windows::Forms::DataGridView^ PositionsTestsView;: System::Windows::Forms::TabPage^ PassedTestsTab;: System::Windows::Forms::Button^ PassTestButton;: System::Windows::Forms::DataGridView^ PassedTestsView;

private:

/// <summary>

/// Требуется переменная конструктора.

/// </summary>::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

/// </summary>InitializeComponent(void)

{::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Candidates::typeid));>BasePanel = (gcnew System::Windows::Forms::Panel());>PassTestButton = (gcnew System::Windows::Forms::Button());>ShowTestButton = (gcnew System::Windows::Forms::Button());>ExitButton = (gcnew System::Windows::Forms::Button());>CandidateTab = (gcnew System::Windows::Forms::TabControl());>AvailableTestsTab = (gcnew System::Windows::Forms::TabPage());>PositionsTestsView = (gcnew System::Windows::Forms::DataGridView());>PassedTestsTab = (gcnew System::Windows::Forms::TabPage());>PassedTestsView = (gcnew System::Windows::Forms::DataGridView());>BasePanel->SuspendLayout();>CandidateTab->SuspendLayout();>AvailableTestsTab->SuspendLayout();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->PositionsTestsView))->BeginInit();>PassedTestsTab->SuspendLayout();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->PassedTestsView))->BeginInit();>SuspendLayout();

//

// BasePanel

//>BasePanel->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));>BasePanel->BackColor = System::Drawing::SystemColors::ControlDarkDark;>BasePanel->Controls->Add(this->PassTestButton);>BasePanel->Controls->Add(this->ShowTestButton);>BasePanel->Controls->Add(this->ExitButton);>BasePanel->Location = System::Drawing::Point(671, 12);>BasePanel->Name = L"BasePanel";>BasePanel->Size = System::Drawing::Size(115, 218);>BasePanel->TabIndex = 4;

//

// PassTestButton

//>PassTestButton->Anchor = System::Windows::Forms::AnchorStyles::Top;>PassTestButton->BackColor = System::Drawing::SystemColors::ControlDarkDark;>PassTestButton->Font = (gcnew System::Drawing::Font(L"Segoe Print", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,_cast<System::Byte>(0)));>PassTestButton->ForeColor = System::Drawing::SystemColors::ButtonHighlight;>PassTestButton->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"PassTestButton.Image")));>PassTestButton->ImageAlign = System::Drawing::ContentAlignment::TopCenter;>PassTestButton->Location = System::Drawing::Point(3, 104);>PassTestButton->Name = L"PassTestButton";>PassTestButton->Size = System::Drawing::Size(106, 109);>PassTestButton->TabIndex = 4;>PassTestButton->Text = L"Пройти тест";>PassTestButton->TextAlign = System::Drawing::ContentAlignment::BottomCenter;>PassTestButton->UseVisualStyleBackColor = false;>PassTestButton->Click += gcnew System::EventHandler(this, &Candidates::PassTestButton_Click);

//

// ShowTestButton

//>ShowTestButton->Anchor = System::Windows::Forms::AnchorStyles::Top;>ShowTestButton->BackColor = System::Drawing::SystemColors::ControlDarkDark;>ShowTestButton->Font = (gcnew System::Drawing::Font(L"Segoe Print", 9, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,_cast<System::Byte>(0)));>ShowTestButton->ForeColor = System::Drawing::SystemColors::ButtonHighlight;>ShowTestButton->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"ShowTestButton.Image")));>ShowTestButton->ImageAlign = System::Drawing::ContentAlignment::TopCenter;>ShowTestButton->Location = System::Drawing::Point(3, 104);>ShowTestButton->Name = L"ShowTestButton";>ShowTestButton->Size = System::Drawing::Size(106, 109);>ShowTestButton->TabIndex = 0;>ShowTestButton->Text = L"Посмотреть тест";>ShowTestButton->TextAlign = System::Drawing::ContentAlignment::BottomCenter;>ShowTestButton->UseVisualStyleBackColor = false;>ShowTestButton->Visible = false;>ShowTestButton->Click += gcnew System::EventHandler(this, &Candidates::ShowTestButton_Click);

//

// ExitButton

//>ExitButton->Anchor = System::Windows::Forms::AnchorStyles::Top;>ExitButton->BackColor = System::Drawing::SystemColors::ControlDarkDark;>ExitButton->Font = (gcnew System::Drawing::Font(L"Segoe Print", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,_cast<System::Byte>(0)));>ExitButton->ForeColor = System::Drawing::SystemColors::ButtonHighlight;>ExitButton->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"ExitButton.Image")));>ExitButton->ImageAlign = System::Drawing::ContentAlignment::TopCenter;>ExitButton->Location = System::Drawing::Point(3, 3);>ExitButton->Name = L"ExitButton";>ExitButton->Size = System::Drawing::Size(106, 95);>ExitButton->TabIndex = 3;>ExitButton->Text = L"Выйти";>ExitButton->TextAlign = System::Drawing::ContentAlignment::BottomCenter;>ExitButton->UseVisualStyleBackColor = false;>ExitButton->Click += gcnew System::EventHandler(this, &Candidates::ExitButton_Click);

//

// CandidateTab

//>CandidateTab->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)

| System::Windows::Forms::AnchorStyles::Left)

| System::Windows::Forms::AnchorStyles::Right));>CandidateTab->Appearance = System::Windows::Forms::TabAppearance::Buttons;>CandidateTab->Controls->Add(this->AvailableTestsTab);>CandidateTab->Controls->Add(this->PassedTestsTab);>CandidateTab->Location = System::Drawing::Point(12, 12);>CandidateTab->Name = L"CandidateTab";>CandidateTab->SelectedIndex = 0;>CandidateTab->Size = System::Drawing::Size(653, 405);>CandidateTab->TabIndex = 3;>CandidateTab->SelectedIndexChanged += gcnew System::EventHandler(this, &Candidates::CandidateTab_Selected);

//

// AvailableTestsTab

//>AvailableTestsTab->BackColor = System::Drawing::SystemColors::ControlDarkDark;>AvailableTestsTab->Controls->Add(this->PositionsTestsView);>AvailableTestsTab->ForeColor = System::Drawing::SystemColors::ControlText;>AvailableTestsTab->Location = System::Drawing::Point(4, 25);>AvailableTestsTab->Name = L"AvailableTestsTab";>AvailableTestsTab->Padding = System::Windows::Forms::Padding(3);>AvailableTestsTab->Size = System::Drawing::Size(645, 376);>AvailableTestsTab->TabIndex = 0;>AvailableTestsTab->Text = L"Доступные тесты";

//

// PositionsTestsView

//>PositionsTestsView->AllowUserToAddRows = false;>PositionsTestsView->AllowUserToDeleteRows = false;>PositionsTestsView->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)

| System::Windows::Forms::AnchorStyles::Left)

| System::Windows::Forms::AnchorStyles::Right));>PositionsTestsView->AutoSizeColumnsMode = System::Windows::Forms::DataGridViewAutoSizeColumnsMode::Fill;>PositionsTestsView->BackgroundColor = System::Drawing::SystemColors::ControlDarkDark;>PositionsTestsView->BorderStyle = System::Windows::Forms::BorderStyle::None;>PositionsTestsView->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;>PositionsTestsView->Location = System::Drawing::Point(6, 6);>PositionsTestsView->MultiSelect = false;>PositionsTestsView->Name = L"PositionsTestsView";>PositionsTestsView->ReadOnly = true;>PositionsTestsView->SelectionMode = System::Windows::Forms::DataGridViewSelectionMode::FullRowSelect;>PositionsTestsView->Size = System::Drawing::Size(633, 364);>PositionsTestsView->TabIndex = 14;

//

// PassedTestsTab

//>PassedTestsTab->BackColor = System::Drawing::SystemColors::ControlDarkDark;>PassedTestsTab->Controls->Add(this->PassedTestsView);>PassedTestsTab->Location = System::Drawing::Point(4, 25);>PassedTestsTab->Name = L"PassedTestsTab";>PassedTestsTab->Padding = System::Windows::Forms::Padding(3);>PassedTestsTab->Size = System::Drawing::Size(645, 376);>PassedTestsTab->TabIndex = 1;>PassedTestsTab->Text = L"Пройденные тесты";

//

// PassedTestsView

//>PassedTestsView->AllowUserToAddRows = false;>PassedTestsView->AllowUserToDeleteRows = false;>PassedTestsView->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)

| System::Windows::Forms::AnchorStyles::Left)

| System::Windows::Forms::AnchorStyles::Right));>PassedTestsView->AutoSizeColumnsMode = System::Windows::Forms::DataGridViewAutoSizeColumnsMode::Fill;>PassedTestsView->BackgroundColor = System::Drawing::SystemColors::ControlDarkDark;>PassedTestsView->BorderStyle = System::Windows::Forms::BorderStyle::None;>PassedTestsView->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;>PassedTestsView->Location = System::Drawing::Point(6, 6);>PassedTestsView->MultiSelect = false;>PassedTestsView->Name = L"PassedTestsView";>PassedTestsView->ReadOnly = true;>PassedTestsView->SelectionMode = System::Windows::Forms::DataGridViewSelectionMode::FullRowSelect;>PassedTestsView->Size = System::Drawing::Size(633, 364);>PassedTestsView->TabIndex = 15;

//

// Candidates

//>AutoScaleDimensions = System::Drawing::SizeF(6, 13);>AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;>BackColor = System::Drawing::SystemColors::ControlDarkDark;>ClientSize = System::Drawing::Size(798, 436);>Controls->Add(this->BasePanel);>Controls->Add(this->CandidateTab);>MinimumSize = System::Drawing::Size(472, 475);>Name = L"Candidates";>StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;

this->Text = L"Кадровая служба - Кандидат";

this->Load += gcnew System::EventHandler(this, &Candidates::Candidates_Load);>BasePanel->ResumeLayout(false);>CandidateTab->ResumeLayout(false);>AvailableTestsTab->ResumeLayout(false);

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->PositionsTestsView))->EndInit();>PassedTestsTab->ResumeLayout(false);

(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->PassedTestsView))->EndInit();>ResumeLayout(false);

}

#pragma endregion: System::Void ExitButton_Click(System::Object^ sender, System::EventArgs^ e) {>Close();

}: System::Void CandidateTab_Selected(System::Object^ sender, System::EventArgs^ e) {(this->CandidateTab->SelectedIndex == 0)

{>PassTestButton->Visible = true;>ShowTestButton->Visible = false;

}if (this->CandidateTab->SelectedIndex == 1)

{>PassTestButton->Visible = false;>ShowTestButton->Visible = true;

}

}: System::Void Candidates_Load(System::Object^ sender, System::EventArgs^ e) {

{();

}(Exception ^ ex)

{::Show("Ошибка соединения с базой даных");

}

}::Void RefreshTests()

{^ msi = gcnew MySqlInterface;^ dt = msi->GetCandidateTests(this->_IdUser);>Rows->Clear();>Rows->Clear();(!PositionsTestsView->Columns->Contains("Id"))

{>Columns->Add("Id", "Id");

}(!PositionsTestsView->Columns->Contains("Name"))

{>Columns->Add("Name", "Должность");

}(!PassedTestsView->Columns->Contains("Id"))

{>Columns->Add("Id", "Id");

}(!PassedTestsView->Columns->Contains("Name"))

{>Columns->Add("Name", "Должность");

}(!PassedTestsView->Columns->Contains("PostingId"))

{>Columns->Add("PostingId", "PostingId");

}(!PassedTestsView->Columns->Contains("CountPoint"))

{>Columns->Add("CountPoint", "Набраные баллы");

}(!PassedTestsView->Columns->Contains("NeedPoints"))

{>Columns->Add("NeedPoints", "Нужно баллов");

}(!PassedTestsView->Columns->Contains("DatePost"))

{>Columns->Add("DatePost", "Дата сдачи");

}(!PassedTestsView->Columns->Contains("isAccept"))

{>Columns->Add("isAccept", "Статус");

}postingId = 0;rowIndex = 0;each (DataRow ^ row in dt->Select())

{(int::TryParse(row["PostingId"]->ToString(), postingId))

{= PassedTestsView->Rows->Add();>Rows[rowIndex]->Cells["PostingId"]->Value = postingId;>Rows[rowIndex]->Cells["Name"]->Value = row["Name"]->ToString();>Rows[rowIndex]->Cells["Id"]->Value = row["Id"]->ToString();>Rows[rowIndex]->Cells["CountPoint"]->Value = row["CountPoint"]->ToString();>Rows[rowIndex]->Cells["NeedPoints"]->Value = row["NeedPoints"]->ToString();>Rows[rowIndex]->Cells["DatePost"]->Value = row["DatePost"]->ToString();>Rows[rowIndex]->Cells["isAccept"]->Value = int::Parse(row["isAccept"]->ToString()) >= 0 ? (int::Parse(row["isAccept"]->ToString()) > 0 ? "Принят" : "Ожидание") : "Провален";

}

{= PositionsTestsView->Rows->Add();>Rows[rowIndex]->Cells["Id"]->Value = row["Id"]->ToString();>Rows[rowIndex]->Cells["Name"]->Value = row["Name"]->ToString();

}

}>Columns["Id"]->Visible = false;>Columns["Id"]->Visible = false;>Columns["PostingId"]->Visible = false;

}: System::Void PassTestButton_Click(System::Object^ sender, System::EventArgs^ e) {^ msi = gcnew MySqlInterface;^ row;

{= PositionsTestsView->SelectedRows[0];^ question = msi->GetTests(int::Parse(row->Cells["Id"]->Value->ToString()));^ answers;^ qa = gcnew QuestionAnswers;

{rowIndex = 0;questionIndex = 1;each (DataRow ^ rowQuestion in question->Select())

{= gcnew QuestionAnswers(this->_IdUser, int::Parse(row->Cells["Id"]->Value->ToString()));= msi->GetAnswers(int::Parse(rowQuestion["Id"]->ToString()));>Text = "Вопрос " + questionIndex + " из " + question->Rows->Count;>AnswersList->Columns->Add("QuestionId", "QuestionId");>AnswersList->Columns->Add("AnswerId", "AnswerId");>AnswersList->Columns->Add("AnswerText", "Ответ");>QuestionText->Text = rowQuestion["QuestionText"]->ToString();>ShowPicture->ImageLocation = System::IO::Directory::GetCurrentDirectory() + "\\img\\" + rowQuestion["Pict"];each(DataRow ^ rowAnswer in answers->Select())

{= qa->AnswersList->Rows->Add();>AnswersList->Rows[rowIndex]->Cells["QuestionId"]->Value = rowAnswer["QuestionId"]->ToString();>AnswersList->Rows[rowIndex]->Cells["AnswerId"]->Value = rowAnswer["Id"]->ToString();>AnswersList->Rows[rowIndex]->Cells["AnswerText"]->Value = rowAnswer["QuestionText"]->ToString();

}>AnswersList->Columns["QuestionId"]->Visible = false;>AnswersList->Columns["AnswerId"]->Visible = false;>ShowDialog();(qa->Except)

{gcnew Exception;

}++;

}>SaveTestResult(this->_IdUser, int::Parse(row->Cells["Id"]->Value->ToString()));::Show("Тест завершен");();

}(Exception ^ e)

{>Close();

}

}(Exception ^ ex)

{::Show("Выберите должность");

}

}: System::Void ShowTestButton_Click(System::Object^ sender, System::EventArgs^ e) {^ row;

{= PassedTestsView->SelectedRows[0];^ tr = gcnew TestResults(this->_IdUser, this->_IdUser, int::Parse(row->Cells["Id"]->Value->ToString()));>ShowDialog();

}(Exception ^ e)

{::Show("Выберите тест");

}

}

};

}

#pragma once

#include "MySqlInterface.h"HR {namespace System;namespace System::ComponentModel;namespace System::Collections;namespace System::Windows::Forms;namespace System::Data;namespace System::Drawing;

/// <summary>

/// Сводка для MeetingForm

/// </summary>ref class MeetingForm : public System::Windows::Forms::Form

{: int _Id = 0;: int _IdUser = 0;: System::String ^ _Day;: System::String ^ _StartTime;: System::String ^ _EndTime;: System::String ^ _ClientName;: System::Windows::Forms::ComboBox^ CandidatesList;: System::String ^ _Description;:(void)

{();

//

//TODO: добавьте код конструктора

//

}(int id, int idUser, System::String ^ day, System::String ^ startTime, System::String ^ endTime, System::String ^ clientName, System::String ^ description)

{>_Id = id;>_IdUser = idUser;>_Day = day;>_StartTime = startTime;>_EndTime = endTime;>_ClientName = clientName;>_Description = description;();

//

//TODO: добавьте код конструктора

//

}:

/// <summary>

/// Освободить все используемые ресурсы.

/// </summary>

~MeetingForm()

{(components)

{components;

}

}: System::Windows::Forms::Label^ DayTitle;:: System::Windows::Forms::Label^ BeginTimeTitle;: System::Windows::Forms::Label^ EndTimeTitle;: System::Windows::Forms::Label^ ClientTitle;: System::Windows::Forms::Label^ DescriptionTitle;::: System::Windows::Forms::DateTimePicker^ Day;: System::Windows::Forms::DateTimePicker^ BeginTime;: System::Windows::Forms::DateTimePicker^ EndTime;: System::Windows::Forms::TextBox^ Description;: System::Windows::Forms::TextBox^ Id;: System::Windows::Forms::Button^ AddMeetingButton;: System::Windows::Forms::Button^ CancelMeetingButton;:: System::ComponentModel::IContainer^ components;

private:

/// <summary>

/// Требуется переменная конструктора.

/// </summary>

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

/// </summary>InitializeComponent(void)

{>DayTitle = (gcnew System::Windows::Forms::Label());>BeginTimeTitle = (gcnew System::Windows::Forms::Label());>EndTimeTitle = (gcnew System::Windows::Forms::Label());>ClientTitle = (gcnew System::Windows::Forms::Label());>DescriptionTitle = (gcnew System::Windows::Forms::Label());>Day = (gcnew System::Windows::Forms::DateTimePicker());>BeginTime = (gcnew System::Windows::Forms::DateTimePicker());>EndTime = (gcnew System::Windows::Forms::DateTimePicker());>Description = (gcnew System::Windows::Forms::TextBox());>Id = (gcnew System::Windows::Forms::TextBox());>AddMeetingButton = (gcnew System::Windows::Forms::Button());>CancelMeetingButton = (gcnew System::Windows::Forms::Button());>CandidatesList = (gcnew System::Windows::Forms::ComboBox());>SuspendLayout();

//

// DayTitle

//>DayTitle->AutoSize = true;>DayTitle->Location = System::Drawing::Point(32, 12);>DayTitle->Name = L"DayTitle";>DayTitle->Size = System::Drawing::Size(34, 13);>DayTitle->TabIndex = 0;>DayTitle->Text = L"День";

//

// BeginTimeTitle

//>BeginTimeTitle->AutoSize = true;>BeginTimeTitle->Location = System::Drawing::Point(25, 38);>BeginTimeTitle->Name = L"BeginTimeTitle";>BeginTimeTitle->Size = System::Drawing::Size(44, 13);>BeginTimeTitle->TabIndex = 1;>BeginTimeTitle->Text = L"Начало";

//

// EndTimeTitle

//>EndTimeTitle->AutoSize = true;>EndTimeTitle->Location = System::Drawing::Point(151, 38);>EndTimeTitle->Name = L"EndTimeTitle";>EndTimeTitle->Size = System::Drawing::Size(38, 13);>EndTimeTitle->TabIndex = 2;>EndTimeTitle->Text = L"Конец";

//

// ClientTitle

//>ClientTitle->AutoSize = true;>ClientTitle->Location = System::Drawing::Point(23, 64);>ClientTitle->Name = L"ClientTitle";>ClientTitle->Size = System::Drawing::Size(43, 13);>ClientTitle->TabIndex = 3;>ClientTitle->Text = L"Клиент";

//

// DescriptionTitle

//>DescriptionTitle->AutoSize = true;>DescriptionTitle->Location = System::Drawing::Point(9, 92);>DescriptionTitle->Name = L"DescriptionTitle";>DescriptionTitle->Size = System::Drawing::Size(57, 13);>DescriptionTitle->TabIndex = 4;>DescriptionTitle->Text = L"Описание";

//

// Day

//>Day->Location = System::Drawing::Point(72, 9);>Day->Name = L"Day";>Day->Size = System::Drawing::Size(200, 20);>Day->TabIndex = 6;

//

// BeginTime

//>BeginTime->Format = System::Windows::Forms::DateTimePickerFormat::Time;>BeginTime->Location = System::Drawing::Point(72, 35);>BeginTime->Name = L"BeginTime";>BeginTime->ShowUpDown = true;>BeginTime->Size = System::Drawing::Size(73, 20);>BeginTime->TabIndex = 7;

//

// EndTime

//>EndTime->Format = System::Windows::Forms::DateTimePickerFormat::Time;>EndTime->Location = System::Drawing::Point(195, 35);>EndTime->Name = L"EndTime";>EndTime->ShowUpDown = true;>EndTime->Size = System::Drawing::Size(77, 20);>EndTime->TabIndex = 8;

//

// Description

//>Description->Location = System::Drawing::Point(72, 89);>Description->MaximumSize = System::Drawing::Size(200, 4);>Description->MinimumSize = System::Drawing::Size(4, 45);>Description->Multiline = true;>Description->Name = L"Description";>Description->Size = System::Drawing::Size(200, 45);>Description->TabIndex = 10;

//

// Id

//>Id->Location = System::Drawing::Point(52, 113);>Id->MaximumSize = System::Drawing::Size(200, 4);>Id->Multiline = true;>Id->Name = L"Id";>Id->Size = System::Drawing::Size(14, 4);>Id->TabIndex = 11;>Id->Text = L"0";>Id->Visible = false;

//

// AddMeetingButton

//>AddMeetingButton->BackColor = System::Drawing::SystemColors::ControlDarkDark;>AddMeetingButton->Location = System::Drawing::Point(12, 140);>AddMeetingButton->Name = L"AddMeetingButton";>AddMeetingButton->Size = System::Drawing::Size(123, 23);>AddMeetingButton->TabIndex = 12;>AddMeetingButton->Text = L"Сохранить";>AddMeetingButton->UseVisualStyleBackColor = false;>AddMeetingButton->Click += gcnew System::EventHandler(this, &MeetingForm::AddMeetingButton_Click);

//

// CancelMeetingButton

//>CancelMeetingButton->BackColor = System::Drawing::SystemColors::ControlDarkDark;>CancelMeetingButton->Location = System::Drawing::Point(153, 140);>CancelMeetingButton->Name = L"CancelMeetingButton";>CancelMeetingButton->Size = System::Drawing::Size(119, 23);>CancelMeetingButton->TabIndex = 13;>CancelMeetingButton->Text = L"Отменить";>CancelMeetingButton->UseVisualStyleBackColor = false;>CancelMeetingButton->Click += gcnew System::EventHandler(this, &MeetingForm::CancelMeetingButton_Click);

//

// CandidatesList

//>CandidatesList->FormattingEnabled = true;>CandidatesList->Location = System::Drawing::Point(72, 61);>CandidatesList->Name = L"CandidatesList";>CandidatesList->Size = System::Drawing::Size(200, 21);>CandidatesList->TabIndex = 14;

//

// MeetingForm

//>AutoScaleDimensions = System::Drawing::SizeF(6, 13);>AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;>BackColor = System::Drawing::SystemColors::ControlDarkDark;>ClientSize = System::Drawing::Size(284, 174);>Controls->Add(this->CandidatesList);>Controls->Add(this->CancelMeetingButton);>Controls->Add(this->AddMeetingButton);>Controls->Add(this->Id);>Controls->Add(this->Description);>Controls->Add(this->EndTime);>Controls->Add(this->BeginTime);>Controls->Add(this->Day);>Controls->Add(this->DescriptionTitle);>Controls->Add(this->ClientTitle);>Controls->Add(this->EndTimeTitle);>Controls->Add(this->BeginTimeTitle);>Controls->Add(this->DayTitle);>ForeColor = System::Drawing::SystemColors::ButtonHighlight;>FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedToolWindow;>Name = L"MeetingForm";>StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;

this->Text = L"Добавить встречу";

this->Load += gcnew System::EventHandler(this, &MeetingForm::MeetingForm_Load);>ResumeLayout(false);>PerformLayout();

}

#pragma endregion: System::Void MeetingForm_Load(System::Object^ sender, System::EventArgs^ e) {^ msi = gcnew MySqlInterface;

{(this->_Id > 0)

{>Id->Text = "" + this->_Id;>Day->Text = this->_Day;>BeginTime->Text = this->_StartTime;>EndTime->Text = this->_EndTime;>CandidatesList->ValueMember = "Id";>CandidatesList->DisplayMember = "Name";>CandidatesList->DataSource = msi->GetCandidates();>CandidatesList->Text = this->_ClientName;>Description->Text = this->_Description;

}

{>CandidatesList->ValueMember = "Id";>CandidatesList->DisplayMember = "Name";>CandidatesList->DataSource = msi->GetCandidates();>CandidatesList->SelectedIndex = -1;

}

}(Exception ^ e)

{::Show("Ошибка соединения с базой даных");

}

}: System::Void AddMeetingButton_Click(System::Object^ sender, System::EventArgs^ e) {^ msi = gcnew MySqlInterface;candidateId = 0;

{>AddUpdateMeeting(int::Parse(this->Id->Text), this->_IdUser, this->Day->Value, this->BeginTime->Value, this->EndTime->Value, int::Parse(this->CandidatesList->SelectedIndex == -1 ? "0" : this->CandidatesList->SelectedValue->ToString()), this->Description->Text);>Close();

}(Exception ^ e)

{::Show("Ошибка соединения с базой даных");

}

}: System::Void CancelMeetingButton_Click(System::Object^ sender, System::EventArgs^ e) {

this->Close();

}

};

}

Похожие работы на - Разработка системы тестирования для кандидатов на позиции в компании с целью определения их профессиональной компетенции

 

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