Технологии производства ПО : Java Вашенков Олег Евгеньевич
2 История Официальная дата создания: 23 мая 1995 (начало разработок – 1990) Разработчик: Джеймс Гослинг Платформа для бытовой электроники
3 Преимущества Java Независимость от платформы и оборудования Автоматическое управление памятью Безопасность (выполнение контролируется виртуальной машиной) Объектная ориентированность (включая простые типы данных и обработку ошибок) Большое количество сторонних библиотек для любых задач
4 Недостатки Автоматическое управление памятью: –Снижение скорости при больших объемах данных; –Требуется большое количество физической памяти, т.к. удаление объектов происходит с запаздыванием; Необходимость следить за закрытием ресурсов (отсутствие деструкторов).
5 Платформы Java Java Standard Edition (J2SE) – служит для разработки «настольных» консольных или графических приложений; Java Enterprise Edition (J2EE) – служит для разработки корпоративных или веб- приложений; Java Micro Edition (J2ME) – служит для разработки приложений под мобильные устройства (телефоны, бытовая техника).
6 Средства разработки Java Development Kit (JDK): –Инструментарий для компиляции, выполнения, отладки, документирования; –Библиотека классов (простые типы, мат.операции, ввод-вывод, потоки и процессы, графический интерфейс, интерфейс СУБД, аплеты); –Примеры приложений (demo, samples).
7 Серверные приложения (J2EE) Сервер приложений (GlassFish, Tomcat, JBoss, WebSphere, Oracle WebLogic); Библиотеки классов (веб-службы, сервлеты, страницы JSP, EJB, ORM, JTA); Дополнительные средства автоматизации разработки (apache ant).
8 Мобильные приложения (J2ME) Особенности: ограничения по скорости CPU ( Mhz), малое количество ОЗУ (5-15 Мб), слабые коммуникационные возможности; CLDC (Connected Limited Device Configuration) – основная функциональность (базовые типы, потоки, ввод-вывод, дата-время); MIDP (Mobile Information Device Profile) – расширения (оконный интерфейс, мультимедиа, контроллеры); Sun Wireless Toolkit (WTK) – набор классов, эмулятор, средства отладки, примеры (требуется JDK).
9 Структура JDK
10 Разработка приложений Создание исходного кода (текстовый редактор, NetBeans, Eclipse): public class HelloWorld{ public sayHello(){ System.out.println( Hello world! ); } public static void main( String []args ){ new HelloWorld().sayHello(); } Компиляция: javac HelloWorld.java Выполнение: java HelloWorld
11 Библиотека классов
12 Справочная информация – ресурс для java- разработчиков (справочники, статьи, примеры, обучающие материалы) - описание классов из библиотеки J2SEhttp://java.sun.com/javase/6/docs/api/ l - примеры с подробным описанием (начало работы, базовые классы для создания приложений, коллекции, графический интерфейс) l
13 Литература Брюс Эккель: философия Java Перевод:
14 Sun Learning Connection m Обучение: Catalog / Sun Catalog (SAI) / Java Technology eLibrary / Fundamentals of the Java Programming Language Аттестация: Catalog / Sun Certification / Sun Certified Programmer /
15 Структура курса Классы, объекты, базовые типы Элементы программирования Коллекции Ввод-вывод Многопоточность Сетевое взаимодействие Аплеты Графический интерфейс (AWT, Swing)
16 Тестирование Подключение пакетов классов; Классы пакета java.lang.*; Модификаторы доступа для методов и полей классов; Обработка исключительных ситуаций; XML / XPath, функции XSLT; UML; Шаблоны проектирования (Паттерны)
17 Дополнительные технологии XML, общий синтаксис и примеры: XPath, примеры выражений: Функции XPath: Шаблоны XSLT, основные элементы: Пример работы с XPath-выражениями: ath_select_cdnodes
18 Шаблоны проектирования 1987 – Кент Бэк, Вард Каннигем – шаблон разработки GUI для Smalltalk; 1988 – Эрих Гамма – докторская диссертация на тему применимости шаблонов при программировании; 1991 – Джеймс Коплин – книга Advanced C++ Idioms 1991 – Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес публикуют книгу Design Patterns – Elements of reusable object- oriented software
19 Шаблоны проектирования Основная цель – выделить архитектурную концепцию (набор классов и связей между ними); Критерии оптимальности – уменьшение связанности классов, минимизация классов и методов, разделение труда, выделение отдельных блоков кода (например, менее надежных, требующих оптимизации); Брюс Эккель – Thinking in patterns: Обзор паттернов проектирования:
20 UML 1994 – Г. Буч, Д. Рамбо – начало разработки языка ОО моделирования (Rational Software); 1996 – Г. Буч, Д. Рамбо, А. Якобсон – выпуск спецификации UML (версия 0.9, Object Management Group); 2001 – выпуск спецификации UML версии 1.5; 2005 – выпуск спецификации UML версии 2.0.
21 UML Статические диаграммы: –диаграмма классов; –Диаграмма компонентов; –Кооперации; –Развертывания; –Объектов; –Пакетов; Диаграммы поведения: –Деятельности; –Состояний; –Вариантов использования; –Последовательности.
22 UML Цели: визуализация, проектирование и документирование программных систем; достижение соглашения между разработчиками. Ресурсы:
23 Итоговый проект Создание виртуальной лабораторной работы: Аплет с интерактивной установкой; Проверяющий сервер. Каркас для разработки проверяющего сервера: