Выбор и обоснование средств и методов решения задач.
Для выполнения поставленной задачи будет использоваться Java 2 Enterprise Edition. Технология Java EE является расширением языковой платформы Java, которое позволяет создавать масштабируемые, мощные и переносимые корпоративные приложения. Язык Java выбран за его кроссплатформенность, простоту, производительность и многогранность. Для реализации приложения будет использован контейнер Tomcat. Tomcat — контейнер сервлетов с открытым исходным кодом, разрабатываемый Apache Software Foundation. Реализует спецификацию сервлетов и спецификацию JavaServer Pages (JSP) и JavaServer Faces (JSF). Клиентское приложение (веб-сайт), будет создан при помощи JSP. Технология JSP входит в состав J2EE с версии 1.2. Она расширяет спецификацию Java Servlet возможностями декларативного программирования пользовательских интерфейсов. JSP предоставляет поддержку программирования пользовательских интерфейсов как документов, которые транслируются в Java-сервлеты, компилируются и вызываются контейнером Web-приложения для обработки запросов. В качестве СУБД будет использоваться PostgreSQL. PostgreSQL — свободно распространяемая объектнореляционная система управления базами данных (ORDBMS) наиболее развитая из открытых СУБД в мире и является реальной альтернативой коммерческой БД. PostgreSQL обладает следующими преимуществами: надежность и устойчивость на очень больших нагрузках, кроссплатформенность, расширяемость, быстродействие, наследование, поддержка БД практически неограниченного размера, высокий уровень соответствия стандартам (ISO/ANSI). В качестве контейнера экземпляров класса будет использоваться PicoContainer. PicoContainer обладает высокой скоростью работы и надежностью. PicoContainer распространяется по лицензии BSD. В качестве среды разработки будет выбрана Eclipse за ее надежность, расширяемость и бесплатность для работы с Java EE. В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений. Eclipse написана на Java, потому является платформо-независимым продуктом. При возрастании сложности приложений, неизбежно возникает необходимость проведения тестирования. В нашем проекте предполагается использовать JUnit. JUnit — библиотека для модульного тестирования программного обеспечения на языке Java. Для отладки серверного приложения предполагается использовать Log4j. Log4j — библиотека журналирования Java программ, часть общего проекта «Apache Logging Project». Log4j отображает детальный контекст возникающих ошибок в приложении имеет возможность перенаправлять вывод в файл, на консоль, на удаленный log4j сервер тд. Для автоматизации процесса сборки приложения будет использоваться Ant. Apache Ant — утилита для автоматизации процесса сборки программного продукта. Является платформонезависимым аналогом утилиты make. Так как разработка проекта предполагала командную работу, то неизбежно возникнет необходимость в системе контроля версий, в качестве которой выступит SVN. SVN или Subversion — это бесплатная система управления версиями с открытым исходным кодом. SVN разработала компания CollabNet, Inc., как замену устаревшей CVS. Subversion позволяет управлять файлами и каталогами, а так же сделанными в них изменениями во времени. Это позволяет восстановить более ранние версии данных и изучить историю всех изменений. Доступ к репозиторию SVN может осуществляться как локально, так и посредством сети интернет. При разработке корпоративных приложений очень важно придерживаться одних стандартов. В качестве стандарта написания и форматирования кода будет выбран Sun Code Conventions. Автоматизировать этот процесс может утилита Checkstyle. Checkstyle гибко настраиваем и позволяет анализировать сразу несколько аспектов кода, таких как проблемы дизайна классов, дублирование кода и типичные ошибки форматирования. Ошибки и баги в коде в идеале не должны существовать. Найти их раньше, чем это сделает пользователь нам может помочь утилита FindBugs. FindBugs — статический анализатор кода, который использует статический анализ, чтобы найти потенциальные ошибки сотни различных типов в Java коде. FindBugs работает с Java байткодом, а не с исходным кодом.
|