
- •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. Перелік стандартів програмної інженерії
1.4.7. Керування інженерією програмного забезпечення
Керування інженерією ПЗ (Software Engineering Management) - керування роботами команди розробників ПЗ у процесі виконання плану проекту, визначення критеріїв ефективності роботи цієї команди й оцінка процесів і продуктів проекту з використанням загальних методів планування і контролю робіт.
Як будь-яке керування, воно полягає у плануванні, координації, контролі, вимірі й обліку виконаних робіт у процесі розроблення програмного проекту. Координацію людських, фінансових і технічних ресурсів виконує менеджер проекту аналогічно до того, як це робиться в технічних проектах. У його обов'язки входить дотримання запланованих бюджетних і часових характеристик і обмежень, стандартів і сформульованих вимог.
Загальні питання керування проектом містяться в ядрі знань РМВОК [14], а також у стандарті ISO/IEC 12207 - Software life cycle processes, де керування проектом розглядається як організаційний процес ЖЦ.
Область знань, «Керування інженерією ПЗ (Software Engineering Management)» складається з таких розділів:
- організаційне керування (Organizational Management),
- керування процесом/проектом (Process/Project Management),
- інженерія вимірювання ПЗ (Software Engineering Measurement).
Організаційне керування - це планування і складання графіка робіт, підбір і керування персоналом, контроль виконання й оцінка вартості робіт згідно з прийнятими стандартами і договорами з замовником. Головним об'єктом організаційного керування проектом є персонал (навчання, мотивація й ін.), комунікації між співробітниками (зустрічі, презентації й ін.), а також попередження й усунення ризику невиконання проекту. Для керування проектом створюється спеціальна структура колективу. Фахівці розподіляються за видами робіт і розв'язують задачі проекту під керуванням менеджера з урахуванням заданої вартості і термінів розробки. Для реалізації задач проекту підбираються необхідні програмні, інструментальні й апаратні засоби.
Керування проектом/процесом - це складання плану проекту, побудова графіків робіт (мережних або часових діаграм) з урахуванням наявних ресурсів, розподіл персоналу за видами робіт у проекті, виходячи з заданих термінів і вартості їх виконання. Для ефективного керування проектом проводиться аналіз фінансової, технічної, операційної і соціальної політики організації-розробника для вибору правильної стратегії виконання робіт і контролю плану, а також проміжних продуктів (проектних рішень, діаграм UML, алгоритмів і ін.).
У задачі керування проектом входять також уточнення вимог, перевірка їх відповідності заданим специфікаціям характеристик якості, а також верифікація функцій проекту. Процес керування базується на планових термінах, що відображені мережними діаграмами PERT (Program Evaluation and Review Technique), CPM (Critical Path Method). У них указуються роботи, зв'язки між ними і час виконання.
На сьогоднішній день найбільш поширена мережна діаграма PERT - граф, у вершинах якого розміщуються роботи, а дуги задають взаємні зв'язки між цими роботами. Інший тип мережної діаграми - СРМ - є становим. У його вершинах указують події, а роботи задають лініями між двома вузлами-подіями. Очікуваний час виконання робіт за допомогою мережних діаграм оцінюється середнім ваговим значенням трьох оцінок: оптимістичної, песимістичної й очікуваної, тобто імовірнісної. Ці оцінки надають експерти, що враховують обсяги виконаної роботи і відведений на неї час.
Коректно складений план забезпечує виконання вимог і цілей проекту. Контроль здійснюється при виконанні і внесенні змін у проект з урахуванням ризиків і прийнятих рішень щодо їх мінімізації.
Під ризиком розуміють імовірність виникнення несприятливих обставин, що можуть негативно вплинути на керування розробкою (наприклад, звільнення співробітника і відсутність заміни для продовження робіт і ін.). При складанні плану проекту проводиться ідентифікація й аналіз ризику, планування непередбачених ситуацій щодо ризиків. Запобігання ризику полягає у виконанні дій, що знімають ризик (наприклад, збільшення часу розробки й ін.). Причиною появи ризику може бути реорганізація проекту, БД або транзакцій, а також помилки при виконанні ПЗ.
Інженерія вимірювання ПЗ проводиться з метою визначення окремих характеристик продуктів і процесів (наприклад, кількість рядків у продукті, помилок у специфікаціях і т.п.). Попередньо проводяться роботи з вибору метрик процесів і продуктів з урахуванням обставин, що впливають на вимірювання характеристик програмного продукту.
Інженерії вимірювання - удосконалювання процесів керування проектом; оцінювання часових витрат і вартості ПЗ, їх регулювання; визначення категорій ризиків і відстеження чинників для регулярного розрахунку ймовірностей їх виникнення; перевірка заданих у вимогах показників якості окремих продуктів і проекту в цілому [9].
Проведення різного роду вимірювань - важливий принцип будь-якої інженерної діяльності. У програмному проекті результати вимірювань необхідні замовнику і споживачу для встановлення правильності реалізації проекту. Без вимірювані, в інженерії ПЗ процес керування стає неефективним і перетворюється в самоціль.