Разработка приложения управления событиями IT-клуба

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

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

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

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

Размещено на http://www.allbest.ru/

Федеральное агентство связи

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Поволжский государственный университет телекоммуникаций и информатики»

Факультет Информационных систем и технологий

Направление Программная инженерия

(специальность)

Кафедра Программного обеспечения и управления в технических системах

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

(БАКАЛАВРСКАЯ РАБОТА)

Разработка приложения управления событиями IT-клуба

Утверждаю зав. кафедрой д.т.н., проф. В.Н. Тарасов

Руководитель доцент к.т.н. М.А. Стефанов

Н. контролер ст. преп. С.В. Чернова

Разработал РПИС-31 Е.Н. Колмакова

Самара 2017

Федеральное агентство связи

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Поволжский государственный университет телекоммуникаций и информатики»

ЗАДАНИЕ

по подготовке выпускной квалификационной работы

Студента Колмаковой Екатерины Николаевны

1 Тема ВКР

Разработка приложения управления событиями IT-клуба

Утверждена приказом по университету от 03.04.2017 № 74-2

2 Срок сдачи студентом законченной ВКР 14.06.17

3 Исходные данные и постановка задачи

1) Спецификация языка Java

2) Спецификация платформы CUBA

3) Спецификация системы управления базой данных PostgreSQL 9.6

4) Спецификация фреймворка Spring

5) Спецификация фреймворка EclipseLink

6)Спецификация фреймворка Vaadin

4 Перечень подлежащих разработке в ВКР вопросов или краткое содержание ВКР. Сроки исполнения 29.04.2017

1) Анализ предметной области

2) Формирование требований к приложению

3) Поиск и анализ инструментов разработки

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

5) Разработка отображения данных

6) Реализация логики приложения

7) Тестирование

5 Перечень графического материала. Сроки исполнения 31.05.2017

1) Презентационные материалы

6 Дата выдачи задания « 04 » апреля 2017 г.

Кафедра Программного обеспечения и управления в технических системах

Утверждаю зав.кафедрой д.т.н., проф. 04.04.17 В.Н. Тарасов

Должность Уч.степень, звание Подпись Дата Инициалы Фамилия

Руководитель доцент к.т.н 04.04.17 М.А. Стефанов

Должность Уч.степень, звание Подпись Дата Инициалы Фамилия

Задание принял к исполнению РПИС-31 04.04.17 Е.Н. Колмакова

Группа Подпись Дата Инициалы Фамилия

Федеральное агентство связи

Федеральное государственное бюджетное образовательное учреждение

высшего образования

«Поволжский государственный университет телекоммуникаций и информатики»

ПОКАЗАТЕЛИ КАЧЕСТВА ВКР

По ВКР студента Колмаковой Екатерины Николаевны

На тему Разработка приложения управления событиями IT-клуба

1 Работа выполнена:

- по теме, предложенной студентом

- по заявке предприятия

наименование предприятия

- в области фундаментальных и

поисковых научных исследований

указать область исследований

2 Результаты ВКР:

- рекомендованы к опубликованию

указать где

- рекомендованы к внедрению

IT-клуб ПГУТИ

указать где

- внедрены

акт внедрения

3 ВКР имеет практическую ценность

Разработано клиент-серверное приложение для управления мероприятиями

в чем заключается практическая ценность

4 Использование ЭВМ при выполнении ВКР:

(ПО, компьютерное моделирование, компьютерная обработка данных и др.)

IntelliJ IDEA, CUBA Studio 6.4, pgAdmin 4

5 ВКР прошла проверку на объем заимствований

% заимствований

эл. версия сдана

Студент РПИС-31 Е.Н. Колмакова

Группа Подпись Дата Инициалы Фамилия

Руководитель ВКР доцент к.т.н. М.А. Стефанов

Должность Уч.степень, звание Подпись Дата Инициалы Фамилия

Федеральное агентство связи

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Поволжский государственный университет телекоммуникаций и информатики»

РЕФЕРАТ

Название

Разработка приложения управления событиями IT-клуба

Автор

Колмакова Екатерина Николаевна

Научный руководитель

Стефанов Михаил Александрович

Ключевые слова

Управление мероприятиями

IT-клуб

Java

CUBA Platform

Spring

Vaadin

Дата публикации

2017

Библиографическое описание

Колмакова, Е.Н. Разработка приложения управления событиями IT-клуба [Текст]: выпускная квалификационная работа / Е.Н. Колмакова. Поволжский государственный университет телекоммуникаций и информатики (ПГУТИ). Факультет информационных систем и технологий (ФИСТ). Кафедра программного обеспечения и управления в технических системах (ПОУТС): науч. рук. М.А. Стефанов - Самара. 2017. - 50 с.

Аннотация

Работа посвящена разработке приложения для управления подготовкой к мероприятиям студенческого IT-клуба.

Рассмотрены различные инструменты разработки.

Рассмотрена разработка приложения.

Проведено тестирование приложения.

Руководитель ВКР _____________ _______________ _______________

Подпись Дата Инициалы Фамилия

Введение

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

Одна из этих организаций - студенческий IT-клуб, который является объектом исследования данной бакалаврской работы.

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

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

Предметом исследования бакалаврской работы является процесс подготовки к событию IT-клуба.

Целью бакалаврской работы является создание приложения для автоматизации планирования и управления организацией мероприятий, которое удовлетворяло бы потребностям студенческого IT-клуба ПГУТИ.

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

· провести анализ существующего процесса подготовки к мероприятию;

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

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

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

· осуществить программную реализацию приложения;

· провести тестирование функционала и пользовательского интерфейса разработанного приложения.

Методологическим основанием работы является книга А. Хемраджани[5], в которой подробно описан процесс разработки приложений на Java с помощью различных технологий, а также документация к платформе CUBA[4], которая является главной технологией приложения.

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

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

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

В третьем разделе описана стадия проектирования приложения и непосредственно процесс разработки приложения на языке Java с использованием платформы CUBA Studio.

Четвёртый раздел посвящен стадии тестирования созданного приложения с описанием тестовых случаев и результатов испытаний программного продукта.

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

пользовательский интерфейс автоматически доступ

1. Анализ предметной области

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

Основными направлениями деятельности клуба являются:

· научно-исследовательская работа студентов;

· организация мероприятий внутри вуза, а также межвузовского характера;

· работа со школьниками и абитуриентами;

· студенческие мастерские.

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

В ходе своей работы, студенческий IT-клуб проводит множество мероприятий для студентов и школьников:

· чемпионат «Собери компьютер» совместно с компанией Gigabyte;

· чемпионаты ПГУТИ по киберспорту;

· фотоконкурсы;

· семинары с компанией «Доктор Веб»;

· олимпиада по программированию для школьников;

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

· обучение актива клуба;

· «StudDay» - мероприятие для школьников;

· «Клуб Предпринимательства» совместно с РЦИ;

· «Форт Боярд» - мероприятие для первокурсников;

· помощь в организации Всероссийской Олимпиады «IT - Планета».

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

1. Определение конечных целей события, написание сценария мероприятия;

2. Определение места и времени проведения, куратора мероприятия, ведущих;

3. Формирование совокупности задач и их распределение. Сейчас распределение задач происходит несколькими способами:

· в устной форме;

· в общий чат;

· в Google документах;

· с помощью приложения Trello;

4. Непосредственно подготовка к мероприятию;

5. Проведение мероприятия;

6. Подведение итогов мероприятия.

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

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

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

На сегодняшний день в IT-клубе для организации используются следующие инструменты: Google Документы, Trello, Telegram. Каждое из этих приложений выполняет свою функцию, однако необходимо такое приложение, которые бы смогло объединить все необходимые функции в одном месте. Поэтому был проведен анализ преимуществ и недостатков данных приложений с целью поиска функций, которые необходимо реализовать, и учета ошибок, которые нужно избежать.

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

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

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

Рис. 1.1 - Пример использования сервиса Google Документы

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

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

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

Рис. 1.2 - Пример использования сервиса Trello

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

Таким образом, проанализировав потребности и методы работы IT-клуба, были составлены конечные требования к разрабатываемому приложению:

· приложение должно быть клиент-серверным;

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

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

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

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

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

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

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

Член IT-клуба переходит в карточку мероприятия и подает заявку на участие. Куратору мероприятия приходит уведомление о новой заявке. Если куратор подтверждает заявку, то член IT-клуба получает право редактировать данные мероприятия, иначе - заявка удаляется. Схема процесса представлена на рисунке 1.3.

Рис. 1.3 - Схема процесса утверждения заявки на участие

Второй процесс - работа с задачами. Процесс начинается, когда пользователь (инициатор) создает задачу в системе и назначает исполнителя. Исполнителю приходит уведомление о назначении. Когда исполнитель приступает к выполнению задачи, он переводит задачу в состояние "В работе", и инициатор получает уведомление о смене состояния. После выполнения задачи исполнитель переводит задачу в состояние "Выполнено", инициатор получает уведомление о завершении, и процесс заканчивается. Схема процесса представлена на рисунке 1.4.

Рис. 1.4 - Схема процесса работы с задачей

2. Выбор инструментов разработки

2.1 Языки программирования

