Спеціальність "Інформатика"
(освітньо-кваліфікаційний рівень "магістр")
Поняття програмної інженерії. Моделювання у програмній інженерії.
Життєвий цикл програмних систем (ПС). Моделі життєвого циклу ПС. Ітеративно-інкрементні моделі життєвого циклу. Керування ризиками.
Візуальне моделювання. Моделювання та CASE-технології. Уніфікована мова моделювання UML. Призначення UML у розрізі проектування ПС. Види діаграм UML. Спрощена стратегія використання UML-діаграм при моделюванні ПС.
Засоби розширення UML: стереотипи (stereotype), помічені значення (taggedvalue), обмеження (constraint). Профілі предметних областей.
Діаграми прецедентів. Моделювання контексту та вимог до ПС. Прецеденти. Специфікація прецедентів у RationalRose. Потоки подій та сценарії.
Актори, основні актори. Відношення між акторами та прецедентами. Відношення узагальнення для прецедентів та акторів.
Організація прецедентів. Відношення залежності між прецедентами. Відношення включення (include) та розширення (extend). Варіанти діаграм прецедентів.
Використання класів при проектуванні ПС. Класи етапу аналізу: прикордонні (boundary) або інтерфейсні класи, класи-сутності (entity), управляючі (control) класи (класи-менеджери). Класи етапу проектування. Діаграми співробітництва (collaboration) та їх використання.
Відношення між класами та їх виявлення (узагальнення, залежність, асоціація, агрегація, композиція). Проектування класів, відношень між класами. Проектування атрибутів та операцій. Пакетування класів.
Діаграми класів та патерни проектування. Структура патернів. Класифікація патернів: породжуючі, структурні, поведінкові.
Використання діаграм класів для кодогенерації. Кодогенерація та реінженіринг.
Платформа .NET. Основні складові частини CLI. Середовище виконання .NET. Загальна система типів CTS.
Поняття керованого коду. .NET-компіляція. Міжмовна інтеграція у .NET.
Метадані. Самоопис керованого коду .NET. Механізм рефлексії.
Мова CIL. JustInTime (JIT) компіляція.
Платформа .NET. Збірки .NET.
Платформа .NET. Управління пам'яттю. Збирання сміття.
Типи об'єктів для віддаленої взаємодії. Домени. Типи marshal-by-value. Серіалізація. Типи marshal-by-reference.
Серверна активізація. Режими Singleton та SingleCall. Клієнтська активізація.
Канали. Стандартні типи каналів: TcpChannel та HttpChannel. Конфігурування інфраструктури .NETRemoting: програмне; з використанням конфігураційних файлів.
Основи управління часом життя об'єктів .NET.
Веб-служби (Web Services) та сервісно-орієнтована архітектура (СОА). Стандарти веб-служб.
Документування веб-служб: генерація документації для сприйняття людиною (з використанням веб-браузерів), генерація документації, орієнтованої на використання програмами – wsdl-файли.
Розробка веб-служб на платформі .NET. Директива @ WebService. Тест-форми веб-служб. Утиліта .NET WebService Studio як універсальний клієнт.
Розробка веб-служб на платформі Java.
Розробка клієнтських програм для веб-служб на платформі .NET. Утиліта Wsdl.exe.
Розробка клієнтських програм для веб-служб на платформі Java.
Структура wsdl-файлів. Оркестровка Web-сервісів. BPEL (BPEL4WS – Business Process Execution Language for Web Services). Візуальне проектування BPEL-програм.
Основи архітектури WCF. Кінцеві точки.
Прив’язки WCF. Стандартні прив’язки.
Метадані WCF-служб.
WCF. Behavior.
Режими інстанціації (instance).
WCF
. Підтримка асинхронних викликів. Використання транзакцій.
WCF
. DataContract.
Сумісність служб ASMX та WCF.
REST веб-служби. Ідеологія відповідного архітектурного стилю. JAX-RS (Java API for RESTful Web Services).
REST веб-служби. Приклад проекту із використанням Http Get та Http POSTзапитів.
REST веб-служби. Приклади різних репрезентацій для Http Get запитів. Анотація @Produces.
REST веб-служби. Класи ресурсів та їх використання. Анотації @ApplicationPath, @Path.
REST веб-служби. Форматування ресурсних даних. Анотації @XmlRootElement, @XmlType, @XmlElement.
Спрощена архітектура RMI.Особливості програмування RMI/JRMP-проектів.
“Віддалені” інтерфейси та класи реалізації “віддалених” інтерфейсів. Порівняння RMI/JRMP та RMI/IIOP. “Експортування” об'єктів. Статичний метод ExportObject.
RMI/IIOP-проекти. Використання rmic та orbd.
JNDI
та конкретні служби іменування. Особливості налаштування JNDI.
(JRMP – IIOP) портабельність JavaRMI-проектів.
Сумісність RMI/IIOP- та CORBA-проектів.
Поняття web-проектів. Сервлети. Життєвий цикл сервлетів. GenericServlet. HttpServlet.
Контейнерне управління сервлетами (web-сервери; типи HttpServletRequest, HttpServletResponse; використання декларативних засобів у web-проектах; дескрипторний файл web.xml, анотація @WebServlet.
Сервлетні об'єкти їх особливості та використання (отримання HTTP-сторінок; використання HTTP-get та HTTP-post команд у web-проектах; singleton-властивість сервлетних об'єктів; особливості підтримки клієнтських сесій; класи HttpSession, Cookie; JSESSIONID-cookie).
Web-проект для спрощеної моделі електронного магазину.
Java Server Pages (JSP), їх особливості та використання (трансляція у сервлети;
виклики JSP із браузера та сервлетів, "перенаправлення" запитів JSP-сторінці; використання MVC-архітектури при web-проектуванні та роль JSP у ній).
Основи Action-orientedFrameworks: диспетчерський сервлет, mapping, action-класи.
Використання технології action-класів у web-проектуванні. Приклад.
Struts,
WebWork,Spring як приклади Action-орієнтованих фреймворків.
ASP.NET
-проекти. Життєвий цикл сторінок.
Структура ASP.NET-проектів та їх розробка. Використання технології відокремлення коду. Засоби візуального проектування, управляючі елементи (контроли). Валідація даних.
Проблеми postback-запитів та можливості збереження стану сторінок. Сховані поля ASP.NET-проектів. Використання ViewState та ControlState. Можливості використання Cookie, Session- та Application-контейнерів.
Знайомство з AJAX на модельному проекті електронного магазину.
Засоби ASP.NET AJAX Extensions.
Приклад Java-проекту з AJAX на основі JSP та сервлетів.
Фреймворк Google Web Toolkit (GWT).
AJAX
-проекти із використанням GWT.
Розробка Android-програм. Android Developer Tools, Android SDK Manager, Virtual Device Manager. Архітектура Android OS. Розробка клієнтів веб-служб на платформі Android.
Можливості візуального проектування програм під Android OS. Активності (activities) та розмітки (layouts). Віджети. Програмне оперування віджетами. Приклад.
Android OS
. Управління активностями. Передача даних в іншу активність. Динамічне наповнення активності віджетами. Приклад.
Хмарні обчислення. Класифікація хмарних сервісів (Platform as a Service, Infrastructure as a Service, Software as a Service). Платформа Microsoft Azure.