Министерство образования и науки Российской Федерации
Московский физико-технический институт
(государственный университет)
УТВЕРЖДАЮ
Проректор по учебной работе
__________
“_____” ____________ 2011 г.
ПРОГРАММА
по курсу: СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ JAVA (по выбору)
по направлению: 010900
факультеты: ФРТК, ФОПФ, ФАКИ, ФМБФ, ФФКЭ, ФУПМ, ФПФЭ
кафедра: ИНФОРМАТИКИ
курс: 4
семестр: 7
практические занятия: 34 часа зачёт дифф.
ВСЕГО ЧАСОВ: 34
Программу составил: ст. преподаватель
Программа обсуждена
на заседании кафедры информатики
«21» мая 2011г.
Заведующий кафедрой,
профессор
ВВЕДЕНИЕ.
Данный курс предполагает базовое знание языка java. Курс рассчитан на изучение не самого языка, а технологии программирования на нем с использованием последних разработок в java сообществе.
Курс рассчитан на один семестр и предполагает изучение теории (два академических часа в неделю) и практикум (два академических часа в неделю). Практикум – создание web приложения с использованием большинства рассматриваемых технологий и фреймворка (каркаса) Spring.
СТРУКТУРА КУРСА
1. JavaBeans и POJO – основные типы объектов при программировании в «правильном» стиле.
2. Безопасное (safe) программирование. Новые возможности Java 5: generics, аннотации, inboxing/outboxing. Многие ошибки в программах должны отлавливаться на этапе компиляции программы, а не на этапе исполнения.
3. Spring – многоуровневый каркас приложений (layered Java/J2EE application framework) – каркас каркасов.
4. Разработка, управляемая тестами – Test Driven Development (TDD). Единица тестирования - test unit. JUnit framework. Использование фиктивных объектов (mock objects) для тестирования приложений.
5. Интерфейсы. Программирование на интерфейсах, а не на классах. Интерфейсы программирования приложений - Application Programming Interfaces (API) в JEE.
6. Основные шаблоны проектирования в Java.
7. Шаблон проектирования MVC (Model-View-Controller) – основной шаблон в web программировании. Бизнес-логика приложения должна быть полностью отделена от отображения данных. Контроллер – связующее звено. Полезно также отделить бизнес-логику от уровня сохранения данных в базе – Data Access Object (DAO). Это отделение делается, как обычно, путем введения дополнительных интерфейсов.
8. Инверсия управления - Inversion of Control (IoC). Инъекция зависимостей - Dependency Injection (DI). При инверсии управления свойства (properties) объектов в контейнере устанавливаются (injected) контейнером на основании внешних настроек, а не запрашиваются объектами у контейнера или еще где-либо.
9. Нормализация базы данных. Пять нормальных форм. При проектировании базы данных надо стремиться довести структуру базы хотя бы до третьей нормальной формы.
10. Библиотека JDBC основная библиотека в java для работы с реляционными базами данных..
11. Java Persistence API (JPA) - работа с данными на уровне объектно-ориентированной модели. Попытка стандартизации отображения объектов на реляционные данные.
12. Object-Relational Mapping (ORM). Отображение объектов java (JavaBeans) на реляционные данные. Hibernate framework – одна из лучших реализаций ORM.
13. Аспектно - ориентированное программирование – Aspect-Oriented Programming (AOP). Библиотека AspectJ. AOP в Spring framework.
Задания для самостоятельной работы
Написать java-приложение «Справочник студентов». Приложение должно состоять из нескольких уровней: Model – бизнес-логика приложения, View – пользовательский интерфейс приложения, Controller (server) – взаимодействие между пользовательским интерфейсом и бизнес-логикой, DAO – Data Access Objects – сохранение данных в постоянной памяти. Взаимодействие между уровнями реализовать на фреймворке Spring с помощью Dependency Injection (DI). Написать веб-приложение «Справочник студентов». По сравнению с предыдущей задачей должен поменяться только пользовательский интерфейс и контроллер. В качестве контроллера использовать Spring MVC, веб - страницы написать на jsp. Разработать базу данных для приложения «Справочник студентов». Переработать java-приложение «Справочник студентов» для работы с базой данных. Должен поменяться только DAO – уровень. Работа с базой данных должна вестись через JDBC - драйвер. Переработать веб-приложение «Справочник студентов» для работы с базой данных. Должен поменяться только DAO – уровень. Переработать веб-приложение «Справочник студентов». Реализовать DAO – уровень на фреймворке Hibernate. Ввести понятие «пользователь системы». Ввести роли пользователей (администратор, оператор, простой пользователь) с разграничением прав на просмотр и на действия. На сервере работу с правами реализовать с методами AOP (Aspect-oriented programming). Написать java-приложение «Справочник студентов» в архитектуре клиент-сервер. В качестве сетевого протокола использовать CORBA. Переписать веб-приложение «Справочник студентов» для работы с сервером приложения по протоколу CORBA.СПИСОК ЛИТЕРАТУРЫ
Craig Walls, Ryan Breidenbach. Spring in Action, 2-nd edition. Manning Publications, 2008, ISBN-10: , ISBN-13: 978-. Christian Bauer, Gavin King. Java Persistence with Hibernate. Manning Publications, 2006, ISBN-10: , ISBN-13: 978-. Debu Panda, Reza Rahman, Derek Lane. EJB 3 in Action. Manning Publications, 2007, ISBN-10: , ISBN-13: 978-. Rod Johnson, Juergen Hoeller, etc. The Spring Framework - Reference Documentation. Version 2.5Hibernate Reference Documentation, version 3.2Vincent Massol, Ted Husted. JUnit in Action. Manning Publications, 2003.ISBN-10: , ISBN-13: 978- Ramnivas Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications, 2003. ISBN-10: , ISBN-13: 978- Анил Хемраджани. Гибкая разработка приложений на Java с помощью Spring, Hibernate и Eclipse. Вильямс, 2008 г. ISBN 1375-3, -8