В качестве основного языка программирования был выбран язык Java.

Java - универсальный объектно-ориентированный язык программирования высокого уровня, со строгой типизацией данных и Си-подобным синтаксисом, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Ключевой особенностью языка является то, что его код сначала транслируется в специальный байт-код, независимый от платформы. А затем этот байт-код выполняется виртуальной машиной JVM (Java Virtual Machine). Подобная архитектура обеспечивает кроссплатформенность и аппаратную переносимость программ на Java, благодаря чему подобные программы без перекомпиляции могут выполняться на различных платформах - Windows, Linux, Solaris и т.д.

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

Сегодня Java имеет статус одной из наиболее популярной технологии для разработки программ, работающих на стороне сервера, а также широко используется в электронной коммерции и в области веб-приложений. Основой Web-сервисов является воплощенное в платформе J2EE (Java 2 Platform, Enterprise Edition), открытое, часто используемое решение, которое согласуется с существующими системами и предоставляет новые динамичные сервисы с ключевыми технологиями, такими как Enterprise JavaBeans, JavaServer Pages, сервлеты, поддержка XML.

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

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

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

Для написания скриптов был выбран язык Groovy.

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

Возможности Groovy (отличающие его от Java):

· статическая и динамическая типизация;

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

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

· перегрузка операций

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

· удобен для написания скриптов, поскольку не требует создания класса, объявления метода main и т.п.

2.2 Система управления базами данных

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

Во-первых, структуры и типы данных - их существует обширный список. Кроме числовых, с плавающей точкой, текстовых, булевых и других ожидаемых типов данных (а также множества их вариаций), PostgreSQL может похвастаться поддержкой uuid, денежного, перечисляемого, геометрического, бинарного типов, сетевых адресов, битовых строк, текстового поиска, xml, json, массивов, композитных типов и диапазонов, а также некоторых внутренних типов для идентификации объектов и местоположения логов. Справедливости ради стоит сказать, что MySQL, MariaDB и Firebird тоже имеют некоторые из этих типов данных, но только PostgreSQL поддерживает их все.

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

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

PostgreSQL обеспечивает целостность данных, стремится соответствовать стандарту ANSI-SQL:2008, отвечает требованиям ACID (атомарность, согласованность, изолированность и надежность) и известен своей ссылочной и транзакционной целостностью. Первичные ключи, ограничивающие и каскадные внешние ключи, уникальные ограничения, ограничения NOT NULL, проверочные ограничения и другие функции обеспечения целостности данных дают уверенность, что только корректные данные будут сохранены.

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

Также к особенностям PostgreSQL можно отнести сложные запросы, внешние ключи, изменяемые представления, многоверсионность.

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

У PostgreSQL множество возможностей. Созданный с использованием объектно-реляционной модели, он поддерживает сложные структуры и широкий спектр встроенных и определяемых пользователем типов данных. Он обеспечивает расширенную ёмкость данных и заслужил доверие бережным отношением к целостности данных.

2.3 Фреймворки

2.3.1 CUBA Platform

Для облегчения процесса разработки было решено использовать платформу CUBA.

CUBA -- платформа для создания корпоративных веб приложений, предоставляющая готовую инфраструктуру и готовые реализации для типовых задач в сфере разработки enterprise-систем. Платформа CUBA развивается компанией Haulmont начиная с 2008 года и применяется в качестве основы всех создаваемых ею приложений - как тиражируемых продуктов, так и сделанных на заказ решений. [4]

Ключевые особенности данной платформы:

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

· полностью открытый исходный код;

· независимость от специфики СУБД;

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

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

· встроенный REST API с передачей данных в форматах XML или JSON для быстрой интеграции со сторонними приложениями;rest_api

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

· наличие эффективных средств разработки пользовательского интерфейса с помощью только Java и XML.

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

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

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

2.3.2 Spring Framework

Spring Framework (или коротко Spring) -- универсальный фреймворк с открытым исходным кодом для Java-платформы. Spring предоставляет облегченное решение по созданию готовых корпоративных приложений с возможностью использования RMI и Web-служб, отправки сообщений по электронной почте, обработки данных в базе данных, декларативного управления транзакциями, предоставляет среду выполнения MVC, способы интеграции АОП и хорошо структурированную иерархию исключений. Spring был впервые выпущен в июне 2003 года и получил широкое распространение. [5]

Spring представляет собой набор «модулей», независимых друг от друга (программист может выбрать набор модулей необходимых ему и не использовать остальные).

К преимуществам использования Spring можно отнести: [6]

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

· имеется возможность работы с POJO (простыми Java-объектами) без контейнеров EJB;

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

· для использования ядра Spring нужно внести минимальные изменения в код приложения (принцип философии Spring - минимальное воздействие);

· существует большое количество расширений для построения приложений на Java Enterprise платформе;

· сообщество Spring - одно из лучших сообществ из всех проектов с открытым исходным кодом, списки рассылки и форумы всегда активны.

Возможности Spring:

· использование внедрения зависимостей (DI);

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

· язык выражений Spring (SpEL) - позволяет приложению манипулировать объектами Java во время выполнения;

· встроенная поддержка Bean Validation API - позволяет один раз описать логику проверки достоверности данных и использовать ее как в пользовательском интерфейсе, так и на уровне работы с БД;

· поддержка электронной почты;

· поддержка планирования заданий;

· поддержка динамических сценариев (Groovy, JRuby, BeanShell);

· обеспечивает отличную интеграцию с большинством инструментов доступа к данным (JDBC, Hibernate, MyBatis, JDO, JPA и т.п.);

· поддержка Object to XML Mapping - преобразование компонентов JavaBean в XML и наоборот (как правило, используется для обмена данными с другими системами).

2.3.3 EclipseLink JPA

EclipseLink JPA - фреймворк для языка программирования Java, предназначенный для реализации объектно-реляционного отображения ORM (object relation model), который связывает базу данных с объектными моделями, создавая «виртуальную объектную базу данных».

Объектно-реляционное отображение - это категория продуктов, предоставляющих услуги для сопоставления объектов реляционным базам данных. Java Persistence API (JPA) - это спецификация Java, которая предоставляет стандарт ORM в Java. JPA определяет стандартное отображение (через аннотации или XML) и стандартный API времени выполнения и язык запросов уровня объекта (JPQL). JPA является частью спецификации EJB и платформы JEE, но также может использоваться в JSE.

EclipseLink предоставляет решения для объектно-реляционного отображения и полную поддержку спецификации JPA. Объекты JPA отображаются через аннотации javax.persistence пакета и JPA persistence.xml. EclipseLink также предоставляет расширенные аннотации через пакет org.eclipse.persistence.annotations. JPA производит выполнение API через класс EntityManager в пакете javax.persistence. EclipseLink также предоставляет расширенный API из пакета org.eclipse.persistence.jpa. [7]

2.3.4 Vaadin

Реализация пользовательского интерфейса основана на Java-фреймворке Vaadin. Он используется для создания веб-приложений и призван упростить создание и обслуживание высококачественных веб-интерфейсов. Сервер-ориентированная модель позволяет быстро и качественно создавать приложения уменьшая риски «застрять» на определенном этапе. Разработка ведется на Java, а на клиенте мы видим JavaScript. Таким образом, Vaadin позволяет сосредоточиться на разработке логики приложения. Кроме того, Vaadin имеет множество компонентов и сторонних аддонов.

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

Для отображения страниц с результатами поиска и обработки действий пользователя (наподобие терминального клиента) используется Google Web Toolkit. Так как Google Web Toolkit функционирует только на стороне клиента, Vaadin добавляет дополнительную валидацию данных на стороне сервера. Это решает проблемы безопасности, связанные с возможностью подмены данных или кода Javascript. Соответственно, при изменении и повреждении данных, поступающих от браузера, сервер, определив это, не пропускает запросы. [8]

3. Разработка приложения

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

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

Далее перечислены сущности, которые понадобятся в системе управления мероприятиями.

Мероприятие (Event) - главная сущность приложения. Организованная совокупность действий, направленная на осуществление какой-либо цели. Содержит атрибуты: название, описание, дата начала, дата завершения, место проведения, кабинет, куратор (студент, ответственный за проведение мероприятия), активность.

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

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

Пользователь (User) - лицо, использующее систему.

Участник (Participant) - студент, непосредственно принимающий участие в подготовке или проведении мероприятия. Связь мероприятия и студента. Содержит атрибуты: студент, мероприятие, роль, комментарий, подтверждение куратором мероприятия (да/нет).

Ресурс (Resource) - материальный или информационный ресурс, необходимый для подготовки или проведения мероприятия. Содержит атрибуты: наименование, наличие (да/нет), студент, мероприятие.

Вложение (Attachment) - сущность для хранения файлов, связанных с мероприятием. Содержит атрибуты: мероприятие, ссылка на файл.

Место проведения (Location) - объект, на территории которого проводится мероприятие. Содержит атрибуты: название, адрес, номер телефона.

Группа (Group) - подразделение IT-клуба. Содержит атрибуты: название, руководитель группы.

Исполнитель (Executor) - студент, ответственный за выполнение задачи. Содержит атрибуты: задача, студент.

