Автоматизация учебного процесса с помощью программных средств

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,42 Mb
  • Опубликовано:
    2011-06-27
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Автоматизация учебного процесса с помощью программных средств

РЕФЕРАТ

Количество иллюстраций: 48

Количество приложений: 4

Количество страниц: 82

Количество таблиц: 41

Количество использованных источников: 35

Ключевые слова: САЙТ, EJB, JSF, БАЗА ДАННЫХ, УРОВЕНЬ.

В качестве объекта исследования был выбран сайт учебного процесса. Цель работы - автоматизация взаимодействия преподавателя и студента через сайт, ведение централизованного процесса обработки данных. В результате написания работы методами исследования были перечень технологий, таких как EJB3.0, JMS, JPA, HSQL/SQL, JSF(WebUI), Glassfishv2, NetBeans6.0, Reflection, Subversion SVN, JAAS. В результате исследования обнаружилось, что для работы на бизнес уровне работа с EJB3.0 эффективная и быстрая в разработке, поддерживается как сервером приложений Glassfishv2 так и многими другими J2EE серверами. Взаимодействие между бизнес уровнем и уровнем контроллера и представления, написанного на JSF - не имеет проблем. В то время как взаимодействие двух модулей JSF и GWT имеют проблемы. Возможное использование этих двух технологий возможно при их функциональной независимости друг от друга.

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

Применять этот сайт необходимо в высших учебных заведениях.

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

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

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

ГЛОССАРИЙ

. ПОСТАНОВКА ЗАДАЧИ

. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

. ПРОЕКТИРОВАНИЕ

. РАЗРАБОТКА

4.1 Разработка архитектуры системы

.2 Определение функций, выполняемых программой (Use Case Diagram)

.3 Разработка диаграмм последовательности (Sequence Diagrams)

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

.5 Разработка диаграммы классов(Class Diagram)

.6 Разработка алгоритмов выполнения методов класса (Activity Diagram)

.7 Разработка диаграммы развертывания (Deployment Diagram)

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

4.8.1 Разработка физической модели базы данных

.8.2 Разработка бизнес правил базы данных

.8.3 Описание таблиц БД

4.9 Кодирование и отладка

5. ТЕСТИРОВАНИЕ

. ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ РАЗРАБОТКИ

ПРОГРАМННОГО ПРОДУКТА

6.1 Теоретическое обоснование экономической выгоды от внедрения программного продукта в высших учебных заведениях

.2 Расчет себестоимости и цены программного продукта

.3 Стратегия маркетинга

7. ОРГАНИЗАЦИЯ УСЛОВИЙ ПО ОХРАНЕ ТРУДА

7.1 Организация рабочего места администратора проекта

.2 Анализ вредных производственных факторов в серверной комнате

.3 Характеристика помещения серверной комнаты

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

7.4.1 Требования к освещенности помещения

.4.2 Ионизирующее и электромагнитное излучения

.4.3 Требования к электробезопасности

7.5 Обеспечение техногенной безопасности

7.5.1 Анализ возможных чрезвычайных ситуаций

.5.2 Прогнозирование последствий ЧС техногенного характера, вызванных пожаром

.5.2.1 Основные мероприятия по локализации и устранению пожаров

.5.2.2 Вынужденная эвакуация людей из помещения серверной комнаты при пожаре

.5.2.3 Расчет размеров зоны возможных сплошных и отдельных пожаров

ЗАКЛЮЧЕНИЕ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

ПРИЛОЖЕНИЕ

ВВЕДЕНИЕ

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

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

ГЛОССАРИЙ

) Open source software - открытые программные средства, т.е. такие лицензионные программы, которые вместе с их исходными текстами, не связанны ограничениями на дальнейшую модификацию и распространение с сохранением информации о первичном авторстве и внесённых изменениях.

2) Application Framework - каркас приложения (открытая инфраструктура приложения). Это software framework, который используется, чтобы обеспечивать выполнение стандартной структуры приложения для определенной операционной системы.

3) Software Framework- каркас программной системы (или подсистемы). Может включать вспомогательные программы, библиотеки кода, язык сценариев и другое ПО <#"510512.files/image001.gif">

Рисунок 1.1 - Концепции архитектуры приложения

Нашу архитектуру отражает Рисунок 1.1. Давайте теперь рассмотрим отдельные вещи более подробно:

Общие детали проекта:

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

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

3.       Роль пользователя должна выставляться администратором, при его добавлении и/или редактировании.

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

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

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

Административная консоль:

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

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

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

4.        Реализовать процесс конвертирования данных из excel документа в запросы базы данных.

Пользовательский сайт

1.       Реализовать авторизацию, аутентификацию пользователей.

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

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

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

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

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

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

.         Страница литературы должна быть идентична по структуре странице тестов.

2. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

Данный проект мог быть реализован с помощью других технологий. Проведём аналогию. Данный проект может быть написан, используя другие альтернативные технологии, рассмотрим их преимущества и недостатки. В качестве альтернативы EJB можно было бы выбрать Spring, если бы наша задача стояла в том, чтобы это приложение могло работать только на одном сервере. Преимущества заключались бы в том, что мы получили бы большую производительность из-за упрощенной архитектуры Spring по отношению к EJB. В данном случае был выбран EJB, чтобы в дальнейшем можно было расширить приложение до кластерного уровня. В качестве альтернативы, использованию JSF, можно было бы выбрать такие технологии как Struts, GW, JSP/Servlets. Struts по сравнению с JSF, имеет преимущества в более удобной настройке компонентов, так как работа верстальщика не пересекается с работой разработчика, чего нет в JSF. GWT имеет встроенные возможности Ajax’a и предоставляет собой такую же архитектуру кодирования как и Swing. JSP/Servlet являются наиболее быстрым в скорости работы и являются базовым функционалом для вышеперечисленных фреймвёрков. В качестве базы данных можно было выбрать PostgreSQL, его возможности являются наряду с Oracle и в то же время является бесплатным для использования. Сайт на данный момент имеет административную консоль. На данном этапе разработки на ней (консоли) можно выполнять работу с данными над пользователями, преподаваемыми предметами, факультетами, кафедрами, специализациями студентов. В дальнейшем необходимо добавить возможность работы с корпусами университета, аудиториями, временем проведения пар, возможность создания расписания. Для данных страниц должен быть использован тот же подход создания, как и для предыдущих. Так как страницы будут предоставлять однотипный интерфейс для конечного пользователя.

Рисунок 2.1 - Интерфейс однотипных страниц в административной консоли

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

На данном этапе разработки есть компонент на странице добавления/редактирования студента, позволяющий загружать файлы. Выполняют задачу загрузки фотографий пользователей. На данный момент реализация не была осуществлена. Но для неё уже есть базовый функционал в приложении. Разработаны две сущности FileDescriptor и FileData. В сущность UserEntity добавлено поле, которое является в отношении один-ко-одному с сущностью FileDescriptor. Для дальнейшей разработки, необходимо имплементировать сервисы загрузки и редактирования фотографий (как это можно сделать, можно прочесть в [17]), установить фильтры на добавление файлов с расширением JPG, JPEG, GIF, PNG, JPE, JFIF, BMP, DIB, TIF, TIFF, так как они предоставляют собой форматы графических файлов. На загрузку остальных форматов установить запрет с выводом сообщения пользователю. Так же ограничить максимальный объём фотографии до 2Мб. Фотография при отображении на экране должна автоматически принимать одинаково установленные размеры. Например, 150 на 200 пикселей.

Данная реализация JSF - WebUI[12] не имеет возможности работать асинхронно. Переход на другую имплементацию невозможен, из-за специфической организации и различия архитектуры с альтернативными продуктами. Поэтому возможно переопределение имеющихся компонентов на уровне исходного кода WebUI-компонентов. Нужно добавить в необходимые компоненты дополнительный атрибут partialSubmit, который будет сигнализировать компоненту о том, что при изменении данных, на уровне контроллера, автоматически реагировать, не ожидая перезагрузки страницы. Сама реализация Ajax'a должна быть осуществлена через объект XMLHttpRequest[13]. Для реализации потребуется в дескрипторе развёртки объявить ещё один сервлет, который будет обрабатывать данные запросы.

