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

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

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






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



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

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

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

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

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

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

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

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

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