Комментарий к задаче (Task_Comment). Содержит атрибуты: задача, текст комментария, автор, время создания.

Комментарий к мероприятию (Event_Comment). Содержит атрибуты: мероприятие, текст комментария, автор, время создания.

На рисунке 3.1 представлена ER-модель базы данных приложения.

Рис.3.1 - ER-модель базы данных

На основе модели данных была составлена структура классов. Классы аналогичны сущностям, были добавлены только два класса типа Enum:

Состояние задачи (TaskStateEnum)

Приоритет задачи (TaskPriorityEnum)

На рисунке 3.2 представлена UML-диаграмма классов приложения.

Рис.3.2 - UML-диаграмма классов

Определившись с объектной моделью, я начала работу в CUBA-студии. Для начала были созданы классы сущностей. Для этого во вкладке Data model выбирается пункт New, затем Entity, указывается имя класса, добавляются атрибуты в соответствии с UML диаграммой классов.

Все классы сущностей наследуются от класса StandardEntity, который содержит основные свойства: первичный ключ типа UUID, логин пользователя и время создания, последнего изменения и удаления записи, версия объекта.

Также в сгенерированных классах сразу добавлены необходимые аннотации стандарта JPA для установки соответствия между реляционными и объектными моделями.

Например, в объявлении класса «Мероприятие»:

@NamePattern("%s|name")

@Table(name = "EVENTS_EVENT")

@Entity(name = "events$Event")

public class Event extends StandardEntity

Здесь аннтоция @Entity - объявляет класс сущностью модели данных.

@Table - определяет таблицу базы данных для данной сущности.

@NamePattern - определяет способ получения имени экземпляра, возвращаемого методом Instance.getInstanceName().

Объявление атрибута name (название мероприятия):

@Column(name = "NAME", nullable = false)

protected String name;

Здесь аннотация @Column определяет поле БД, в котором будет хранится значение данного атрибута, а также параметр nullable определяет, что поле не может принимать значение null.

Объявление атрибута location (место проведения):

@ManyToOne(fetch = FetchType.LAZY)

@JoinColumn(name = "LOCATION_ID")

protected Location location;

Здесь аннотация @ManyToOne определяет атрибут-ссылку на сущность с типом ассоциации много-к-одному. А аннотация @JoinColumn определяет поле базы данных, определяющее ассоциацию между сущностями. Наличие этой аннотации указывает, что данная сторона отношения является владеющей (owning).

Объявление атрибута participant (участник):

@Composition

@OnDelete(DeletePolicy.CASCADE)

@OneToMany(mappedBy = "event")

protected List<Participant> participants;

Аннтоция @Composition указывает на то, что связь между полями participants и event является композицией - более тесным вариантом ассоциации. Это означает, что связанная сущность имеет смысл только как часть владеющей сущности, то есть создается и удаляется вместе с ней.

Также при создании сущностей были использованы аннотации:

@Lob - указывает, что данный атрибут не имеет ограничений длины.

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

@Transient - указывает, что поле является неперсистентным, то есть
не хранится в БД.

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

Пример описания класса TaskPriorityEnum:

public enum TaskPriorityEnum implements EnumClass<Integer> {

Low(10),

Normal(20),

High(30);

private Integer id;

TaskPriorityEnum(Integer value) {

this.id = value;

}

public Integer getId() {

return id;

}

@Nullable

public static TaskPriorityEnum fromId(Integer id) {

for (TaskPriorityEnum at : TaskPriorityEnum.values()) {

if (at.getId().equals(id)) {

return at;

}

}

return null;

}

В базе данных хранится значение типа Integer, задаваемое полем id перечисления TaskPriorityEnum, а конкретно 10, 20 или 30. Метод fromId(Integer id) используется для получения значения перечисления по его id. При наличии в поле БД значения, не соответствующего ни одному значению перечисления, метод вернет null.

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

· 10.create-db.sql содержит непосредственно скрипты создания таблиц;

· 20.create-db.sql содержит скрипты создания ограничений целостности;

· 30.create-db.sql предназначен для дополнительной информации, в дальнейшем здесь будут скрипты ролей и групп доступа. Это могут быть, например, функции, триггеры, или DML операторы для наполнения базы необходимыми данными.

3.2 Разработка отображения данных

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

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

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

Для того, чтобы экран можно было вызывать из главного меню или из Java кода (например, из контроллера другого экрана), XML-дескриптор должен быть зарегистрирован в файле screens.xml проекта. Главное меню приложения формируется отдельно на основе файла menu.xml.

3.2.2 Разработка экрана редактирования мероприятия

Так как экран будет содержать в себе отображение не только сущности «Мероприятие», но и связанных с ним сущностей «Задача», «Ресурс», «Участник», «Файл», «Комментарий к мероприятию», было добавлено несколько новых источников данных.

<dsContext>

<datasource id="eventDs"

class="com.company.events.entity.Event"

view="event-edit">

<collectionDatasource id="resourcesDs"

property="resources"/>

<groupDatasource id="tasksDs"

property="tasks"/>

<collectionDatasource id="participantsDs"

property="participants"/>

<collectionDatasource id="attachmentsDs"

property="attachments"/>

<collectionDatasource id="commentsDs"

property="comments"/>

</datasource>

</dsContext>

Здесь источник eventDs содержит один экземпляр сущности Event, а вложенные в него logisticsDs, tasksDs, participantsDs, attachmentsDs содержат коллекции связанных сущностей из атрибутов класса Event (Мероприятие). Экземпляр класса вместе со связанными сущностями проставляется в источник данных извне.

Компоновка экрана была полностью изменена. В основе лежит компонент TabSheet - панель с вкладками. В нем 6 вкладок: «Детали», «Задачи», «Участники», «Логистика», «Файлы», «Комментарии».

Вкладка «Детали», отображающая основные свойства мероприятия, содержит в себе контейнер GridLayout, который располагает дочерние компоненты по сетке. Каждое поле в контейнере соотносится с атрибутом сущности. В зависимости от типа значения выбраны различные компоненты: для текста - TextField, для даты - DateField, для атрибута-ссылки на другую сущность - PickerField. Вид вкладки «Детали» представлен на рисунке 3.3.

Рис.3.3 - Экран редактирования мероприятия

Вкладка «Задачи» содержит компонент GroupTable, в котором отображаются записи сущности «Задача», связанные с мероприятием. Таблица имеет компонент ButtonsPanel, который отображает кнопки с основными действиями над строками: «Создать», «Изменить», «Удалить». При нажатии на кнопки «Создать» и «Изменить» или двойном клике на строке открывается экран редактирования задачи. Вид вкладки «Детали» представлен на рисунке 3.4.

Вкладка «Участники» содержит компонент Table, в котором отображаются записи сущности «Участник», связанные с мероприятием. Для столбца «Подтверждение» установлен атрибут editable="true", который позволяет редактировать столбец непосредственно из таблицы, не открывая экран редактирования сущности «Участник».

Рис.3.4 - Экран редактирования мероприятия

Вкладка «Логистика» содержит компонент Table, в котором отображаются записи сущности «Логистика», связанные с данным мероприятием. Столбец «Наличие» для удобства работы сделан редактируемым непосредственно из таблицы.

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

Компонент загружает выбранные файлы во временное хранилище клиентского уровня и вызывает листенер QueueUploadCompleteListener, который был добавлен в контроллер. В данном листенере вызовом метода getUploadsMap() у компонента можно получить Map (список, который хранит пары «ключ-значение») идентификаторов файлов во временном хранилище на имена файлов. Далее для каждого элемента Map создается соответствующий объект FileDescriptor, который является персистентной сущностью.

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

Метод FileUploadingAPI.putFileIntoStorage() используется для перемещения загружаемого файла из временного хранилища клиентского уровня в FileStorage. После загрузки файла в FileStorage выполняется сохранение экземпляра FileDescriptor в базе данных посредством вызова DataSupplier.commit. Также была добавлена кнопка для удаления файлов.

Для того, чтобы иметь возможность просматривать добавленные файлы, для столбца, отображающего имя файла, был установлен атрибут linkInvoke="viewFile". Теперь строка имеет вид ссылки и при нажатии вызвается метод viewFile, который описан в контроллере. Этот метод должен открывать экран просмотра файла.

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

После создания и регистрации экрана, я описала его вызов в методе viewFile:

public void viewFile(Entity item, String columnId) { FileDescriptor file = ((Attachment) item).getFile(); Map<String, Object> params = new HashMap<>(); params.put("file", file);

if (file.getExtension().equals("pdf"))

openWindow("events$UploadFile.browse",

WindowManager.OpenType.NEW_WINDOW, params);

else

openWindow("events$UploadFile.browse",

WindowManager.OpenType.DIALOG, params);

}

Если файл имеет разрешение pdf, то создается новая вкладка и в ней открывается файл, иначе - появляется всплывающее окно.

Вкладка «Комментарии» состоит из компонента TextArea, в который будет вводится текст нового комментария, и компонента Table, который отображает уже добавленные комментарии.

Еще одним основным компонентом экрана мероприятий является контейнер VBox, содержащий в себе несколько кнопок с действиями: «Стать участником», «Отправить задачи», «Отправить сообщение», «Закрыть мероприятие». В контроллере были описаны действия (actions) для каждой из кнопок.

Кнопка «Стать участником» позволяет пользователю попасть в список участников мероприятия. Для реализации этого действия был создан экран add-participant.xml, который содержит два поля: textField - роль участника, textArea - комментарий для куратора. Также экран содержит кнопки «Ок» и «Отмена». В экран добавлен слушатель, который при закрытии окна создает запись сущности «Участник», и сразу же добавляет его в источник данных экрана, чтобы изменения были видны сразу.

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

Кнопка «Отправить сообщение» позволяет сделать рассылку произвольного письма всем участникам мероприятия. Для реализации рассылки был создан экран add-comment-window.xml, который содержит два поля: textField - тема письма, textArea - сообщение письма. Также экран содержит кнопки Ок и Отмена. Обработка нажатия на кнопку «Ок», которая позволяет отправить письмо, была добавлена позже в контроллер MailNotificationEditor.

Кнопка «Закрыть мероприятие» позволяет переместить мероприятие в архив и сделать его недоступным для редактирования. Для этого у сущности устанавливается атрибут active=false.

3.2.3 Разработка экрана редактирования задачи

Так как кроме сущности задачи, в экране будет отображение сущности «Комментарий к задаче», был добавлен еще один источник данных.

<dsContext>

<datasource id="taskDs"

class="com.company.events.entity.Task"

view="task-view">

<collectionDatasource id="executorsDs"

property="executors"/>

<collectionDatasource id="commentsDs" property="comments"/>

</datasource>

</dsContext>

Основным компонентом был сделан контейнер TabSheet, в котором были созданы две вкладки: «Детали» и «Комментарии».

Во вкладке «Детали» автоматически сгенерированный компонент FieldGroup был заменен компонентом GridLayout. Это было сделано для более тонкой настройки расположения компонентов, так как GridLayout располагает компоненты по сетке. Вид вкладки «Детали» представлен на рисунке 3.5.

Вкладка «Комментарии» состоит из компонента TextArea, в который будет вводится текст нового комментария, и компонента Table, который отображает уже добавленные комментарии.

Рис.3.5 - Экран редактирования задачи, вкладка «Детали»

3.2.4 Разработка экранов редактирования групп, студентов, мест проведений мероприятий

В автоматически сгенерированных экранах было изменено только отображение окна:

<dialogMode

forceDialog="true"

height="AUTO"

modal="true"

width="600"/>

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

3.2.5 Разработка экрана календаря

Экран календаря был создан вручную. В основе лежит компонент Calendar, который позволяет выводить информацию о событиях в виде расписания. По клику на мероприятие календаря должен открываться экран этого мероприятия. Для реализации данной функции был написан сервис EventService. Сервисы образуют слой компонентов, определяющий множество операций Middleware, доступных клиентскому уровню приложения. Сервис содержит два метода: List<Event> getEventsForCalendar(), который возвращает список текущих мероприятий, и Event getEvent(String name, Date startDate), который возвращает мероприятие по названию и дате начала. Метод контроллера generateEvents() обращается к данному сервису и добавляет к компоненту Calendar необходимые события. Для более наглядного представления событий было добавлено несколько стилей CSS, которые описаны в файле halo-ext.scss.app_tiers

Для управления календарем были добавлены кнопки навигации «Назад», «Сегодня», «Вперед», и кнопки настройки вида календаря «Месяц», «Неделя», «День». Контроллер экрана CalendarBrowse содержит в себе реализацию обработки нажатий на эти кнопки.

Для реализации навигации был написан метод
changePeriod(boolean next), в который передается булева переменная.
Если ее значение равно true, то происходит переключение даты вперед.
Если ее значение равно false, то происходит переключение назад. Для оперирования датами используются стандартные методы класса java.util.Calendar.

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

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

Конечный вид экрана календаря представлен на рисунке 3.6.

Рис.3.6 - Экран календаря

3.2.6 Разработка экрана редактирования пользователей системы

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

<screen id="sec$User.edit" template="com/company/events/web/user/ext-user-edit.xml"/>

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

Рис.3.7 - Экран редактирования пользователя

3.2.7 Разработка экранов просмотра сущностей

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

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

3.3 Реализация автоматических оповещений

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

Был создан сервис EmailNotificationService. Сервисы образуют слой компонентов, определяющий множество операций Middleware, доступных клиентскому уровню приложения.app_tiers

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

Рассмотрим методы данного бина.

1. void sendAssignedTaskEmail(Task task) - данный метод выполняет отправку оповещения о назначении задачи исполнителю. В качестве параметров в него передается созданная задача. У задачи берется атрибут «Исполнители» и отправляется уведомление тем, у кого указан адрес электронной почты;

2. void sendUpdatedTaskEmail(Task task, User updater) - данный метод выполняет отправку оповещения о смене состояния задачи. В качестве параметров передается измененная задача и пользователь, который внес в нее изменения. Из сущности задачи берется список исполнителей, далее отправляется уведомления всем, кроме того, кто обновил задачу. Затем идет проверка - если обновивший задачу не является автором задачи, тогда автору задачи также отправляется уведомление;

...

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