В существующей реализации проекта предусмотрен в дескрипторе развёртки фильтр, в котором можно задать правила, по которым будет осуществляться навигация по сайту. При авторизации каждый из пользователей обладает своей ролью. Их всего может быть четыре: Guest, Administrator, Student, Lector. При дальнейшей разработке необходимо в методе doFilter класса имплементирующего интерфейс javax.servlet.Filter[14], в нашем случае это SecurityFilter, имплементировать логику доступа к каждой из страницы сайта. При захождении по прямому URL-адресу[15], SecurityFilter должен пропускать только тех пользователей, которые имеют на это право, остальных автоматически отправлять на страницу с 403 ошибкой [16]. На все страницы административной консоли может попадать только администратор. Гость может видеть только информацию об университете, и не имеет своих личных страниц на сайте. У студентов и преподавателей есть свои страницы, на которые могут попасть только они. Причём, студент не должен обладать правом просмотра данных другого студента, также как и преподаватель не может посмотреть успеваемость студентов не по его предметам или студентов, у которых он не читает лекций (либо ведёт практику). В дальнейшем предусматривается возможность введения новой роли, с помощью которой можно будет просматривать успеваемость и посещение занятий всех студентов. Эта возможность должна быть предоставлена кураторам, сотрудникам деканата.

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

Для обмена сообщениями на тестовом примере был выбран сервер mail.ru, для использования сайта необходимо использовать собственный почтовый сервер. Способ создания ящиков для пользователей сайта должен заключаться в том, что ящик выдаётся каждому пользователю на выделенном почтовом сервере, с названием имя_фамилия_id@домен. Причём уникальный идентификатор инициализируется единицей и впоследствии инкрементируется при совпадении уже имеющихся людей с такими же именами и фамилиями. Сайт предоставляет возможность на одной из страниц отправлять письма преподавателям и читать от них ответы. Дальнейшей доработкой должна служить очистка ненужных сообщений, либо неактуальных с течением времени.

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

На сайте должна быть предоставлена возможность студенту выбирать возможность, на какие типы SMS-рассылок он может подписаться. Это может быть: изменение в расписании, уведомление за определённое время до контрольной работы, и другие виды сообщений.

Главная страница сайта должна предоставлять возможность CMS[18]. Для этого также должна быть добавлена для этого соответствующая роль, позволяющая это делать. Что можно будет редактировать. Должна быть возможность изменения рисунка, фона страницы, содержимого страницы. Если текст пишется в стиле URL-адреса, чтобы предоставлялась возможность захода на этот сайт посредством единого нажатия левой клавиши мыши на нём.

Очень актуальными сейчас являются WEB сервисы[19]. В данном приложении их можно было бы использовать с целью проверки наличия студента в университете. Либо узнавать количество студентов, окончивших с красным дипломом. Некоторые модули, которые могут быть написаны на других технологиях, можно было бы состыковать посредством именно WEB сервисов. Также они могут быть полезны при возможности интерактивного обмена между двумя и более подобными сайтами, установленными в разных высших учебных заведениях. Например, при переходе студента из одного университета в другой с передачей всех его личных данных.

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

3. ПРОЕКТИРОВАНИЕ

Вследствие отсутствия финансирования проекта, при выборе инструментальных средств, предпочтение отдавалось условно бесплатным проектам. Лидирующее место на рынке таких продуктов в настоящее время занимает компания Sun Microsystems и для разработки все её продукты являются бесплатными. Основным языком программирования WEB-приложений является Java. Система была реализована по архитектуре "модель-контроллер-представление".

Рисунок 3.1 - Система по архитектуре "модель-контроллер-представление"

Данная архитектура полезна в приложениях, где необходимо разделить логику на 3 отдельных независимых модуля. Широко применяется в WEB-приложениях. Как известно, в MVC-приложениях используются модели двух типов: активные и пассивные. Первые сами являются инициаторами обновления отображаемых данных, а, следовательно, связаны с представлением. Зато последние не предпринимают самостоятельных действий, а лишь ожидают изменений от контроллера.

На основании изложенных фактов, мною были выбраны:

·        средой разработки - NetBeans 6.0, так как имеет способность работы с новыми технологиями, предоставление возможности автоматической генерации кода, автоматическое дополнение необходимых библиотек для выбранной технологии. При сравнении с аналогичными бесплатными для разработки средами разработки, такими как Eclipse, JDeveloper имеет преимущества. Eclipse трудоёмкий в настройках, JDeveloper имеет хорошие показатели при работе с продуктами компании Oracle, в других ситуациях неудобен в использовании.

·        в качестве WEB-сервера - Glassfish v2, так как имеет возможность работы с EJB, сервер является кластеризуемым, надёжным. Предоставляет удобную графическую административную консоль. Для использования в данном сайте не требует дополнительных настроек. При возникновении ошибок детально описывает проблему в логах. По сравнению с такими WEB-серверами как BEAWebLogic, IBM WebSphere работает значительно быстрее, не упоминая о том, что они являются не просто платными, а очень дорогими. Альтернативой использования может быть JBoss или Sun Application Server 9.

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

·        в качестве реализации уровня контроллера и представления -JSF, потому что предоставляет возможность быстрой разработки, предоставляет использование своих компонентов. Архитектура технологии предоставляет гибкость использования. Имеет недостатки в написании собственных компонентов, переопределении имеющихся. Большим недостатком является то, что работа верстальщика и разработчика часто пересекается по причине генерации HTML и JavaScript кода внутри Java-кода.

·        в качестве имплементации JSF - WebUI, так как в среде разработки NetBeans предоставляется удобная палитра для разработки jsp-страниц с автоматической генерацией кода.

·        в качестве используемой СУБД - MySQL 5.0, так как является продуктом OpenSource. Имеет удобный графический интерфейс при работе с базой данных.

4. РАЗРАБОТКА

4.1     Разработка архитектуры системы

Данное приложение является клиент-серверным, с тонким клиентом и имеет "многозвенная клиент-серверная" архитектура.

Рисунок 4.1 - Архитектура приложения

Состоит из 2-х модулей, имеет 4 логических уровня: DAO уровень, уровень сервисов, уровень контроллеров, уровень представления. DAO уровень работает непосредственно с базой данных с помощью EJB QL запросов, и являются локальными бинами в EJB-контейнере. Уровень сервисов вызывает методы из DAO уровня, выполняя соответствующие преобразования, если необходимо. Уровень сервисов является открытым для других модулей программы. Контроллеры взаимодействуют именно с этим уровнем. В контроллерах обрабатывается информация, пришедшая из уровня представления, а также предоставляется необходимая информация для неё из EJB-модуля. Уровень представления только отображает информацию, без её модификации.

.2 Определение функций, выполняемых программой (Use Case Diagram)

автоматизация сайт интерфейс программный

Рисунок 4.2 - Функции студента

Рисунок 4.3 - Функции администратора системы

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

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

.3 Разработка диаграмм последовательности (Sequence Diagrams)

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

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

Рисунок 4.5 - Диаграмма последовательности добавления/редактирования студентов

На данной диаграмме рассмотрен процесс работы добавления и редактирования студента. После успешной аутентификации администратором, сайт открывает страницу Admin.jsp на которой можно выбрать нужного для редактирования пользователя, либо добавить нового. При выборе той или иной функции сайт открывает страницу AddEditUser.jsp. При входе на данную страницу администратору предоставляются поля ввода данных пользователя. После нажатия на кнопку Cancel - произойдёт переход обратно на главную страницу административной консоли, при нажатии Save/Edit(значение кнопки изменяется в зависимости от способа захода на страницу) выполняется проверка на корректность введённых данных. В случае корректного заполнения необходимых полей, вносятся изменённые данные в базу данных, и происходит переход на главную страницу консоли. При потере авторизации сайт возвращается на страницу авторизации.

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

Рисунок 4.6 - Диаграмма последовательности главной страницы административной консоли

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

Рисунок 4.7 - Страница авторизации пользователей

Таким образом, выглядит страница авторизации. Имеется 2 поле ввода, для имени авторизации и пароля, кнопки авторизации и кнопки, позволяющей войти на сайт, как гостю.

