- •1. Основи програмної інженерії.
- •1.1. Програмна інженерія в історичному аспекті.
- •1.2. Програмна інженерія як дисципліна.
- •1.3. Swebok: Керівництво до зводу знань з програмної інженерії.
- •1.4. Структура і зміст swebok.
- •1.4.1. Інженерія вимог
- •1.4.2. Проектування програмного забезпечення
- •1.4.3. Конструювання програмного забезпечення
- •1.4.4. Тестування програмного забезпечення
- •1.4.5. Супровід програмного забезпечення
- •1.4.6. Керування конфігурацією
- •1.4.7. Керування інженерією програмного забезпечення
- •1.4.8. Процес інженерії
- •1.4.9. Методи і інструменти інженерії
- •1.4.10. Якість програмного забезпечення
- •Контрольні питання і завдання
- •2. Характеристика життєвого циклу стандарта iso/iec 12207.
- •Контрольні питання і завдання
- •3. Формування прикладних моделей життєвого циклу
- •Контрольні питання і завдання
- •4. Вимоги до програмних систем.
- •4.1. Загальні підходи до визначення вимог
- •Контрольні питання і завдання
- •5. Методи програмування.
- •5.1. Прикладне (систематичне) програмування
- •5.1.1 Структурне програмування
- •5.1.2. Об'єкт но-орієнтоване програмування
- •5.1.4. Компонентне програмування
- •5.1.5. Аспектно-орієнтоване програмування
- •5.1.6. Генерувальне (порождувальне) програмування
- •5.1.7. Сервісно-орієнтоване програмування
- •5.1.8. Агенте програмування
- •5.2. Теоретичне програмування
- •5.3. Контрольні питання і завдання
- •6. Оптимізація програм
- •6.1 Основні поняття.
- •6.2. Призначення і цілі оптимізації
- •6.3. Проміжна мова
- •6.4. Елементи топології програми
- •6.4.1. Блок (лінійна ділянка)
- •6.4.2. Сильно зв'язана область
- •6.5. Способи оптимізації
- •6.5.1. Розвантаження ділянок повторюваності
- •6.5.2. Скорочення глибини операції
- •6.5.3. Спрощення дій
- •6.5.3.1. Видалення індуктивних змінних і виразів
- •6.5.3.2. Заміна складних операцій на більш прості
- •6.5.3.3 Виключення надлишкових виразів
- •6.5.3.4 Інші перетворення
- •6.5.4. Реалізація дій
- •6.5.5. Підстановка (згортання)
- •6.5.6. Чищення програми
- •6.5.6.1. Усунення ідентичних операторів
- •6.5.6.2. Заміна змінних в операторах умовного переходу і усунення невикористовуваних визначень.
- •6.5.6.3. Усунення марних операторів і змінних
- •6.5.7. Економія пам'яті
- •6.5.8. Скорочення програми
- •6.5.9. Вставка псевдоблоку
- •7. Навчально-методичні рекомендації до вивчення дисцілини «Основи програмної інженерії.»
- •7.1. Анотація навчальної дісциплини. Галузь знань – 0501 «Інформатика та обчислювальна техника» Напрям підготовки - 6.050103 «Програмна інженерія»
- •7.2. Необхідність та задачі навчальної дісциплини. Ії місце в учбовому процесі.
- •7.3. Тематичний план курсу.
- •7.4. Тематичний план лекцій.
- •7.5. Тематичний план лабораторних робіт.
- •7.6. Тематичний план практичних робіт.
- •7.7. Тематичний план самостійної роботи студентів.
- •7.8. Питання для підсумкового контролю.
- •7.9. Структура залікового кредиту навчальної дисципліни
- •7.3. Структура модулів дисципліни
- •7.10. Система критеріїв оцінювання знань відповідно до кожного модуля дисципліни
- •Література
- •Список літератури до розділу 2
- •Додаток 1. Термінологічний словник
- •Додаток 2. Перелік стандартів програмної інженерії
7.3. Тематичний план курсу.
№ |
Назва теми та її зміст |
|
Змістовний модуль 1 |
1 |
ДИСЦИПШИ ПРОГРАМНОЇ ІНЖЕНЕРІЇ 1 ОБЛАСТІ ЯДРА ЗНАНЬ - SWEBOK. Загальне визначення дисциплін програмної інженерії. Програмна інженерія як наукова дисципліна. Програмна інженерія як інженерна дисципліна. Програмна інженерія як виробнича дисципліна. Дисципліна керування. Економічна дисципліна.
Характеристика областей знань з інженерії програмного забезпечення – SWEBOK. Інженерія вимог. Проектування програмного забезпечення. Конструювання програмного забезпечення. Тестування програмного забезпечення. Супровід програмного забезпечення. Керування конфігурацією. Керування інженерією програмного забезпечення. Процес інженерії. Методи і інструменти інженерії. Якість програмного забезпечення. |
2 |
СТАНДАРТ І МОДЕЛІ ЖИТТЄВОГО ЦИКЛУ. Характеристика життєвого никлу стандарти 1SO/IEC 12207. Формування прикладних моделей життєвого циклу. Типи моделей життєвого циклу. Каскадна модель. Інкрементна модель. Спіральна модель. Еволюційна модель. |
3 |
АНАЛІЗ ТА ВИЗНАЧЕННЯ ВИМОГ ДО ПРОГРАМНИХ СИСТЕМ. Загальні підходи до визначення вимог. Класифікація вимог. Аналіз і збирання вимог. Інженерія вимог. Фіксація вимог. Трасування вимог. Об'єктно-орієнтована інженерія вимог. Візуальний підхід. Текстовий підхід. |
4 |
МЕТОДИ ОБ'ЄКТНОГО АНАЛІЗУ І МОДЕЛЮВАННЯ. Огляд об'сктно-орієнтованих методів аналізу і побудови моделей. Основні поняття об'єктно-орієнтованих методів аналізу. Метод побудови об'єктної моделі предметної області. Проектування архітектури програмних систем. Загальні підходи до проектування програмних систем. Проектування різних видів архітектур програмних систем. |
|
Змістовний модуль 2 |
5 |
ПРИКЛАДНІ Й ТЕОРЕТИЧНІ МЕТОДИ ПРОГРАМУВАННЯ. Прикладне (систематичне) програмування. Структурне програмування. Об'єктно-орієнтоване програмування. UML-метод моделювання. Компонентне програмування. Аспектно-орієнтоване програмування. Генерувальне (порождувальне) програмування. Сервісно-оріентоване програмування. Агентне програмування Теоретичне програмування. Алгебраїчне та інсерційне програмування. Ексіїлікативне, номінативне програмування. Алгоритмічні алгебри. |
6 |
МЕТОДИ ДОВЕДЕННЯ, ВЕРИФІКАЦІЇ І ТЕСТУВАННЯ ПРОГРАМ. Мови специфікації програм і їхня класифікація. Мова формальної специфікацій – VDM. Мова формальної специфікації-RAISE. Концепторна мова специфікації. Звичайна мова специфікації Spec#. Методи доведення правильності програм. Базові методи доведення. Модель доведення програми за твердженнями. Верифікація і валідація програм. Підхід до валідації сценарію вимог. Верифікація об'єктних моделей. Підхід до верифікації композиції компонентів. Загальні перспективи верифікації програм. Тестування програмних систем. Статичні методи тестування. Динамічні методи тестування. Функціональне тестування. Інфраструктура перевірки правильності програмних систем. Класифікація помилок і методи їхнього пошуку. Процес тестування за життєвим циклом. Інженерія керування тестуванням. |
7 |
ІНТЕРФЕЙСИ, ВЗАЄМОДІЯ, ЕВОЛЮЦІЯ ПРОГРАМ І ДАНИХ. Визначення інтерфейсуу програмуванні. Інтерфейс в ООП і в сучасних середовищах. Інтерфейс між клієнтом і сервером. Інтерфейс мов програмування. Інтерфейс і взаємозв'язок мов програмування. Взаємодія різномовних програм. Стандарт 1SO/IEC 11404-96 з незалежних від мов типів даних. Перетворення даних за інтерфейсом. Перетворення форматів даних. Перетворення даних баз даних. Методи еволюційного змінювання компонентів і систем. Реінженерія програмних систем. Рефакторінг компонентів. Реверсна інженерія. |
8 |
ІНЖЕНЕРІЯ ВИРОБНИЦТВА ПРОГРАМНИХ ПРОДУКТІВ. Інженерія компонентів повторного використання. Специфікація КПВ. Репозітарій компонентів. Мова опису інтерфейсу компонентів. Прикладна інженерія та інженерія предметної області. Прикладна інженерія. Інженерія сімейства систем домена. Стандартизація процесів інженерії домену. Інженерія Індустріального виробництва програмних продуктів. Структура лінії виробництва програмних продуктів. Конвеєрне виготовлення систем у середовищі Microsoft. Загальна характеристика інструментів Rational Rose. Засоби підтримки процесу RUP. Середовище розроблення систем – CORBA. JAVA-технологія. Оцінювання вартості системи з компонентів. |
9 |
МОДЕЛІ ЯКОСТІ ТА НАДІЙНОСТІ ПРОГРАМНИХ СИСТЕМ. Модель якості програмних систем. Стандартні показники якості. Метрики якості. Стандартна оцінка показників якості. Керування якістю програмних систем. Моделі оцінки надійності програмних систем. Ґрунтовні поняття проблематики надійності. Класифікація моделей надійності. Маяковські та пуассонівські моделі надійності. Процеси оцінки надійності. Сертифікація програмного продукту. |
10 |
Розділ 10. МЕТОДИ КЕРУВАННЯ ПРОГРАМНИМ ПРОЕКТОМ. Менеджмент проекту. Основні поняття та задачі . Головні цілі менеджменту проекту. Процес менеджменту проекту. Модель процесу керування проектом. Інфраструктура програмного проекту. Методи керування і планування проектом. Метод критичного шляху –СРМ. Метод аналізу й оцінки проекту-PERT. Планування і контроль проекту. Оцінювання вартості проекту. Методи керування ризиками у проекті. Керування конфігурацією системи. Формування версій й контроль конфігурації. Облік статусу й аудит конфігурації. |
