- •Лекція 0. Вступ. Цілі, завдання і місце курсу
- •1. Мета викладання курсу
- •2. Завдання вивчення курсу
- •3. Дисципліни, засвоєння яких необхідне при вивченні курсу
- •4. Характеристика курсу
- •5.1. Література
- •5.2. Інформаційні ресурси мережі Інтернет
- •Лекція 1. Введення у технологію програмування
- •1. Термінологія індустрії ПЗ
- •1.1. Програмування
- •1.2. IT-проекти
- •1.3. Програми і програмне забезпечення (програмні продукти)
- •2. Бізнес і IT-проекти. Ринок ПЗ.
- •3. Про предмет
- •5. Виникнення Технології розробки ПЗ
- •5.1. Коротка історія програмування
- •5.2. Терміни “Технологія”, “Методологія” і “Програмна інженерія”
- •5.3. Стратегії розробки ПЗ
- •6. Огляд технологій програмування
- •6.1. Структурне програмування
- •6.2. Модульне програмування
- •6.4. Компонентне програмування
- •6.5. Висновки з лекції
- •Лекція 2. Елементи програмної інженерії
- •1. Програмна інженерія, основні поняття
- •1.1. Інженери і програмні інженери
- •1.2. Програмна інженерія як інженерна дисципліна
- •1.3. Область дії програмної інженерії
- •2. Цілі програмних інженерів
- •2.1. Поняття “якості” програмного продукту
- •2.2. Створення ПЗ повинно вкладатися до бюджету
- •2.3. Створення ПЗ повинно вкладатися в терміни
- •3. Забезпечення надійності розробки ПЗ
- •3.1. Забезпечення точності інтерпретації
- •3.2. Подолання бар'єру між користувачем і розробником
- •3.3. Контроль ухвалюваних рішень
- •3.4. Програмні інженери і наукове середовище
- •4. Складність програмної системи
- •4.1. Методи боротьби зі складністю
- •5. Моделі якості процесів розроблення ПЗ
- •Лекція 3. Організація технологічного процесу розробки ПЗ
- •1. Процес створення програмного забезпечення
- •1.1. Основні стадії типового процесу створення ПП
- •2. Життєвий цикл та моделі процесу розробки ПЗ
- •2.1. Каскадна модель (Waterfall model)
- •2.2. Макетування (прототипіювання)
- •2.3. Інкрементна модель
- •2.4. Модель Швидкої Розробки (RAD)
- •2.5. Спіральна модель
- •3. “Важкі” і “полегшені” процеси
- •4. ХР-процесс
- •Лекція 4. Оцінка програмного проекту по СОСОМО
- •1. Процес управління проектом
- •1.1. Початок проекту
- •1.2. Оцінювання, заходи і метрики
- •1.3. Процес оцінки
- •1.4. Аналіз ризиків
- •1.5. Планування
- •1.6. Трасування і контроль
- •2. Планування проектних завдань
- •3. Розмірно-орієнтовані метрики
- •4. Функціонально-орієнтовані метрики
- •5. Оцінка проекту на основі LOC- і FP-метрик
- •Лекція 5. Проектування програмних систем
- •1. Особливості процесу синтезу програмних систем
- •2. Особливості етапу проектування
- •3. Структуризація системи
- •4. Моделювання управління
- •5. Декомпозиція підсистем на модулі
- •6. Модульність
- •7. Інформаційна закритість
- •8. Зв'язність модуля
- •8.1. Функціональна зв'язність
- •8.2. Інформаційна зв'язність
- •8.3. Комунікативна зв'язність
- •8.4. Процедурна зв'язність
- •8.5. Часова зв'язність
- •8.7. Випадкова Зв'язність
- •8.8. Визначення зв'язності модуля
- •9. Зчеплення модулів
- •10. Складність програмної системи
- •11. Характеристики ієрархічної структури програмної системи
- •Лекція 6. ПОБУДОВА АРХІТЕКТУРИ ПП
- •1. Поняття архітектури програмного засобу.
- •2. Основні принципи проектування архітектури
- •3. Основні питання архітектора ПП
- •4. Архітектурні стилі (шаблони) ПП
- •5. Поєднання архітектурних стилів
- •6. Основні класи архітектур ПП
- •6.1. Цілісна програма
- •6.2. Архітектура ППП
- •6.3. Архітектура, заснована на шині повідомлень
- •6.4. Архітектура клієнт/сервер
- •6.6. Багатошарова архітектура
- •6.8. Компонентна архітектура
- •6.10. Сервісно-орієнтована архітектура
- •7. 4. Контроль архітектури ПП
- •Лекція 7. Розробка Програм, Модульне Програмування
- •1. Поняття модульного програмування
- •1.1. Основні характеристики програмного модуля.
- •1.2. Методи розробки структури програми.
- •1.3. Контроль структури програми.
- •2. Розроблення програмних модулів
- •2.1. Порядок розробки програмного модуля
- •2.2. Структурне програмування модуля
- •2.3. Покрокова деталізація і поняття про псевдокод.
- •Лекція 8. Тестування і відлагодження ПЗ
- •1. Основні поняття тестування і відлагодження
- •2. Основні підходи і принципи відлагодження.
- •2.1. Заповіді відлагодження.
- •2.2. Автономна відладка модулів
- •2.3. Проміжна відладка програмного засобу
- •2.4. Комплексна відладка програмного засобу.
- •3. Організація процесу тестування ПЗ
- •3.1. Тестування елементів
- •3.2. Інтегральне Тестування ПП
- •3.3. Низхідне тестування інтеграції
- •3.4. Висхідне тестування інтеграції
- •3.5. Порівняння низхідного і висхідного тестування інтеграції
- •4. Види Тестування
- •4.1. Тестування правильності
- •4.2. Системне тестування
- •4.3. Тестування відновлення
- •4.4. Тестування безпеки
- •4.5. Стресове тестування
- •4.6. Тестування продуктивності
Лекція 6. Побудова архітектури та структури ПЗ.
Основне завдання сервісів в SOA – надання схеми і взаємодії із застосуванням за допомогою повідомлень через інтерфейси, областю дії яких є застосування, а не компонент або об'єкт. Не слід розглядати SOA-сервіс як компонентний постачальник сервісів.
SOA-архітектура може забезпечити упаковку бизнес-процессов в сервіси, що підтримують можливість взаємодії і що використовують для передачі інформації широкий діапазон протоколів і форматів даних. Клієнти і інші сервіси можуть виконувати доступ до локальних сервісів, що виконуються на тому ж рівні, або до видалених сервісів по мережі.
Основними принципами архітектурного стилю SOA є:
Сервіси автономні. Обслуговування, розробка, розгортання і контроль версій кожного сервісу відбувається незалежно від інших.
Сервіси можуть бути розподілені. Сервіси можуть розміщуватися в будь-якому місці мережі, локально або видалено, якщо мережа підтримує необхідні протоколи зв'язку.
Сервіси слабо зв'язані. Кожен сервіс абсолютно не залежить від останніх і може бути замінений або оновлений без впливу на застосування, що його використовують, за умови надання сумісного інтерфейсу.
Сервіси спільно використовують схему і контракт, але не клас. При обміні даними сервіси спільно використовують контракти і схеми, але не внутрішні класи.
Сумісність заснована на політиці. Політика, в даному випадку, означає опис характеристик, таких як транспорт, протокол і безпека.
Типові сервісно-орієнтовані ПП забезпечують сумісне використання інформації, виконання багатоетапних процесів (системи резервування і онлайн-магазины), надання спеціальних галузевих даних або сервісів між організаціями і створення складених застосувань, які об'єднують дані з багатьох джерел.
Основними перевагами SOA-архітектури є:
Узгодження наочних областей. Повторне використання загальних сервісів із стандартними інтерфейсами розширює технологічні і бизнес-возможности, а також скорочує вартість.
Абстракція. Сервіси є автономними, доступ до них здійснюється по формальному контракту, що забезпечує слабке скріплення і абстракцію.
Можливість виявлення. Сервіси можуть надавати описи, що дозволяє іншим застосуванням і сервісам виявляти їх і автоматично визначати інтерфейс.
Можливість взаємодії. Оскільки протоколи і формати даних грунтуються на галузевих стандартах, постачальник і споживач сервісу можуть створюватися і розгортатися на різних платформах.
Раціоналізація. Сервіси забезпечують певну функціональність, усуваючи необхідність її дублювання в застосуваннях.
7. 4. Контроль архітектури ПП
Для контролю архітектури ПП використовується суміжний контроль і ручна імітація.
Суміжний контроль архітектури ПЗ зверху - це її контроль розробниками зовнішнього опису: розробниками специфікації якості і розробниками функціональної специфікації. Суміжний контроль архітектури ПЗ знизу - це її контроль потенційними розробниками програмних підсистем, що входять до складу ПЗ відповідно до розробленої архітектури.
Ручна імітація архітектури ПЗ проводиться аналогічно ручній імітації функціональної специфікації, тільки метою цього контролю є перевірка взаємодії між програмними підсистемами. Так само як і у разі ручної імітації функціональної специфікації ПЗ повинні бути спочатку підготовлені тести. Потім група розробників винна для кожного такого тесту імітувати роботу кожної програмної підсистеми, що входить до складу ПЗ. При цьому роботу кожної підсистеми імітує один який-небудь розробник (не автор архітектури), ретельно виконуючи всі взаємодії цієї підсистеми з
69
Лекція 6. Побудова архітектури та структури ПЗ.
іншими підсистемами (точніше, з розробниками, що їх імітують) відповідно до розробленої архітектури ПЗ. Тим самим забезпечується імітаційне функціонування ПЗ в цілому в рамках архітектури, що перевіряється.
70