Рисунок 4.8 - Главная страница административной консоли

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

Рисунок 4.9 - Страница редактирования/добавления пользователей

Данная страница предоставляет собой форму, для добавления, редактирования данных пользователя. Содержаться такие поля как ФИО, адрес, номер телефона, почтовый электронный адрес, день рождения, тип пользователя, фотография (будет реализована в дальнейшем), имя авторизации и пароль пользователя. Поля, которые являются обязательными, помечены звёздочками. Есть кнопка сохранения/редактирования и отмены, с возвратом на главную страницу консоли.

Рисунок 4.10 - Интерфейс однотипных страниц в административной консоли

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

Рисунок 4.11 - Страница для редактирования корпусов ВУЗа и установление времени для каждой пары

Рисунок 4.12 - Редактирование предметов и выделение преподавателю прав на их проведение

Рисунок 4.13 - Страница, позволяющая импортировать данные о расписании из Excel файла, и предоставляющая возможность привязки преподавателям к предметам

Рисунок 4.14 - Страница для задания специфических значений каждому из корпусов университета

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

Рисунок 4.15 - Страница, которая показывается пользователю в случае нехватки прав доступа к ресурсу

Рисунок 4.16 - Страница для изменения паролей

Данная страница предоставляет возможность изменения текущего пароля. Содержит для этого поля для ввода старого, нового и подтверждения нового пароля. При вводе всех данных, и нажатии кнопки "Змінити" - при корректном вводе данных пароль изменяется и возвращает пользователя на главную страницу консоли, в противном случае выводится соответствующие сообщение об ошибке. Кнопка "Відмінити" возвращает пользователя на главную страницу консоли.

Рисунок 4.17 - Главная страница портала

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

Рисунок 4.18 - Страница расписания занятий текущего семестра

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

Рисунок 4.19 - Страница пришедших напоминаний

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

Рисунок 4.20 - Страница успеваемости и посещаемости студента

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

Рисунок 4.21 - Страница отправки писем

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

Рисунок 4.22 - Страница пришедших писем

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

Рисунок 4.23 - Страница оценивания и отмечания успевания студентов

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

Рисунок 4.24 - Страница всех преподавателей университета

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

Рисунок 4.25 - Литература для просмотра и скачивания пользователям портала

Рисунок 4.26 - Страница позволяющая добавлять и редактировать существующие тесты

По представленным выше изображениям, как должна выглядеть система, есть смысл составить по ним диаграммы классов, которые помогут это реализовать.

.5 Разработка диаграммы классов(Class Diagram)

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

Рисунок 4.27 - Диаграмма классов, реализующих функциональность сущности, пользователя и его наследников

На диаграмме 4.28 представлено взаимосвязь сущностей, которые отвечают за проведение занятия (Lesson). Занятие может быть либо лекцией (Lection), практикой (Seminar) либо экзаменом (Examination). Сущность "Занятие" наследует все свойства, которые находятся в сущности Schedule, которая в свою очередь содержит информацию о том: в какой аудитории какого корпуса будет проведено занятие; время и день проведения; группа, которая будет на этом занятии; преподаватель, который будет проводить это занятие; семестр проведения этого занятия.

Рисунок 4.28 - Диаграмма классов, реализующих функциональность сущности, урока и его зависимостей

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

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

Рисунок 4.30 - Диаграмма зависимости классов, реализующих функциональность сущности, факультета с сущностью кафедра

Данная диаграмма представляет собой зависимость факультетов и кафедр. У одного факультета может быть много кафедр.

Рисунок 4.31 - Диаграмма зависимости классов, реализующих функциональность сущности, группы студентов с сущностью читаемый предмет

Данная диаграмма представляет собой отношение проводимых предметов определённой группе студентов.

Рисунок 4.32 - Диаграмма классов, реализующих функциональность сущности, пользователя с зависимостями

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

Рисунок 4.33 - Диаграмма класса, реализующего функциональность сущности, теста и его зависимости

Сущность тест ("TestEntity") устроен таким образом, что содержит связи, на совокупности тестов ("Quiz"). Это говорит о том, что один и тот же вопрос может конфигурировать больше, чем в одном тесте. Также тест, содержит в себе сущности вопросов ("QuiestionEntity") и ответов ("AnswerEntity"). Связи сущностей вопросов и ответов между собой никак не связаны, а поэтому при составлении теста, вопросы, которых может быть несколько должны иметь одинаковые варианты ответов и тот же самый правильный ответ. Это необходимо для того, чтобы была возможность формулировки одинакового вопроса несколькими способами.

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

.6 Разработка алгоритмов выполнения методов класса (Activity Diagram)

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

Рисунок 4.34 - Диаграмма отображения страницы

Рисунок 4.35 - Диаграмма обработки действий пользователя

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

Рисунок 4.36 - Диаграмма обработки нажатия кнопки "Добавити"

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

Рисунок 4.37 - Диаграмма отображения и заполнения дополнительной формы

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

Рисунок 4.38 - Диаграмма логики работы удаления записи из таблицы

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

Рисунок 4.39 - Диаграмма классов логики работы нажатия кнопки "Сохранить/Редактировать"

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

.7 Разработка диаграммы развертывания (Deployment Diagram)

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

На данной диаграмме можно увидеть, что приложение состоит из трёх узлов. Клиент, обращаясь через WEB-браузер, взаимодействует с GlassFish сервером, который в себе разворачивает EJB контейнер, и взаимодействует с сервером базой данных MySQL для выборки данных.

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

Анализ технического задания на разработку информационно-справочной системы, требований к системе обеспечения информационной безопасности и политики ИБ показал, что в базе данных (БД) целесообразно хранить:

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

2)  информацию о кафедрах, специальностях, факультетах;

3)      книги, фотографии, другие файлы;

4)      тесты (вопросы, ответы, вопросники);

5)  информацию о расписании (даты сессии для каждой кафедры, время, место проведения пар и кем они должны быть проведены);

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

Нормализация базы данных

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

Первая нормальная форма:

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

·              запрещает множественные столбцы (содержащие значения типа списка и т.п.);

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

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

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

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

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

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

4.8.1 Разработка физической модели базы данных

Рисунок 4.41 - Физическая структура реализации модели Расписание и его связи

Рисунок 4.42 - Физическая структура реализации модели Тест

Рисунок 4.43 - Физическая структура реализации модели Пользователь и его связи

4.8.2 Разработка бизнес правил базы данных

) Все таблицы имеют первичный ключ BIGINT(20) с автоматическим инкрементированием при добавлении новой записи в таблицу.

) Таблица UserEntity является общей таблицей для записей 4 типов объектов: студента, администратора, преподавателя и гостя. Различие между разными типами сущностей происходит по дополнительному столбцу discriminator.

) Таблица Lesson подобна по реализации таблице UserEntity, совмещает в себе 2 сущности: лекционное занятие и практическое.

4) Таблицы BirthDate, Address, UserEmail, Credential, TelephoneNumber связаны только с сущностью UserEntity, и поэтому при удалении сущности пользователя автоматически удаляются записи в вышеперечисленных таблицах, для предотвращения "висящих" данных.

.8.3 Описание таблиц БД

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







4.9 Кодирование и отладка

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

5. ТЕСТИРОВАНИЕ

Виды тестирования:

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

Функциональное тестирование - цель данного тестирования состоит в том, чтобы убедиться в надлежащем функционировании объекта тестирования. Тестируется правильность навигации по объекту, а также ввод, обработка и вывод данных.

Тестирование БД - проверка работоспособности БД при нормальной работе приложения, в моменты перегрузок и многопользовательском режиме.

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

Таблица 5.1 Test-case функционального тестирования консоли.

Страница

Действие

Событие

Приоритет

Выполнение

Login page

По ссылке #"510512.files/image053.gif">

Рисунок 7.1. Зоны досягаемости рук в горизонтальной плоскости

а - зона максимальной досягаемости;

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

в - зона легкой досягаемости ладони;

г - оптимальное пространство для грубой ручной работы;

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

При проектировании письменного стола следует учитывать следующее:

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

6 нижняя часть стола должна быть сконструирована так, чтобы программист мог удобно сидеть, не был вынужден поджимать ноги;

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

