SWEBOK v3

Публікація версії 2004 року цього Довідника з інженерії програмного забезпечення (SWEBOK2004) стала важливою віхою у становленні інженерії програмного забезпечення як визнаної інженерної дисципліни. Метою розробки цього оновлення SWEBOK є покращення актуальності, читабельності, узгодженості та зручності використання Настанови.

Всі області знань (knowledge areas - KA) були оновлені, щоб відобразити зміни в інженерії програмного забезпечення з моменту публікації SWEBOK 2004. Додано чотири нові базові галузі знань та галузь знань "Професійна практика інженерії програмного забезпечення".

KA "Інструменти та методи програмної інженерії" було перероблено на "Моделі та методи програмної інженерії". Інструментальні засоби програмної інженерії тепер є темою кожної з КА. Три додатки містять специфікації для опису KA, анотований набір відповідних стандартів для кожної KA, а також список джерел, на які є посилання в Посібнику.

Цей Посібник, написаний під егідою Ради з професійної діяльності Комп'ютерного товариства IEEE, є наступним кроком в еволюції професії інженера програмного забезпечення.

SWEBOK це один з Зводив знань (Body of Knowledge)

Що таке програмна інженерія (Software Engineering)?

Словник ISO/IEC/IEEE Systems and Software Engineering Vocabulary (SEVOCAB) визначає програмну інженерію як "застосування систематичного, дисциплінованого, кількісно вимірюваного підходу до розробки, експлуатації та обслуговування програмного забезпечення; тобто, застосування інженерії до програмного забезпечення)".

Які цілі посібника SWEBOK?

Посібник не слід плутати з самою Сукупністю знань, яка існує в опублікованій літературі. Мета настанови - описати ту частину Зводу знань, яка є загальноприйнятою, впорядкувати цю частину і забезпечити до неї тематичний доступ.

Настанова до Зводу знань з інженерії програмного забезпечення (Настанова SWEBOK) була створена з наступними п'ятьма цілями:

  1. Сприяти формуванню узгодженого погляду на інженерію програмного забезпечення в усьому світі
  2. Визначити сферу застосування та уточнити місце інженерії програмного забезпечення по відношенню до інших дисциплін, таких як комп'ютерні науки, управління проектами, комп'ютерна інженерія та математика
  3. Охарактеризувати зміст дисципліни "Інженерія програмного забезпечення
  4. Забезпечити актуальний доступ до знань про інженерію програмного забезпечення
  5. Забезпечити основу для розробки навчальних програм та індивідуальних сертифікаційних і ліцензійних матеріалів

Перша з цих цілей, узгоджений світовий погляд на інженерію програмного забезпечення, була підтримана процесом розробки, в якому брали участь близько 150 рецензентів з 33 країн світу. Більше інформації про процес розробки можна знайти на веб-сайті (www.swebok.org).

Було встановлено контакт з професійними і науковими товариствами та державними установами, що займаються програмною інженерією, поінформовано їх про проект оновлення SWEBOK і запрошено до участі в процесі рецензування. Редактори KAs були залучені з Північної Америки, Тихоокеанського регіону та Європи.

Презентації проекту були проведені на різних міжнародних майданчиках. Друга з цілей, бажання конкретизувати сферу програмної інженерії, мотивує фундаментальну організацію посібника. Матеріал, який визнано таким, що належить до цієї дисципліни, організовано у п'ятнадцять KAs, перелічених у Таблиці I.1. Кожному з цих KAs присвячено окремий розділ цього посібника.

Таблиця I.1. 15 SWEBOK KAs

  1. Вимоги до програмного забезпечення (Software Requirements)
  2. Проектування програмного забезпечення (Software Design)
  3. Побудова програмного забезпечення (Software Construction)
  4. Тестування програмного забезпечення (Software Testing)
  5. Обслуговування програмного забезпечення (Software Maintenance)
  6. Управління конфігурацією програмного забезпечення (Software Configuration Management)
  7. Управління інженерією програмного забезпечення (Software Engineering Management)
  8. Процес інженерії програмного забезпечення (Software Engineering Process)
  9. Моделі та методи інженерії програмного забезпечення (Software Engineering Models and Methods)
  10. Якість програмного забезпечення (Software Quality)
  11. Професійна практика з інженерії програмного забезпечення (Software Engineering Professional Practice)
  12. Економіка інженерії програмного забезпечення (Software Engineering Economics)
  13. Основи обчислювальної техніки (Computing Foundations)
  14. Математичні основи (Mathematical Foundations)
  15. Інженерні основи (Engineering Foundations)

Визначаючи сферу застосування, важливо також визначити дисципліни, які перетинаються з інженерією програмного забезпечення. З цією метою SWEBOK V3 також визнає сім суміжних дисциплін, перелічених у Таблиці I.2. Інженери-програмісти, звичайно, повинні мати знання з цих дисциплін (і в описах KA у цьому Посібнику можуть бути посилання на них). Однак метою Настанови SWEBOK не є характеристика знань із суміжних дисциплін.

