
- •1. Реалізація та зміна процесу (Process Implementation and Change)
- •1.2 Цикл управління програмним процесом (Software Process Management Cycle)
- •1.3 Моделі реалізації та зміни процесу (Models for Process Implementation and Change)
- •1.4 Практичні міркування (Practical Considerations)
- •2. Визначення процесу (Process Definition)
- •2.1 Моделі життєвого циклу програмного забезпечення (Software Life Cycle Models)
- •2.2 Процеси життєвого циклу програмного забезпечення (Software Life Cycle Processes)
- •2.3 Нотації визначення процесу (Notations for Process Definitions)
- •2.4 Адаптація процесу (Process Adaptation)
- •2.5 Автоматизація (Automation)
- •3. Оцінка процесу (Process Assessment)
- •3.1 Моделі оцінки процесу (Process Assessment Models)
- •3.2 Методи оцінки процесу (Process Assessment Methods)
- •4. Вимірювання щодо процесів і продуктів (Process and Product Measurement)
- •4.1 Вимірювання щодо процесів (Process Measurement)
- •4.2 * Вимірювання щодо програмних продуктів (Software Product Measurement)
- •4.3 Якість результатів вимірювань (Quality Of Measurement Results)
- •4.4 Інформаційні моделі (Software Information Models)
2. Визначення процесу (Process Definition)
Визначення процесу може бути процедурою, рекомендацією чи стандартом. Процеси життєвого циклу програмного забезпечення чітко визначаються з різних причин, зокрема, з метою підвищення якості одержуваного продукту, поліпшення комунікацій і поліпшення розуміння різних аспектів програмної інженерії окремими фахівцями, підтримки вдосконалення процесів, підтримки управління процесами, забезпечення автоматизації процесів і т.п. Використовувані типи описів процесів, часто, залежать (як мінімум, частково) від цілей визначення процесів.
Також необхідно зазначити, що проектний і організаційний контексти допомагають визначити найбільш відповідні визначення процесів. Важливими чинниками при визначенні процесу є природа робіт (наприклад, розробка або супровід), прикладна область (application domain), модель життєвого циклу і зрілість самої організації.
2.1 Моделі життєвого циклу програмного забезпечення (Software Life Cycle Models)
Моделі життєвого циклу задають високорівневе визначення фаз (стадій) розробки програмного забезпечення. Їх метою не є надання детального визначення, але воно концентрується на ключових роботах і їх взаємозв'язках. Прикладами таких моделей * є Водоспадна (каскадна - waterfall), модель прототипування, еволюційної розробки, інкрементальна / ітеративна, спіральна і т.п. Існують різні порівняння та критерії вибору моделей, посилання на деякі з яких, зокрема, дані в оригінальній версії SWEBOK.
* базові моделі життєвого циклу розглядаються далі в окремому розділі.
2.2 Процеси життєвого циклу програмного забезпечення (Software Life Cycle Processes)
Визначення процесів життєвого циклу зазвичай є більш детальними, ніж моделі. Однак, визначення процесів не описують порядку їх виконання в часі (за це якраз і відповідають моделі, прим. Автора).
Це означає, що, в принципі, процеси життєвого циклу програмного забезпечення можуть бути "збудовані" (у часі) відповідно до будь-якої моделі життєвого циклу. Основним джерелом знань по процесах є стандарт IEEE / ISO / ГОСТ 12207 "Information Technology - Software Lifecycle Processes" (основні елементи структури цього стандарту розглядається за рамками перекладу та коментарів SWEBOK в самостійній главі, присвяченій життєвому циклу). В рамках даних понять життєвого циклу - "модель" і "процеси" можна говорити, що сукупність моделі, процесів і практик визначає метод / методологію <підтримки життєвого циклу>. Стандарт IEEE 1074 "Standard for Developing Software Life Cycle Processes" надає список процесів і дій з розробки і супроводу програмного забезпечення, а також список дій з підтримки самого життєвого циклу, який може бути відображений на процеси і організований таким же чином, як і будь-яка модель життєвого циклу. Крім того, цей стандарт ідентифікує та зв'язує інші стандарти IEEE з діями з підтримки процесів життєвого циклу. В принципі, стандарт IEEE 1074 може бути використаний для побудови процесів, що відповідають для будь-якої моделі життєвого циклу. SWEBOK відзначає два стандарти, пов'язаних з процесами супроводу програмного забезпечення - IEEE 1219 "Standard for Software Maintenance" та ISO 14764 "Standard for Software Engineering-Software Maintenance" (див. область знань SWEBOK "Супровід програмного забезпечення"). Інші важливі стандарти, що мають визначення процесів, включають:
• IEEE 1540: Standard for Software Risk Management - управління ризиками програмного забезпечення • IEEE 1517: Standard for Software Reuse Processes - процеси повторного використання програмного забезпечення • ISO / IEC 15939: Standard for Software Measurement Process - процес вимірювань в галузі програмного забезпечення
У ряді ситуацій процеси програмної інженерії визначаються, беручи до уваги організаційні процеси управління якістю. ISO 9001 формулює вимоги до процесів управління якістю, а ISO 9003 інтерпретує ці вимоги щодо організацій, що займаються розробкою програмного забезпечення (ISO / IEC 90003:2004, Software and Systems Engineering - Guidelines for the Application of ISO9001: 2000 to Computer Software). Деякі процеси життєвого циклу надають особливе значення швидкого введення в експлуатацію (rapid delivery) програмних систем і глибокого залучення користувачів <в процес розробки>. Такі процеси називають agile-методами - швидкими, живими, рухливими. До них відноситься, наприклад, екстремальне програмування - eXtreme Programming (XP, див. роботи Кента Бека - Kent Beck). Відмінною особливістю цих методів є гнучкість в питаннях планування, коли план проекту активно коректується в міру просування до мети проекту. Інші процеси приділяють спеціальну увагу прийняттю рішень на основі оцінки ризиків (див. роботи Баррі Боем - Barry W. Boehm).