Разработка серверной части АРМ специалиста по работе с персоналом

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.01.2017
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Большинство тегов - парные, они состоят из начального и закрывающего тегов. Начальный тег показывает, где начинается элемент, закрывающийся - где заканчивается. Закрывающий тег образуется путем добавления слэша / перед именем тега: <имя тега>…</имя тега>. Между начальным и закрывающим тегами находится содержимое тега - контент.

Одиночные теги не могут хранить в себе содержимого напрямую, оно прописывается как значение атрибута, например, тег <input type= «button» value= «Кнопка»> создаст кнопку с текстом Кнопка внутри.

Теги могут вкладываться друг в друга, например, <p><i>Текст</i></p>. При вложении следует соблюдать порядок их закрытия (принцип «матрёшки»), например, следующая запись будет неверной: <p><i>Текст</p></i>.

HTML-документ состоит из двух разделов - заголовка - между тегами <head>…</head> и содержательной части - между тегами <body>…</body>.

PHP (англ. PHP: Hypertext Preprocessor - «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools - «Инструменты для создания персональных веб-страниц») - скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений [10]. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

В области веб-программирования, в частности серверная часть, PHP - один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений [11]. Основные из них:

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

- взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

- автоматизированная отправка HTTP-заголовков;

- работа с XForms;

- обработка файлов, загружаемых на сервер;

- работа с локальными и удалёнными файлами, сокетами;

- работа с cookies и сессиями;

- работа с HTTP-авторизацией.

В настоящее время PHP используется большим количеством разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в июне 2013 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл «foreach», заимствованы из Perl [12].

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

Perl - высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language - «практический язык для извлечения данных и составления отчётов» [13]. Первоначально аббревиатура состояла из пяти символов и в таком виде в точности совпадала с английским словом pearl («жемчужина»). Но затем стало известно, что такой язык существует, и букву «a» убрали. Символом языка Perl является верблюд - не слишком красивое, но очень выносливое животное, способное выполнять тяжёлую работу.

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

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

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

Perl заимствует массивы из Лиспа, регулярные выражения из AWK и sed, из AWK также позаимствованы хеши («ассоциативные массивы»). Регулярные выражения облегчают выполнение многих задач по парсингу, обработке текста и манипуляций с данными.

Perl 5 добавил поддержку сложных типов данных, первоклассных функций (замыкание как значение) и объектную модель. В последнюю версию входят ссылки, пакеты, выполнение методов от класса, переменные с лексическим объявлением области видимости, а также директивы компилятора (например, strict). Главнейшим усовершенствованием, представленным в Perl 5, стала возможность помещать код в «пакеты» (package) в качестве модулей для повторного использования. Ларри Уолл позже заметил, что «Весь замысел модульной системы Perl 5 сводился к поощрению роста культуры Perl, а не строчек кода».

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

MySQL - свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB [14]. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

26 февраля 2008 года Sun Microsystems приобрела MySQL AB за $1 млрд, 27 января 2010 года Oracle приобрела Sun Microsystems за $7,4 млрд и включила MySQL в свою линейку СУБД.

Сообществом разработчиков MySQL созданы различные ответвления кода, такие, как Drizzle (англ.), OurDelta, Percona Server и MariaDB. Все эти ответвления уже существовали на момент поглощения компании Sun корпорацией Oracle.

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

MySQL портирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7. Существует также порт MySQL к OpenVMS. Важно отметить, что на официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk, Компонентный Паскаль и Tcl, библиотеки для языков платформы.NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC [15].

MyODBC представляет собой драйвер ODBC (2.50) уровня 0 (с некоторыми возможностями уровней 1 и 2) для подсоединения совместимого с ODBC приложения к MySQL. MyODBC работает на всех системах Microsoft Windows и на большинстве платформ Unix.

Но, не смотря на все преимущества MySQL, существуют и недостатки, например, MySQL не позволяет корректно применять регулярные выражения (операторы REGEXP и RLIKE) на строках в многобайтовых кодировках, например, для Юникода (UTF-8). При необходимости таких операций приходится переходить на однобайтовые кодировки, например русскую Win-1251 или KOI-8.

PostgreSQL - свободная объектно-реляционная система управления базами данных (СУБД). Базируется на языке SQL и на данный момент имеет версию 9.2.1.

