
- •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.4. Тематичний план лекцій.
Питання, які вивчаються на заняттях |
Змістовний модуль 1 |
Загальне визначення дисциплін програмної інженерії. |
Характеристика областей знань з інженерії програмного забезпечення – SWEBOK. |
Характеристика життєвого никлу стандарти 1SO/IEC 12207. |
Формування прикладних моделей життєвого циклу. |
Типи моделей життєвого циклу. Каскадна модель. Інкрементна модель. |
Спіральна модель. Еволюційна модель. |
Загальні підходи до визначення вимог. Класифікація вимог. Аналіз і збирання вимог. |
Інженерія вимог. Фіксація вимог. Трасування вимог. |
Об'єктно-орієнтована інженерія вимог. |
Візуальний підхід. |
Текстовий підхід. |
Методи об’єктного аналізу і моделювання. |
Огляд об'сктно-орієнтованих методів аналізу і побудови моделей. |
Основні поняття об'єктно-орієнтованих методів аналізу. |
Метод побудови об'єктної моделі предметної області. |
Проектування архітектури програмних систем. |
Загальні підходи до проектування програмних систем. |
Проектування різних видів архітектур програмних систем. |
Змістовний модуль 2 |
Прикладне (систематичне) програмування. |
UML-метод моделювання. |
Теоретичне програмування. |
Мови специфікації програм. Класифікація. |
Методи доведення правильності програм. Базові методи доведення. Модель доведення програми за твердженнями. |
Тестування програмних систем. Статичні методи тестування. Динамічні методи тестування. Функціональне тестування. |
Визначення інтерфейсуу програмуванні. Інтерфейс в ООП і в сучасних середовищах. Інтерфейс між клієнтом і сервером. |
Інтерфейс мов програмування. Інтерфейс і взаємозв'язок мов програмування. Взаємодія різномовних програм. Стандарт 1SO/IEC 11404-96 з незалежних від мов типів даних. |
Методи еволюційного змінювання компонентів і систем |
Прикладна інженерія та інженерія предметної області. Прикладна інженерія. |
Оцінювання вартості системи з компонентів. |
Модель якості програмних систем. |
Моделі оцінки надійності програмних систем. |
Сертифікація програмного продукту. |
Менеджмент проекту. Основні поняття та задачі. |
Методи керування і планування проектом. |
Методи керування ризиками у проекті. |
7.5. Тематичний план лабораторних робіт.
Питання, які вивчаються на заняттях |
Змістовний модуль 1 |
Пошук нормативно правової інформації за фахом. |
Візуальні технологія розробки гіпертекстових сторінок |
Колективна розробка програмного забезпечення |
Змістовний модуль 2 |
UML-метод моделювання |
Тестування програмних систем |
Інтерфейс і взаємозв'язок мов програмування. |
Методи керування і планування програмним проектом |