Таблиця I.2. Споріднені дисципліни

  1. Комп'ютерна інженерія (Computer Engineering)
  2. Комп'ютерні науки (Computer Science)
  3. Загальний менеджмент (General Management)
  4. Математика (Mathematics)
  5. Управління проектами (Project Management)
  6. Управління якістю (Quality Management)
  7. Системна інженерія (Systems Engineering)

Відповідні елементи інформатики та математики представлені в розділах "Обчислювальні основи" та "Математичні основи" Посібника (Розділи 13 та 14).

Ієрархічна організація (Hierarchical Organization)

Організація розділів KA підтримує третю мету проекту - характеристику змісту програмної інженерії. Детальні специфікації, надані редакційною групою проекту асоційованим редакторам щодо змісту описів KA, можна знайти у Додатку А.

Посібник використовує ієрархічну організацію для декомпозиції кожного KA на набір тем із впізнаваними позначками. Дворівнева (іноді трирівнева) розбивка дає змогу легко знайти теми, які вас цікавлять. У Посібнику вибрані теми розглядаються у спосіб, сумісний з основними науковими школами та з розподілом, який зазвичай зустрічається в індустрії, а також у літературі та стандартах з програмної інженерії.

Розподіл тем не передбачає конкретних сфер застосування, бізнес-використання, філософій управління, методів розробки тощо. Обсяг опису кожної теми є лише таким, який необхідний для розуміння загальноприйнятої природи тем і для того, щоб читач міг успішно знайти довідкові матеріали; Звід знань міститься в самих довідкових матеріалах, а не в цьому Посібнику.

Довідковий матеріал та матриця

Для забезпечення актуального доступу до знань - четвертої мети проекту - у Посібнику визначено авторитетні довідкові матеріали для кожного КА. У Додатку С наведено зведений список літератури для Посібника. До кожного KA включено відповідні джерела зі Зведеного списку літератури, а також матрицю, яка пов'язує довідкові матеріали з темами, включеними до нього.

Слід зазначити, що Посібник не намагається бути вичерпним у своїх посиланнях. Багато матеріалів, які є як придатними, так і чудовими, не включено до списку літератури. Матеріал, включений до Зведеного списку літератури, забезпечує висвітлення описаних тем.

Глибина дослідження (Depth Of Treatment)

Для досягнення п'ятої мети SWEBOK - забезпечення основи для розробки навчальних програм, сертифікації та ліцензування, було застосовано критерій загальноприйнятих знань, які слід відрізняти від передових і дослідницьких знань (за ознакою зрілості) та від спеціалізованих знань (за ознакою загальності застосування).

Еквівалентний термін "загальновизнаний" походить від Інституту управління проектами: "Загальновизнаний означає, що описані знання і практики застосовні до більшості проектів у більшості випадків, і існує консенсус щодо їхньої цінності та корисності".

Однак терміни "загальноприйняті" або "загальновизнані" не означають, що зазначені знання повинні однаково застосовуватися до всіх проектів з інженерії програмного забезпечення - це визначається потребами кожного проекту - але вони означають, що компетентні, здібні інженери-програмісти повинні володіти цими знаннями для їхнього потенційного застосування.

Точніше кажучи, загальноприйняті знання повинні бути включені в навчальний матеріал для ліцензійного іспиту на право займатися програмною інженерією, який випускники складатимуть після чотирирічного досвіду роботи. Хоча цей критерій є специфічним для американського стилю освіти і не обов'язково застосовується в інших країнах, вважаємо його корисним.

Структура описів KA

Описи KA побудовані за такою структурою. У вступі подано коротке визначення KA та огляд його сфери застосування і взаємозв'язку з іншими KA.

Розбивка тем у кожній KA є основою опису KA, що описує декомпозицію KA на підгалузі, теми та підтеми. Для кожної теми або підтеми надається короткий опис, а також одне або кілька посилань.

Довідковий матеріал був обраний тому, що вважається, що він найкраще відображає знання з даної теми. Матриця пов'язує теми з довідковим матеріалом.

Остання частина опису кожної KA - це список рекомендованих джерел та (за бажанням) додаткової літератури. Відповідні стандарти для кожної KA наведені в Додатку Б до Посібника.

Додаток А. Специфікація опису КА

Додаток А описує специфікації, надані редакційною групою асоційованим редакторам щодо змісту, рекомендованих джерел, формату та стилю описів KA.

Додаток Б. Розподіл стандартів для КА

Додаток B - це анотований перелік відповідних стандартів, переважно від IEEE та ISO, для кожного з KAs Настанови SWEBOK.

Додаток C. Зведений список посилань

Додаток C містить зведений список рекомендованих джерел, на які є посилання в KAs (ці джерела позначені в тексті зірочкою (*)).

SOFTWARE REQUIREMENTS (Chapter 1)

Рисунок 1.1. Розподіл тем для KA вимог до програмного забезпечення