PostgreSQL ведёт свою «родословную» от некоммерческой СУБД Postgres, разработанной в Калифорнийском университете в Беркли. К разработке Postgres, начавшейся в 1986 году, имел непосредственное отношение Майкл Стоунбрейкер, руководитель более раннего проекта Ingres, на тот момент уже приобретённого компанией Computer Associates. Само название «Postgres» расшифровывалось как «Post Ingres», соответственно, при создании Postgres были применены многие уже ранее сделанные наработки.

Стоунбрейкер и его студенты разрабатывали новую СУБД в течение восьми лет с 1986 по 1994 год. За этот период в синтаксис были введены процедуры, правила, пользовательские типы и многие другие компоненты. Работа не прошла даром - в 1995 году разработка снова разделилась: Стоунбрейкер использовал полученный опыт в создании коммерческой СУБД Illustra, продвигаемой его собственной одноимённой компанией (приобретённой впоследствии компанией Informix), а его студенты разработали новую версию Postgres - Postgres95, в которой язык запросов POSTQUEL - наследие Ingres - был заменен на SQL.

В этот момент разработка Postgres95 была выведена за пределы университета и передана команде энтузиастов. С этого момента СУБД получила имя, под которым она известна и развивается в текущий момент - PostgreSQL.

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

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

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

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

2.3 Характеристика средств проектирования

CASE-средства

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

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

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

Обычно к CASE-средствам относят любое программное средство, автоматизирующее ту или иную совокупность процессов жизненного цикла ПО и обладающее следующими основными характерными особенностями [16]:

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

2) Использование специальным образом организованного хранилища проектных метаданных (репозитория);

3) Интеграция отдельных компонент CASE-средств, обеспечивающая управляемость процессом разработки ИС;

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

5) Графические средства анализа и проектирования, обеспечивающие создание и редактирование иерархически связанных диаграмм, образующих модели ИС;

6) Средства конфигурационного управления;

7) Средства тестирования;

8) Средства документирования;

9) Средства реинжиниринга;

10) Средства управления проектом.

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

1) Применяемым методологиям и моделям систем и БД;

2) Доступным платформам;

3) Степени интегрированности с СУБД.

Классификация по типам в основном совпадает с компонентным составом CASE-средств и включает основные типы:

1) Средства анализа (Upper CASE), предназначенные для построения и анализа моделей предметной области;

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

3) Средства разработки приложений;

4) Средства проектирования баз данных, обеспечивающие моделирование данных и генерацию схем баз для наиболее распространенных СУБД. К ним относятся ERwin, S-Designor и DataBase Designer;

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

Вспомогательные типы включают в себя:

1) Средства тестирования;

2) Средства конфигурационного управления;

3) Средства планирования и управления;

4) Средства документирования.

На сегодняшний день рынок программного обеспечения располагает следующими CASE-средствами:

1) Vantage Team Builder (Westmount I-CASE);

2) Silverrun;

3) Designer/2000;

4) ERwin+BPwin;

5) S-Designor;

6) ArgoUML;

7) CASE. Аналитик.

Краткая характеристика CASE-средств

AllFusion ERwin Data Modeler - CASE-средство для проектирования и документирования баз данных, которое позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных [17]. Модели данных помогают визуализировать структуру данных, обеспечивая эффективный процесс организации, управления и администрирования таких аспектов деятельности предприятия, как уровень сложности данных, технологий баз данных и среды развертывания.

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

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

Ключевые характеристики AllFusion ERwin Data Modeler 7:

1) Синхронизация моделей/баз данных;

2) Автоматизированное создание структуры базы данных и обратное проектирование;

3) Документирование структур баз данных;

4) Поддержка нотаций: IDEF1x, IE, Dimensional;

5) Возможна совместная работа группы проектировщиков;

6) Публикация моделей;

7) Перенос структур баз данных (но не самих данных) из одного типа СУБД в другой.

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

Архитектура уровня проектирования. AllFusion ERwin Data Modeler (ERwin) имеет достаточную гибкость для разработки архитектуры связанных моделей данных, полностью удовлетворяющей потребностям организации. Наряду с комбинированной логической / физической моделью поддерживаются раздельные логические и физические модели. Благодаря накоплению знаний об отношениях между компонентами связанных моделей и ведению журнала проектных решений пользователи могут быстро определять влияние изменений одного уровня проектирования на другой.

Технология трансформации.

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

Определение стандартов.

Определение и поддержка стандартов обеспечивается с помощью словаря доменов Domain Dictionary, редактора стандартов именования Naming Standards Editor и редактора стандартов типов данных Datatype Standards Editor. Словарь доменов содержит многократно используемые атрибуты и обеспечивает непротиворечивость имен и определений в рамках модели. Редактор стандартов именования позволяет пользователям создавать словари разрешенных терминов, аббревиатур и правил именования, которые могут использоваться повторно в рамках модели. Редактор стандартов типов данных позволяет определять собственные правила соответствия между типами данных разных СУБД.

Поддержка нескольких нотаций моделирования. Для визуального проектирования систем обработки транзакций, витрин и хранилищ данных в единой интегрированной среде ERwin поддерживает три популярные нотации моделирования данных: Integration DEFinition for Information Modeling (IDEF1X), Information Engineering (IE), Dimensional Modeling (DM).

Управление большими моделями.

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

Полное сравнение / синхронизация (Complete Compare).

Эта мощная технология автоматизирует полную двунаправленную синхронизацию модели, скриптов и баз данных. При синхронизации для выбранных пользователем объектов отображаются отличия, и пользователю предлагается выбрать, какие из обнаруженных отличий и в каком направлении необходимо внести. При этом AllFusion ERwin Data Modeler (ERwin) может автоматически сгенерировать ALTER-скрипт на изменение.

Генерация структуры базы данных.

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

Проектирование хранилищ и витрин данных.

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

Обратное проектирование.

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

Графические объекты.

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

Навигатор модели (Model Explorer).

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

Полный набор возможностей Undo/Redo. AllFusion ERwin Data Modeler (ERwin) предоставляет полный комплект возможностей «отменить / вернуть изменения» в пределах сессии моделирования. Возможности Undo/Redo могут быть применимы ко всем задачам моделирования, включая изменения размещения и создание / обновление / удаление объектов. Отменяя конкретные изменения модели, пользователи могут полностью понимать влияния этих действий.

Создание и печать отчетов.

Ключевым элементом, обеспечивающим коммуникацию и совместную работу пользователей в процессе моделирования, является способность визуализации и публикации данных. ERwin предоставляет гибкие, настраиваемые возможности создания отчетов и печати. Два встроенных построителя шаблонов отчетов: ERwin Data Browser и Report Template Builder - позволяют однократно разработать шаблон отчета, который впоследствии будет доступен для использования в любых моделях для генерации отчетов в любом из форматов: HTML, RTF, TXT, PDF.

Встроенная технология обмена метаданными.

Встроенная передовая технология предоставляет возможность обмена метаданными между ERwin и другими средствами, такими как MS Excel, XSD, XMI, CWM, ведущими ETL/EII-инструментами, многочисленными средствами BI/Reporting, а также с широким спектром сред моделирования такими, как: Rational Data Architect, Oracle Designer, Sybase Power Designer и другими - всего порядка 100 популярных продуктов. Данная технология позволяет сэкономить временные и материальные ресурсы благодаря устранению необходимости перепроектировать модели.

Поддерживаемые СУБД:

1) Oracle;

2) ODBC;

3) SQL Server;

4) Teradata;

5) DB2/UDB (включая iSeries);

6) Ingres;

7) Informix;

8) Sybase;

9) Progress;

Интеграция с другими продуктами:

AllFusion ERwin Data Modeler интегрирован с широким спектром сред моделирования, такими как Rational Data Architect, Oracle Designer, Sybase Power Designer и др.

Rational Rose - CASE-средство фирмы Rational Software Corporation (США) - предназначено для автоматизации этапов анализа и проектирования ПО, а также для генерации кодов на различных языках и выпуска проектной документации. Rational Rose использует синтез-методологию объектно-ориентированного анализа и проектирования. Конкретный вариант Rational Rose определяется языком, на котором генерируются коды программ (C++, Smalltalk, PowerBuilder, Ada, SQLWindows и ObjectPro). Основной вариант - Rational Rose/C++ - позволяет разрабатывать проектную документацию в виде диаграмм и спецификаций, а также генерировать программные коды на С++. Кроме того, Rational Rose содержит средства реинжиниринга программ, обеспечивающие повторное использование программных компонент в новых проектах.

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

В составе Rational Rose можно выделить 6 основных структурных компонент: репозиторий, графический интерфейс пользователя, средства просмотра проекта, средства контроля проекта, средства сбора статистики и генератор документов. К ним добавляются генератор кодов (индивидуальный для каждого языка) и анализатор для С++, обеспечивающий реинжиниринг - восстановление модели проекта по исходным текстам программ.

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

