Автоматизированная система регистрации на услуги одо «Автопроспектсервис»




Скачать 218.93 Kb.
Название Автоматизированная система регистрации на услуги одо «Автопроспектсервис»
Дата публикации 14.06.2014
Размер 218.93 Kb.
Тип Документы
literature-edu.ru > Авто-ремонт > Документы






















051.23 02 01.081437.13.81-01


















Изм

Лист

№ докум.

Подпись

Дата

Разраб.

Ляшенко







Автоматизированная система регистрации на услуги ОДО «Автопроспектсервис»

Лит.

Лист

Листов

Пров.

Крутолевич










У




















БРУ гр.АСОИР-081

Н.контр.










Утв.














Содержание





Содержание 2

Лист 3

1 Анализ технологии обработки информации в предметной области и определение требований к АСОИ 4

1.1 Сбор и анализ исходной информации 4

1.2 Определение требований к проектируемой АСОИ 4

1.2.1. Диаграмма вариантов использования 4

1.2.2. Диаграммы бизнес-процессов 5

1.2.3. Модель данных 5

Выводы 5

2.1 Диаграмма классов 6

2.2 Диаграмма последовательности 6

2.3 Диаграмма состояний 6

2.4 Диаграмма деятельности 6

2.5 Диаграмма размещения 6

Выводы 6

3.1 Выбор среды программирования 7

3.2 Разработка таблиц базы данных АСОИ 7

3.3 Разработка запросов 10

3.4 Разработка форм 11

3.5 Разработка отчетов 11

3.6 Разработка вычислительных процедур обработки данных 11

3.7 Тестирование программного обеспечения 15



Введение

Основной задачей разрабатываемой автоматизированной системы является регистрация пользователей на услуги, предоставляемые ОДО «Автопроспектсервис», через сеть Интернет. Система позволит руководству фирмы в реальном времени следить за выполняемыми работами из любой точки планеты через сеть Интернет, а так же получать ежедневные отчеты по произведенным работам.

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


1 Анализ технологии обработки информации в предметной области и определение требований к АСОИ

1.1 Сбор и анализ исходной информации



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

Сформулируем требования к АСОИ.

  1. АСОИ используется для регистрации клиентов на услуги предоставляемые автосервисом.

  2. Все данные хранятся в базе данных.

  3. Вид выходных документов представлен в приложении.

  4. На печать выводятся все документы и отчеты.

  5. Разработанный программный продукт должен работать в операционной системе семейства Windows или Linux.

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



1.2 Определение требований к проектируемой АСОИ

1.2.1. Диаграмма вариантов использования



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

Краткое описание. Данный вариант описывает процесс формирования отчета по записям на услуги автомойки.

Основной поток событий.

1. Пользователь добавляет запись на услуги.

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

3. Пользователь нажимает кнопку «Отчет». Осуществляется скачивание отчета на компьютер пользователя.
Вариант использования Получение отчета по записям на услуги шиномонтажа и замены масла.

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

Основной поток событий.

1. Пользователь добавляет запись на услуги.

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

3. Пользователь нажимает кнопку «Отчет». Осуществляется скачивание отчета на компьютер пользователя.

1.2.2. Диаграммы бизнес-процессов


Диаграммы бизнес-процессов данной АСОИ приведены в приложении.

1.2.3. Модель данных


Модель данных приведена на диаграмме.

Выводы


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

Собранной информации достаточно для разработки подробной модели автоматизированной системы регистрации пользователей на услуги автосервиса.
2 Создание модели АСОИ

2.1 Диаграмма классов


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

2.2 Диаграмма последовательности


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

2.3 Диаграмма состояний


Диаграмма состояний АСОИ представлена в приложении.

2.4 Диаграмма деятельности


Диаграмма деятельности представлена в приложении.

2.5 Диаграмма размещения


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

Выводы


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

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

3 Разработка программного обеспечения

3.1 Выбор среды программирования



Java веб-разработка в ее нынешнем виде является значительно более сложной, чем должна быть. Большинство современных веб-библиотек для разработки приложений на Java являются сложными и не реализуют принцип Don’t Repeat Yourself (DRY).

Динамические системы, как Rails, Django и TurboGears помогли проложить путь к более современным способам построения веб-приложений. Grails строится на этих способах и значительно снижает сложность создания веб-приложений на платформе Java. Однако его отличием является то, что это реализуется на уже созданных технологиях Java, такие как Spring и Hibernate.

Grails включает в себя такие вещи, как:

- простой в использовании слой объектно-реляционного отображения (ORM), построенный на Hibernate

- удобная технология представлений - Groovy Server Pages (GSP)

- слой контроллеров построен на Spring MVC

- встроенный Tomcat контейнер, настроенный на перегрузку «на лету».

- внедрение зависимостей с помощью встроенного Spring контейнера.