8 конструкция стола должна предусматривать наличие выдвижных ящиков (не менее 3 для хранения документации, листингов, канцелярских принадлежностей, личных вещей).

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

9 ширина не менее 700 мм;

10 глубина не менее 400 мм;

11 высота рабочей поверхности стола над полом 700-750 мм.

Оптимальными размерами стола являются:

12 высота 710 мм;

13 длина стола 1300 мм;

14 ширина стола 650 мм.

Поверхность для письма должна иметь не менее 40 мм в глубину и не менее 600 мм в ширину. Под рабочей поверхностью должно быть предусмотрено пространство для ног:

15 высота не менее 600 мм;

16 ширина не менее 500 мм;

17 глубина не менее 400 мм.

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

18 допускать возможность изменения положения тела, т.е. обеспечивать свободное перемещение корпуса и конечностей тела друг относительно друга;

19 допускать регулирование высоты в зависимости от роста работающего человека ( в пределах от 400 до 550 мм );

20 иметь слегка вогнутую поверхность,

21 иметь небольшой наклон назад.

Исходя из вышесказанного, приведем параметры стола администратора:

22 высота стола 710 мм;

23 длина стола 1300 мм;

24 ширина стола 650 мм;

25 глубина стола 400 мм.

Поверхность для письма:

26 в глубину 40 мм;

27 в ширину 600 мм.

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

7.2 Анализ вредных производственных факторов в серверной комнате

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

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

2)      ионизирующее и электромагнитное излучения;

3)      повышенный уровень шума и вибрации;

4)      вероятность возникновения пожара;

5)      микроклиматические условия;

6)      недостаточная освещенность помещения.

7.3 Характеристика помещения серверной комнаты

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

1)      размеры 6х6х3 м (высота потолка не менее 3-х метров по СНиП 11-4-05);

2)      помещение расположено на втором этаже пятиэтажного здания;

3)      в комнате расположены рабочие места для двух человек, норма на одного человека по СНиП 2.9-04-87: объем - 19,5 м3, площадь - 6 м2;

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

5)      в помещении находится одно окно площадью 7,2 м2;

6)      по степени опасности поражения электрическим током комната относится к помещениям без повышенной опасности;

7)      полы съемные, состоят из несгораемых плит, сверху покрыты линолеумом;

8)      кабели и специализированная проводка для приборов и ЭВМ помещены в гибкие резиновые шланги и проложены под полом;

9)      по доступности электрооборудования помещение относится к классу производственных помещений;

10)     температура воздуха поддерживается в пределах 18-24 °C;

11)     относительная влажность воздуха поддерживается в диапазоне 30-50% без конденсации влаги;

13)     источники шумов: внутренняя вентиляция ЭВМ, причинно-вытяжная вентиляция, система кондиционирования воздуха;

14)     наименьшая освещенность 540 лк на высоте 100 см;

15)     загрязнение воздуха, тепловые и световые излучения отсутствуют;

16)     эвакуационный выход один (СНиП 2.01.02-85).

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

.4.1 Методы защиты от шума и вибрации

Строительно-акустические методы защиты от шума предусмотрены строительными нормами и правилами, это:

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

.        звукопоглощающие конструкции и экраны;

.        глушители шума, звукопоглощающие облицовки.

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

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

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

Сервер являются источником шума с W 0 = 65 дБ, что не соответствует санитарным нормам. Следовательно, звукоизоляция необходима.

Требуемая максимально допустимая звукопроницаемость ограждения:

r пр. = W пр. / W 0 = 50/65 = 0,77


Звукоизолирующая способность ограждения:

R пр. = 10 lg(1/ r пр.) = 1,44


При весе 1 м2 до 200 кг (легкое ограждение) его требуемый удельный вес составляет:

R пр. = 13,5 lg Q пр. + 13

Q пр. = 10((R пр. - 13)/13,5) = 10-0,8 = 0,13 кг.


Выбираю в качестве материала ограждения фанеру. Его требуемая толщина составит:

n пр. ф. = Q пр. / ρ ф.= 0,13 / 570 = 2*10-4 м


Где:

ρ ф - плотность фанеры (кг/м2)

Выбираю толщину фанерного листа n ф. =10 мм > n пр. ф.

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

ДСТУ 112.1.003-83 устанавливает допустимые уровни звукового давления (в октавных полосах частот), уровни звука и эквивалентные уровни звука (в дБ) на рабочих местах (W пр. = 50 дБ).

В серверной комнате источниками шума являются:

1)      внутренняя вентиляция ЭВМ;

2)      вращающиеся части ЭВМ (НГМД, НЖМД и устройства чтения оптических дисков);

3)      причинно-вытяжная вентиляция;

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

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

Таблица 7.1. Звук и эквивалентные уровни звука на рабочих местах.

Рабочие место

Уровни звукового давления со среднегеометрическими частотами, Гц

Уровни звука и эквивалентные уровни, дБ

Серверная комната

40

45


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

1)      повреждения различных органов и тканей;

2)      влияние на центральную нервную систему;

3)      влияние на органы слуха и зрения;

4)      повышение утомляемости.

Наиболее вредной является вибрация, близкая к собственной частоте человеческого тела (6-8 Гц) и рук (30-80 Гц).

.4.2 Параметры микроклимата на рабочем месте

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

Основной принцип нормирования микроклимата - создание оптимальных условий для теплообмена тела человека с окружающей средой. Нормы устанавливаются в зависимости от времени года, характера трудового процесса и характера производственного помещения (значительные или незначительные тепловыделения). Для рабочих помещений с избыточным тепловыделением до 20 ккал/м3 допустимые и оптимальные значения параметров микроклимата приведены в таблице 7.2:

Таблица 7.2 Нормы микроклимата на рабочем месте

Время года

Зона

Температура воздуха, 0 C

Относительная влажность, %

Скорость движения воздуха, м/с

Холодный период

Оптимальная

18 - 21

60 - 40

< 0.2

Переходный период

Допустимая

17 - 21

< 75

< 0.3

Теплый период года (t > 100 C)

Оптимальная

20 - 25

60 - 40

< 0.3


Допустимая

< 28 в 13 часов самого жаркого м

< 75

< 0.5


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

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

Рассмотрим тепловыделение от некоторых источников:

Тепловыделение от источников искусственного освещения:

 Q1 = 860* Nосв

(7.1)


Где:

Nосв. - суммарная мощность источников искусственного освещения, кВт.

Q1 = 860*0,6 = 516 ккал/ч


Тепловыделение от людей:

Q2 = Qл* nл

(7.2)


Где:

Q2 - тепловыделение от одного человека (55 ккал/ч);л - количество людей.

Q2 = 55*2 = 110 ккал/ч


Поступление тепла через световые проемы за счет солнечной радиации:

Q3 = F* q

(7.3)


Где:- площадь светового проема (7,2 м2);- количество тепла, вносимое солнечной радиацией через световые проемы (25 ккал/(ч*м2)).

Q3 = 7,2*25 = 180 ккал/ч


Потери тепла из-за строительных ограждений:

Qтп = k*F*(Тп + Тн)

(7.4)


Где:- поверхность ограждения, м2;

Тн - температура наружная, К;

Тп - температура в помещении, К.

Qтп = 1,09*7*14 = 126,14 ккал/ч


Подсчитаем избыточное количество тепла в помещении серверной комнаты:

Q = 516+110+180-126,14 = 679,86


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

L = Q / (C*y*(Тпн))

(7.5)


Где:

С - удельная теплоемкость воздуха (0,24 ккал/(кг * К));- объемный вес воздуха, поступающий в помещение (кг/м3).

L = 679,86 / (0,24*1,185*36) = 679,86/10,2384 = 66,4


Кратность обмена воздуха:

K = L/Vп

(7.6)


Где:п - объем помещения (108 м3).

K = 66,4/108 = 0,61


Кратность обмена воздуха меньше 30, следовательно, вентиляция в помещении естественная и нет необходимости в вентиляторе.

.4.3 Требования к освещенности помещения

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

Естественное освещение в помещениях нормируется коэффициентом естественной освещенности (КЕО), величина которого узаконена СНиП П.4-79 в зависимости от типа помещения, системы освещения и характера работ, выполняемых в помещении - КЕО = 1.5%

Согласно СНиП П.4-79, в качестве источников искусственного освещения применимы люминесцентные лампы освещения. Нормированная освещенность на рабочем месте оператора Е=0,75 лк.

.4.4 Ионизирующее и электромагнитное излучения

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

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

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

Обеспечение безопасности работающих с радиоактивными веществами осуществляется путем установления предельно-допустимых доз облучения различными видами радиоактивных веществ, применения защиты временем или расстоянием, проведения общих мер защиты, использования средств индивидуальной защиты. Большое значение имеет применение приборов индивидуального и общего контроля для оценки интенсивности радиоактивных излучений. Администратор сервера во время работы находится на расстоянии от 0,5 до 2 метров от монитора (дисплея), являющегося источником β-частиц. При работе с источником бета-излучения нужно обеспечить защиту, как от прямого действия β-частиц, так и от тормозного излучения.

.4.5 Требования к электробезопасности

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

1)      сервер;

2)      монитор;

3)      периферийные устройства.

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

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

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

3)      ремонтные и профилактические работы, установка и снятие корпуса допускается только при отключенном электропитании;

4)      токоведущие части должны быть изолированы;

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

.5 Обеспечение техногенной безопасности

.5.1 Анализ возможных чрезвычайных ситуаций

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

1)      ЧС техногенного характера (транспортные аварии и катастрофы, пожары, непредвиденные взрывы, аварии с выбросом опасных химических, биологических и радиоактивных веществ, внезапное разрушение зданий и сооружений и т.д.);

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

3)      ЧС социально-политического характера (противоправные действия террористического и антиконституционного характера, захват или угроза захвата важных государственных или военных объектов, морского и воздушного транспорта, кража или захват оружия и т. д.);

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

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

.5.2 Прогнозирование последствий ЧС техногенного характера, вызванных пожаром

Первичными поражающими факторами ЧС техногенного характера, вызванных пожарами, являются:

1)      световое излучение;

2)      задымление окружающей среды;

3)      химическое загрязнение окружающей среды.

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

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

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

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

.5.2.1 Основные мероприятия по локализации и устранению пожаров

1)      Рабочее место администратора сервера должно постоянно содержаться в чистоте, систематически очищаться от посторонних предметов.

2)      На территории категорически запрещается:

а.       загромождать проезды и подъезды к зданию, пожарным водоисточникам;

б.       загромождать доступы к пожарному инвентарю;

в.       территория должна оборудоваться знаками безопасности, согласно ГОСТ 12.4.026-76 "Цвета сигнальные и знаки безопасности";

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

3)      Помещение и оборудование нужно периодически очищать от пыли и других отходов.

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

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

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

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

8)      Не загромождать доступ к пожарному оборудованию и инвентарю. Следить за комплектностью пожарного оборудования и инвентаря и исправностью средств автоматики и связи.

.5.2.2 Вынужденная эвакуация людей из помещения серверной комнаты при пожаре

Создание укрупненных серверных, размещаемых в высотных зданиях, с большим штатом работающих придает особое значение вопросам вынужденной эвакуации из них людей при пожаре. Вынужденная эвакуация при пожаре протекает в условиях нарастающего действия опасных факторов пожара. Поэтому безопасность людей находится в прямой зависимости от времени пребывания их в здании при пожаре. Кратковременность процесса вынужденной эвакуации достигается устройством эвакуационных путей и выходов, число, размеры и конструктивно-планировочные решения которых регламентированы СНиП 2.01.02-85 "Противопожарные нормы". По взрывопожарной и пожарной опасности помещения и здания подразделяют на категории А, Б, В, Г, Д. Здания и помещения серверных относятся к категории В.

.5.2.3 Расчет размеров зоны возможных сплошных и отдельных пожаров

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

Радиусы внешних границ зон сплошных и отдельных пожаров рассчитываю по формулам:

R спл. = √(0,5*К*(ΣSi* βi))/2πJспл.

(7.7)

R отд. = √(0,5*К*(ΣSi* βi)) 2πJотд.

(7.8)


Где:

К - удельная тепловая нагрузка (К=2,3*105 Вт/м2 );

Jспл. - плотность потока мощности светового излучения первичного пожара на внешней границе зоны возможных сплошных пожаров (Jспл.=3*104 Вт/м2);

Jотд. - плотность потока мощности светового излучения первичного пожара на внешней границе зоны возможных отдельных пожаров (Jотд.=104 Вт/м2);

Si - площадь i-го строительного элемента;

βi - поправочный коэффициент для i-го строительного элемента.

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

Таблица 7.3 - Характеристики объектов возгорания.

№ п/п

Название строительного элемента

Площадь, м2

Поправочный коэффициент

1

Стены, оклеенные обоями

61,92

1

2

Окна, двери

10,08

0,5

3

Столы и стулья

7,04

1

4

Пол

36

0.15


Радиусы внешних границ зон сплошных и отдельных пожаров:

R спл. = 6,9 м

R отд. = 12 м


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

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

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

При разработке Закона Украины "О Гражданской обороне Украины" и "Положения о ГО Украины" акцентировалось внимание на достижения следующих направлений:

1)      Закон и Положение должны учитывать мировой опыт осуществления мер по Гражданской обороне и в полной мере соответствовать Женевской (1949г.) Конвенции "О защите жертв войны";

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

3)      соответствие организационной структуры создаваемой системе;

4)      обеспечение высокой реальной готовности органов управления, сил гражданской обороны.

Принятие Закона "О Гражданской обороне Украины" является следствием работы специалистов штабов Гражданской обороны во главе со штабом ГО Украины и заинтересованных министерств и ведомств. После его издательства в периодических изданиях 6 марта 1993 года Закон вступил в силу.

ЗАКЛЮЧЕНИЕ

При разработке данного продукта были использованы:

·         Сервер приложения Glassfish v2.0;

·        Контейнер сервера приложения EJB 3.0;

·        Каркас уровня представления WebUI JSF;

·        Работа с excel документами JExcelAPI;

·        Динамическая компиляция кода Reflection;

·        Работа с очередями и рассылкой JMS;

·        Сервер контроли версий OpenSVN;

·        Сборка проекта Maven 2;

·        База данных MySQL 5.0;

·        Объектно-реляционная проекция Oracle TopLink;

·        Клиент контроли версии TortoiseSVN 1.6

·        Среда разработки NetBeans 6.0

Для достижения поставленной задачи мне помогли вышеперечисленные технологии и каркасы. Вначале проект был настроен на 3 основные технологии: EJB, TopLink, JSF WebUI, после чего можно было приступать к разработке. Все эти технологии хорошо поддерживаются сервером приложений GlassFish и без проблем в среде разработки NetBeans6.0 собираются при помощи Maven. В процессе наращивания логики, стало очевидно, что для оптимизации кода и ускорения разработки необходимо написать свой каркас для WebUI там, где страницы были однотипными. С этой задачей элегантно получилось справиться при помощи технологии Reflection. Когда дошло дело до коммуникации между преподавателями и студентами, в проект был интегрирован JMS. В качестве базы данных был выбран MySQL, но архитектура приложения позволяет без проблем перейти на другой сервер баз данных. В момент реализации импортирования расписания в портал, был выбран удобный для пользователя способ создания его на excel-документе. Для решения этой задачи послужил JExcelAPI. В конечном итоге, для того, чтобы можно было вести без проблем разработку с разных компьютеров, а также в дальнейшем разработку нескольким программистам этот проект был добавлен под контроль версии OpenSVN.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.       Enterprise JavaBeans Technology // Sun Microsystems [Электронный ресурс] #"510512.files/image055.gif">

Рисунок Б.2 Добавление нового хоста

Рисунок Б.1 Добавление нового пользователя

Рисунок Б.3Задание IP-адреса хоста

2. Задание пользователю имени авторизации и пароля

Рисунок Б.4 Создание имя авторизации и пароля пользователю

. Создание схемы

Рисунок Б.5 Создание новой схемы

Рисунок Б.6 Именование схемы

Добавление привилегии таблицам

Рисунок Б.7 Присвоение прав пользователю на работы со схемами

Б.3 НАСТРОЙКА ВЕБ СЕРВЕРА

. Создание WEB-сервера

Рисунок Б.8 Создание WEB-сервера

. Создание домена WEB-сервера

Рисунок Б.9Выбор типа WEB-сервера

Рисунок Б.10 Создание имени авторизации и пароля для доступа к консоли WEB-сервера

Рисунок Б.11 Создание расположения домена WEB-сервера

. Создание нового сервера баз данных:

Рисунок Б.12 Создание новой связи с базой данных

Рисунок Б.13 Выбор базы данных

Рисунок Б.14 Создание URL-адреса схемы базы данных

Запуск приложения на выполнение:

Рисунок Б.15 Запуск приложения на выполнение

На этом этапе создадутся таблицы в базе данных

Рисунок Б.16 Архитектура схемы university

. Создание системных переменных

Необходимо указать рабочий каталог к Ant’у, как системную переменную. На значке "Мой компьютер" щёлкнуть правой кнопкой мышки и выбрать свойства. В появившемся окошке выбрать вкладку "Дополнительно".

Рисунок Б.17 Свойства системы

Внутри этой странички нажать кнопку "Переменные среды", после чего появится соответствующее окошко. В нём надо в панели системных переменных нажать на кнопку "Создать". После чего в окне "Изменение системной переменной" внести необходимую информацию: в поля имени переменной указать ANT_HOME, а в значении - абсолютный путь. После этого изменить значение Path, добавивши в конец значения через точку с запятой ANT_HOME\bin.

Рисунок Б.18. Переменные среды

. Создание JMS PTP соединения.

Заходим в левой части панели среды разработки на меню Services, в появившемся древовидном списке выбираем Servers->GlassFish V2.

Рисунок Б.19. Закладка Services в среде NetBeans 6.0

Нажимаем на нём правой кнопкой мыши и выбираем View Admin Console. После этого в браузере откроется консоль.

Рисунок Б.20. Консоль GlassFish WEB-сервера. Логин страница

Вводим те данные логин и пароль, которые мы указывали при установке GlassFish’a. После чего нам откроется страница со всеми возможностями управления сервером.

Рисунок Б.21. Консоль GlassFish WEB-сервера. Главная страница.

Во всём этом разнообразии нас интересуют ресурсы, а именно JMS ресурсы. В нём есть две папочки - Connection Factories и Destination Resources. При создании записи в Connection Factories, данные должны соответствовать рисунку Б.3.16, а Destination Resources рисунку Б.3.17.

Рисунок Б.22. JMS Connection Factory

Рисунок Б.23 JMS Destination Resources

10. Добавление библиотек в проект

Добавляем необходимые библиотеки для проекта. Для этого в закладке Projects правой кнопкой мыши щёлкаем на UniversityPortal и выбираем в консольном меню Properties.

Рисунок Б.24. Закладка Projects в среде разработки NetBeans 6.0

В новом окне выбираем Libraries категории при помощи кнопки "Add Jar/Folder…" указываем пути к jxl.jar, mysql-connector-java-5.0.7-bin.jar библиотекам. Таким же способом, только для модуля UniversityPortal-war указываем путь к jstl.jar.

Рисунок Б.25. Свойства проекта.

Б.4 АВТОМАТИЧЕСКОЕ ЗАПОЛНЕНИЕ СУБД НАЧАЛЬНЫМИ ДАННЫМИ

Для того, чтобы их инициализировать начальными данными, необходимо зайти на страницу #"510512.files/image080.jpg">

Рисунок Б.26. Страница инициализации базы данных

ПРИЛОЖЕНИЕ В

РУКОВОДСТВО ОПЕРАТОРА

. Авторизация в системе

Для того, чтобы авторизоваться на сайте, необходимо зайти на страницу авторизации <#"510512.files/image081.gif">

Рисунок В.1. Страница авторизации пользователей

При успешной авторизации, в зависимости от роли пользователю откроются разные страницы:

- если администратор (рис В.2)

Рис В.2. Главная страница административной консоли приложения

если студент, гость, преподаватель (рис 4.4.12):

Рисунок В.3. Главная страница портала.

. Добавление пользователей

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

Рисунок В.4. Страница редактирования/добавления пользователей.

На что стоит обратить внимание, при заполнении формы. Что при выборе другого типом пользователя - студент, появляются дополнительные поля для заполнения, свойственные студенту. При корректном вводе, форма сохранит нового студента и вернётся на главную консоль, в противном случае покажет причину ошибки. Если необходимо просто выйти из этой страницы, не производя никаких изменений, надо нажать на кнопку "Відмінити".

. Редактирование пользователей

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

Рисунок В.5. Ошибка при попытке редактирования/удаления записи таблицы, не выбравши строку.

Такая же инструкция для удаления пользователя. Для смены пароля, необходимо его выбрать, нажать на ссылку "Змінити пароль", после этого откроется соответствующая страница (Рисунок В.6).

Рисунок В.6. Страница изменения пароля пользователя

4. Фильтр отображаемых пользователей в таблице

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

Рисунок В.7. Указание расположения фильтра на административной консоли

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

5. Администрирование сущностей

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

Рисунок В.8. Интерфейс однотипных страниц в административной консоли

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

Рисунок В.9. Страница редактирование специальностей/кафедр.

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

. Администрирование общих стандартов высшего учебного заведения

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

Рисунок В.10. Страница для редактирования корпусов ВУЗ’а и установление времени для каждой пары.

Внутри этой страницы (Рисунок В.10) есть две ссылки на две страницы.

Рисунок В.11 Страница для задания специфических значений каждому из корпусов университета.


Рисунок В.12 Страница, позволяющая импортировать данные о расписании из excel файла, и предоставляющая возможность привязки преподавателей к предметам.

Используя ссылку "Адмініструвати уроки" открывается страница (Рисунок В.12) позволяющая импортировать данные о расписании через *.xls документ. Перед этим, необходимо установить с какой верхней левой ячейки в этом файле находятся данные, также количество групп в этом документе и количество учебных дней в неделе. После этого необходимо составить excel файл в следующем формате:

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

Рисунок В.13 Пример оформления расписания в необходимом, для распознавания программы анализатора, портала формате.

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

Установление прав преподавателям на чтение дисциплин

При заходе на страницу редактирования предметов, через ссылку "Адміністрування дисциплін" (рис В.14) с главной страницы консоли, возможен также способ установления прав преподавателю на чтение дисциплин. Для этого выбираем интересующего нас преподавателя в списке ниспадающего меню "Викладачі", после этого выбираем предметы, которые преподаватель может вести, и нажимаем кнопку "Присвоїти".

Рисунок В.14 Страница изменения информации о читаемых предметах в университете. А также делегирования прав преподавания преподавателями этих дисциплин.

8 Преподавательский состав высшего учебного заведения

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

Гость кроме этого может посмотреть преподавательский состав и новости. Для этого есть два соседних с выбранной по умолчанию закладкой (Об університеті) "Викладачі унівеситету" и "Новини" соответственно.

Рисунок В.15 Страница всех преподавателей университета

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

. Новости

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

Рисунок В.16 Страница новостей портала

. Об университете

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

Рисунок В.17. Главная страница портала, при авторизации ролью студента.

11. Своя страница

Если зайти на портал под студентом или преподавателем появляется дополнительная закладка ("Своя сторінка") и 3 кнопки навигации ("Estimations", "Література" и "Скласти тести"), из кнопок для студента видимой есть только "Література" (Рисунок В.17).

Рисунок В.18. Представление внутренних вкладок вкладки "Своя сторінка"

При заходе на вкладку "Своя сторінка", появляется возможность выбрать одну из 5 появившихся вкладок ("Розклад", "Важливі повідомлення", "Успішність", "Отримані повідомлення" и "Відправити повідомлення"), как показано на рисунке В.18.

.1 Страница расписания занятий

Рисунок В.19. Расписание занятий студента на текущий семестр

Первая закладка "Розклад" (Рисунок В.19) показывает расписание на текущий семестр.

.2 Страница уведомлений

Рисунок В.20. Страница важных сообщений

