Вы находитесь на странице: 1из 16

Министерство науки и высшего образования РФ

ФГАОУ ВПО
Национальный исследовательский технологический университет
«МИСиС»

Институт Информационных технологий и компьютерных наук (ИТКН)


Кафедра Инфокоммуникационных технологий (ИКТ)
09.03.01 Информатика и вычислительная техника

КУРСОВАЯ РАБОТА
по дисциплине «Технологии разработки программного обеспечения»

Тема: «Разработка клиент-серверного приложения на языке


программирования Java»
Руководитель: Козлов М.Е.

Студент: Яно
Группа: БИВТ-20-4
Оглавление
Введение....................................................................................................................................................3
1. Разработка клиент-серверных приложений...................................................................................5
1.1 Клиент–серверная архитектура приложений................................................................................5
1.2 Паттерн MVC и его особенности в веб-приложениях..................................................................6
1.3 Язык программирования Java.........................................................................................................7
1.4 Spring Framework в разработке клиент-серверных приложений.................................................7
1.5 Язык разметки HTML и фреимворк Bootstrap...............................................................................8
2. Разработка веб-приложения с использованием Spring MVC.......................................................9
2.1 Разработка технического задания..................................................................................................9
2.2 Декомпозиция технического задания на задачи......................................................................9
2.3 Программирование..................................................................................................................10
2.4 Тестирование.................................................................................................................................12
Заключение.............................................................................................................................................13
Введение
В современном мире облачные технологии развиваются очень активно.
Все больше программного обеспечения становится глобальными сетевыми
платформами и сервисами. Следовательно, нет необходимости в установке
продуктов на компьютер и различные портативные устройства, т.к. для
пользования услугами необходим лишь доступ в Интернет.

Архитектура веб-приложения может быть разнообразной, она зависит


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

1.1 Клиент–серверная архитектура приложений


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

Рисунок 1 – Схема клиент-серверной архитектуры

Архитектуру клиент-сервер принято разделять на три класса: одно-, двух- и


трёхуровневую.

Одноуровневая архитектура - вид архитектуры, при котором все прикладные


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

Двухуровневая – вид архитектуры, при котором прикладные программы


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

Трехуровневая – вид архитектуры, при котором файловый сервер, баз данных


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

1.2 Паттерн MVC и его особенности в веб-приложениях


Model–View-Controller (MVC, «Модель-Представление-Контроллер») —
шаблон архитектуры, подразумевающий разделение программы на 3
слабосвязанных компонента: модель, вид, и контроллер.

Рисунок 2 – схема MVC

Модель представляет доступ к данным. Так же она позволяет извлекать их и


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

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


Язык программирования Java была разработанной компанией Sun
Microsystems в начале 90-годов XX века. Java является языком
программирования общего назначения. Относится к объектно –
ориентированным языкам программирования с сильной типизацией.
Благодаря компиляции Java кода в байт-код это позволяет приложениям,
написанным на этом языке исполняться на любом устройстве, на котором
установлена среда исполнения Java (Java Runtime Environment). Так же в Java
реализован автоматический сборщик мусора, который очищает память от
объектов, которые перестают использоваться в ходе исполнения
программного кода.

1.4 Spring Framework в разработке клиент-серверных приложений


Spring Framework является одним из самых популярных фреймворков для
разработки веб – приложений на Java. Spring используется для упрощения
разработки программного продукта путем реализации инверсии контроля
(Inversion of Control) и внедрения зависимостей (Dependency Injection).

Базовым объектом в Spring является Bean – класс, написанным по


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

Также фреймворк имеет расширение, реализующее MVC паттерн. Система


аннотаций позволяет создавать контроллеры, сервисы и сущности,
взаимодействующие с базой данных – entity-классы и классы-репозитории. В
качестве модели здесь представлен класс ModelAndView, который
возвращает представление и модель с данными для этого представления.
1.5 Язык разметки HTML и фреимворк Bootstrap

HTML — стандартизированный язык разметки документов для просмотра


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

Bootstrap – это открытый и бесплатный HTML, CSS и JS фреймворк, который


используется для быстрой верстки адаптивный дизайнов сайтов и веб –
приложений. Он позволяет верстать сайты в несколько раз быстрее, чем при
использовании «чистого» CSS и JavaScript. Bootstrap содержит большой
набор готовых элементов, которые можно добавлять на страницу, а так же
легко видоизменять их, делая верстку сайта максимально простой и
адаптивной.
2. Разработка веб-приложения с использованием Spring MVC

2.1 Разработка технического задания


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

Выделим нефункциональные требования из требований заказчика:

 Структура разрабатываемого веб-приложения.


 Страницы веб-приложения

Выделим функциональные требования из требований заказчика:

 Разработать базу данных для веб-приложения

 Работа с данными в csv файлах;


 Автоматическое создание таблиц в базе данных;
 Веб-страница для загрузки данных в таблицы базы данных из csv
файлов;
 Вывод результатов в csv файлы;
 Вывод ошибок в консоль;
 Веб-страница с результатами поиска медианного значения по сумме
транзакции по всем транзакциям в базе данных;
 Веб-страница с результатами поиска по тем строкам, которые ни в
одном из своих столбцов не содержат пустые значения;
 Веб-страница с результатами поиска медианы суммы транзакций по
строкам, отсортированным по полю amount в порядке возрастания, и из
которых удалены дублирующиеся по столбцам [mcc_code, tr_type]
строки, причём при удалении соответстующих дублей остаются только
последние из дублирующихся строк;

2.2 Декомпозиция технического задания на задачи

Декомпозиция - это процесс разделения целей и задач на более мелкие


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

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

● Разработка классов-контроллеров

● Разработка классов для работы с базой данных

● Тестирование

Выделим задачи по разработке базы данных:

Разработать 4 таблицы: Transactions, mcc_codes, tr_type, gender_train


Рисунок 3 – Структура базы данных

Выделим задачи по разработке классов-контроллеров:

При разработке классов, работающих с базой данных, в Spring


Framework выделяют два типа классов: Entity – представляющие собой
реализацию сущности базы данных, у которой все поля класса – атрибуты
сущности в БД; Repositories – интерфейсы наследуемые от JpaRepository,
предоставляющие широкий функционал для взаимодействия с объектами БД.
В ходе работы были выделены следующие задачи по разработке классов для
работы с базой данных:
2.3 Программирование

Рисунок 4 – Файловая структура проекта

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


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

Рисунок 5 – Содержимое пакета «controller»

Пакет «controller» содержит MainParseController – контроллер для главной


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

Пакет «entity» содержит в себе классы сущностей базы данных:


Рисунок 6 – Содержимое пакета «entity»

● Transaction – класс сущности «Транзакции»;

● Gender – класс сущности «Пол клиентов»;

● MCC – класс сущности «MCC коды»;

● Type – класс сущности «Типы транзакций».

Пакет «repo» содержит в себе интерфейсы сущностей базы данных:

Рисунок 7 – содержимое пакета «repo»

● GenderRepository – интерфейс репозитория для сущности «Пол

клиентов»;

● MccCodeRepository – интерфейс репозитория для сущности «MCC


коды»;

● TransactionRepository – интерфейс репозитория для сущности

«Транзакции»;
● TypeRepository – интерфейс репозитория для сущности «Типы
транзакций»;

Пакет «service» содержит сервисные классы для работы с методами


классов-репозиториев:

Рисунок 8– содержимое пакета «service»

● GenderService – сервисный класс для работы с методами

репозитория сущности «Пол клиентов»;


● MccCodeService – сервисный класс для работы с методами
репозитория сущности «МСС коды»;

● TransactionService – сервисный класс для работы с методами

репозитория сущности «Транзакции»;

● TransactionTypeService – сервисный класс для работы с методами


репозитория сущности «Типы транзакций».
Пакет «templates» содержит верстку страниц:

Рисунок 9 – Содержимое пакета «templates»


Веб-страницы приложения:

Рисунок 10 – Главная страница


Рисунок 11 – Страница с результатами

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

Таблица 1 – Тест-кейсы для тестирования функционала программы.

№ Название Шаги Данные Ожидаемый результат


1.Запустить класс
Var15Application
1. Перейти на сайт http://localhost:8080/ 1. Доступ возможен
2. Обратить внимание на
корректное отображение
шапки и полей для ввода
Доступна Порядок форм:
стартовая 1. Выберите файл 1. Элементы кликабельны
страница, транзакций 2. Формы расположены в
1 2. Выберите файл нужном порядке
при 2.2 Четыре формы для
запущенной вставки csv файлов гендеров 3. При нажатии на форму
программе 3. Выберите файл mcc открывается проводник, с
кодов возможностью выбора
4. Выберите файл типов файла
транзакций
1. При нажатии кнопки
осуществляется перенос
2.3 Кнопка "Отправить"
на страницу:
http://localhost:8080/task_1
2 Доступна 1. Запустить класс
страница с Var15Application
результатом 1. Переход на страницу http://localhost:8080/task_1 1.Доступ возможен
2. Переход на страницу http://localhost:8080/task_2 1.Доступ возможен
3. Переход на страницу http://localhost:8080/task_3 1.Доступ возможен
4. Обратить внимание на
1. Элементы сайта
корректное отображение
отображаются корректно
шапки
2.2 Три кнопки Порядок шторок: 1. Элементы кликабельны
1. Задание 1(результаты
поиска медианного 2. При нажатии,
значения по сумме изменяется цвет кнопки
транзакции по всем 3. При нажатии на другу.
транзакциям в базе кнопку
данных)
2. Задание (результаты
поиска по тем строкам,
которые ни в одном из
своих столбцов не
содержат пустые
значения)
3. Задание 3(результаты
поиска медианы суммы
транзакций по строкам,
отсортированным по полю
amount в порядке
возрастания, и из которых
удалены дублирующиеся
по столбцам [mcc_code,
tr_type] строки, причём
при удалении
соответстующих дублей
остаются только
последние из
дублирующихся строк)
1. При нажатии
2.3 Кнопка "Скачать" на осуществляется
странице скачивание csv файла с
http://localhost:8080/task_3 полученными
результатами

Заключение

В ходе выполнения курсовой работы было создано веб – приложение для


просмотра данных из базы данных, а также их загрузка и выгрузка в формате
CSV. Было составлено техническое задание и разработан дизайн страниц
сайта. Для разработки клиент-серверной части веб-приложения
использовался фреймворк Spring Framework, как один из наиболее
актуальных для данных задач, для верстки использованы технологии HTML
5, Bootstrap. Была разработана база данных с использованием СУБД
PostgreSQL, проведено тестирование.

Вам также может понравиться