Програмні платформи інформаційно-комунікаційних систем

Спеціальність: Інформаційно-комунікаційні системи
Код дисципліни: 6.126.02.E.90
Кількість кредитів: 5.00
Кафедра: Телекомунікації
Лектор: д.т.н., доц. Демидов І.В.
Семестр: 5 семестр
Форма навчання: денна
Результати навчання: Результати навчання даної дисципліни деталізують такі програмні результати навчання: • Застосовувати знання фундаментальних і природничих наук, системного аналізу та технологій моделювання, стандартних алгоритмів та дискретного аналізу при розв’язанні задач проектування і використання інформаційних систем та технологій; • Використовувати базові знання інформатики й сучасних інформаційних систем та технологій, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет-ресурсів, технології розроблення алгоритмів і комп’ютерних програм мовами високого рівня із застосуванням об’єктно-орієнтованого програмування для розв’язання задач проектування і використання інформаційних систем та технологій; • Проводити системний аналіз об’єктів проектування та обґрунтовувати вибір структури, алгоритмів та способів передачі інформації в інформаційних системах та технологіях; • Аргументувати вибір програмних та технічних засобів для створення інформаційних систем та технологій на основі аналізу їх властивостей, призначення і технічних характеристик з урахуванням вимог до системи і експлуатаційних умов; мати навички налагодження та тестування програмних і технічних засобів інформаційних систем та технологій; • Демонструвати знання сучасного рівня технологій інформаційних систем, практичні навички програмування та використання прикладних і спеціалізованих комп’ютерних систем та середовищ з метою їх запровадження у професійній діяльності; • Обґрунтовувати вибір технічної структури та розробляти відповідне програмне забезпечення, що входить до складу інформаційних систем та технологій. В результаті вивчення дисципліни, фахівець повинен знати: • особливості об’єктно-орієнтованого та функціонального програмування телекомунікаційних системних платформ (інфокомунікаційних систем); • основні підходи до створення розподіленої сервісної архітектури, зокрема крос-платформної; • основи розроблення, налагодження та підтримки ефективних інфокомунікаційних програмних рішень на основі застосування мов паралельного програмування у складних розподілених інфокомунікаційних системних платформах; • мови і алгоритми програмування; операційні системи та мережні технології; комп’ютерні методи збору, оброблення, аналізу, передавання та зберігання інформації; методи і засоби розподілених систем та паралельних обчислень; • методи та засоби інформаційних технологій; технології та інструменти розроблення інформаційних систем у різних галузях економіки; • математичні методи, комп’ютерні моделі, мови моделювання та програмні інструменти для виконання практичних завдань з даної спеціальності; • інформаційні технології для розв’язування завдань класифікації, розроблення, розгортання та експлуатації різноманітних інформаційних систем і їх складових. Підготовлений фахівець повинен вміти: • обирати найбільш ефективну програмну платформу для реалізації необхідного інфокомунікаційного рішення за критеріями ефективності/надійності; • застосовувати навички паралельного програмування розподілених інфокомунікаційних платформ та крос-платформних систем; • створювати розподілені клієнт-серверні рішення інфокомунікаційного призначення; • інтегрувати неоднорідні технології системного програмування в єдиній інфокомунікаційній програмній платформі із застосуванням СУБД; • формулювати нові завдання та ідеї в області інтелектуальних інформаційних технологій, обирати належні напрями і відповідні методи для їхнього розв’язання; • застосовувати методи та засоби сучасних інформаційних технологій для проектування, розроблення та розгортання прикладних інформаційних систем в різних галузях; • застосовувати методи та засоби сучасних інформаційних технологій для моделювання, проектування та розроблення комунікаційних систем, Web-орієнтованих систем, смарт систем, сенсорних систем, вбудованих систем, мікро- /нано- систем та їх аналогів; • розгортати, адмініструвати та супроводжувати інформаційні системи на основі мережних технологій та вміння розробляти технічну документацію; • розробляти функціональні середовища з застосуванням відкритих систем, інтерфейсів прикладного програмування, прикладних програм і додатків з властивостями: розширюваності, масштабованості, інтероперабельності, інтегрованості та надійності.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни: Операційні системи; Алгоритмізація та програмування; Системне програмування. Супутні і наступні навчальні дисципліни: Web-орієнтовані інформаційні системи; Проектування підсистеми інформаційної безпеки; Практикум з розробки програмних платформ інформаційно-комунікаційних систем; Технології програмування інформаційних систем.
Короткий зміст навчальної програми: В даний час апаратні та програмні платформи і технології стрімко розвиваються, безперервно з'являються все нові і нові можливості. У той же час, існує відома тенденція до інтероперабельності (interoperability) платформ і забезпечення сумісності технологій. У межах цієї дисципліни розглядаються основні тенденції цього розвитку. Вивчивши навчальний матеріал цього курсу, студенти дізнаються або доповнять свої знання про те, які існують на сьогоднішній день основні програмні і апаратні платформи, архітектурні особливості їх реалізації; дізнаються або доповнять свої знання про основні крос платформні технології (зокрема технології CORBA, SOAP, COM/DCOM, .NET, EJB, JINI, Web-технології тощо), мову IDL, особливості прикладного використання технології Enterprise Java Beans, технології JNDI, мережного протоколу LDAP. Увесь курс побудований на основі розгляду конкретних прикладів. В межах власне лекційного курсу розглядаються наступні питання: • Основні програмні платформи і технології: основні апаратні і програмні платформи; архітектура процесора; платформи Microsoft (Windows NT / XP / ...); крос-платформні технології. • Технології: CORBA; SOAP; COM / DCOM і .NET 8; Enterprise Java Beans; JINI 10. • Web-технології; CGI-скрипти; спеціальні інтерпретовані мови скриптів. • Аплети; Сервлети. • Технологія CORBA: основи технології CORBA; архітектура CORBA. • Мова IDL: зв'язування з IDL; cтворення CORBA-систем; приклади. • Java Stored Procedures. • Додаток: словник термінів CORBA 71. • Технологія Enterprise Java Beans. Частина 1: історія і необхідність появи EJB; загальний опис архітектури EJB; сеансові компоненти; приклади. • Технологія Enterprise Java Beans. Частина 2: об'єктні компоненти; приклади; компоненти, керовані повідомленнями. • Механізм транзакцій в EJB. • Безпека в EJB. • Приклад: обмеження доступу до методів EJB. • JNDI і додатки: JNDI. Загальні зведення про JNDI. Приклад: використання JNDI для доступу до DataSource. • Загальні відомості про LDAP. Приклад: система авторизації користувачів на основі LDAP. • Особливості установлення і налаштування програмного забезпечення: установка бази даних Oracle 9i; установка Eclipse-WTP; установка XDoclet. • Безпека програмних платформ Java і .NET.
Методи та критерії оцінювання: Під час навчання студенти виконують лабораторний практикум, що містить десятки різноманітних практично-орієнтованих завдань, розв’язання яких вимагає вагомої теоретичної підготовки відповідно до цієї програми. Оцінювання результатів виконання лабораторних робіт передбачене в якості основної форми поточного контролю. Передбачене також бліц-тестування на лекційних та лабораторних заняттях. Оцінювання результатів виконання індивідуального науково-дослідного завдання шляхом їх захисту дозволяє мотивувати студентів з метою більш якісного навчання та отримання додаткових балів. Семестровий екзаменаційний контроль проводиться в письмовій формі на основі розробленого комплекту екзаменаційних білетів, який затверджується на відповідному засіданні кафедри.
Рекомендована література: 1. Томпсон С., Чезарини Ф. Программирование в Erlang / Пер. с англ. Холомьёва А. О. - М.: ДМК Пресс, 2012. - 488 с.: ил. (Серия "Функциональное программирование"). 2. Armstrong J. Programming Erlang. Software for a Concurrent World. Dallas, TX: The Pragmatic Bookshelf, 2007. – 519 pp.: illustrated. 3. Фримен А. Pro .NET 4 Parallel Programming in C#. М.: Apress, 2010. – 328 c.: ил. 4. Neward T. Server-Based Java Programming. Grinwich: Manning, 2013. – 556 pp. 5. В.В. Кулямин. Технологии программирования. Компонентный подход. М.: Бином, 2014. – 464 с. 6. И. Соммервилл. Инженерия программного обеспечения. М.: Вильямс, 2002. 7. Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. Второе издание. М.: Бином, СПб.: Невский диалект, 2000. 8. У. Ройс. Управление проектами по созданию программного обеспечения. М.: Лори, 2002. 9. А. Якобсон, Г. Буч, Дж. Рамбо. Унифицированный процесс разработки программного обеспечения. СПб.: Питер, 2002. 10. К. Бек. Экстремальное программирование. СПб.: Питер, 2002. 11. E. Yourdon. Modern Structured Analysis. Prentice Hall, 1988. 12. T. DeMarco. Structured Analysis and System Specification. A Yourdon Book, Yourdon Inc., NY, 1979. 13. C. Sarson, T. Gane. Structured Systems Analysis. Englewood Cliffs, NJ.: Prentice-Hall, 1979.