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

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

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




В ходе работы над приложением, было создано 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; просмотров: 875. Нарушение авторских прав; Мы поможем в написании вашей работы!


Рекомендуемые страницы:


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