  • Функциональные возможности библиотеки OpenGL. Разработка процедуры визуализации трехмерной сцены, интерфейса пользователя и подсистемы управления событиями с целью создания приложения для построения динамического изображения 3D-модели объекта "Самолет".

    курсовая работа [1,7 M], добавлен 28.06.2011

  • Особенности автоматизации работы фитнес-клуба. Инфологическое и логическое проектирование. Обеспечение получения информации администратором фитнес-клуба. Выбор средств создания интерфейса, программирование работы приложения в среде Borland Delphi 7.

    дипломная работа [2,4 M], добавлен 04.07.2013

  • Использование библиотеки ОpеnGL с целью разработки программ для ОС семейства Windоws с применением технологий трехмерной графики. Прорисовка функциональных частей модели парусника, проектирование интерфейса пользователя и подсистемы управления событиями.

    курсовая работа [747,0 K], добавлен 26.06.2011

  • Требования к подсистеме создания Scorm-пакетов. Построение диаграммы потоков данных. Проектирование программного средства. Выбор средств реализации подсистемы. Организация взаимодействия приложения с базой данных. Реализация пользовательского интерфейса.

    курсовая работа [634,2 K], добавлен 16.08.2012

  • Характеристика информационных систем учета медицинских услуг, представленных на современном рынке. Разработка приложения "Учет услуг в спортивном клубе "Т-Фитнес": средства управления графического интерфейса пользователя, создание меню и основные формы.

