
- •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.8. Процес інженерії
Процес інженерії - є мета рівнем, що визначає основні поняття, способи реалізації, оцінювання, вимірювання, дії з керування змінами й удосконалення самого процесу. Як уже згадувалася в п. 1.1.2., для оцінювання й удосконалення процесу програмної інженерії застосовується модель зрілості СММ [12], яку розроблено Інститутом програмної інженерії SEI (Software Engineering Institute) CLLIA. Ця модель встановлює рівні готовності організації-розробника ПЗ створювати задовільно, середньо, добре і дуже добре програмну продукцію. Поняття рівня готовності визначається наявністю в організації необхідних ресурсів (людських, програмних, технічних і фінансових), стандартів і методик, а також здатністю колективу створювати програмні продукти. Модель СММ має п'ять рівнів. Перший і другий рівні фіксують недостатню готовність виконувати розробку продукту. Третій - п'ятий рівні характеризують певний ступінь готовності, зрілості і здатності фахівців (а, значить, і організації) виготовляти, відповідно, середній, гарний і відмінний продукт. Чим вище рівень зрілості, тим більше вимог ставиться до процесу програмної інженерії, придатного для виконання цілей і задач утворення продукту, що задовольняє користувача.
Існують різновиди цієї моделі: СММ - SW (Software) для оцінки зрілості ПЗ, СММІ (СММ Integrated) - для обліку потреб великих державних структур в ПЗ (СІЛА), а також інші моделі, наприклад, Bootstrap - для оцінки зрілості малих і середніх комерційних компаній, стандарт ISO 15504 (Software Process Improvement and Capability) - для удосконалення процесу (наприклад, удосконалювати процес на другому рівні, щоб одержати сертифікат на третій рівень зрілості).
Концепція зрілості процесу програмної інженерії ґрунтується на процесі ПЗ (software process), широті його можливостей (software process capability), результативності (software process performance) і зрілості (software process maturity). Процес ПЗ у моделі СММ - це множина діяльностей (activities), методів (methods), практичних прийомів (practices), що використовують при розробки ПЗ шляхом планування робіт і оцінювання проміжних результатів, які приводять до кінцевого продукту високої якості.
Область знань «Процес програмної інженерії (Software Engineering Process)» складається з таких розділів:
- концепції процесу інженерії ПЗ (Software Engineering Process Concepts), інфраструктура процесу (Process Infrastructure),
- визначення процесу (Process Definition),
- оцінки процесу (Process Assessments),
- якісний аналіз процесу (Qualitative Process Analysis),
- виконання і змінювання процесу (Process Implementation and Change).
Концепції процесу інженерії ПЗ - задачі і дії, що зв'язані з керуванням, реалізацією, оцінкою, змінами й удосконаленням процесу або ПЗ. Ціль керування процесом - не створення інфраструктури процесу, виділення необхідних ресурсів, планування реалізації і зміни процесу з метою впровадження його у практику і, нарешті, оцінка переваг від його впровадження у практику проектування ПЗ.
Інфраструктура процесу містить у собі ресурси (людські, технічні, інформаційні і програмні), стандарти, методики керування якістю, проектом і структуру колективу розробників ПЗ типу: команда, бригада, експериментальна фабрика (Experimental Factory), каркас виробництва на лінії продуктів (Framework for Product Line Practice) і ін. До основних задач інфраструктури належать керування і комунікації в колективі, інженерні методи виробництва програмного продукту й удосконалення процесу з накопиченим досвідом розробки ПЗ.
Визначення процесу ґрунтується на: типах процесів і моделей (каскадна, спіральна, ітераційна й ін.); моделях ЖЦ процесів і засобів, стандартах ЖЦ ПЗ ISO/IEC 12207 і ISO/IEC 15504, IEEE std. 1074 і IEEE std. 1219; методах і нотаціях подання процесів і автоматизованих засобів їх підтримки. Основною метою процесу є підвищення якості одержуваного продукту, поліпшення різних аспектів програмної інженерії, автоматизація і удосконалення процесів.
Оцінка процесу проводиться з використанням відповідних моделей і методів оцінки. Наприклад, оцінка потенційної здатності фахівця до розроблення і виконання відповідного процесу, а також оцінювання зрілості процесу, згідно за яким проводиться розроблення ПЗ.
Оцінки стосуються також технічних робіт у сфері програмної інженерії, керування персоналом і якості ПЗ. Для цього проводяться експериментальні дослідження середовища, збирання інформації, моделювання, класифікація отриманих помилок і дефектів, а також статичний аналіз недоліків процесу порівняно з існуючими стандартами (наприклад, ISO/IEC 12207) і потенційних аспектів необхідності вдосконалювати процес.
Якісний аналіз процесу полягає в ідентифікації і пошуку «слабких місць» у процесі створення ПЗ на початку його функціонування і після експлуатації. Розглядається дві техніки аналізу: огляд даних і порівняння процесу з основними положеннями стандарту ISO/IEC 12207, збирання даних про якість процесів; аналіз головних причин відмов у функціонуванні ПЗ, відкіт назад від точки виникнення відхилення до точки правильної роботи системи для з'ясування причин зміни процесу. На якість результатів проекту і процесу впливають застосовувані інструменти і досвід фахівців.
Виконання і зміна процесу. Існує ряд фундаментальних аспектів вимірювань в програмній інженерії, що покладені в основу детальних вимірювань процесу. Оцінка вдосконалення процесу проводиться шляхом встановлення кількісних характеристик процесу і продуктів. Після процесу розгортання ПЗ виконуються обчислення функцій і аналіз отриманих результатів, які можуть застосовуватися при оцінюванні якості, продуктивності, трудовитрат та ін. Якщо результати не задовольняють користувача ПЗ, проводять обговорення і приймають рішення щодо необхідності виправлення ситуації шляхом або внесення зміни у процес, або вдосконалення процесу, а також організаційну структуру і деякі інструменти керування змінами.