Бакалаврская. Павлов Д.С._ПИбд-1402а. Разработка информационной системы по работе с клиентами организации (на примере ооо стаффджет)
![]()
|
ГЛАВА 2. РАЗРАБОТКА И РЕАЛИЗАЦИЯ ПРОЕКТНЫХ РЕШЕНИЙ ДЛЯ ООО «СТАФФДЖЕТ» 2.1. Логическое моделирование предметной области кадрового агентства 2.1.1. Логическая модель и ее описание Логическая структура данных, хранящихся в базе, называется моделью представления данных. Существует несколько основных моделей представления. 1. Реляционная модель Реляционная модель представляет собой простейшую и наиболее привычную форму представления данных – в табличном виде. Теория множеств имеет особый математический аппарат для работы с такой моделью – реляционное исчисление и реляционную алгебру. В основе реляционной модели лежит понятие отношения. Отношением называется множество элементов, называемых кортежами. В привычном понимании кортежем является строка таблицы. Столбец таблицы является атрибутом. Базовая структура данной модели построена на декартовом произведении доменов. Доменом называется множество значений, которое может принимать элемент данных [9]. Существует еще и постреляционная модель данных, расширяющая описанную. Она снимает ограничение неделимости данных, которые хранятся в записях таблиц. Кроме того, постреляционная модель допускает использование многозначных полей, при этом набор значений таких полей считается отдельной самостоятельной таблицей, которая встроена в основную. Преимущества реляционной модели данных: простота организации – табличная форма хранения является естественной и понятной для пользователя; четкое следование правилам математического аппарата; независимость данных в процессе изменения структуры таблицы; 26 отсутствие необходимости знания организации БД для построения запросов. Недостатки модели: большой объем необходимой памяти; малая скорость доступа к данным; трудность понимания структуры в случаях большого числа таблиц [17]. 2. Иерархическая модель Иерархическая модель данных представляет собой дерево. Каждое дерево состоит из набора типов, одним из которых является корень. Корневым называется такой тип, который имеет подчиненные типы, при этом сам не является подтипом. Подтип – потомок по отношению к типу-предку. Потомки одного типа являются близнецами по отношению друг к другу. Каждый тип, входящий в дерево, представляет собой простой или составной тип записи. Поля записи (атрибуты) хранят символьные или числовые значения, которые и являются содержимым БД. Преимуществом иерархической модели является эффективное использование памяти ЭВМ, а также высокие показатели времени выполнения основных операций над данными. Основной недостаток – громоздкость в плане обработки информации со сложными логическими связями, а также сложность для понимания. 3. Сетевая модель Сетевая модель отображает отношения элементов БД в виде графа. Основными элементами данной модели являются записи и связи. На формирование связи не накладывается особых ограничений – записи-потомки могут иметь неограниченное число записей-предков. Преимущество данной модели заключается в возможности эффективной реализации по показателям оперативности и затрат памяти. 27 Недостатки – высокая сложность и жесткость схемы БД. Кроме того, в сетевой модели ослаблен контроль целостности связей из-за допустимости установления произвольных отношений [1]. При проектировании базы данных использовалась наиболее распространенная - реляционная модель данных. При этом были выделены следующие сущности: соискатели; резюме; работодатели; вакансии; агенты. Логическая модель данных представлена на рисунке 2.1 [27]. Рис. 2.1. Логическая модель данных Согласно схеме, в разрабатываемой системе будут реализованы следующие процессы: получение резюме от соискателей; получение вакансий от работодателей; обработка резюме от соискателей – внесение данных в базу и поиск подходящих вакансий; 28 обработка вакансий работодателей – внесение данных в базу и поиск подходящих кандидатур. Автоматизация данных процессов позволит повысить производительность работы сотрудников. 2.1.2. Характеристика разрабатываемой информационной системы для ООО «СТАФФДЖЕТ» В процессе декомпозиции логической модели были выделены сущности, представленные в таблицах 2.1-2.7 [11]. Таблица 2.1. Агенты (Agents) Идентификатор Тип данных Комментарий ID Счетчик Идентификатор агента NAME Текстовый Имя агента Таблица 2.2. Работодатели (Employers) Идентификатор Тип данных Комментарий ID Счетчик Идентификатор работодателя Name Текстовый Название Description Текстовый Описание Address Текстовый Адрес Phone Текстовый Телефон City Текстовый Город Таблица 2.3. Специальности (Specialities) Идентификатор Тип данных Комментарий ID Счетчик Идентификатор специальности Name Текстовый Название специальности 29 Таблица 2.4. Соискатели (Applicants) Идентификатор Тип данных Комментарий ID Счетчик Идентификатор соискателя FirstName Текстовый Имя SecondName Текстовый Фамилия FurName Текстовый Отчество City Текстовый Город BirthDate Дата/время Дата рождения Sex Текстовый Пол EducationID Числовой Тип образования SpecialityID Числовой Специальность Expierence Числовой Опыт работы по специальности DesiredSalary Числовой Минимальная желаемая заработная плата ReadyToMove Логический Готовность к переезду PrivateVehicle Логический Наличие личного транспорта PCKnowledge Логический Знание ПК DesiredHolidayMonth Текстовый Желаемый месяц отпуска Children Числовой Количество детей Phone Текстовывй Телефон AgentID Числовой Идентификатор агента, работающего с данным соискателем Status Текстовый Стату заявки ProcessDate Дата/время Дата смены статуса заявки 30 Таблица 2.5. Образоване (Educationtypes) Идентификатор Тип данных Комментарий ID Счетчик Идентификатор позиции Name Текстовый Название образования RangeValue Числовой Числовой эквивалент Таблица 2.6. Вакансии (Vacancies) Идентификатор Тип данных Комментарий ID Счетчик Идентификатор вакансии EmployerID Числовой Работодатель Sex Текстовый Требования к полу EducationID Числовой Требования к образованию Age Числовой Требования к возрасту SpecialityID Числовой Требования по специальности Expierence Числовой Требования к опыту работы по специальности SalaryFrom Числовой Нижний порог заработной платы SalaryTo Числовой Верхний порог заработной платы Transport Логический Требования к наличию личного транспорта PCKnowledge Логический Требования к знанию ПК LaborCode Логический Оформление по ТК SheduleID Числовой График работы Таблица 2.7. График работы (Shedules) Идентификатор Тип данных Комментарий ID Счетчик Идентификатор графика Type Текстовый Название 31 Схема полученной базы данных представлена на рисунке 2.2 [16]. Рис. 2.2. Схема базы данных В рамках данного параграфа приводится описание логической модели данных разрабатываемой информационной системы. Для создания базы данных использовалась СУБД Microsoft Access. 2.2. Физическое моделирование АИС для ООО «СТАФФДЖЕТ» 2.2.1. Выбор архитектуры АИС для ООО «СТАФФДЖЕТ» При выборе архитектуры АИС необходимо рассмотреть следующие возможные варианты: системы на основе файл-серверной архитектуры – данная архитектура не подразумевает сетевого разделения компонент, поэтому для реализации функций диалогов и обработки данных использует клиентский компьютер. При таком подходе данные извлекаются из файлов, поэтому дополнительные пользователи не создают большой нагрузки на процессор. Основным недостатком этой архитектуры является возможность высокой загрузки при выполнении сложных запросов к базе; системы на основе клиент-серверной архитектуры – подобные системы предназначаются для решения проблем файл-серверной архитектуры 32 за счет разделения компонентов приложения и их размещения там, где они будут максимально эффективно функционировать. Характерная черта подобной архитектуры – использование выделенного сервера баз данных, который отвечает за выполнение всех операций с базой. Стоит отметить, что данная архитектура обладает наилучшей масштабируемостью; системы на основе многоуровневой архитектуры – данные системы предполагают использование трех уровней: o нижний – клиентские приложения; o средний – сервер приложений, на котором выполняется прикладная логика; o верхний – удаленный сервер для файловых операций. системы на основе технологии интернет/интранет – данный тип систем предназначен для браузерных приложений [9]. Таким образом, для решения поставленной задачи достаточно использовать файл-серверную архитектуру, не требующую каких-либо дополнительных затрат. 2.2.2. Функциональная схема Функциональная схема проекта представлена на рисунке 2.3. Функции приложения можно разделить на две группы: основные и служебные. К основным функциям стоит отнести первичную обработку данных – добавление, редактирование и удаление данных, а также операции подбора соискателей на конкретную вакансию и подбора вакансий конкретному соискателю. К служебным функциям относятся функции сбора статистики по следующим параметрам: желаемый размер заработной платы по возрастным группам; количество соискателей по возрастным группам; продуктивность работы агентов. 33 Рис. 2.3. Функциональная схема Стоит отметить, что данный набор функций в дальнейшем может быть расширен. 2.2.3. Структурная схема Структурная схема классов полученного приложения представлена на рисунке 2.4. Рис. 2.4. Структурная схема приложения Главное меню Соискатели Работодатели Агенты Выход Новый Редактировать Удалить Статистика Новый Редактировать Удалить Вакансии Новая Редактировать Удалить Подобрать Новый Редактировать Удалить Подобрать Статистика Желаемая зп Возрастные группы 34 Основные элементы данной схемы: IAccessDB - вспомогательный модуль, отвечающий за взаимодействие с базой данных; Agent – класс, характеризующий сущность «Агент». К свойствам данного класса относятся форма данных, форма списка агентов, а также данные агента – его идентификатор и имя; Applicant – класс, характеризующий сущность «Соискатель». К свойствам данного класса относятся форма данных, форма списка работодателей, а также данные соискателя из его резюме; Employer – класс, характеризующий сущность «Работодатель». К свойствам данного класса относятся форма данных, форма списка работодателей, а также данные работодателя – наименование организации, адрес, телефон; Vacancy - класс, характеризующий сущность «Вакансия». К свойствам данного класса относятся форма данных, форма списка работодателей, а также данные о вакансии – наименование и требования к соискателям. Каждый класс представляет собой самостоятельную сущность и реализован по принципам объектно-ориентированного программирования. 2.2.4. Описание программных модулей Все описанные ранее программные модули реализуют интерфейс IAccessDB, куда входят методы: AddMeToDB – добавление данных в базу; DeleteMeFromDB – удаление данных из базы; UpdateMeInDB – обновление данных в базе; InitializeMe – инициализация данных в базе [39]. Также общими для всех классов являются методы: Add – создание формы добавления в базу соответствующего элемента и последующее внесение данных, сопровождающееся вызовом AddMeToDB; 35 Delete – создание диалогового окна с запросом подтверждения удаления данных и последующее их удаление при помощи вызова DeleteMeFromDB; Update - создание формы редактирования данных о соответствующем элементе и последующее внесение данных, сопровождающееся вызовом UpdateMeInDB; FillForm – первоначальное заполнение соответствующей графической формы; GetValues – получение всех значений из соответствующей графической формы. Взаимодействие с базой данных реализуется с помощью элемента DataSetTableAdapters [37]. Выводы по параграфу В рамках данного параграфа приводится описание физического моделирования АИС – описана структура таблиц баз данных, основные классы приложения и их методы. 2.3. Технологическое обеспечение задачи 2.3.1. Организация технологии сбора, передачи, обработки и выдачи информации Работа с информационной системой начинается с подключения к базе данных. Работа с программой осуществляется в событийных и диалоговых режимах. Под диалогом здесь понимается предоставление пользователю нескольких альтернатив и обработка его выбора. Под событиями понимаются процессы, активизируемые пользователем, а также программные события – получение определенным полем фокуса редактирование или потеря фокуса ввода. На основании этих событий активизируются процедуры контроля допустимости данных. 36 Основой разработанной системы является интерактивный режим ввода данных. Файлы оперативной информации являются исходными ресурсами приложения и подгружаются по запросу. 2.3.2. Схема технологического процесса сбора, передачи, обработки и выдачи информации Схематическое представление технологического обеспечения представлено на рисунке 2.5. Рис. 2.5. Технологическое обеспечение задачи Алгоритм программы построен следующим образом: подключение к БД – на данном этапе пользователю необходимо указать данные для установки соединения с базой данных; авторизация – после того, как соединение с базой установлено, пользователь должен пройти процедуру авторизации – ввести логин и пароль; 37 проверка прав доступа - по причине того, что в системе предусмотрено несколько пользовательских ролей, проверка прав доступа обладает тремя выходами – для каждой роли соответственно. Доступ к отображаемым функциям информационной системы зависит от роли пользователя. По завершению работы пользователь закрывает приложение, при это все изменения, которые он вносил в базу данных, будут видны остальным пользователям. 2.4. Контрольный пример реализации проекта и его описание Главная форма приложения представлена на рисунке 2.6. При выборе пункта меню «Соискатели», открывается окно, представленное на рисунке 2.7. Для создания нового соискателя необходимо нажать кнопку «Новый» в меню данной формы, в результате чего откроется окно добавления соискателя, представленное на рисунке 2.8. В результате добавления новый соискатель автоматически появляется в таблице «Соискатели». В случае незаполненности каких-либо данных приложение выдаст соответствующее уведомление (см. рисунки 2.9 – 2.11) [31]. Для редактирования данных о соискателе необходимо выбрать интересующую позицию в таблице «Соискатели», а затем нажать кнопку «Редактировать» в меню, расположенном в верхней части формы. В результате этих действий откроется окно редактирования данных о соискателе, представленное на рисунке 2.12. Для удаления данных о соискателе необходимо выбрать интересующую позицию в таблице «Соискатели», а затем нажать кнопку «Удалить» в меню, расположенном в верхней части формы. В результате этих действий откроется окно подтверждения удаления данных, представленное на рисунке 2.13 [34]. 38 Рис. 2.6. Главная форма приложения Рис. 2.7. Форма «Соискатели» 39 Рис. 2.8. Добавление соискателя Рис. 2.9. Проверка заполненности данных при отсутствии специальности Рис. 2.10. Проверка заполненности данных при отсутствии образования 40 Рис. 2.11. Проверка заполненности данных при отсутствии данных об агенте Рис. 2.12. Редактирование данных о соискателе Рис. 2.13. Подтверждение удаления данных о соискателе 41 Для просмотра вакансий, подходящих какому-либо конкретному соискателю, необходимо выделить его в основной таблице, а затем нажать кнопку «Подобрать», в результате чего откроется новое окно, представленное на рисунке 2.14. Рис. 2.14. Подходящие вакансии Отдельное внимание в рамках меню «Соискатели» уделяется статистике, а именно – «Желаемый уровень зарплаты» (см. рисунок 2.15) и «Количество соискателей по возрастным группам» (см. рисунок 2.16) [32]. Рис. 2.15. Желаемый уровень зарплаты 42 Рис. 2.16. Количество соискателей по возрастным группам Для возврата в основное меню приложения необходимо нажать кнопку «Закрыть». При выборе пункта меню «Работодатели», открывается окно, представленное на рисунке 2.17. Для создания нового работодателя необходимо нажать кнопку «Новый» в меню данной формы, в результате чего откроется окно добавления работодателя, представленное на рисунке 2.18. В результате добавления новый работодатель автоматически появляется в таблице «Работодатели». В случае незаполненности каких-либо данных приложение выдаст соответствующее уведомление (см. рисунки 2.19 – 2.20) [21]. 43 Рис. 2.17. Форма «Работодатели» Рис. 2.18. Добавление соискателя Рис. 2.19. Проверка корректности введенных данных при отсутствии названия организации 44 Рис. 2.20. Проверка корректности введенных данных при отсутствии города Для редактирования данных о работодателе необходимо выбрать интересующую позицию в таблице «Работодатели», а затем нажать кнопку «Редактировать» в меню, расположенном в верхней части формы. В результате этих действий откроется окно редактирования данных о работодателе, представленное на рисунке 2.21. Рис. 2.21. Редактирование данных о работодателе Для удаления данных о работодателе необходимо выбрать интересующую позицию в таблице «Работодатели», а затем нажать кнопку «Удалить» в меню, расположенном в верхней части формы. В результате этих действий откроется окно подтверждения удаления данных, представленное на рисунке 2.22. 45 Рис. 2.22. Подтверждение удаления данных о работодателе Для просмотра вакансий, предоставляемых каким-либо конкретным работодателем, необходимо выделить его в основной таблице, а затем нажать кнопку «Вакансии», в результате чего откроется новое окно, представленное на рисунке 2.23. Рис. 2.23. Вакансии работодателя Для размещения новой вакансии необходимо нажать кнопку «Новая», в результате чего откроется окно, представленное на рисунке 2.24. В случае незаполненности каких-либо данных приложение выдаст соответствующее уведомление (см. рисунки 2.25 – 2.26). 46 Рис. 2.24. Размещение вакансии Рис. 2.25. Проверка корректности введенных данных при отсутствии возраста соискателя Рис. 2.26. Проверка корректности введенных данных при отсутствии желаемой заработной платы 47 Для редактирования данных о вакансии необходимо выбрать интересующую позицию в таблице «Вакансии работодателя», а затем нажать кнопку «Редактировать» в меню, расположенном в верхней части формы. В результате этих действий откроется окно редактирования данных о вакансии, представленное на рисунке 2.27. Рис 2.27. Редактирование данных о вакансии Для удаления данных о вакансии необходимо выбрать интересующую позицию в таблице «Вакансии работодателя», а затем нажать кнопку «Удалить» в меню, расположенном в верхней части формы. В результате этих действий откроется окно подтверждения удаления данных, представленное на рисунке 2.28. Для просмотра соискателей, подходящих на какую-либо вакансию, необходимо выделить соответствующую позицию в таблице «Вакансии работодателя», а затем нажать кнопку «Подобрать», в результате чего появится окно со списком кандидатур, подходящих на данную вакансию, представленное на рисунке 2.29. 48 Рис. 2.28. Подтверждение удаления данных о вакансии Рис. 2.29. Список подходящих кандидатур Для возврата в основное меню приложения необходимо нажать кнопку «Закрыть». При выборе пункта меню «Агенты», открывается окно, представленное на рисунке 2.30. 49 Рис. 2.30. Форма «Агенты» Для создания нового агента необходимо нажать кнопку «Новый» в меню данной формы, в результате чего откроется окно добавления, представленное на рисунке 2.31. В результате добавления новый сотрудник автоматически появляется в таблице «Агенты». Рис. 2.31. Добавление агента Для удаления данных об агенте необходимо выбрать интересующую позицию в таблице «Агенты», а затем нажать кнопку «Удалить» в меню, расположенном в верхней части формы. В результате этих действий откроется окно подтверждения удаления данных, представленное на рисунке 2.32. Отдельное внимание в рамках меню «Агенты» уделяется статистике, а именно количество выполненных заявок по каждому из агентов (см. рисунок 2.33). 50 Рис. 2.32. Подтверждение удаления данных об агенте Рис. 2.33. Статистика выполнения заявок по агентам Выводы по параграфу В данном параграфе приводится демонстрация всех функций созданного приложения. Выводы по главе 2 В рамках данной главы описана практическая часть ВКР – проектирование и разработка АИС кадрового агентства ООО «СТАФФДЖЕТ». Отдельное внимание уделяется демонстрации функционала полученной системы. |