- поддержка интернационализации (i18n) построена на концепции Spring MessageSource.

- язык Groovy значительно ускоряет разработку приложения.

Учитывая вышесказанное, для реализации системы была выбрана технология Grails.

3.2 Разработка таблиц базы данных АСОИ


Структуры таблиц разработаны в соответствии с моделью данных.
Таблица 1 – Структура полей таблицы message

PK

Name

Type

Not Null

+

id

BIGINT

+

-

date

DATETIME

+

-

email

VARCHAR(255)

+

-

name

VARCHAR(255)

+

-

text

VARCHAR(10000)

+


Таблица 2 – Структура полей таблицы news

PK

Name

Type

Not Null

+

Id

BIGINT

+

-

date

DATETIME

+

-

title

VARCHAR(255)

+

-

image

BIGINT

+

-

text

VARCHAR(10000)

+


Таблица 3 – Структура полей таблицы image

PK

Name

Type

Not Null

+

id

BIGINT

+

-

width

INTEGER

+

-

height

INTEGER

+

-

sourse

BLOB

+


Таблица 4 – Структура полей таблицы service

PK

Name

Type

Not Null

+

id

BIGINT

+

-

name

VARCHAR(255)

+

-

category

BIGINT

+


Таблица 5 – Структура полей таблицы service_category

PK

Name

Type

Not Null

+

id

BIGINT

+

-

name

VARCHAR(255)

+


Таблица 6 – Структура полей таблицы time_oil_working_time

PK

Name

Type

Not Null

+

id

BIGINT

+

-

day

INTEGER

+

-

dayName

VARCHAR(255)

+

-

start

VARCHAR(255)

+

-

end

VARCHAR(255)

+




Таблица 7 – Структура полей таблицы time_oil_break_time

PK

Name

Type

Not Null

+

id

BIGINT

+

-

start

DATETIME

+

-

stop

DATETIME

+




Таблица 8 – Структура полей таблицы tire_oil

PK

Name

Type

Not Null

+

id

BIGINT

+

-

car_class

INTEGER

+

-

date

INTEGER

+

-

number

VARCHAR(255)

+

-

phone

VARCHAR(255)

+

-

price

INTEGER

+

-

non_cash

BIT

+

-

post

INTEGER

+


Таблица 9 – Структура полей таблицы tire_oil_service


PK

Name

Type

Not Null

+

id

BIGINT

+

-

checked

BIT

+

-

name

VARCHAR(255)

+

-

time

BIGINT

+


Таблица 10 – Структура полей таблицы tire_oil_tire_oil_service


PK

Name

Type

Not Null

+

tire_oil_services_id

BIGINT

+

+

tire_oil_service_id

BIGINT

+



Таблица 11 – Структура полей таблицы wash_working_time

PK

Name

Type

Not Null

+

id

BIGINT

+

-

day

INTEGER

+

-

dayName

VARCHAR(255)

+

-

start

VARCHAR(255)

+

-

end

VARCHAR(255)

+


Таблица 12 – Структура полей таблицы wash_break_time

PK

Name

Type

Not Null

+

id

BIGINT

+

-

start

DATETIME

+

-

stop

DATETIME

+


Таблица 13 – Структура полей таблицы wash

PK

Name

Type

Not Null

+

id

BIGINT

+

-

car_class

INTEGER

+

-

date

INTEGER

+

-

number

VARCHAR(255)

+

-

phone

VARCHAR(255)

+

-

price

INTEGER

+

-

non_cash

BIT

+


Таблица 14 – Структура полей таблицы wash_service

PK

Name

Type

Not Null

+

id

BIGINT

+

-

checked

BIT

+

-

name

VARCHAR(255)

+

-

time

BIGINT

+


Таблица 15 – Структура полей таблицы wash_ wash_service

PK

Name

Type

Not Null

+

wash_services_id

BIGINT

+

+

wash_service_id

BIGINT

+


3.3 Разработка запросов


GORM является реализацией объектно-реляционного отображения (ORM) в Grails. Реализуется с помощью библиотеки Hibernate 3, и благодаря динамичному характеру Groovy с его статической и динамической типизацией, требуется гораздо меньшее конфигурирование для создания доменных классов.

Для осуществления запросов в базу данных, Grails предоставляет набор статических методов, которые доступны при обращении к классам-доменам:

- get()

- list()

- save()

- update()

- delete()

Так же Grails предоставляет динамические методы для осуществления запросов. Для демонстрации их использования приведём пример:

Имеется домен-класс:

class News {

String title

String text

Image image

Date date

}
Для поиска всех записей с названием «новость» и имеющих дату в промежутке от 01.01.2000 до 01.01.2005 нужно вызвать динамический метод:

News.findByTitleAndDateBetween(‘новость’, new Date(’01.01.2000’), new Date(’01.01.2005’))


3.4 Разработка форм


Экранные копии форм и документов представлены на листе «Входные формы» в приложении.

3.5 Разработка отчетов


Экранные копии отчетов представлены на листе «Отчеты» в приложении.

3.6 Разработка вычислительных процедур обработки данных


1) Код, реализующий поиск свободного времени для регистрации пользователя на услуги автомойки.

private def findFreeTime(services = WashService.findAllByChecked(true), date = DateUtils.newDay(), carClass = CarClass.C2) {

date = date.clearTime()

def neededTime = collectTime(services)

def breakTime = WashBreakTime.findByStartBetween(date, date + 1)

def result = getWashTimeLine(date)

if (!session.user) {

result = removeTimeBeforeNow(result)

}

result = removeEndTime(result, neededTime)

result = removeBreakTime(result, breakTime)

if (carClass.id < CarClass.C4.id) {

result = result.findAll { start->

def end = new Date(start.time + neededTime - 1)

def regPostOne = Wash.findAllByPostAndDateBetween(POST_ONE_ID, date, end)

def regPostTwo = Wash.findAllByPostAndDateBetween(POST_TWO_ID, date, end)

postFree(regPostOne, start) || postFree(regPostTwo, start)

}

} else {

result = result.findAll { start->

def end = new Date(start.time + neededTime - 1)

def regPostOne = Wash.findAllByPostAndDateBetween(POST_ONE_ID, date, end)

def regPostTwo = Wash.findAllByPostAndDateBetween(POST_TWO_ID, date, end)

def busOnPostOne = false

def busOnPostTwo = false

def postOneFree = true

def postTwoFree = true

regPostOne.each {

def time = collectTime(it.services)

if (start < new Date(it.date.time + time)) {

busOnPostOne = busOnPostOne || it.carClass >= CarClass.C4.id

postOneFree = false

}

}

regPostTwo.each {

def time = collectTime(it.services)

if (start < new Date(it.date.time + time)) {

busOnPostTwo = busOnPostTwo || it.carClass >= CarClass.C4.id

postTwoFree = false

}

}

!(busOnPostOne || busOnPostTwo) && (postOneFree || postTwoFree)

}

}

result.collect {

DateUtils.timeStr(it)

}

}

2) Код, определяющий является ли запрашиваемое время свободным:

private boolean timeIsFree(services, date, carClass, time, regId = null) {

def free = true

if (!regId) {

free = findFreeTime(services, date, carClass).any {it == time}

} else {

def reg = Wash.get(regId)

def neededTime = collectTime(services)

def end = new Date(reg.date.time + neededTime - 1)

def regsCurrentPost = removeExistsRegistration(Wash.findAllByPostAndDateBetween(reg.post, reg.date, end), regId)

if (regsCurrentPost) {

free = false

} else {

if (reg.carClass >= CarClass.C4.id) {

def regsAnotherPost = Wash.findAllByPostAndDateBetween(reg.post == POST_ONE_ID ? POST_TWO_ID : POST_ONE_ID, reg.date, end)

free = !regsAnotherPost.any { it.carClass >= CarClass.C4.id }

}

}

}

free

}

3) Код, посылающий сообщение на e-mail пользователя, указанный при регистрации

protected sendConfirmEmail(email, reg) {

try {

sendMail {

to email

from grailsApplication.config.aps.email.from

subject message(code:'registration.email.subject')

html g.render(template:"/confirmMail", model:[reg:reg])

}

} catch (Exception e) {

log.error("Can not send mail", e)

}

}

4) Код, генерирующий отчет по регистрациям на услуги автомойки

def wash() {

def start = params.date ? DateUtils.date(params.date) : DateUtils.newDay()

def end = new Date((start + 1).time - 1.second)

def data = Wash.findAllByDateBetween(start, end)

List fields = ["date", "post", "number", "phone", "nonCash", "price"]

exportData(response, data, fields, params.date)

}

private def exportData(resp, data, fields, date = '') {

resp.contentType = grailsApplication.config.grails.mime.types['excel']

resp.setHeader("Content-disposition", "attachment; filename=report_${date}.xls")

Map labels = [ "date" : message(code: 'registration.table.time'),

"post" : message(code: 'registration.table.post'),

"number" : message(code: 'registration.user.data.number'),

"phone" : message(code: 'registration.user.data.phone'),

"nonCash" : message(code: 'registration.table.non-cash'),

"price" : message(code: 'registration.table.price')]

def dateFormat = { domain, value ->

DateUtils.dateTimeStr(value)

}

def boolFormat = { domain, value ->

value ? message(code: 'default.boolean.true') : message(code: 'default.boolean.false')

}

Map formatters = [date : dateFormat, nonCash : boolFormat]

Map parameters = [title: message(code: 'registration.report.link.title'), "column.widths": [0.2, 0.2, 0.2, 0.2, 0.2, 0.2]]

exportService.export('excel', resp.outputStream, data, fields, labels, formatters, parameters)

}


