Програмиране на езика Java™ (3 модула), Графични и мрежови приложения на езика JAVA™ (2-ри и 3-ти модул),
Разработка на разпределени и мрежови приложения на езика Java™ (3-ти модул)
Курсът
осигурява практически умения за обектно-ориентирано програмиране на
езика Java™ версия 7 с използване на проблемно-ориентирана методология за обучение. Той
включва следните три модула (възможни са индивидуални комбинации):
Основи
на програмирането на езика Java™
(40 учебни часа) –
запознава с принципите и понятията на обектно-ориентираното програмиране и тяхната практическа реализация на езика Java™.
Разглеждат се детайлно, на базата на примери и задачи, различните езикови конструкции, механизми за реализация и приложни класове за
основните видове структури от данни. Обхванати са и по-сложните елементи на езика Java – наследяване и полиморфизъм, интерфейси, анонимни
и вътрешни класове. Дискутират се още механизмите за обработка на изключения и конвенциите при документиране на Java™ код.
Представят се новостите в Java 5/6/7 – generics, enumeration types, подобрен for-цикъл, static imports, autoboxing, variable argument
lists, annotations, strings in switch, multi-catch, generics type inference, try with resources.
Модулът включва също въведение в графичната нотация за обектно-ориентирано моделиране на езика Unified Modeling Language (UML)
Use Case и Class диаграми.
Java™
API и проектиране на графичен потребителски интерфейс (40 учебни часа)
– разглеждат се Java™ класовете за осъществяване на файлови операции и сериализация, включително новостите при работа с файлове в
Java™ 7 – New I/O File, Path, FileSystem, MIME type inference. На базата на практически задачи се представят в детайли Swing библиотеката
от класове и компоненти (прозорци, панели, бутони, текстови полета, списъци, диалогови прозорци, менюта, и др.) за изграждане на графичен
потребителски интерфейс. Разглеждат се събитийният модел на Swing и Model-View-Controller архитектурата от гледна точка на тяхната
практическа реализация. Представят се новите за Java 7 полу-прозрачни прозорци и прозорци с не-правоъгълна форма, Nimbus Look and Feel,
JLayer компоненти. Дискутират се още проектирането на Java™ аплети (включително подписване), Java™ Beans™, реализация на паралелни процеси
с използване на множество нишки (multi-threading) и механизмите за синхронизация между тези процеси. Като специални акценти на курса ще
бъдат застъпени бързото и автоматизирано изграждане на графични приложения със
JSR 296: Swing Application Framework и реализацията на
фино-гранулярна конкурентност с библиотеката
JSR 166: Concurrency Utilities, включително новият за Java 7 Fork/ Join Framework.
Разработка
на разпределени и мрежови приложения на Java™
(40 учебни часа)
–
модулът запознава с основите на мрежовото програмиране на Java™ (разработват се чат сървъри и клиенти през TCP/UDP/Multicasting),
транзакции и връзки към бази данни през JDBC™, практическа разработка на разпределени приложения от тип клиент/сървър с Java RMI™ и многослойни софтуерни архитектури.
Разглеждат се механизмите за осъществяване на връзка с база от данни (Java™ Database Connectivity – JDBC™) и използването на SQL за манипулиране
на данните. Включени са новостите при JDBC 4.1 (Java 7) – try with resources, RowSet, RowSetFactory, FilteredRowSet, CachedRowSet и др.
Обяснява се практически Java™ Remote Method Invocation (RMI) механизма за изграждане на разпределени приложения и използването на декларативна
сигурност на базата на политики. Към новите теми разглеждани в този модул спадат
Java Persistence API (JPA), което надгражда добилите
популярност ORM мениджъри Hibernate/ TopLink/ EclipseLink. JPA улеснява съхраняването на данните в база данни, като прави ненужни както
писането на SQL заявки, така и на XML описания на данните, заменяйки ги с анотации в кода и автоматизираното създаване на JPA entity beans
и контролни класове чрез помощници директно от таблици в базата данни.
Курсът завършва с проект - разработка на цялостно трислойно клиент/сървър приложение с използване на Remote Method Invocation (RMI) middleware.
Сред новостите, включени в последното издание на курса са:
- основи на UML графична нотация за подобряване на комуникацията в екипа (Use Case и Class диаграми);
- новости в Java 5/6/7 – generics, enumeration types, подобрен for-цикъл за обхождане на колекции, static import, autoboxing, аргументни списъци с променлива дължина, използване на анотации в кода, низове в switch, multi-catch, generics type inference, try с ресурси;
- новостите при работа с файлове в Java™ 7 – New I/O File, Path, FileSystem, MIME type inference;
- реализацията на фино-гранулярна конкурентност с библиотеката
JSR 166: Concurrency Utilities, включително новият за Java 7 Fork/ Join Framework;
- новостите в JDBC 4.1 (Java 7) – try with resources, RowSet, RowSetFactory, FilteredRowSet, CachedRowSet и др.;
- новото за Java 5/6/7 SE Java Persistence API, което надгражда добилите популярност ORM мениджъри Hibernate/ TopLink/ EclipseLink и улеснява съхраняването на данните в база данни, като прави ненужни както писането на SQL заявки, така и на XML описания на данните, заменяйки ги с анотации в кода;
- автоматизирано създаване на Java Persistence API (JPA) entity beans и контролни класове чрез помощници директно от таблици в базата данни;
- бързо изграждане на потребителски интерфейси с графичен билдър;
- разбиране на предимствата и недостатъците на различните архитектурни решения и използване на най-добрите практики (Reusable Design Paterns) в зависимост от спецификата на проекта;
- практическа разработка на собствени мрежови приложения от тип клиент-сървър и peer to peer (P2P) през протоколи TCP/ UDP/ multicasting - чат-сървъри и клиенти; програма за фактуриране, включваща RMI клиенти с графичен потребителски интерфейс, централизиран сървър и база данни;
- запознаване с механизмите за сигурност в Java, декларативна сигурност, базирана на политики;
- постигане на максимална скорост и разширяемост при разработката на многослойни клиент-сървър приложения чрез съчетаване на изброените по-горе технологии и подходи.
|