    дипломная работа [1,8 M], добавлен 14.10.2010

  • Основы программирования с использованием библиотеки OpenGL. Приложение для построения динамического изображения модели объекта "Батискаф": разработка процедуры визуализации трехмерной схемы, интерфейса пользователя и подсистемы управления событиями.

    курсовая работа [1,4 M], добавлен 26.06.2011

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

    курсовая работа [462,5 K], добавлен 10.08.2014

  • Описание системы управления реляционными базами данных MySQL. Изучение факторов влияющих на пропускную способность в беспроводных сетях. Особенности применения языка Java Script. Методы тестирования web-приложений. Разработка пользовательского интерфейса.

    дипломная работа [2,1 M], добавлен 24.06.2015

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

  • Возможности библиотеки OpenGL, создание матрицы и эффекта тумана. Разработка процедуры визуализации трехмерной модели "Корабль", интерфейса пользователя и подсистемы управления событиями. Логическая структура и функциональная декомпозиция проекта.

    курсовая работа [507,2 K], добавлен 02.07.2011

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

    курсовая работа [666,0 K], добавлен 10.07.2015

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

    дипломная работа [2,8 M], добавлен 03.07.2017

  • Выявление требований к информационной системе. Диаграмма вариантов использования. Проектирование информационного обеспечения с использованием семантических моделей. Проектирование пользовательского интерфейса. Реализация программы на Visual Studio.

    дипломная работа [590,2 K], добавлен 28.08.2012

  • Состав и содержание работ по подготовке объекта автоматизации к вводу подсистемы в действие. Реализация пользовательского интерфейса "Менеджер". Создание проекта в программе "1С: Предприятие". Экономическая эффективность внедрения программного продукта.

    дипломная работа [7,2 M], добавлен 01.07.2011

  • Разработка игрового проекта на игровом движке Unity 3D в среде программирования MS Visual Studio 2017. Блок-схема алгоритма работы приема сообщений с сервера на клиенте с упрощенным описанием выполняемых команд. Реализация пользовательского интерфейса.

    курсовая работа [1,5 M], добавлен 10.07.2017

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

    курсовая работа [1,4 M], добавлен 15.12.2011

  • Объекты и методы проведения предпроектного обследования предприятия, анализ результатов . Схема организационной структуры управления и документооборота. Назначение информационной подсистемы. Реализация подсистемы "Helpdesk" на основе "1С: Предприятие".

    дипломная работа [6,9 M], добавлен 24.06.2011

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

    дипломная работа [7,5 M], добавлен 24.06.2011

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

    курсовая работа [1,6 M], добавлен 13.11.2012

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

    курсовая работа [1,0 M], добавлен 26.06.2011

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