На второй закладке "Важливі повідомлення" (Рисунок В.20) можно посмотреть важные сообщения, отправленные преподавателями.

.3 Страница успеваемости студента в текущем семестре

Рисунок В.21. Успеваемость студента в текущем семестре

На закладке "Успішність" (Рисунок В.21) студент может посмотреть свою текущую успеваемость и посещаемость.

.4 Страница полученных сообщений

РисунокВ.22. Полученные сообщения

На закладке "Отримані повідомлення" (Рисунок В.22) можно просмотреть пришедшие сообщения.

Рисунок В.23. Результат нажатия кнопки "Показати"

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

Рисунок В.24 Результат нажатия кнопки "Зберегти"

Если сообщения является необходимым в будущем, его можно сохранить, нажав кнопку "Зберегти". После чего оно исчезнет из колонки "Отримані повідомлення" и появится в колонке "Збережені повідомлення" (Рисунок В.24). Если письмо оставить в "Отримані повідомлення", то после 7 дней оно автоматически удалится.

11.5. Страница отправки сообщений

Рисунок В.25. Страница отправки сообщений

На закладке "Відправити повідомлення" (Рисунок В.25) можно отправить письмо студенту/преподавателю, в зависимости от того, какой пользователь пишет письмо. Для этого в ниспадающем меню "Отримувач" необходимо выбрать требуемого человека, написать тему письма в "Тема листа" и само сообщение в "Зміст листа". Для того, чтобы сделать письмо важным для получателя, необходимо поставить галочку напротив "Термінове".

12. Страница оценивания студентов.

Используя кнопки "Виставити відмітки", "Література" и "Скласти тести" можно проставить оценки студентам, посмотреть/редактировать/добавить литературу на портал и посмотреть/редактировать/добавить тесты. Из этих трёх кнопок, для студентов видна лишь одна - "Література".

Рисунок В.26. Выставление оценок студентам. Шаг 1

Рисунок В.27. Выставление оценок студентам. Шаг 2

Рисунок В.28. Выставление оценок студентам. Шаг 3

Рисунок В.29. Выставление оценок студентам. Шаг 4

Рисунок В.30. Выставление оценок студентам. Шаг 5

При переходе на страницу "Виставити відмітки" (Рисунок В.26) для того, чтобы увидеть таблицу со студентами какой-то группы (рисю В.29), необходимо выбрать группу (Рисунок В.27), предмет и занятие (Рисунок В.28). После этого откроется таблица со всеми студентами в ней и оценками/посещаемостью данного урока (Рисунок В.29). После нажатия на кнопку "Виставити відмітку", в левой части экрана появляется панель (Рисунок В.30) для оценивания/редактирования выставленной оценки студенту либо его посещаемости.

. Страница добавления и редактирования теста

Рисунок В.31 Страница для добавления и/или редактирования теста

При переходе на страницу "Добавити/редагувати тест" (Рисунок В.31) мы видим с правой стороны панель для добавления/редактирования теста, посередине сверху фильтр, и посредине таблицу с тестами. При создании теста, необходимо указать тип теста: "З однією вірною відповідю" "З кількома вірними відповідями", либо "Заповнити вільні місця". После чего данная панель приобретает соответствующие поля для ввода. Рассмотрим панель, которая выбрана по умолчанию - "З однією вірною відповідю". Следующая информация, которую нам необходимо заполнить - это создать для данного теста уникальное имя, по которому впоследствии будет быстро его найти. После этого заполнить сам вопрос и возможные варианты ответа на него. После этого выбрать напротив тот вариант, который является верным и сохранить его. Если данные были внесены верно, то после сохранения этот тест появится в таблице.

14. Страница литературы

Рисунок В.32 Литература

При переходе на страницу "Література" (Рисунок В.32) мы видим схожий дизайн страницы с "Добавити/редагувати тест". Отличия лишь заключаются в названии полей.

. Страница нехватки прав пользователя

Рисунок В.33 Страница, которая показывается пользователю в случае нехватки прав доступа к ресурсу.

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

ПРИЛОЖЕНИЕ Г

КОД ПРОГРАММЫ

Код реализации каркаса:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/utils;com.sun.data.provider.RowKey;com.sun.rave.web.ui.appbase.FacesBean;com.sun.webui.jsf.component.Button;com.sun.webui.jsf.component.DropDown;com.sun.webui.jsf.component.Field;com.sun.webui.jsf.component.TableRowGroup;generic.StringVariables;java.lang.reflect.InvocationTargetException;java.lang.reflect.Method;java.util.ArrayList;java.util.ArrayList;java.util.Arrays;java.util.Collection;java.util.HashMap;java.util.Iterator;java.util.List;java.util.Map;java.util.logging.Level;java.util.logging.Logger;services.EntityService;universityportalwar.SessionBean1;

/**

*

* @author Bogdan_Nechyporenko

*/class TableUtil {static final String methodNameChoosedItemId = "getChoosedItemId";static final String methodNamePopulateFields = "populateFields";static final String methodNameChangeWasError = "changeWasError";static final String methodNameError = "error";static final ObjectUtil objectUtil = new ObjectUtil();static boolean isAdd() {result = false;addAction = StringVariables.add;prevAction = SessionBean1.getPreviousAction();{= prevAction.startsWith(addAction);

} catch (NullPointerException ex) {.getLogger(TableUtil.class.getName()).(Level.SEVERE, null, ex);

}result;

}static boolean isEdit() {result = false;editAction = StringVariables.edit;= SessionBean1.getPreviousAction().startsWith(editAction);result;

}static boolean isOpenForAdd() {SessionBean1.getPreviousAction().startsWith(StringVariables.openFormForAdd);

}static boolean isOpenForEdit() {SessionBean1.getPreviousAction().startsWith(StringVariables.openFormForEdit);

}Long getChoosedIdOnSpecificJSFPage(TableRowGroup trg,classSimpleName) {[] choosedUsers = trg.getSelectedRowKeys();(choosedUsers.length != 0) {

Long rowId =.parseLong((choosedUsers[0]).getRowId());(rowId != null) {{obj =.getObjectByIndex(classSimpleName,.intValue());method = obj.getClass().getDeclaredMethod("getId",Class[]{});(Long) method.invoke(obj, new Object[]{});

} catch (Exception ex) {.getLogger(TableUtil.class.getName()).(Level.SEVERE, null, ex);

}

}

}null;

}static void setTextForAddEditButton(Button button, String addText,editText) {(isOpenForAdd()) {.setText(addText);

} else if (isOpenForEdit()) {.setText(editText);

} else {.setText(null);

}

}static boolean conditionForRetrieveAddEditAdditionalForm(boolean wasError) {((isOpenForAdd() || isOpenForEdit()) &&

!wasError);

}static void prerenderTemplate(Object thisObject, Boolean wasError) {{clazz = thisObject.getClass();methodNameForVisibility =

"setForSomeComponentsOnFormVisibility";methodNameForButton = "setTextForAddEditButton";methodForVisibility = clazz.getDeclaredMethod(methodNameForVisibility,Class[]{Boolean.TYPE});methodForButton =.getDeclaredMethod(methodNameForButton, new Class[]{});.setAccessible(true);.setAccessible(true);.invoke(thisObject, false);(conditionForRetrieveAddEditAdditionalForm(wasError)) {.invoke(thisObject, true);.invoke(thisObject, new Object[]{});

}

} catch (Exception ex) {.getLogger(TableUtil.class.getName()).log(Level.SEVERE, null, ex);

}

}static String addEditFunctionality(Object thisObject,entityClass, String previousActionName, String[] componentNamesArr, Class[] parameterTypesArr) {.setPreviousAction(previousActionName);entityObject = getEntityAndSetFieldsWithValues(thisObject,, componentNamesArr, parameterTypesArr);(entityObject);null;

}static void persistOrMergeEnity(Object entityObject) {(entityObject != null) {(TableUtil.isAdd()) {

(new EntityService()).persistEntity(entityObject);

} else if (TableUtil.isEdit()) {

(new EntityService()).mergeEntity(entityObject);

}

}

}static Object getEntityAndSetFieldsWithValues(Object thisObject,entityClass, String[] componentNamesArr,[] parameterTypesArr) {{<String> componentNames = Arrays.asList(componentNamesArr);<String, Method> declaredMethods = getDeclaredMethods(thisObject); setAccessibilityForMethods(declaredMethods.values().toArray(new Method[]{}),true);entityObject = getEntity(thisObject, entityClass); if (entityObject != null) {[] inputFields = getValuesOfComponents(thisObject,);(!conditionForNullOrEmptyOneOfElementInArray(inputFields)) {<String, Map<Class, Object>> setterNamesAndValues = getSetterNamesAndValues(thisObject, componentNames, Arrays.asList(parameterTypesArr));(entityObject,);entityObject;

} else {(thisObject);

}

}

} catch (Exception ex) { Logger.getLogger(TableUtil.class.getName()).log(Level.SEVERE, null,);

}null;

}static Object getEntity(Object thisObject, Class entityClass)Exception {(TableUtil.isAdd()) {ReflectionUtil.createEntity(entityClass);

} else if (TableUtil.isEdit()) {getEntityByChoosedTableRowId(thisObject, entityClass,);

}null;

}static Object getEntityByChoosedTableRowId(Object thisObject,entityClass, String methodName) throws Exception {itemId =

(Long) getDeclaredMethods(thisObject).get(methodName).(thisObject, new Object[]{});(itemId != null) {(new EntityService()).getEntityById(entityClass,);

}null;

}static Long getEntityIdOfChoosingTableRow(Object thisObject)Exception {(Long) getDeclaredMethods(thisObject).get(methodNameChoosedItemId).(thisObject, new Object[]{});

}static String fillAdditionalEditForm(Object thisObject,entityClass, String[] componentNames,previousActionName) {.setPreviousAction(previousActionName);{<String> temp = new ArrayList<String>();(String compomentName : componentNames) {.add("get" + makeFirstLetterInUpperCase(compomentName));

}[] getterNames = temp.toArray(new String[]{});<String, Method> declaredMethods = getDeclaredMethods(thisObject);[] methods =

(declaredMethods.values()).toArray(new Method[]{});(methods, true);itemId = (Long) declaredMethods.get(methodNameChoosedItemId).invoke(thisObject,Object[]{});(itemId != null) {entityObject = (new EntityService()).getEntityById(entityClass, itemId);(entityObject != null) {[] functionParameters = {getValuesFromEntityGetterMethods(entityObject, getterNames) };.get(methodNamePopulateFields).invoke(thisObject,);

}

} else {(thisObject);"";

}StringVariables.editSpeciality;

} catch (Exception ex) { Logger.getLogger(TableUtil.class.getName()).log(Level.SEVERE, null,);

}null;

}static Map<String, Method> getDeclaredMethods(Object thisObject)NoSuchMethodException {<String, Method> methodsMap = new HashMap<String, Method>();clazz = thisObject.getClass();methodChoosedItemId =.getDeclaredMethod(TableUtil.methodNameChoosedItemId,Class[]{});methodPopulateFields = clazz.getDeclaredMethod(TableUtil.methodNamePopulateFields,[].class);methodChangeWasError =.getDeclaredMethod(TableUtil.methodNameChangeWasError,Class[]{Boolean.TYPE});methodError =.class.getDeclaredMethod(TableUtil.methodNameError,Class[]{String.class});.put(methodNameChoosedItemId, methodChoosedItemId);.put(methodNamePopulateFields, methodPopulateFields);.put(methodNameChangeWasError, methodChangeWasError);.put(methodNameError, methodError);methodsMap;

}static Map<String, Map<Class, Object>> getSetterNamesAndValues(Object thisObject,<String> componentNames,<Class> typesOfInputValues) {<Object> resultObjectValueList = null;{= Arrays.asList(getValuesOfComponents(thisObject, componentNames));<String, Map<Class, Object>> resultMap =HashMap<String, Map<Class, Object>>();componentNamesIterator = componentNames.iterator();objectValuesOfComponentsIterator =.iterator();typesOfInputValuesIterator = typesOfInputValues.iterator();(componentNamesIterator.hasNext()) {<Class, Object> composeMap = new HashMap<Class, Object>();componentName = componentNamesIterator.next().toString();objectValueOfComponent =.next();typeClass = (Class) typesOfInputValuesIterator.next();.put(typeClass, objectValueOfComponent);.put("set" + makeFirstLetterInUpperCase(componentName),);

}resultMap;

} catch (Exception ex) {.getLogger(TableUtil.class.getName()).(Level.SEVERE, null, ex);

}null;

}static Object[] getValuesOfComponents(Object thisObject,<String> componentNames) {[] resultArray = null;<Object> componentValuesList = new ArrayList<Object>();{(String componentName : componentNames) {componentObject =(thisObject, componentName);getValueMethod = null;(componentObject instanceof Field) {=.class.getDeclaredMethod("getValue", new Class[]{});

} else if (componentObject instanceof DropDown) {=.class.getDeclaredMethod("getValue", new Class[]{});

}(getValueMethod != null) {.add(getValueMethod.invoke(componentObject,Object[]{}));

}

}

} catch (Exception ex) {.getLogger(TableUtil.class.getName()).(Level.SEVERE, null, ex);

}= componentValuesList.toArray();resultArray;

}static Object getComponentObjectByHisName(Object thisObject,componentName) throws Exception {objectsGetter = thisObject.getClass().getDeclaredMethod("get" +(componentName) + "Field",Class[]{});objectsGetter.invoke(thisObject, new Object[]{});

}static String makeFirstLetterInUpperCase(String word) {(new StringBuilder(word)).replace(0, 1, word.substring(0, 1).()).toString();

}static void invokeEntitySetterMethods(Object entity,<String, Map<Class, Object>> setterNamesAndValues)NoSuchMethodException, IllegalAccessException,, InvocationTargetException {(Map.Entry<String, Map<Class, Object>> entry : setterNamesAndValues.entrySet()) {methodName = entry.getKey();(Map.Entry<Class, Object> parameterAndValue : entry.getValue().entrySet()) {classType = parameterAndValue.getKey();tempMethod = entity.getClass().getDeclaredMethod(methodName,Class[]{classType});.setAccessible(true);(classType == Integer.class) {.invoke(entity, Integer.valueOf(parameterAndValue.getValue().toString()));

} else if (classType == String.class) {.invoke(entity, parameterAndValue.getValue().toString());

}

}

}

}static void setAccessibilityForMethods(Method[] methods,isAccessible) {(Method method : methods) {.setAccessible(isAccessible);

}

}static String[] getValuesFromEntityGetterMethods(Object entity, String[] getterNames)NoSuchMethodException, IllegalAccessException,, InvocationTargetException {length = getterNames.length;[] result = new String[length];(int index = 0; index < length; index++) {tempMethod = entity.getClass().getDeclaredMethod(getterNames[index],Class[]{});.setAccessible(true);[index] = tempMethod.invoke(entity, new Object[]{}).toString();

}result;

}static boolean conditionForNullOrEmptyOneOfElementInArray(Object... objects) {(Object obj : objects) {(obj == null || "".equals(obj.toString())) {true;

}

}false;

}static String getNameOfPreviousActionWithinAddEdit() {previousAction = SessionBean1.getPreviousAction();(previousAction.startsWith(StringVariables.openFormForAdd)) {StringVariables.add;

} else if (previousAction.startsWith(StringVariables.openFormForEdit)) {StringVariables.edit;

}null;

}static boolean removeImplementation(Object thisObject,entity) {{entityId = getEntityIdOfChoosingTableRow(thisObject);(entityId != null) {

(new EntityService()).removeEntity(entity, entityId);true;

} else {(thisObject);

}

} catch (Exception ex) {.getLogger(TableUtil.class.getName()).log(Level.SEVERE, null,);

}false;

}static void ifWasntChooseIdAndPressEditOrRemove(Object thisObject) {{(thisObject).get(methodNameError).(thisObject,.ifItemWasntChoosed);(thisObject).get(methodNameChangeWasError).(thisObject, true);

} catch (Exception ex) {.getLogger(TableUtil.class.getName()).log(Level.SEVERE, null,

ex);

}

}

}

Похожие работы на - Автоматизация учебного процесса с помощью программных средств

 

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