Средства автоматической генерации кодов программ на языке С++, используя информацию, содержащуюся в логической и физической моделях проекта, формируют файлы заголовков и файлы описаний классов и объектов. Создаваемый таким образом скелет программы может быть уточнен путем прямого программирования на языке С++. Анализатор кодов С++ реализован в виде отдельного программного модуля. Его назначение состоит в том, чтобы создавать модули проектов в форме Rational Rose на основе информации, содержащейся в определяемых пользователем исходных текстах на С++. В процессе работы анализатор осуществляет контроль правильности исходных текстов и диагностику ошибок. Модель, полученная в результате его работы, может целиком или фрагментарно использоваться в различных проектах. Анализатор обладает широкими возможностями настройки по входу и выходу. Например, можно определить типы исходных файлов, базовый компилятор, задать, какая информация должна быть включена в формируемую модель и какие элементы выходной модели следует выводить на экран. Таким образом, Rational Rose/С++ обеспечивает возможность повторного использования программных компонент.

В результате разработки проекта с помощью CASE-средства Rational Rose формируются документы:

· диаграммы сценариев;

· диаграммы состояний;

· диаграммы классов;

· диаграммы модулей;

· диаграммы процессов;

· заготовки текстов программ;

· спецификации классов, объектов, атрибутов и операций;

· модель разрабатываемой программной системы.

Для проектирования бизнес-процессов и модели базы данных мною были рассмотрены CASE-средства ERwin Process Modeler, ERwin Data Modeler и Rational Rose.

В отличие от других Rational Rose является объектно-ориентированным средством с основным направлением на C++, что в меньшей степени подходит данному проекту. Поэтому мною были выбраны ERwin Process Modeler и ERwin Data Modeler, которые являются средствами локальной автоматизации, имеют упрощенную структуру и имеют целевую направленность, и в результате представляются одним из самых простых и удобных решений автоматизации.

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

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

· скриптовый язык программирования PHP 5 версии или выше;

· система управления базами данных MySQL 5 версии или выше;

· веб-сервер.

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

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

Клиент, которым обычно является веб-браузер, передаёт веб-серверу запросы на получение ресурсов, обозначенных URL-адресами. Ресурсы - это HTML-страницы, изображения, файлы, медиа-потоки или другие данные, которые необходимы клиенту. В ответ веб-сервер передаёт клиенту запрошенные данные. Этот обмен происходит по протоколу HTTP.

Наиболее известные веб-серверы:

· Apache (Apache Software Foundation, v. 2.4.20, свободное ПО);

· IIS (Microsoft, v. 10, проприетарное ПО);

· Nginx (NGINX, Inc. и Игорь Сысоев, v. 1.10.0, свободное ПО);

· Lighttpd (Ян Кнешке, v. 1.4.38, свободное ПО);

· Resin (Caucho Technology, v. 4.0.44, свободное ПО);

· Cherokee (v. 1.2.103, свободное ПО);

· THTTPD (Jef Poskanzer, v. 2.27.0, свободное ПО).

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

3.1 Взаимодействие серверного и клиентского модулей

АРМ является распределённой клиент-серверной системой. При одном сервере может быть много клиентов, поэтому серверный модуль должен иметь возможность обрабатывать запросы из множества разных источников (рисунок 7).

Рисунок 7. Работа с множеством клиентов

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

Рисунок 8. Схема взаимодействия модулей

3.2 Постановка задачи

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

Автоматизация должна коснуться:

1) отправки, получения и хранения электронных документов;

2) группировки кандидатов по категориям;

3) ведения переговоров с кандидатами;

4) координации действий специалистов;

В итоге, необходимо устранить большинство недостатков текущей организации деятельности по работе с кандидатами, а именно:

1) обмен и хранение бумажных носителей;

2) ведение продолжительных телефонных разговоров и переписок в электронной почте и освобождение почты от чрезмерного количества писем;

3) отсутствие группировки кандидатов по нужным категориям;

4) отсутствие удобного и быстрого доступа к информации об интересующем кандидате и др.

4. Бизнес-процессы АРМ специалиста

Для реализации разрабатываемой АИС необходимо построение функциональной модели для выделения основных, выполняемых системой, бизнес-процессов.

При построении модели использована методология функционального моделирования IDEF0.

На верхнем уровне представлен процесс обработки запроса серверной частью (рисунок 9).

Рисунок 9. Схема верхнего уровня бизнес-процессов

К входным данным относятся:

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

- данные из базы данных.

К блоку управления относится только протокол HTTP, который определяет структуру запроса и ответа.

Механизмами служат скриптовый язык PHP, на котором выполняются все бизнес-процессы и СУБД MySQL, с помощью которой ведётся работа с базой данных.

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

Декомпозиция процесса верхнего уровня представлена уже четырьмя процессами (рисунок 10).

Рисунок 10. Диаграмма декомпозиции второго уровня бизнес-процессов

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

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

Следующий процесс производит проверку сессии пользователя запроса на наличие прав доступа в системе.

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

Третий процесс второго уровня диаграммы состоит из двух процессов (рисунок 11).

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

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

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

Процесс формирования данных для ответа, второго уровня диаграммы, состоит из четырёх процессов (рисунок 12).

Рисунок 12. Диаграмма декомпозиции четвёртого процесса второго уровня

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

Итогом второго или третьего процесса будет результат запроса, будь то разметка страницы, результат изменения данных или сами данные из БД.

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

Процесс получения страницы запроса (рисунок 12) состоит из двух процессов (рисунок 13).

Рисунок 13. Диаграмма декомпозиции процесса получения страницы запроса

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

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

Процесс получения данных запроса (рисунок 12) состоит из двух процессов (рисунок 14).

Рисунок 14. Диаграмма декомпозиции процесса получения данных запроса

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

Процесс выполнения подпрограммы производит её запуск и сохраняет как результат запроса для процесса формирования ответа (рисунок 12).

5. Разработка модели баз данных

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

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

1) id - уникальный идентификатор страницы, для обращения к ней при необходимости;

2) title - поле, хранящее заголовок страницы;

3) alias - поле, в котором хранится псевдоним страницы, отображаемый в адресной строке браузера;

4) template_id - данное поле, определяет по уникальному идентификатору шаблон, который необходимо использовать для формирования страницы;

5) group_id - данное поле определяет к какому типу относится страница;

6) content_filename - в этом поле указывается имя файла, из которого на страницу подгружается содержимое.

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

1) id - уникальный идентификатор группы, для обращения к ней при необходимости;

2) user_id - в данном поле хранится информация о создателе-владельце группы в виде его уникального идентификатора;

3) title - хранит название группы;

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

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

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

В таблице hrw_user хранятся данные о пользователях, зарегистрированных в системе. В данной таблице 17 полей:

1) id - уникальный идентификатор пользователя, по которому в любой момент можно обратиться конкретно к этому пользователю;

2) login - уникальное имя на латинице, которое пользователь использует для входа в систему;

3) password - данное поле хранит пароль пользователя в зашифрованном виде, шифрование происходит по алгоритму хэш SHA-512. Текущий алгоритм выбран из-за высокой степени защиты, которая дополнительно усиливается использованием модификатора, так называемой, «соли».

4) salt - в этом поле хранится модификатор пароля, который повышает стойкость пароля к дешифровке;

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

5) email - данное поле хранит адрес электронной почты специалистов и кандидатов;

6) first_name, middle_name, last_name - в этих полях хранятся соответственно имя, фамилия и отчество пользователя;

7) direction_id - поле хранит уникальный идентификатор направления, на которое претендует кандидат, у специалистов в данном поле всегда 0;

8) group_id - в это поле хранится уникальный идентификатор типа пользователя. Пользователь может быть одного из трёх типов: специалист, администратор, кандидат;

9) is_active - поле, показывающее статус регистрации пользователя. «1» - если пользователь подтвердил регистрацию переходом по ссылке в письме, «0» - если пользователь не закончил регистрацию, такие пользователи через некоторое время удаляются;

10) last_login - данное поле показывает, когда пользователь заходил в систему последний раз;

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

12) is_banned - поле показывает заблокирован ли пользователь;

13) reg_date - в этом поле хранится дата регистрации пользователя в системе;

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

В таблице hrw_direction хранятся направления, в которых могут работают специалисты. Таблица состоит из двух полей:

1) id - в поле хранится уникальный идентификатор направления, по которому можно напрямую обратиться к нужном направлению;

2) title - данное поле хранит в себе наименование направления;

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

1) id - в поле хранится уникальный идентификатор группы, по которому можно напрямую обратиться к необходимой;

2) title - поле хранит в себе заголовок группы;

В таблице hrw_page_template хранятся шаблоны оформления, которые используются при формировании страницы. Таблица из трёх полей:

1) id - в поле хранится уникальный идентификатор шаблона, по которому можно напрямую обратиться к нужному;

2) title - поле хранит заголовок шаблона;

3) filename - в данном поле находится имя файла, в котором находится шаблон.

В таблице hrw_page_user_connections хранятся права доступа групп пользователей, к определённым группам страниц. Таблица состоит из 3 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) page_group_id - в данном поле хранится идентификатор группы страниц, к которым имеют доступ пользователи по идентификатору из поля user_group_id;

В таблице hrw_settings хранятся клиент-серверные настройки, которые определяют поведение всего сервиса. Таблица состоит из 4 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) name - поле хранит имена настроек, по которым можно получать или изменять необходимые значения;

3) title - в данном поле находится заголовки настроек;

4) value - это поле хранит значения настроек;

В таблице hrw_user_direction_connections хранится информация о том, в каких направлениях может работать специалист. Таблица состоит из 3 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) spec_id - поле хранит идентификатор пользователя, который является специалистом;

3) direction_id - в этом поле хранится идентификатор, который определяет, по каким направлениям может работать специалист.

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

1) id - в поле хранится уникальный идентификатор группы, по которому можно напрямую обратиться к необходимой группе;

2) title - поле хранит в себе заголовок группы;

Таблица hrw_cand_file хранит в себе данные о файлах, которые заливал кандидат и состоит из 5 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) cand_id - данное поле содержит уникальный идентификатор кандидата, которому принадлежит файл;

3) name - в этом поле находится имя файла;

4) type - это поле хранит тип файла, например, текстовый или графический;

5) filename - в этом поле хранится физическое имя файла, под которым он хранится на жёстком диске.

В таблице hrw_spec_file хранятся записи о файлах, принадлежащих специалистам. Таблица состоит из 6 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) parent_id - поле хранит идентификатор каталога, которому принадлежит файл;

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

4) name - в этом поле хранится имя файла;

5) type - это поле хранит тип загруженного файла, например, текстовый или изображение;

6) filename - в этом поле хранится физическое имя файла, под которым он хранится на жёстком диске.

В таблице hrw_message хранятся все сообщения, которыми обмениваются специалисты и кандидаты. Таблица состоит из 5 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) sender_id - поле хранит в себе идентификатор отправителя сообщения;

3) receiver_id - в этом поле хранится идентификатор получателя;

4) text - в данном поле находится, непосредственно, текст сообщения;

5) date - хранит в себе дату и время отправления.

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

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) user_id - поле хранит идентификатор пользователя, который подключается к определённой группе;

3) cgroup_id - в данном поле хранится идентификатор группы, к которой подключается кандидат при входе в систему.

В таблице hrw_user_info хранится информация о выбранном кандидате. Таблица состоит из 6 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) cand_id - в данное поле хранится идентификатор кандидата, к которому привязана запись текущей таблицы;

3) age - поле хранит возраст кандидата;

4) education - в этом поле хранится информация об образовании кандидата;

5) tel - в данном поле находится номер телефона кандидата;

6) direction_id - это поле хранит уникальный идентификатор, который показывает, к какому направлению принадлежит кандидат.

В таблице hrw_user_note хранятся заметки специалистов о кандидатах. Таблица состоит из 6 полей:

1) id - в поле хранится уникальный идентификатор записи, по которому можно напрямую обратиться к нужной записи;

2) author_id - в этом поле хранится идентификатор создателя заметки;

3) cand_id - данное поле хранит идентификатор кандидата, о котором создана заметка;

4) title - поле хранит заголовок заметки;

5) text - в это поле хранится содержимое заметки;

6) date - в данное поле записывается дата создания заметки.

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

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

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

Основным способом диалога между специалистом и соискателем является обмен сообщениями. Все сообщения добавляются в таблицу hrw_message.

6. Разработка алгоритмов взаимодействия модулей

На рисунке 17 показана диаграмма использования серверной части, которая показывает поведение системы при запросе пользователя.

Рисунок 17. Диаграмма использования

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

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

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

Серверный модуль работает в двух режимах:

- Выдача страниц (рисунок 18);

- Обработка запросов (рисунок 19).

Рисунок 18. Схема обработки запроса страницы

Рисунок 19. Схема обработки асинхронного запроса

На рисунке 20 показана схема алгоритма формирования страницы запроса.

Рисунок 20. Схема формирования страницы

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

7. Разработка и реализация программных модулей

7.1 Описание контрольного примера реализации АРМ

Сервер системы АРМ HR-специалиста может работать в двух режимах:

1) запрос страницы (рисунке 21);

2) асинхронный запрос (рисунке 22).

В обоих режимах сервер работает одинаково, но с разницей в конечном обработчике данных.


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.