- •Анализ предметной области и формирование требований к разработке Описание задач системы Описание предметной области
- •Описание проблемы, которую нужно решить
- •Состояние и стратегия развития схожих решений
- •Постановка задачи Цели и задачи проекта
- •Спецификация и обоснование нефункциональных требований
- •Календарно-ресурсное планирование проекта, анализ бюджетных ограничений и рисков
- •Проект автоматизации бизнес-процессов Функциональная структура
- •Информационное обеспечение
Постановка задачи Цели и задачи проекта
Модуль работы со стажёрами должен упростить процессы учёта новых сотрудников компании и взаимодействия с ними:
организация курсов по различным IT-специализациям для привлечения в компанию новых сотрудников и их обучения;
учёт слушателей и желающих проходить курсы;
рассылка на почту тестовых и домашних заданий;
выбор соискателей, подошедших для прохождения стажировки по результатам курсов или по иным причинам;
ведение базы данных стажёров, назначение кураторов, выдача заданий, отправка напоминаний стажёрам и кураторам;
оценка результатов работы студентов и стажёров.
Система предназначена для использования HR-специалистами, сотрудниками компании и соискателями, имеющими доступ к системе при прохождении курсов.
Спецификация и обоснование нефункциональных требований
Система должна поддерживать распределённую обработку информации, так как с ней будут взаимоимодействовать множество пользователей, как внутренние – сотрудники компании, так и внешние – соискатели, проходящие курсы. Поэтому было принято решение о разработке системы в виде веб-сервиса. Веб-сервис имеет следующие преимущества:
Кросплатформенность на уровне операционной системы – с веб-сервисом возможно работать во всех операционных системах, поддерживающих браузеры GoogleChrome,FirefoxиOpera
Отсутствие необходимости установки на клиентские ПК
В качестве платформы для разработки данного веб-сервиса была выбрана платформа JavaEnterpriseEdition.
JavaEE– это набор спецификаций и соответствующей документации для языкаJava, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.
Преимущества данной платформы:
Строгая статическая типизация языка Javaпозволяет находить множество ошибок ещё на этапе компиляции
Ориентированность языка на объектно-ориентированный подход
Стабильность платформы, обратная совместимость версий
Переносимость между ОС за счёт использования виртуальной машины
Богатый набор готовых библиотек и фреймворков под любыми лицензиями для решения широкого спектра задач
Масштабируемость приложений и целостность данных во время работы системы
Ориентированность на использование как в вебе, так и в локальных сетях
Приемлемая скорость платформы, значительно превосходящая скриптовые языки
Бесплатность комплекта разработки позволяет предприятию разрабатывать свою систему, не тратя больших средств
Для разработки клиентской части системы используются языки XHTML,CSSиJavaScript.XHTMLиспользуется в качестве языка вёрстки веб-страниц. Это более строгий вариант стандартного языка разметки веб-документовHTML, он поддерживаетXML-валидацию и пространства имён, позволяет создавать пользовательские теги. Язык стилейCSSиспользуется для дизайна веб-страниц, а язык сценариевJavaScriptпомогает реализовывать на страницах интерактивные элементы.
Для организации взаимодействия между клиентской и серверной частью используется фреймворк JavaServerFaces. В отличие от прочихMVC-фреймворков, которые управляются запросами, подходJSFосновывается на использовании компонентов. Технология включает набор API для представления компонент пользовательского интерфейса и управления их состоянием, обработкой событий и валидацией вводимой информации, определения навигации, а также поддержку интернационализации и доступности, а также специальную библиотеку тегов для выражения интерфейсаJSFна веб-странице.
В качестве СУБД использована система PostgreSQL. Данная СУБД была выбрана из-за своей надёжности, богатого функционала и опыта её интеграции сJava.PostgreSQLхорошо оптимизирует сложные запросы. Документация этой СУБД довольно богатая и содержит ответы на многие вопросы, возникающие в процессе работы.
Для упрощения работы с БД использован ORM-фреймворк EclipseLink. Он позволяет избавиться от необходимости написания однотипныхCRUD-запросов, автоматически преобразуя объектное представления сущностей в реляционное и обратно. Данный фреймворк более производителен, чем его конкурентыHibernateиOpenJPA, поддерживаетсяSunMicrosystemsкак эталонная реализацияJPA2.0.
Для поддержки миграции БД использован фреймворк Liquibase, позволяющий отслеживать изменения в структуре БД и переносить их на боевой сервер.
Пользовательские требования к программно-технической среде:
требование к быстродействию:
загрузка форм для ввода данных – не более 0,5 секунды;
загрузка страницы с данными – не более 2 секунд;
требования к информационной безопасности:
пользователи должны получать доступ к системе после ввода корректного логина и пароля;
если пользователь вводит неверные данные при авторизации, должна отображаться ошибка 403;
при вводе неверных данных более 2-х раз – блокировка учётной записи;
при попытке входа в заблокированную учётную запись – ошибка 403;
студент получает доступ к системе только при наличии учётной записи, созданной администратором;
лекции и домашние задания потока курсов могут редактировать только лекторы, назначенные на поток;
по окончании курсов студенты теряют доступ к системе;
требования к надёжности:
при переходе по ссылке на страницу, к которой у пользоваеля есть доступ, должна быть отображена данная страница в корректном виде;
при переходе по ссылке на страницу, к которой у пользователя нет доступа – ошибка 500;
действия пользователя должны приносить ожидаемый результат;
не допускается наличие ошибок в системе, способных оказать негативное воздействие на информационную безопасность и целостность данных в системе;
не допускать ввода некорректных данных пользователями: обеспечивать верификацию email-адресов, диапазонов дат, обязательных полей БД и др;
организация бесперебойного питания сервера и технических средств;
требования к эргономике:
система должна быть простой в освоении и использовании;
получение нужного результата должно достигаться пользователем минимальным количеством кликов;
наличие документации по функционалу, предоставляемому системой.