3.7 Тестирование программного обеспечения




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

Для регистрации на услуги автомойки заполняются поля «Гос. номер», «Номер тел.», «Email», выбирается тип автомобиля, список услуг, время, и нажимается кнопка «Записаться» (Рисунок 1).


Рисунок 1 – Регистрация на услуги автомойки.
После нажатия на кнопку «записатся» пользователю выдаётся сообщение об успешной регистрации (Рисунок 2).


Рисунок 2 – Сообщение об успешной регистрации.

Так же, на указанный при регистрации email приходит письмо (Рисунок 3).


Рисунок 3 – Письмо пользователю.
Для входа в административную панель вводятся логин и пароль (Рисунок 4).



Рисунок 4 - Страница аутентификации.
После осуществления аутентификации показывается таблица со всеми записями на услуги (Рисунок 5).


Рисунок 5 – Таблица с записями.
На странице «Мойка автомобилей» доступны следующие функции: редактирование записи, добавление записи, удаление записи, получение отчета.

Для редактирования записи нужно кликнуть по записи в таблице, появляется форма редактирования записи (Рисунок 6).


Рисунок 6 – Редактирование записи.
При изменении списка услуг или типа автомобиля происходит динамическая проверка возможности изменения записи при помощи ajax-запроса. Если изменение не возможно, показывается соответствующее сообщение (Рисунок 7).


Рисунок 7 – Проверка возможности изменения записи.
При нажатии кнопки «обновить» данные в таблице динамически изменяются (Рисунок 8).


Рисунок 8 – Обновление записи.
Для удаления записи нужно кликнуть на неё и нажать кнопку «удалить». Изменения отображаются в таблице (Рисунок 9).



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


Рисунок 10 – Добавление записи.
При нажатии кнопки «сохранить», запись отображается в таблице (Рисунок 11).


Рисунок 11 – Сохранение новой записи.
При нажатии на кнопку «отчет» скачивается отчет по записям (Рисунок 12, 13).


Рисунок 12 – Скачивания отчета по записям.



Рисунок 13 – Отчет по записям.

Заключение по проекту

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

1 Шилдт, Г. Полный справочник по Java / Г. Шилдт . - М.: Вильямс, 2009. -1034с.

2 Эккель, Б. Философия Java / Б. Эккель. - СПб.:Питер, 2009.-640с.

3 Хорстманн, К., Корнелл, Г. CoreJava / К. Хорстманн, Г. Корнелл - М.: Вильямс, 2007. -1168с.

4 Буч, Г., Рамбо, Д. UML. Руководство пользователя / Г. Буч, Д. Рамбо. - СПб.:Питер, 2008.-326с.

5 C. Bauer, G. King Hibernate in Action – Greenwich: Manning, 2005 – 408 c.


Добавить документ в свой блог или на сайт

Похожие:

Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Автоматизированная система планирования объёмов продаж на основе прогнозирования спроса
На тему: Автоматизированная система планирования объёмов продаж на основе прогнозирования спроса
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Автоматизированная система управления интернет-магазином
Назначение разработки Автоматизация процесса управления содержимым интернет-магазина
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon П латные услуги Уважаемые читатели!
...
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Дипломного проекта была создана автоматизированная система управления...
Тема «минимум-максимум». Все необходимые данные для расчета были взяты из базы данных. Эффективность данной системы состоит в выборе...
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Марченя Курс «Культурология»
Федерального агентства по образованию РФ (свидетельство об отраслевой регистрации разработки №5958 от 31 марта 2006 г.) и "Национального...
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Автоматизированная система дефектоскопии ферромагнитных изделий
Наличие неоднородностей и дефектов приводит к изменению топологии поля. Анализ распределения поля рассеяния вблизи поверхности позволяет,...
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Биотехническая система диагностики состояния человека и его связи...
Тс является автоматизированная технология получения и визуализации результатов и формирования рекомендаций для испытуемого-пользователя...
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Автоматизированная система поиска физических эффектов по запросу...
Мы поиска физических эффектов по запросу на естественном языке. В статье приводятся обоснование необходимости такой системы и результаты...
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Прейскурант цен на социальные услуги, предоставляемые гражданам пожилого...
Услуги, предоставляемые на дому гражданам пожилого возраста и инвалидам, нуждающимся в посторонней помощи вследствие частичной утраты...
Автоматизированная система регистрации на услуги одо «Автопроспектсервис» icon Филологический факультет
Рабочая программа и методические рекомендации «Классическая, элитарная и массовая литература: стратегии книгоиздания» для студентов...
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции