Студопедия — Реализация и тестирование
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Реализация и тестирование






В ходе работы над приложением, было создано 9 sql файлов для создания таблиц в базе данных и 8 sql файлов, для занесения в базу тестовых данных.

Для реализации DAO был написан интерфейс, который включает в себя объявление четырех методов: create, read, update, delete. Этот интерфейс наследуется другими семью интерфейсами: AttributeDao, CollectionDao, CollectionObjectDao, RoleDao, TypeDao, UserDao, ValueDao каждый из которых расширяет функциональность общего интерфейса в соответствие со своей предметной областью.

Каждый такой интерфейс предлагает набор методов, реализация этих методов зависит от специфики способа хранения данных. В данном случае использовалась СУБД PostgreSQL, а соответственно использовался интерфейс JDBC (его реализация – драйвер для этой СУБД).

Создание класса JdbcDaoSupport предполагает упрощение работы с базой данных в виде слоя абстракции, который ввиду всей специфики работы с JDBC формирует и выполняет запрос к базе данных. Пример метода класса, выполняющего запрос к базе данных не предусматривающий возвращение данных (создание, удаление, обновление) приведён в листинге 1.

public void update(final String sql, final Object[] params) {

Connection conn = null;

PreparedStatement ps = null;

try {

conn = dataSource.getConnection();

ps = conn.prepareStatement(sql);

for (int i = 0; i < params.length; i++) {

ps.setObject(i + 1, params[i]);

}

ps.executeUpdate();

} catch (SQLException e) {

log.error("Can not update ", e);

} finally {

try {

ps.close();

} catch (Exception e) {

log.trace(e.getMessage());

}

try {

conn.close();

} catch (Exception e) {

log.trace(e.getMessage());

}

}

}

Листинг 1 – Метод реализующий обновление, удаление и запись в базу данных.

Отдельно были созданы классы, описывающие сущности, содержащиеся в базе данных – Attribute, Collection, CollectionObject, Role, Type, User,Value. Все эти классы наследуют общий интерфейс Entity, который содержит метод setId, который устанавливает идентификационный номер для записи в базе данных, и getId, возвращающий этот идентификационный номер. Все классы кроме класса CollectionObject содержат в себе методы setName, getName. Также каждый класс имеет дополнительные методы, согласно той сущности, которую он описывает. Например, класс Type имеет методы setAttributes и getAttributes, которые позволяют установить список атрибутов для каждого типа и получить этот список.

Были созданы интерфейсы AttributeService, CollectionService, TypeService, UserService. Эти интерфейсы описывают методы необходимые для реализации требуемого функционала приложения. Каждый интерфейс реализуется соответствующим классом – AttriubteServiceImpl, CollectionServiceImpl, TypeServiceImpl, UserServiceImpl. UserService включает в себя методы, необходимые для работы с атрибутами пользователя – getUser, saveUser, deleteUser, getRole, saveRole, deleteRole, getRoles.

Для реализации паттерна MVC был создан класс ActionServlet. Он является «контроллером». Данный класс имеет метод void init(ServletConfig config) для инициализации необходимых объектов. Например, мы его использовали для того, что бы создать объекты, которые мы будем использовать, и поместить их в пикоконтейнер. Также имеются методы doGet(HttpServletRequest req, HttpServletResponse resp) и doPost(HttpServletRequest req, HttpServletResponse resp), которые перехватывают запросы клиента и запускают метод void action(HttpServletRequest req, HttpServletResponse resp). Метод action реализует основной функционал «контроллера». Также имеется метод String getActionName(HttpServletRequest req), который выдаёт имя «экшина», который должен исполнятся, по запросу клиента.

Был создан интерфейс Action, который предоставляет всего один метод String exec(HttpServletRequest req, HttpServletResponse resp).

В ходе работы были созданы несколько jsp страниц: index.jsp, logon.jsp, choose-collection.jsp и notfound.jsp. Jsp файл с именем index запускается, когда пользователь впервые заходит на сайт. Logon.jsp — при попытки пройти аутентификацию. Страница choose-collction.jsp даёт пользователю выбрать коллекцию для просмотра. Страница notfound.jsp отображается, когда не было найдена страница, которую затребовал пользователь.

Для логирования мы использовали библиотеку log4j.

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

Так же все созданные классы были проверены программой checkstyle. В среднем было выявлено около 800 недочётов в исходном коде. После проведения рефакторинга кода всей командой это число было снижено до 30. Такой результат считаем приемлемым для данного проекта.

Заключение

В результате прохождения практики была изучена информация о предприятии и структура предприятия ИООО «Эпам Системз», действующие нормы по технике безопасности, документация. В результате был создан прототип программного приложения для работы с различными коллекциями. Был получен огромный опыт работы в команде, совместного проектирования и разработки программного обеспечения. Были изучены такие технологии как unit, checkstyle, log4j, findbag. Были получены практические навыки в создание программы на языке Java и реализация паттерна MVC, использования SVC в качестве системы управления версиями. Также были углублены знания в таких технологиях как: tomcat, J2EE, PostgreSql.

 

Список использованной литературы

1. Шилдт Г. Полный справочник по SQL.: Пер. с англ. – М.: ООО “И.Д. Вильямс”, 2004. – 752 c.: ил.

2. Макконнелл С.. Совершенный код. Мастер класс. - М: Русская редакция – 896с.: ил.

3. Экель Б. – Философия Java. – СПб.: Питер, 2013. – 640 с.: ил.

4. Хорстманн К., Корнелл Г.. – Java2. Библиотека профессионала. Том 1.: Пер. С англ.\Мухин Н.. - Вильямс. - 816 с.: ил.

5. Хорстманн К., Корнелл Г.. – Java2. Библиотека профессионала. Том 2. Тонкости программирования.: Пер. с англ.\Мухин Н.. – Вильямс, 2012. - 912с.: ил.







Дата добавления: 2015-09-04; просмотров: 1260. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

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

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия