Professional Documents
Culture Documents
Комп’ютерна
інженерія
ІПЗ
Рисунок 1.3 – Засадничі Зводи знань («три кити») та складники методичного забезпечення ІПЗ
Надано такі області знань (SWEBOKv3.pdf – лише для довідки).
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).
Перелік пов’язаних дисциплін містить:
1. Комп’ютерну інженерію (Computer Engineering);
2. Комп’ютерні науки (Computer Science);
3. Загальний менеджмент (General Management);
4. Математику (Mathematics);
5. Проектний менеджмент (Project Management);
6. Управління якістю (Quality Management);
7. Системну інженерію (Systems Engineering).
Виділені області знань і дисципліни безпосередньо містять засади ефективного конструювання
унікальних ПС/ПП за умов невизначеності у форматі програмного проекту, тоді як решта стосуються
також і операціональної діяльності у відносно регламентованих процесах.
Зокрема, область знань 11 «Професійна практика програмної інженерії», вперше виокремлена в
SWEBoK V.3, визначає дві групи рис виконавців програмного проекту, критичних для його успіху:
– професіоналізм у кваліфікаційному й етичному аспектах;
– розвинуті м’які, насамперед комунікативні та презентаційні, навички (рис.1.4, 1.5).
6
5) ISO 21502:2020 Project, programme and portfolio management. Guidance on project management.
PMBOK 6 ред. фіксує 10 областей знань, в яких реалізуються процеси керування з п’яти рамкових
груп (рис.1.6).
Рисунок 1.6 – Рамкові області знань і процеси керування (програмним) проектом за PMBOK 6 ред.
У PMBOK 7 ред. десять областей знань замінені вісьмома «областями продуктивності»
(performance domain):
1) співпраця з причетними сторонами (stakeholders);
2) керування проектною командою;
3) керування життєвим циклом проекту та продукту (методологія, етапи, поставка результатів)
4) планування проекту;
5) керування роботами проекту (project work)
6) опрацювання невизначеності та нечіткості (Navigating uncertainty and ambiguity)
7) поставка результатів зі створенням цінності (project delivery)
8
Звід знань SWEBOK V3 – теоретичні засади та формальні визначення методів і засобів розробки;
Звід знань PMBOK 6, 7 ред. – принципи та методи планування й контролювання робіт у
програмному проекті
рамковий процес конструювання ПП, поданий системою процесів їх життєвого циклу (ЖЦ);
інфраструктура – середовище розробки;
стандарти ІПЗ де-юре й де-факто – регламентовані правила й кращі практики побудови проміжних
артефактів у процесах ЖЦ і кінцевого ПП;
прикладні засоби та інструменти розробки ПП.
Інфраструктура ІПЗ – система апаратного забезпечення, нормативно-методичних, програмних і
людських ресурсів організації-розробника, необхідних для ефективного виконання рамкового процесу
конструювання ПП.
Програмні ресурси – загальносистемне ПЗ, середовище розробки, (не)програмні ресурси
повторного використання організації-розробника, інформаційне забезпечення.
Нормативно-методичні ресурси – методики, процедури, правила, рекомендації, документи, що
регламентують процес розробки.
Людські ресурси: групи розробників з функціональними ролями, відповідними основним діяльностям
під час розробки, та менеджерів проекту.
Стандарти ІПЗ систематизують:
а) за змістом:
засадничі (напр., ISO/IEC/IEEE 12207);
щодо окремих видів діяльності в ЖЦ (ISO/IEC/IEEE 29148 );
щодо основних характеристик ПП, процесів, проектів, які необхідно забезпечувати й відстежувати
(напр., ISO/IEC/IEEE 25010);
б) за рівнем загальності: де-юре (міжнародні й національні, зокрема ДСТУ); корпоративні;
авторитетних фахових спільнот; авторські – пропозиції авторитетних фахівців з ІПЗ.
Призначеність ІПЗ як виробничої дисципліни: автоматизоване виготовлення ПП з використанням
готових (не)програмних ресурсів організації-розробника та з мережі Інтернет.
ПП конструюються з програмних компонентів (КПВ) і непрограмних ресурсів (РПВ) повторного
використання, збережуваних у спеціальних сховищах (репозиторіях ПЗ) організації-розробника або у
відповідних реєстрах Інтернет згідно з рис.1.7.
Модель
предметної
КПВ1 КПВ2 КПВn області Виробництво
... ПП
Конфігурування
Репозиторій
Рисунок 1.7 – Рамкова схема виготовлення ПС/ПП з КПВ
Інженерні підходи до використання КПВ і РПВ, розвинуті для побудови так званих Сімейств ПС і
лінійок ПП:
конструювання КПВ (reuse engineering): проектування ПС знизу догори з виокремленням КПВ під
час пректування;
конструювання застосунків (application engineering): проектування ПС згори донизу з зіставленням
КПВ, вже наявних у репозиторії,передбаченим функціям ПС;
доменна інженерія (domain engineering): одночасне проектування й конструювання КПВ і ПС як
результату їх конфігурування, що нагадує процес конвеєрного збирання.
Призначеність ІПЗ як дисципліни керування: автоматизація та оптимізація процесів керування
конструюванням ПП.
Теоретичне підґрунтя дисципліни керування – теорія керування складними системами, до якої в
1970-х роках вагомий внесок зробили фахівці ІК АН УРСР під керівництвом Академіка В.М.Глушкова.
Практичні інструменти його використання підсумовані в Зводах знань PMBoK 6,7 ред. і стандартах з
проектного менеджменту.
Нарешті, призначеність економіки ІПЗ:
прогнозування/оцінка вартості, трудомісткості та часу розроблення ПС/ПП для складання
контрактів на їх створення, прийняття проектних рішень, вибору варіанту архітектури;
прогнозування/відстеження та опрацювання ризиків конструювання ПС/ПП за певних ресурсів.
10
Для оцінки трудомісткості й витрат на виробництво ПС/ПП застосовують спеціальні моделі, напр.,:
COCOMO, SLIM.
1.4 Основні поняття ІПЗ
Приймемо базові робочі визначення.
1. Програмна система (Software system, ПС) – група інтегрованих програмних засобів, що
підтримують певний діловий процес Споживача і можуть використовувати спільні сховища даних.
2. Програмне забезпечення – сукупність ПЗ, що придбаваються або розробляються для
експлуатації в складі ПС. Будемо говорити «програмне забезпечення системи», якщо потрібно
підкреслити його приналежність до ПС (яка охоплює також технічне, організаційне та інші види
забезпечення). Отже, програмне забезпечення - це не тільки програми, але й уся документація щодо
них.
Організаційною формою створення ПС є
3. Програмний проект – обмежена в часі діяльність, метою якої є створення унікальної ПС.
Сукупність завершених, виконуваних та потенційно можливих програмних проектів в організації-
розробнику ПС утворює процес програмної інженерії. Іншими словами,
4. Процес програмної інженерії, або конструювання, ПС (Software Engineering) – система логічно
взаємопов'язаних видів діяльності з визначення, проектування та побудови ПС і, можливо, побічних
програмних продуктів.
5. Життєвий цикл розроблення (ЖЦ) ПС – період її існування від початку розроблення до
впровадження/продажу. ЖЦ являє собою набір впорядкованих стадій (аналіз вимог, проектування,
реалізація, тестування, дослідна експлуатація).
6. Робочий продукт ПС – подання знань розробників щодо неї на певній стадії її розроблення
(вимоги та документи їх специфікації, опис архітектури, різні подання коду й тестів, звіти про
тестування).
1.5 Принципи ІПЗ
Практичне застосування розглянутого вмісту ІПЗ підтримано наразі трьома групами її принципів.
1.5.1 Принципи опрацювання складності під час конструювання програмних сутностей
1. Абстрагування (abstraction) та уточнення (refinement).
2. Модульність – організація великих систем у формі наборів підсистем, модулів або компонентів.
3. Виокремлення інтерфейсів і приховування внутрішньої інформації. Модулі мають
взаємодіяти один з одним через чітко певні інтерфейси і приховувати один від одного внутрішню
інформацію — внутрішні дані, деталі реалізації інтерфейсних операцій.
4. Спеціальні властивості інтерфейсів модуля:
–адекватність (інтерфейс підтримує розв’язання саме задач, необхідних користувачам модуля);
–повнота (підтримуються всі значущі задачі, зумовлені функціями модуля);
–ненадлишковість (жодну операцію не можна вилучити);
–простота (операції не можна подати композиціями простіших операцій на тому ж рівні абстракції,
за того ж розуміння функціональності модуля)
5. Розподіл відповідальності:
–подання відносно незмінних часткових алгоритмів (політик) параметрами загального алгоритму;
–відокремлення спостережного ззовні опису розв’язуваних задач (інтерфейсу) від способу
розв’язання (реалізації).
6. Слабка зв'язність (coupling) модулів і сильне зчеплення (cohesion) функцій в одному модулі.
7. Повторне використання КПВ, РПВ, ПС.
1.5.2 Принципи ефективного надання цінності причетним сторонам
Це 12 принципів створення цінності з PMBoK 7 ред., п.1.3.2.
1.5.3 Принципи етичної професійної поведінки фахівція з ІПЗ
Необхідність найефективнішої координації діяльності фахівців у групах і між групами процесу
конструювання за допомогою додаткових компетенцій, не пов’язаних безпосередньо із створенням ПП,
– «м’яких» навичок, знань та умінь – зафіксована також в чинному Кодексі етики та професійної
практики ІПЗ (IEEE-CS/ACM Software Engineering Code of Ethics and Professional Practices (див.
Жихаревич_ПППІ.pdf, підрозд.5.3, с.219-228).
Кодекс визначає вісім Принципів професійної поведінки фахівця з ІПЗ.
11
1. СУСПІЛЬСТВО.
Програмні інженери мають діяти неухильно на користь суспільства.
2. КЛІЄНТ І ПРАЦЕДАВЕЦЬ
Програмні інженери повинні діяти згідно з інтересами клієнта і працедавця, якщо вони не суперечать
інтересам суспільства.
3: ПРОДУКТ
Програмні інженери повинні забезпечувати відповідність якості своїх продуктів та їх модифікацій
найвищим можливим професійним стандартам.
4. ОЦІНКИ
Програмні інженери мають підтримувати цілісність і незалежність своїх професійних оцінок.
5: МЕНЕДЖМЕНТ
Програмні інженери-менеджери та провідні співробітники повинні дотримуватися етичних підходів до
керування розробкою і підтримкою програмного забезпечення і просувати ці підходи.
6: ПРОФЕСІЯ
Програмні інженери повинні піднімати престиж і репутацію своєї професії на користь суспільства.
7: КОЛЕГИ
Програмні інженери повинні бути справедливі по відношенню до своїх колег, допомагати їм і
підтримувати.
8: ОСОБИСТА ВІДПОВІДАЛЬНІСТЬ
Програмні інженери повинні постійно вчитися навичкам обраної професії і сприяти просуванню
етичного підходу до своєї діяльності.
Лекція 2_08_09_2022. Призначення та сутність моделей життєвого циклу програмних
засобів
Корисні ресурси
Блог Б.Вейка (Bill Wake): https://xp123.com/articles/
Посібники
Кучеров_Артамонов_ІПЗ_2017.pdf, підрозділи 3.1-3.6, 3.8
proIS.pdf, розділ 2,3
ЯПЗ_Т.pdf, розд. 2,підрозділи 5.1-5.3
додатково
Orlov_PI.pdf, розд.1, с.23-48; розд.2, с.83-100; розд.13
romanov_PI.pdf, с.32-38, розд.5
2.1. Поняття життєвого циклу та його моделі
Створення та масове виробництво різнорідних, зокрема (над)великих і складних програмних
продуктів (ПП) у сучасних організаціях-розробниках вимагає застосування універсальних принципів
опрацювання складності насамперед до організації діяльності зі створення ПП, тобто до процесів їх
конструювання та керування ним і до проміжних продуктів цих процесів.
Універсальні принципи опрацювання складності в інженерії програмного забезпечення (ІПЗ):
1. Абстрагування (abstraction) та уточнення (refinement).
2. Модульність – організація великих систем у формі наборів підсистем, модулів або компонентів.
3. Виокремлення інтерфейсів і приховування внутрішньої інформації.
Модулі мають взаємодіяти один з одним через чітко певні інтерфейси і приховувати один від одного
внутрішню інформацію — внутрішні дані, деталі реалізації інтерфейсних операцій.
4. Спеціальні властивості інтерфейсів модуля:
–адекватність (інтерфейс підтримує розв’язання саме задач, необхідних користувачам модуля);
–повнота (підтримуються всі значущі задачі, зумовлені функціями модуля);
–ненадлишковість (жодну операцію не можна вилучити);
–простота (операції не можна подати композиціями простіших операцій на тому ж рівні абстракції,
за того ж розуміння функціональності модуля)
5. Розподіл відповідальності:
–подання відносно незмінних часткових алгоритмів (політик) параметрами загального алгоритму;
–відокремлення спостережного ззовні опису розв’язуваних задач (інтерфейсу) від способу
розв’язання (реалізації).
6. Слабка зв'язність (coupling) модулів і сильне зчеплення (cohesion) функцій в одному модулі.
7. Багаторазове застосування.
Результатом застосування принципів 1-7 до процесів конструювання ПП й керування ним є поняття:
– життєвого циклу (ЖЦ) програмного забезпечення (ПЗ), зокрема ПП і програмних систем (ПС);
– моделі ЖЦ ПЗ.
Визначення 2.1. Життєвий цикл ПЗ (ПС, ПП, сервісу, іншої програмної сутності) у широкому
сенсі – період його розвитку від задуму до вилучення.
(ДСТУ ISO/IEC/IEEE 24765:2017. Словник ISO/IEC/IEEE з інженерії систем і програмного
забезпечення, ДСТУ ISO/IEC/IEEE 12207:2018, 15288:2015).
Життєвий цикл ПЗ у вузькому сенсі – період від задуму ПЗ до початку його функціонування за
призначенням: введення в експлуатацію на об’єкті автоматизації і/або випуску на ринок масового
споживання.
Життєвий цикл (ЖЦ) програмних засобів або програмно-апаратної системи охоплює принаймні такі
високо-рівневі діяльності:
– аналіз предметної області,
– збирання та документування вимог,
– реалізація/виробництво (включно з проектуванням, кодуванням, тестуванням),
– впровадження/продаж,
– експлуатація,
– обслуговування,
– вилучення з експлуатації.
Кожна діяльність являє собою достатньо однорідний набір дій, виконуваних для вирішення одного
завдання або групи тісно пов'язаних завдань з розроблення та підтримки експлуатації програмних
засобів (ПЗ).
У результаті діяльностей створюються і перероблюються робочі продукти.
2
Визначення 2.2. Артефакт, або робочий продукт, – створювана людиною інформаційна,
зокрема програмна, сутність, яка перетворює певні вхідні дані у вихідні в результаті виконання різних
діяльностей і є поданням знань розробників ПП щодо нього у відповідний момент його ЖЦ.
Приклади артефактів: модель предметної області, опис вимог, технічне завдання, архітектура
системи, проектна документація на систему в цілому і на її компоненти, прототипи системи і
компонентів, власне, початковий код, документація користувача , документація адміністратора системи,
настанова з розгортання, база запитів користувача, план проекту.
Впродовж ЖЦ до створення й експлуатації ПЗ залучаються фахівці, що виконують різні ролі.
Визначення 2.3. Роль у ЖЦ ПЗ – опис сукупності можливостей і відповідальностей групи
зацікавлених сторін, що беруть участь в діяльності зі створення й експлуатації ПЗ і розв’язують одні й ті
самі задачі або мають одні й ті самі інтереси щодо неї.
Приклади ролей: бізнес-аналітик, інженер з вимог, архітектор, проектувальник призначеного для
інтерфейсу користувача, програміст-кодувальник, технічний письменник, тестувальник, менеджер
програмного проекту, співробітник відділу обслуговування, кінцевий користувач.
Стале забезпечення рівня результативності й економічної ефективності процесу конструювання
програмних продуктів у сучасних організаціях-розробниках потребує розроблення й апробації
відповідних структур ЖЦ і стандартизації тих, які засвідчили свою перспективність. Форматом опису
такої структури є модель ЖЦ.
Визначення 2.4. Модель ЖЦ ПЗ або ПС – схема, що охоплює процеси, діяльності та завдання під
час розроблення, експлуатації та обслуговування ПЗ і ПС.
(ДСТУ ISO/IEC/IEEE 24765:2017).
Модель ЖЦ ПЗ і ПС:
1) фіксує конкретні набори діяльностей (зазвичай деталізованих до завдань та операцій),
артефактів, ролей та, необов’язково, їх взаємозв’язки;
2) надає рекомендації з організації ЖЦ загалом. Рекомендації містять відповіді на питання, які
артефакти є вхідними для яких діяльностей і які є їх наслідками, які ролі залучено до різних
діяльностей, як ці діяльності пов’язані між собою, які критерії застосовують для оцінки якості отриманих
наслідків, як оцінити відповідність робочих продуктів цілям програмного проекту та стратегічним цілям
організації, коли доцільно й можливо переходити від однієї діяльності до іншої.
Уточнюючі цілі застосування моделей ЖЦ:
1) забезпечення ефективної взаємодії між учасниками процесу конструювання програмних
продуктів, зокрема розробників, замовників¿споживачів;
2) контролювання перебігу робіт, оцінювання робочих продуктів і кінцевого продукту на відповідність
вимогам;
3) балансування витрат і ризиків створення робочих продуктів і кінцевого продукту;
4) підтримка прийняття рішень щодо вимог, цінність реалізації яких у програмному продукті
виправдовує витрати на розроблення і/або на весь ЖЦ (affordability analysis – аналіз обґрунтованості
вимог);
5) стале вдосконалення процесів ЖЦ.
Наразі в моделях ЖЦ ПЗ застосовують дві категорії основних елементів:
1) технологічні процеси;
2) окремі діяльності.
Визначення 2.5. Процес ЖЦ ПЗ або ПС – система взаємопов’язаних дій, результатом яких є
розроблення або оцінювання ПЗ чи ПС. Кожну діяльність складено з завдань, і процеси можуть
охоплювати спільні діяльності.
Відповідно, розроблено дві групи моделей ЖЦ: процесні та стадійні.
2.2. Процесні моделі ЖЦ ПЗ
Кожна модель подана системою взаємопов’язаних процесів – сукупностей дій з досягнення певних
цілей, зафіксованих у відповідних стандартах де-юре й де-факто, розглядуваних у період від задуму
ПЗ/ПС до його вилучення з експлуатації.
1. Загальноприйнята рамкова процесна модель ЖЦ ПЗ зафіксована в міжнародному стандарті
ISO/IEC/IEEE 12207:2017 та його вітчизняному відповіднику ДСТУ ISO/IEC/IEEE 12207:2018
(ISO/IEC/IEEE 12207:2017, IDT) Інженерія систем і програмних засобів. Процеси життєвого циклу
програмних засобів.
Модель визначає чотири групи процесів ЖЦ ПЗ, поданих у табл.2.1:
1) процеси угоди (agreement processes);
2)організаційні процеси уможливлення проектів (Organizational Project-Enabling processes);
3) технічні процеси керування включно з процесами проекту (Technical Management processes);
3
4) технічні процеси (Technical processes).
Для кожного з процесів ЖЦ ПЗ в межах цих груп описано його мету, бажані результати, завдання та
заходи, які необхідно виконати для досягнення цих результатів.
Таблиця 2.1 – Рамковий склад процесів ЖЦ ПЗ за ISO/IEC/IEEE 12207:2017
1. Процеси 2. Організаційні процеси 3. Процеси технічного 4. Технічні процеси
угоди уможливлення проекту керування (Technical (Technical processes)
(Agreement (Organizational Project- Management processes)
processes) Enabling processes)
1.1 Процес 2.1 Life cycle model 3.1 Project Planning process 4.1 Business or Mission
придбавання management process 3.2 Project assessment and Analysis process
(Acquisition 2.2 Infrastructure control process 4.2 Stakeholder Needs and
process) Management process 3.3 Decision Management Requirements Definition
1.2 Процес 2.3 Portfolio Management process process
постачання process 3.4 Risk Management 4.3 System/Software
(Supply 2.4 Human Resource process requirements definition
process) Management process 3.5 Configuration process
2.5 Quality Management Management process 4.4 Architecture Definition
process 3.6 Information Management process
2.6 Knowledge process 4.5 Design Definition process
Management process 3.7 Measurement process 4.6 System Analysis process
3.8 Quality Assurance 4.7 Implementation process
process 4.8 Integration process
4.9 Verification process
4.10 Transition process
4.11 Validation process
4.12 Operation process
4.13 Maintenance process
4.14 Disposal process
Для процесів ЖЦ ПЗ описано: мету, передбачені результати, завдання та заходи для їх досягнення.
2. Уточнення ДСТУ ISO/IEC/IEEE 12207:2018 надають частини ДСТУ ISO/IEC 24748
Інженерія систем і програмних засобів. Керування життєвим
ДСТУ ISO/IEC TS 24748-1:2018 циклом. Частина 1. Настанови щодо керування життєвим циклом
(ISO/IEC TS 24748-1:2016, IDT) – встановлює керівні принципи щодо управління життєвим циклом
інженерії систем і ПЗ
Розроблення систем і програмного забезпечення. Управління
життєвим циклом. Частина 2. Настанова щодо застосування
ДСТУ ISO/IEC TR 24748-2:2015
ІSO/ІEC 15288 (Процеси життєвого циклу системи) (ІSO/ІEC
TR 24748-2:2011,
Інженерія систем і програмного забезпечення. Керування життєвим
ДСТУ ISO/IEC TR 24748-3:2016
циклом. Частина 3. Настанова щодо застосування ІSO/ІEC 12207
(ISO/IEC TR 24748-3:2011, IDT)
(Процеси життєвого циклу програмного забезпечення)
ДСТУ ISO/IEC/IEEE 24748-4:2018 Інженерія систем і програмних засобів. Керування життєвим
(ISO/IEC/IEEE 24748-4:2016, IDT) циклом. Частина 4. Інженерне проектування систем
ДСТУ ISO/IEC/IEEE 24748-5:2018 Інженерія систем і програмних засобів. Керування життєвим
(ISO/IEC/IEEE 24748-5:2017, IDT) циклом. Частина 5. Планування розроблення програмних засобів
ДСТУ ISO/IEC TS 24748-6:2018 Інженерія систем і програмних засобів. Керування життєвим
(ISO/IEC TS 24748-6:2016, IDT) циклом. Частина 6. Розроблення системної інтеграції
3. IEEE Std 1074™-2006 IEEE Standard for Developing a Software Project Life Cycle Process не адаптує
ISO/IEC/IEEE 12207:2018, а містить власні активності – термінальні «заготовки» процесів і правила
конструювання з них процесів для окремого програмного проекту та проекту. Активності охоплюють:
1) керування програмними проектами;
2) дії, що передують розробленю;
3) дії з розроблення;
4) дії після розроблення з обслуговування;
5) загальні активності.
4
2.3. Стадійні моделі ЖЦ ПЗ (див. Orlov_PI.pdf, c.29-40; ЯПЗ_Т.pdf, с.33-54, Модели_ЖЦ.pdf)
2.3.1. Класифікація стадійних моделей
Актуальні стадійні моделі ЖЦ ПС поділяються на два класи:
а) рамкові, незалежні від методології конструювання ПЗ/ПС:
б) уточнення рамкових з позицій певної методології конструювання ПЗ, які водночас являють собою
моделі відповідного програмного проекту:
жорсткі(планові), зорієнтовані на одноразове повне визначення вимог до створюваного продукту
й одноразове послідовне виконання базових сукупностей дій з їх реалізації;
ітеративні, згідно з якими ЖЦ являє собою послідовність ітерацій зі створення дедалі
детальніших подань ПС;
гнучкі, де ЖЦ подається послідовністю ітерацій фіксованої тривалості, організованих згідно з
засадами Agile-маніфесту.
2.3.2. Каскадна модель
Перша модель ЖЦ – каскадна модель, де кожна робота виконується один раз згідно з рис.2.1.
Тобто вважають, що кожна робота має бути виконана настільки ретельно, що після її закінчення і
переходу до наступного етапу, повертатися до попереднього не буде потреби. Розробник перевіряє
проміжний результат відомими методами верифікації і фіксує його як готовий еталон для наступного
процесу.
Визначення завдання
Проектування системи
Реалізація системи
Тестування системи
на перевірку правиль-
ності (верифікація)
Тестування системи
на відповідність
завданню
Супровід
Аналіз вимог
і попереднє Проект Реалізація Тестування Випуск 2
тестування
Дослідження
замовника
Ітерація
розробки Реалізація
функціонального
прототипу
Ітерація
проектування
і побудови
Припустимі дії в ЖЦ
залежно від ризику
невиконання й витрат
Прийнятний для наступної фази
Нехтовний Рівень
ризику: Надвисокий
неопрацьовний
Оцінки
витрат
на ППЗ Високий, але
опрацьовний
Рисунок. 2.5 – . Внутрішня структура ЖЦ ППЗ і КС за моделлю покрокових зобов’язань
Передбачено такі типи зобов’язань:
а) вилучення наступної фази, якщо ризик нехтовно низький, а витрати істотні;
б) її виконання за прийнятних ризику й витрат;
в) опрацювання ризику на поточній фазі, якщо він високий, але опрацьований;
г) закриття/перевизначення проекту за неприйнятних витрат і/або ризику.
Прийняття зобов’язань а)-г) вимагає принаймні рішень щодо реалізовності й доцільності чергової
версії ПЗ та складу й вмісту ітерацій з розроблення/модифікації цієї версії. Внаслідок цього невід’єм-
ним складником ЖЦ ПЗ стає процес експертно-аналітичного оцінювання витрат на ПЗ з
використаням сімейства моделей COCOMO (див. Л13_24_11_2022_Економіка_ПІ.pdf), який вчасно
надає адекватні оцінки витрат на підтримку заначених рішень. По-фазні перегляди визначають для
нього організаційну інфраструктуру й технологічні регламенти перебігу.
Наведені тут «кільця спіралі» й занумеровані кружечки на них відображають ітерації з їх фазами та,
відповідно, по-фазні перегляди з припустимими зобов’язаннями.
Модель покрокових зобов’язань передбачає для розроблення/модифікації версії ППЗ дві стадії:
Покрокове визначення та Покрокове розроблення й виконання. Для кожної i-ї версії ППЗ, починаючи з
другої, перша стадія містить єдину фазу Обґрунтування. Згідно зі своєю назвою, друга стадія охоплює
фази Розроблення й Виконання. Як показано на рисунку, протягом кожної ітерації різні (але ефективно
взаємодіючі) команди одночасно реалізують фази Виконання для (i-1)-ї ітерації, Розроблення – для i-ї
та Обґрунтування – для (i+1)-ї, i>1.
Ураховуючи особливу роль першої версії, яка істотно обумовлює рішення щодо доцільності й вмісту
подальших ітерацій, перша стадія для неї містить додаткові фази Розвідування й Вартісного
аналізування. Аналізування може бути пропущено, якщо перегляд зобов’язань після Розвідування
засвідчує нехтовно низький ризик його невиконання. Отже, першій версії в загальному випадку
відповідають п’ять ітерацій. Перші три з них, що складають стадію її Визначення і тому відокремлені на
рис.2.5 прапорцем і штриховою лінією, далі не повторюються й містять по одній фазі, на відміну від
решти ітерацій.
11
2.4 Моделі ЖЦ з урахуванням методології програмного проекту
2.4.1 Ітеративні моделі
2.4.1.1 Раціональний уніфікований процес ( див. Orlov_PI.pdf, розд.13, с. 386-413;
romanov_PI.pdf, 5.1, c.183-196)
Agile UP - http://www.ambysoft.com/unifiedprocess/agileUP.html
2.4.1.2 ICONIX (ICONIX.pdf, c.13-24)
2.4.1.3 MSF, MSF for Agile Software Development, MSF for CMMI Process Improvement
Чаще всего все требования на задание действительно практически невозможно определить
заранее, к тому же даже сформулированные требования подвергаются коррекции. Но тогда требуется
повысить уровень управляемости проектом, без чего создание сложного ПО просто невозможно.
Компромисс между этими противоречивыми требованиями и предоставляет модель процессов MSF, в
которой сочетаются водопадная и спиральная модели разработки: проект реализуется поэтапно, с
наличием соответствующих контрольных точек, а сама последовательность этапов может повторяться
по спирали.
В этом случае планирование на основе промежуточных контрольных точек и предсказуемость
водопадной модели дополняются наличием обратной связи с заказчиком и творческим подходом к
решению задач, характерными для спиральной модели. Таким образом, модель процессов MSF
позволяет создавать и развертывать решения уровня предприятия, обеспечивая прогнозируемость
хода проектов и учитывая реальные условия их выполнения.
Создание общей картины приложения
На этом этапе решаются следующие основные задачи:
– определение состава команды;
– определение структуры проекта;
– определение бизнес–целей;
– оценка существующей ситуации;
– создание документа общей картины и области действия проекта;
– определение требований и профилей пользователей;
– разработка концепции решения;
– оценка риска;
– закрытие этапа.
На этапе выделяются две промежуточные контрольные точки: "Организован костяк команды" и
"Создана общая картина решения".
Организован костяк команды. Здесь не обязательно нужен полный поименный список команды,
но в документе структуры проекта должны быть определены роли и обязанности каждого члена
команды, а также описана иерархия отчетности и ответственности в группе, каналы взаимодействия с
заказчиком и общая структура команды.
Создана общая картина решения. Речь идет о разработке концепции решения, которым должна
руководствоваться команда для достижения долгосрочных бизнес–целей проекта. Область действия
проекта определяет, что включается в контекст проекта, а что выходит за его рамки. На этой
временной точке речь идет о создании первой версии документа, который находится в стадии
рецензирования участниками команды и согласования заказчиком.
Этап завершается контрольной точкой "Утверждение документа общей картины и области действия
проекта".
Планирование
На этапе планирования команда решает, что нужно разработать, и формирует планы реализации
продукта. Готовится функциональная спецификация, создается проект решения, детализируются
планы работы, выполняется оценка стоимости и сроков получения результатов.
На этом этапе проводится анализ требований, которые делятся на бизнес–требования,
пользовательские, функциональные и системные требования. После сбора и анализа требований
команды разрабатывается проект решения, определяются профили пользователей, после чего
формируются сценарии применения решения, выполняемые пользователями одного типа, а затем
определяются варианты использования системы.
Этап состоит из трех стадий: концептуальное, логическое и физическое проектирование. На стадии
концептуального проектирования задача рассматривается с точки зрения пользовательских и бизнес–
требований и заканчивается определением набора сценариев использования системы. При
логическом проектировании задача рассматривается с точки зрения проектной команды, решение
представляется в виде набора сервисов. И уже на стадии физического проектирования задача
12
рассматривается с точки зрения программистов, уточняются используемые технологии и программные
интерфейсы.
В ходе данного этапа решаются такие задачи:
– разработка проекта и архитектуры решения;
– создание функциональной спецификации;
– разработка планов проекта;
– разработка календарного графика;
– создание среды разработки, тестирования и пилотной эксплуатации;
– закрытие этапа.
– Контрольные точки этапа планирования связаны с достижением следующих результатов:
– функциональная спецификация;
– план управления рисками;
– определение среды разработки и тестирования;
– генеральный план и календарный график проекта.
Результаты данного этапа служат для принятия компромиссных решений в дальнейшем.
Разработка
На этапе разработки создается решение, в том числе пишется и документируется код. В начале
этого этапа команда проверяет выполнение всех задач, характерных для предыдущих этапов, а затем
приступает к решению следующих задач:
– создание прототипа приложения;
– разработка программных компонентов приложения;
– создание решения (последовательность ежедневных или более частых сборок приложения);
– закрытие разработки (реализация всех функций, поставка кода и документации).
– Результаты этапа предполагают следующие элементы:
– исходный текст кода и исполняемые файлы;
– сценарии установки и конфигурации для развертывания;
– окончательная функциональная спецификация;
– элементы поддержки решения;
– спецификации и сценарии тестирования.
Основная контрольная точка этапа – "Окончательное утверждение области действия проекта". В
этот момент все функции продукта готовы и прошли тестирование в рамках своего модуля. После этого
продукт готов к внешнему тестированию и стабилизации. Кроме того, заказчики, пользователи,
сотрудники службы поддержки и сопровождения, а также ключевые участники проекта могут
предварительно оценить продукт и указать все недостатки, которые нужно устранить до его поставки.
Стабилизация
Данный этап – подготовка к выпуску окончательной версии продукта, доводка его до заданного
уровня качества. Здесь выполняется комплекс работ по тестированию (обнаружение и устранение
дефектов), а также проверяется сценарий развертывания продукта и проводится пилотная
эксплуатация.
Тестирование подразумевает следующие основные виды работ:
– тестирование компонентов;
– тестирование баз данных;
– тестирование инфраструктуры;
– тестирование защиты;
– тестирование интеграции;
– анализ удобства работы с продуктом;
– нагрузочное тестирование (включая анализ ресурсоемкости и производительности);
– регрессивное тестирование;
– ведение отчетности по тестированию.
Когда решение становится достаточно устойчивым, проводится его пилотная эксплуатация в
тестовой среде с привлечением пользователей и применением реальных сценариев работы.
Один из главных показателей этапа стабилизации – число обнаруженных ошибок. Сходимость этой
величины в сторону устойчивого уменьшения – признак того, что близится завершение работ над
13
продуктом. Важнейшая промежуточная контрольная точка – появление версии, в которой усилиями
самой проектной команды не обнаружено ни одной ошибки. Далее следуют выпуски кандидат–релизов
продукта для их исследования в условиях пилотной эксплуатации. Завершающая контрольная точка –
подтверждение готовности продукта к выпуску и полноценному развертыванию в промышленной среде.
Развертывание
На этом этапе выполняется установка решения и необходимых компонентов окружения, проводится
его стабилизация в промышленных условиях и передача проекта в руки группы сопровождения. Кроме
того, анализируется проект в целом на предмет уровня удовлетворенности заказчика. Основные
контрольные точки данного этапа таковы:
– развернуты основные компоненты;
– развернуто решение в целом;
– развернутое решение стабилизировано;
– решение развернуто и передано в эксплуатацию заказчику.
Следует подчеркнуть, что момент завершения данного этапа бывает достаточно сложно формально
определить, так как выявление неполадок может продолжаться и в ходе промышленной эксплуатации.
Именно поэтому необходимо четко сформулировать критерии для завершающей контрольной точки
этапа развертывания и не пытаться отладить абсолютно все.
Комментарии по поводу этапов работ
Добавим к изложенному выше несколько важных замечаний. В целом те же самые идеи лежат в
основе всех современных промышленных методологий разработки ПО (IBM/Rational, Borland, Microsoft
и т. д.). И здесь нет ничего удивительного: именно этим отличаются выверенные временем технологии
от кустарного производства. Но в то же время в каждой методологии есть свой подход к выделению
различных этапов разработки и зачастую используется собственная терминология, что усложняет
проведение параллелей между ними. Проблема эта усугубляется и отсутствием устоявшейся русской
терминологии.
Общепринятый на сегодня список ALM–этапов, которого, в частности, придерживаются Borland и
Rational, выглядит следующим образом:
– Defining (определение требований);
– Designing (анализ и проектирование);
– Developing (разработка);
– Testing (тестирование);
– Deploying (развертывание).
Как легко заметить, модель MSF предлагает несколько иную разбивку на этапы и их наименование.
Хотелось бы обратить внимание читателей, что речь здесь не идет просто о разных названиях одних и
тех же видов деятельности. Объективная проблема категоризации заключается в том, что выделение
самостоятельных этапов в жизненном цикле приложений весьма условно, особенно если речь идет об
итерационной циклической модели разработки. Например, широкое использование визуальных
методов проектирования с автоматической генерацией кода фактически стирает грань между
проектированием и кодированием. А тестирование вообще пронизывает всю жизнь программы.
Имеются и субъективные факторы, которые определяются различиями стратегических бизнес–
целей разных поставщиков методологий. Именно этим объясняется то, что Microsoft – основу бизнеса
которой составляют не средства разработки, а платформенное ПО, – больше внимания (по сравнению
с теми же Rational и Borland) уделяет общим вопросам организации процесса создания приложений, а
также их внедрению.
Поэтому, например, этап Envisioning включает определение не только требований к ПО, но и
состава команды (здесь содержатся, в частности, очень интересные рекомендации касательно ролевой
модели команды разработчиков, а также возможных вариантов совмещения ролей). А этап Stabilizing
подразумевает не только собственно тестирование, но и фактически опытную эксплуатацию ПО, на
которой могут уточняться исходные требования заказчика. Что уж говорить об особом акценте Microsoft
на задачах развертывания решений...
Узагальнене Сервісно-орієнтоване
програмування
ТЕОРЕТИЧНЕ
(generic) в різних Аспектно (контекстно-) ПРОГРАМУВАННЯ
парадигмах орієнтоване
Алгебраїчне
Метапрограмування Агентне
за шаблонами Експлікативне
(meta-programming) Генеруюче
Інсерційне
Автоматне
Візуальне (visual) Композиційне
Концептно-орієнтоване
Точка (Point)
X, Y, Color
Рисунок 3.6 – Основні елементарні програми: послідовність (а), вибір (б), цикл з передумовою (в)
Якщо функціональний вузол елементарної програми замінити елементарною програмою,
утвориться складена програма. Якщо вузол складеної програми замінити елементарною програмою,
знов утвориться складена програма. В такий спосіб з будь-якої множини елементарних програм
утворюється певний набір складених програм.
Складену програму, побудовану з множини елементарних програм, звуть структурованою.
Позначимо літерою S клас складених програм, базисна множина якого містить такі елементарні
програми, як послідовність (рис. 3.6, а), вибір (рис. 3.6, б) і цикл з передумовою ( рис. 3.6, в).
Теорема Бома-Якопіні про структурування стверджує, що будь-яку просту програму шляхом
покрокового перетворення можна замінити функціонально еквівалентною структурованою програмою з
класу S.
Згадане покрокове перетворення здійснюється за правилами (рис. 3.7):
1) правило простоти – створення програми слід починати із простої програми;
2) правило пакетування – кожну дію можна замінити двома послідовними діями (вихід одного
функціонального вузла з'єднується із входом наступного);
3) правило вкладання – кожну дію можна замінити будь-якою структурою керування (будь-який
блок може бути замінений на структуру керування вибору або повторення);
4) правила 2 і 3 можна застосовувати у будь-якій послідовності необмежену кількість разів.
а) б)
Рисунок 4.1 – Рівні вимог за К.Вигерсом і Д.Леффінгвеллом
•3. Група нефункціональних вимог (Non-Functional Requirements)
3.1 Бізнес-правила (Business Rules) – включають чи пов'язані з корпоративними регламентами,
політиками, стандартами, законодавчими актами, внутрішньо-корпоративними ініціативами (напр.,, прагнення
досягти зрілості процесів за CMMI 4-го рівня), обліковими практиками, алгоритмами обчислень тощо.
Business Rules Group визначає бізнес-правила як «положення, що визначають чи обмежують деякі аспекти
бізнесу. Вони стосуються організації структури бізнесу, контролюють або впливають на поведінку бізнесу».
Бізнес-правила часто визначають розподіл відповідальності в ПС, відповідаючи на питання «хто
виконуватиме конкретний варіант використання» або зумовлюють певні функціональні вимоги.
Розроблено методи формального подання бізнес-правил, аж до формальних мов опису (OCL – Object
Constraint Language, BRML – Business Rules Markup Language).
3.2 Атрибути якості (Quality Attributes) – описують додаткові характеристики продукту у різних
«вимірах», значущих для користувачів і/або розробників, і стосуються переносності, інтероперабельності
(прозорості взаємодії з іншими ПС, цілісності, стійкості тощо.
3.3 Зовнішні інтерфейси (External Interfaces) – часто підмінюються «інтерфейсом користувача», але
крім нього насамперед охоплюють конкретизацію аспектів взаємодії з іншими ПС, апаратним і програмно-
апаратним оточенням, операційним середовищем (напр., запис до журналу подій операційної системи) та
можливості моніторингу поведінки ПС під час експлуатації;
3.4 Обмеження (Constraints) – формулювання умов, що модифікують вимоги або набори вимог,
звужуючи вибір можливих рішень з їх реалізації. Зокрема, до них можуть належати параметри
продуктивності, що впливають на вибір платформ реалізації і/або розгортання (протоколи, сервери додатків,
баз даних), що можуть належати до зовнішніх інтерфейсів.
•4.Системні вимоги (System Requirements) – високорівневі вимоги до програмного забезпечення (ПЗ) у
складі численних взаємозалежних підсистем і застосунків (серед яких можуть бути апаратні складники та
групи фахівців).
Поряд з описаною класифікацією вимог 1-4 використовують відносно незалежні поняття:
a) Високорівневі Властивості, або Характеристики (Features):
за К.Вігерсом, це множина логічно пов'язаних функціональних вимог, які надають певні можливості для
користувача та задовольняють бізнес-цілі організації-розробника. З точки зору маркетингу ПЗ, це група
вимог, впізнавана зацікавленими особами, які приймають рішення щодо придбання ПЗ, тобто це список
вирізнюючих рис або можливостей в описі продукту;
за Д.Леффінгвеллом, Д.Відрігом, це сервіси, які надає ПС для задоволення потреб зацікавлених сторін.
Features можуть мати різний рівень деталізації – від охоплення високорівневих можливостей системи
(наприклад, «Розрахунок заробітної плати…»), до конкретних вимог (наприклад, «Автоматичне повідомлення
5
Клієнта за e-mail про резервування товару на складі»);
б) Незалежні, або загальні, властивості (Emergent Properties) – вимоги щодо (програмно-апаратної)
системи загалом, які не можна співвіднести з окремими її елементами. Такі вимоги стосуються
синергетичного ефекту, який може мати така система («ціле більше, ніж сума його частин»). Приклад –
вимога до «пропускної спроможності коллцентру», залежна від взаємодії комунікаційного обладнання,
оператора та програмного забезпечення в конкретних умовах;
в) Вимоги з кількісною оцінкою (Quantifiable Requirements) – вимоги, що піддаються кількісному
визначенню/вимірюванню, напр., «система має забезпечити пропускну здатність не менше 10 запитів на
секунду», часто приналежні до атрибутів якості й тому контекстно пов’язані з відповідними функціональними
вимогами.
У методології Раціонального уніфікованого процесу послідовно застосовують альтернативну
класифікацію вимог за моделлю FURPS+ (Р.Грейді, Hewlett-Packard; Маглинець_IT.pdf, с.25-27; ЯПЗ_Т.pdf,
підрозділ 1.4).
4.2. Рамковий процес інженерії вимог (vigers.pdf, розд. 3)
4.2.1 Модель процесу (рис. 4.2, 4.3):
2.
4.Формула прибутку
Рисунок 5.1 – Структура базового й канвы бизнес-модели
Натомість, елементами Беклогу спринту є історії користувача (user story) з властивостями INVEST
(розглянутими в наступному підрозділі 5.2.), визначеними розмірами й пріоритетами реалізації, а також
уточнені командою DoD.
5.2 Сутність і властивості історій користувача
Історія користувача має чотири де-факто обов’язкові атрибути:
1) унікальний числовий ідентифікатор – зазвичай збігається з ідентифікатором історії в системі
контролю версій, якою користується команда;
2) назву історії – стислий (приблизно до 10 слів) опис функціоналу з погляду користувача,
сформульований у вигляді трійки «Роль», «Дія», «Мета» (Кон_Польз_истории_2012.pdf, розд.2):
AS < define user > I WANT < descibe experience > SO THAT < describe benefit >
«Як <користувачу(роль)>, мені треба <дія>, щоб <причина (бізнес-цінність, ціль) >» (1)
Напр.: «Користувач вводить логін і пароль, щоб авторизуватися на сайті».
Якщо причина не очевидна (напр., «Як вегетаріанцю, мені потрібно фільтрувати результати пошуку,
щоб переглядати лише вегетаріанські страви»), при створенні опису функціональності для користувача
команді слід переконатися, що вона надає цінність для клієнта, узгоджено відповівши принаймні на
питання:
ким є користувач;
що потрібно робити користувачу;
навіщо користувачу це робити.
Прикладом застосування такого прийому є назва «Як представнику служби підтримки клієнтів, мені
треба звертатися до даних клієнтів, щоб я міг швидше відповідати на їх питання». Крім того, описи
функціональності користувачів слід визначати так, щоб їх реалізовувати можна було в довільному
порядку;
3) важливість, або пріоритет – унікальний числовий пріоритет історії, чим він вищий, тим раніше цю
історію необхідно реалізувати;
4) оцінку – кількісну відносну оцінку обсягу історії користувача за спеціальною шкалою (в
спеціальних безрозмірних одиницях – сторипоінтах, ідеальних днях чи, рідше, годинах).
Атрибути 1)-4) зручно розміщувати на стікері, прикріпленному на дошку.
Напр., історію користувача для авторизації на сайті з оцінкою в 10 сторипоінтів, важливістю 200 та
номером у трекері 1453, можна подати на стікері:
Крім де-факто обов'язкових атрибутів 1)-4) досить часто застосовують і чотири додаткові атрибути
історії, які можна відстежувати в трекері:
3
5) детальний опис – текстовий і, можливо, графічний опис історії, який застосовують насамперед у
розподілених командах для збереження знань щодо функціоналу ПП;
6) демонстрацію – достатньо докладний сценарій, що дозволяє тестування та підтвердження
досягнутої коректності виконання коду для історії користувача. Напр., для вищенаведеної історії
користувача з авторизацією можна використати такі сценарії для демонстрації:
1) користувач вводить логін "root" і пароль "pass", переходить на сторінку особистого профілю на
сайті;
2) користувач вводить логін "root" і пароль "wrongpass", отримує повідомлення "Введено
неправильний логін або пароль";
7) критерії приймання (acceptance criteria) та приймальні тести, для вироблення яких застосовують
спеціальні кращі практики цілеспрямованої комунікації:
а) Story Kick Off Huddles («Купки для розкриття історії користувача»), або Тріада, за участі бізнес-
аналітика, програмістів, тестувальника (тріада.pdf – лише для довідки);
б) Example Mapping, або складання карт тестових випадків (https://habr.com/ru/company/oleg-
bunin/blog/450844/ – лише для довідки);
8) категорію – її застосовують для підвищення керованості за допомогою категоризації завдань.
Припустимі як продуктні категорії («теми» й «епіки», розглянуті в наступному підрозділі 5.3), так і
нефункціональні категорії типу «оптимізація продуктивності», «технічна історія».
Для виявлення ролей користувачів, які потребують функціоналу (Кон_Польз_истории_2012.pdf,
розд.3), корисні три підходи (https://dou.ua/lenta/articles/techniques-for-developing-requirements-1/):
1) посадовий – виділення ролей з урахуванням посадових обов'язків.
2) функціональний — виділення ролей з урахуванням функціональних завдань.
3) гібридний – поєднання посадового й функціонального підходів.
Білл Вейк (Bill Wake, автор https://www.industriallogic.com/) запропонував абревіатуру INVEST для
опису властивостей «хорошої», тобто придатної для ефективної реалізації та тестування, історії
користувача (INVEST_Wake.pdf):
Independent (Незалежна)
Negotiable (Обговорювана)
Valuable (Цінна, або Корисна)
Estimable (Придатна для оцінювання, або Естимована)
Small (Мала,або Компактна)
Testable (Тестована).
Сутність властивостей INVEST описано далі.
1. Незалежна
Незалежність означає, що історію можна раалізувати, від тестувати та, можливо, навіть доставити
споживачам саму по собі. Через це вона може надавати незалежну цінність
2. Обговорювана
На відміну від подання вимог у традиційній SRS, історія користувача не є остаточною угодою щодо
певної функціональності, а скоріше форматом для таких вимог, які ще мають бути обговорені,
реалізовані, відтестовані та прийняті. Цей процес обговорення між бізнесом та командою адекватно
відображає правомірність та першочерговість інформації від бізнесу, але також і залучає до
дослідження через співпрацю та фідбек .з комунікацією, зокрема практиками а), б) щодо критеріїв
приймання.
Обговорюваність історій користувача дозволяє командам досягти передбачуваності. Відсутність
надмірно обмежуючих і надто деталізованих вимог удосконалює здатність команди й бізнесу знаходити
компроміси між обсягом функціональності та датою доставки. Оскільки кожна історія припускає певну
гнучкість, у команди теж виникає більше гнучкості у виконанні цілей релізу, що збільшує надійність та
посилює довіру.
3. Цінна (Корисна)
Ціль команди гнучкого проекту – доставити максимальну користь у межах доступного часу та
ресурсів. Тому кожна історія користувача має надавати користувачу, замовнику або стейкхолдеру певну
користь (іноді звану цінністю), яка є найважливішим атрибутом в INVEST-моделі. Пріоритети в беклогах
виставляють на підставі користі історій, і весь бізнес переживає чи зазнає успіх краху залежно від
користі, яку команда здатна доставити.
Команда має створювати історії, які «прорізають» архітектуру наскрізь, щоб надати цінність
користувачеві і розраховувати на зворотний зв’язок із ним настільки рано і часто, наскільки це можливо.
4
4. Придатна для оцінювання, або Естимована
Опис функціональності в історії деталізований рівно настільки, щоб можна було описати та оцінити
трудовитрати, необхідні для його реалізації.
Перед включенням до спринту описи функціональності користувачів оцінюють у балах. Бали є
навмисно приблизними оцінками, що використовуються головним чином для управління списком
невиконаних робіт і для підготовки до спринту. Після початку спринту команда розбиває опис
функціональності на завдання, необхідні його реалізації. На зборах з обліку невиконаної роботи з
продукту команда працює з власником продукту, щоб визначити, з яких описів необхідна додаткова
інформація, перш ніж їх можна буде розбити на завдання для оцінки трудовитрат. Власник продукту
може зібрати ці відомості та записати їх в опис функціональності.
5. Мала,або Компактна
Обсяг опису функціональності має дозволяти реалізувати його протягом спринту.
Опис функціональності користувачів має бути досить невеликим, щоб команда могла завершити їх
реалізацію протягом спринту. Власник продукту разом із командою працює над розбиттям надто
великих описів на дрібніші, використовуючи патерни їх розбиття (User Story Splitting Patterns).
Напр., опис «Як представнику служби підтримки клієнтів, мені потрібно звертатися до даних клієнтів,
щоб я міг швидше відповідати на запитання клієнтів» доцільно розбити на дрібніші описи, напр., «як
представнику служби підтримки клієнтів, мені потрібно знаходити ім'я клієнта та результати останнього
дзвінка за номером клієнта»; «як представнику служби підтримки клієнтів, мені потрібно звертатися до
повного журналу дзвінків клієнта, щоб я міг детально розібратися в поточній проблемі».
Корисний набір патернів розбиття надано Р.Лоренцем (Richard Lawrence, табл.5.1).
Однак необхідно не допускати долучення до історії непотрібних подробиць, оскільки надмірна
деталізація може негативно вплинути на обговорення, створюючи оманливе враження точності і Опис
функціональності користувача має бути підставою для розмов та обговорень з власником продукту та
клієнтом, які продовжуються, доки опис не буде повністю реалізовано та прийнято.
6. Тестована
Умови приймання мають бути визначені.
Наприкінці спринту клієнти або власник продукту або приймають опис функціональності користувача
як завершений (цілком реалізований), або відхиляють його. Перед початком спринту необхідно якомога
чіткіше визначити умови приймання клієнтом. Звичайно, опис функціональності може бути прийнятий з
причин, яких ніхто не передбачав. Проте розмови команди з клієнтами допомагають визначити умови
приймання, що сприяє розумінню командою очікувань клієнтів. Умови приймання можна
використовувати як основу для приймальних тестів; це дозволяє ефективніше оцінити повноту
реалізації опису функціональності.
Таблиця 5.1 – Десять патернів розбиття історії користувача за Річардом Лоренцем
1. По последовательностям действий. Определить конкретные шаги, выполняемые
пользователем в рамках последовательности, и тогда реализовать последовательность поэтапно.
...Я могу публиковать тарифные планы на
домашний дисплей
Как энергокомпания я хочу изменять и ...Я могу послать сообщение на Интернет-
публиковать тарифные планы потребителю портал потребителя
...Я могу опубликовать таблицу тарифов на
смарт-термостате потребителя
2. По вариации бизнес правил. На первый взгляд некоторые стори выглядят достаточно просто.
Однако, иногда бизнес-правила более сложны и обширны, чем это может показаться. В таком случае
оказывается полезным разбивать пользовательскую историю на несколько стори, контролируя таким
образом сложность бизнес-правил.
...упорядочивать по почтовому индексу
Как энергокомпания я могу упорядочивать ...упорядочивать по домашней демографии
потребителей по демографическому признаку ...упорядочивать по уровню потребления
энергии
3. По основным трудозатратам. Иногда пользовательская история может быть разбита на
несколько частей, где большая часть трудозатрат попадет в первую стори. В примере приведенном
ниже должна быть построена соответствующая инфраструктура, чтобы реализовать первую стори;
однако, последующее добавление функциональности должно быть довольно тривиальным.
5
Как пользователь я хочу иметь возможность ...Я хочу использовать Временной тариф [12]
выбрать/изменить мой тарифный план с помощью ...Я хочу использовать Предоплатный тариф
энергокомпании через Интернет-портал ...Я хочу подписаться на Пиковый тариф [13]
4. По простоте / сложности. Когда команда обсуждает пользовательскую историю и она, кажется,
становится все объемней и объемней (“А как насчет x? А думали ли вы об y?”), следует остановиться и
спросить себя “какой наипростейший вариант мог бы сработать?” Зафиксируйте эту простейшую
версию в качестве первой стори, и тогда уже сможете разбить все вариации и сложные детали в
отдельные пользовательские истории.
Как пользователь, я в целом хочу ...реагировать на время и продолжительность
фиксированный тариф, но хотел бы быть в курсе пиковых цен
изменения пиковых цен. ...реагировать на непредвиденные изменения
5. По вариациям данных. Вариации данных и источников данных являются другой причиной
дополнительных трудозатрат и сложности. Попробуйте добавлять стори по ходу дела после того, как
построена простейшая версия. Вот пример локализации приложения:
...на английском
Как энергокомпания я могу отсылать сообщения
...испанском
потребителям
...арабском и т. д.
6. По методам ввода данных. Иногда сложность состоит не столько в самой функциональности,
сколько в пользовательском интерфейсе. В таком случае разбейте стори так, чтобы построить вначале
наипростейший интерфейс, а более сложный построится позже.
...используя гистограммы по однонедельным
промежуткам
Как пользователь я могу просматривать мой
...на сравнительном графике, так что я мог бы
уровень потребления на разных графиках
сравнить мое потребление с потреблением других
семей с такой же демографией
7. Отсрочка качеств системы. Иногда первоначальная реализация не так уж и трудна, а большая
часть трудозатрат уйдет на то, чтобы сделать ее быстрой, или более надежной, или более точной, или
более масштабируемой. Однако, команда может много почерпнуть из базовой реализации и она
должна все же представлять собой определенную ценность для пользователей, которые в противном
случае не могли бы использовать систему вовсе. В этом случае разбейте стори на все последующие
“...ости”.
...интерполировать данные из последней
Как пользователь я хочу видеть потребление на вычитки данных
моем счетчике в реальном времени ...показать настоящие данные счетчика в
реальном времени
8. По операциям (пример: CRUD). Слова наподобие “управлять” или “контролировать” - дань
дополнительной вместимости стори для множества составных операций. С другой стороны они
подсказывают естественное разбиение стори на части.
...Я могу создать учетную запись
...Я могу редактировать установки учетной
Как пользователь я могу управлять своей записи
учетной записью ...Я могу приостановить учетную запись
...Я могу добавить больше бытовых приборов к
моей учетной записи
9. По сценариям использования. Если сценарии разрабатывались для представления сложных
взаимодействий вида “пользователь-система” или “система-система”, то стори часто можно разделить
соответственно отдельным под-сценариям.
6
Сценарий / Стори №1 (оптимистичный
сценарий): Сообщить энергокомпании, что у
пользователя есть оборудование
Я хочу подписаться на программу Сценарий / Стори №2: Энергокомпания
энергосбережения через розничного обеспечивает оборудование и данные и
дистрибьютора. уведомляет потребителя.
Сценарий / Стори №3 (альтернативный
сценарий): Обработать ошибки при валидации
данных.
10. Запустить спайк. В некоторых случаях пользовательская история может быть слишком большой
или сложной, или возможно реализация плохо понята. В таком случае нужно проделать технический
или функциональный спайк, чтобы внести ясность; потом разбить стори на основании результатов
(более подробно о спайках в следующей части).
Описи функціональності з властивостями INVEST, зокрема цінні (V) й незалежні (I), утворюють
список невиконаних робіт за ПП. Їх оцінюють і призначають пріоритети, після чого команда починає
реалізуватим описи функціональності з найвищим пріоритетом. Власник продукту працює над тим, щоб
описи функціональності з найвищим пріоритетом мали властивості INVEST, перш ніж вони будуть
винесені на зустріч з планування спринту.
5.3 Спеціальні категорії історій користувача
Епопеї (epics), теми (themes), піки (спайки, spikes)
Властивості INVEST мають бути притаманні історіям, готовим до реалізації.
В то же время истории с меньшим приоритетом могут быть более объемными – их называют
эпопеи (эпики, epics) и темы (themes) (Кон_Польз_истории_2012.pdf, розд.2,4).
Епопеї – це дуже великі описи функціональності у форматі історії користувача, які являють собою
значні обсяги робіт.
Під час розбиття епопеї можна створити множину тем та інших дрібніших описів функціональності.
Теми – це досить великі описи функціональності, зазвичай обсягу більшого, ніж можна реалізувати в
спринті, що являють собою набір взаємопов'язаних історій користувача.
Cразу разбивать их на более мелкие нецелесообразно во избежание чрезмерного разрастания
списка невыполненных работ. Разбивать описания функциональности на более мелкие следует
методом набегающей волны: по мере их приближения к верху упорядоченного по приоритетам
списка невыполненных работ.
При ранжировании списка невыполненных работ разбивают эпопеи и темы, находящиеся в верхней
части списка, и назначают приоритеты новым, более мелким описаниям. По завершении ранжирования
описания функциональности с наивысшим приоритетом должны быть достаточно небольшими, чтобы
их можно было реализовать. Ниже в ранжированном списке можно найти гораздо больше подробных
пользовательских описаний функциональности.
Для розбиття доцільно застосувати 10 патернів Р.Лоренца (табл.5.1), патерни Б.Вейка
(https://www.industriallogic.com/).
Пики – это работы, не направленные непосредственно на реализацию описания функциональности
пользователя, которые команде иногда приходится выполнять.
Три распространенных типа пиков – исследование, задолженность по ошибкам, улучшение
процесса или инженерное улучшение.
Исследование проводят при наличии открытых вопросов по описанию функциональности
пользователя, на которые необходимо получить ответ перед полным разбиением описания на задачи и
его оценкой. Например, на собрании по планированию спринта команда рассматривает описание
функциональности «Как часто летающий пассажир, я могу бронировать призовые билеты». После
обсуждения этого описания остается больше вопросов, чем ответов. Команда создает описание
функциональности, представляющее собой пик. «Как члену команды, мне нужно понять, что означает
выражение «бронировать призовые билеты», чтобы я мог писать описания для включения в будущие
спринты». Команда определяет, сколько часов можно посвятить этому исследованию, и записывает это
количество в качестве временных рамок пика. Ни одно из описаний, написанных в ходе пика, не может
реализоваться в течение той же итерации. Эту работу необходимо запланировать на одну из будущих
итераций с помощью списка невыполненных работ по продукту.
Задолженность по ошибкам – для работ по исправлению ошибки, лучше всего непосредственно
7
тогда, когда она найдена. Если не удается устранить ошибку в тот же день, когда она была найдена,
один из участников команды должен создать рабочий элемент ошибки, чтобы не потерять ее из вида.
Следите за тем, чтобы ошибки не накапливались. Если у команды накапливаются ошибки, создайте
описание функциональности пользователя и свяжите ошибки с пиком, чтобы его можно было оценить и
назначить ему приоритет вместе с остальными описаниями функциональности и пиками.
Команда может предпринимать действия по улучшению процесса или внесению инженерных
улучшений, призванных помочь ей в достижении успеха. Необходимость в улучшениях часто
выявляется на ретроспективном собрании по спринту и на ежедневных Scrum-собраниях. Например,
команде может понадобиться улучшить покрытие кода модульными тестами или снизить время
построения на сервере непрерывной интеграции.
5.4 Техніки виявлення, документування та оцінювання пріоритетів історій користувача
Для виявлення та документування історій користувача (яке зазвичай починає Власник продукту й
узгоджує атрибути історії з командою) застосовують техніки (див. Вольфсон_ГУПП.pdf,
Кон_Польз_истории_2012.pdf, розд.2,4,12-15):
– побудови бізнес–моделі;
– аналізу персон (personas) (https://www.reveall.co/guides/));
– виявлення причетних сторін (Кон_Польз_истории_2012.pdf, розд.5);
– аналізу впливів (impact mapping) Г.Аджіча (Gojko Adzic, https://gojko.net/);
– візуалізації змісту історій (storymapping);
– «подорожі споживача» (customer jorney map).
Підхід Іmpact mapping (Impact-mapping.pdf) передбачає 4-етапний процес побудови спеціальної
ментальної карти (mind map), термінальні елементи якої надають достатньо підстав для складання й
узгодження повного набору INVEST-історій користувача навіть у гнучкому програмному проекті
створення ПП ринкового призначення, коли быльш ьрадицыйны техныки вилучення вимог в
комуныкації з причетними сторонами незастосовні.
Storymapping (https://dou.ua/lenta/articles/techniques-for-developing-requirements-1/) – это аналог
Іmpact mapping, только со стороны пользователей. Берутся уже существующие персоны, из которых
выбираются самые важные, согласно Impact mapping, описывается высокоуровневый функционал для
каждой из них. Затем описывается минимально необходимый набор атрибутов фичи, который позволит
сделать продукт ценным для персоны. Его дополняют вариантами развития, какие только придут в
голову за ограниченное время. Цель: определить функции для первого релиза, он же – минимально
ценный продукт.
В customer jorney map (Guide_ Cust_J_Mapping.pdf; https://www.reveall.co/guides/) для всех
важных персон, выявленных ранее, проектируется черновой вариант навигации пользователя в
продукте. Для каждого шага описывается контекст, в котором пользователь пришел сюда. Оценивают
его ощущения от продукта и мотивацию дальнейшей работы с продуктом. Цель: понять, какая
функциональность и интерфейс мотивирует пользователя продолжать общение с продуктом, а что
может заставить его уйти.
Базовими підходами до встановлення пріоритетів вилучених історій (виконуваного Власником
продукту) є (Вольфсон_ГУПП.pdf; vigers.pdf, розд. 20):
1) декомпозиція найважливіших епіків і тем на INVEST-історії (безпосередньо або через задачі з
властивостями SMART), які можна реалізувати впродовж спринту з використанням патернів розбиття,
зокрема з табл.5.1. Абревіатура SMART означає:
– конкретність (Specific);
– вимірність (Measurable), тобто наявність метрик ступеня досягнення в певних кількісних шкалах;
– досяжність (Attainable);
– доцільність (Relevant), тобто відповідність умовам виконання проекту й узгодженість між собою,
та забезпеченість ресурсами (Resource-bound);
– наявність терміну досягнення (Time-bound);
2) упорядкування INVEST-історій за значущістю для користувача за процедурою Норіакі Кано
(Вольфсон_ГУПП.pdf, с.22-24);
3) встановлення рейтингів за схемою Д.Лефінгвелла на підставі трьох чинників, яким зіставлено
бальну шкалу від 1 до 9:
– незалежної цінності для користувача, оцінюваної Власником продукту безпосередньо або за
процедурою Н.Кано;
– цінності для досягнення цілей поточної ітерації;
8
– скорочення ризику недосягненя цілей спринту і/або проекту,
шляхом їх підсумовування з вагами, відповідними відносній значущості цих чинників (рис.5.2).
Ця процедура є спрощеним аналогом процедури К.Вігерса впорядкування функціональних вимог на
підставі вартості, цінності й ризику нереалізовності (Л4_22_09_2022_Вимоги.pdf).
Рисунок 7.1 – Структура області знань «Проектування програмного забезпечення» за SWEBOK V.3
Поняття архітектури програмного забезпечення (ПЗ) запроваджено Е.Дійкстрою (1968р.),
Д.Парнасом (початок 1970рр.) і розвинуто, зокрема, М.Шоу, Д.Гарландом (1996р.).
Наразі основними нормативними документами з проектування ПЗ є:
1) ДСТУ ISO/IEC/IEEE 42010:2018 (ISO/IEC/IEEE 42010:2011, IDT) Інженерія систем і програмних
засобів. Опис архітектури, ISO/IEC/IEEE 42010:2011 є результатом адаптації й розвитку в 2007р. де-
факто стандарту ANSI/IEEE 1471-2000 IEEE Recommended Practice for Architectural Description for
Software-Intensive Systems : (Рекомендована практика та архітектурний опис програмних систем);
2
2) ДСТУ ISO/IEC/IEEE 12207:2018 (ISO/IEC/IEEE 12207:2017, IDT) Інженерія систем і програмних
засобів. Процеси життєвого циклу програмних засобів.
3) IEEE Std 1016™-2009 IEEE Standard for Information Technology – Systems Design – Software Design
Descriptions (SDD-ieee-1016-2009.pdf – лише для довідки).
Нормативні документи надають доповнювані визначення архітектури ПЗ (software architecture) ПЗ:
опис підсистем та компонент програмної системи, а також зв'язків між ними; набір моделей та
артефактів, що містять результати рішень, прийнятих за способами реалізації вимог у програмному коді
(SWEBoK V3)
Набір засадничих принципів організації ПС, втілених у наборі її компонентів, їх зв’язках один з одним та
з оточенням ПС, а також принципів проектування та розвитку ПС
ДСТУ ISO/IEC/IEEE 42010:2018
Під архітектурою ПЗ розуміють набір внутрішніх структур ПЗ, виокремлених з різних точок зору і
складених з компонентів, їх зв’язків і можливих взаємодій між компонентами, а також доступних ззовні
властивостей цих компонентів.
Басс Л. Архитектура программного обеспечения на практике
Таким чином, архітектура ПС має визначити її внутрішню структуру: складники та спосіб їх
взаємодії між собою й їх програмно-апаратним оточенням. Тому вона підтримує насамперед
нефункціональні вимоги до ПС.
Натомість, узгоджений опис самих цих складників із зазначенням їх специфічної поведінки та
характеристик, який має забезпечити функціональні вимоги, звуть (архітектурним) проектом, або
дизайном ПС (software design).
Однак у практиці розроблення, залежно від застосованої парадигми, методології та технології ці
робочі продукти не завжди повністю відокремлені один від одного.
Наведені визначення зумовлюють три рамкові складники архітектури
(https://learn.ztu.edu.ua/mod/book/tool/print/index.php?id=278):
1) структуру – статичний складник, що показує розподіл відповідальності між виділеними
елементами архітектури;
2) поведінку – динамічний складник, що відображає взаємозв'язки і взаємодія між цими елементами;
3) стиль – засади й настанови щодо структури, які фіксують набір обмежень, що визначає сімейство
відповідних їм архітектур.
Відповідно, в області знань «Проектування ПЗ» SWEBoK V3 і в ДСТУ ISO/IEC/IEEE 12207:2018
(табл.7.1) діяльність з проектування подано як двох-кроковий процес:
а) визначення архітектури ПЗ (Architecture Definition, архітектурне проектування) – декомпозиція
структури (статичної) та організації (динамічної) компонент;
б) визначення проекту ПЗ (Design Definition, детальне проектування) – встановлення специфічної
поведінки та характеристик окремих компонентів.
Процес архітектурного проектування надає систему узгоджених моделей ПС з вищенаведеного
визначення архітектури за SWEBoK V3, яка фактично є повним і точним поданням специфікації вимог
до ПС, неспроможної забезпечити достатню повноту й точність через обмеження природної мови (хоча
б і структурованої). Тому його звуть також процесом архітектурного моделювання, або аналізу.
Модель ПС – це її формалізований опис на певному рівні абстракції, відповідному знанням і
повноваженням у процесі конструювання виконавців з певною функціональною роллю, точку зору
яких на ПС вона подає, описуючи конкретний аспект ПС з використанням відповідних діаграм і/або
формальних описів та документів заданого формату.
Як зазначає Г.Буч, «моделювання є центральною ланкою всієї діяльності щодо створення якісного
ПЗ. Моделі будують, щоб зрозуміти та осмислити структуру та поведінку майбутньої системи,
полегшити керування процесом її створення та зменшити можливий ризик, а також документувати
прийняті проектні рішення».
3
ДСТУ ISO/IEC/IEEE 12207:2018 також фіксує для процесу проектування:
а) вхідний контекст – систему процесів інженерії вимог та їх продуктів (див.
Л4_22_09_2022_Вимоги.pdf), позначених у табл.7.1 жовтим;
б) вихідний контекст – систему процесів реалізації, верифікації й валідації включно з тестуванням
(Л12_17_11_2022_Тестування_ПЗ.pdf), функціонування та обслуговування, зрілість яких таким чином
безпосередньо залежить від зрілості процесу проектування, позначених у табл.7.1 блакитним.
Таблиця 7.1 – Позиція діяльності з проектування в системі рамкових процесів ЖЦ
1. Процеси 2. Організаційні процеси 3. Процеси технічного 4. Технічні процеси
угоди уможливлення проекту керування (Technical (Technical processes)
(Agreement (Organizational Project- Management processes)
processes) Enabling processes)
1.1 Процес 2.1 Life cycle model 3.1 Project Planning 4.1 Business or Mission Analysis
придбаванн management process process process
я 2.2 Infrastructure 3.2 Project assessment and 4.2 Stakeholder Needs and
(Acquisition Management process control process Requirements Definition process
process) 2.3 Portfolio Management 3.3 Decision Management 4.3 System/Software
1.2 Процес process process requirements definition process
постачання 2.4 Human Resource 3.4 Risk Management 4.4 Architecture Definition
(Supply Management process process process
process) 2.5 Quality Management 3.5 Configuration 4.5 Design Definition process
process Management process 4.6 System Analysis process
2.6 Knowledge 3.6 Information 4.7 Implementation process
Management process Management process 4.8 Integration process
3.7 Measurement process 4.9 Verification process
3.8 Quality Assurance 4.10 Transition process
process 4.11 Validation process
4.12 Operation process
4.13 Maintenance process
4.14 Disposal process
Далі в ЖЦ сформована архітектура – система моделей ПС – виконує критично важливі функції:
фіксує єдине узгоджене бачення ПС всіх учасників розроблення та причетних сторін;
уможливлює (часткову) імплементацію ПС за допомогою генераторів коду – під час
конструювання;
пояснює структуру ПС для команди обслуговників і надає підґрунтя для внесення змін до ПС – під
час супроводження (званого наразі обслуговуванням – maintenance).
7.2 Де-факто стандартне подання архітектури ПЗ «4+1» Ф.Крачтена (Завгородній_Ялова.pdf
підрозділ 12.4)
Враховуючи зазначені функції архітектури ПС в її ЖЦ, ДСТУ ISO/IEC/IEEE 42010:2018 та IEEE Std
1016™-2009 надають уточнене визначення архітектури та/або її проекту як системи архітектурних
описів (architectural description) з точки зору певних причетних сторін за допомогою системи моделей.
Стандарти рекомендують для кожного подання фіксувати :
ролі, погляди та інтереси зацікавлених у ньому сторін;
причини та підстави відповідного погляду на ПС;
неузгодженості в межах певного подання і/або між ними;
допоміжну інформацію щодо джерел і підстав подання.
Шаблон опису архітектурного подання надано в IEEE Std 1016™-2009 (рис.7.2).
Чотири де-факто стандартні аспекти ПС та відповідні їм подання, необхідні для повної й однозначної
специфікації вимог до неї, та п’ятий, що забезпечує їх узгодження, підсумував Ф.Крачтен (Kruchten P.
Architectural Blueprints – The «4+1» View Model of Software Architecture / P. Kruchten // IEEE Software –
1995. – N12 (6) – P. 42-50 (Kruchten1995.pdf – лише для довідки) у так званій моделі архітектури «4+1»
(рис.7.3).
Зазначені аспекти та подання виконують різні, але взаємодоповнювальні, функції й відображають
точки зору виконавців основних функціональних ролей під час розроблення ПС:
1) подання сценаріїв, або варіантів використання відображає функціональні можливості ПС,
містить сценарії її взаємодії із зовнішнім середовищем та ролі користувачів і зовнішніх систем;
2) логічне подання відображає логічну структуру та поведінку ПС, відображає пакети, підсистеми,
класи, інтерфейси та їх взаємозв'язки;
4
Аналітик, розробник
Поведінка 1. Подання Програміст
Структура варіантів використання Керування проектом
Користувач
Функціональність
4. Подання процесів 5.Подання розміщення
Системний інтегратор Системний інженер
Продуктивність Топологія ПС
Масштабовність Впрвадження, розгортання
Пропускна здатність Комунікація
Проектування Конструювання
компонентів
Обслуговування Тестування
Патерни застосовують тут
8.5.2 23 патерни Банди чотирьох (GoF – Гамма_Паттерны проектирования_GoF.pdf;
DesignPatterns_Buday.pdf)
а) породжуючі (5 Creational Patterns)
• Builder
• Abstract Factory
• Factory Method
• Prototype
• Singleton
б) структурні (7 Structural Patterns)
• Adapter
• Bridge
• Composite
• Decorator
• Facade
• Flyweight
• Proxy
в) поведінкові (11 Behavioral Patterns))
• Chain of responsibility
• Command
• Strategy
• Interpreter
• Observer (subscriber, publisher-subscriber, listener, dependents)
• Memento
• Visitor
• Template method
• Mediator
• State
• Iterator
8.5.3 GRASP (Ларман, Фаулер, Фаулер_ Шаблоны корпоративных приложений_2016.djvu)
На відміну від 23 класичних патернів GoF, 5 оснвних і 4 додаткових General responsibility assignment
software patterns K.Лармана, М.Фаулера – загальні шаблони розподілу відповідальності – не мають
специфічної структури, чіткої області застосування та конкретної вирішуваної проблеми, що вирішується, а
6
лише являють собою узагальнені підходи/рекомендації/принципи щодо вирішення загальних завдань
стосовно призначення відповідальності класам та об'єктам (https://bool.dev/blog/detail/grasp-printsipy
Елементарні
конструкції
паралелізму
Проміжні
програмні
засоби
(middleware)
Методи
конструювання
Стандарти розподілених ПЗ
платформ
Конструювання
різнорідних
Тестове систем
програмування
(test-first Аналіз
programming) і налаштування
продуктивності
.
Рисунок 9.1 – Структура області знань «Конструювання ПЗ» у SWEBoK V.3
2
Таблиця 9.1 – Позиція діяльності з конструювання в ЖЦ ПС за ДСТУ ISO/IEC/IEEE 12207:2017
1. Процеси угоди 2 Організаційні 3. Процеси технічного 4 Технічні процеси
(Agreement процеси керування (Technical (Technical processes)
processes) уможливлення Management processes)
проекту
(Organizational
Project-Enabling
processes)
1.1 Процес 2.1 Life cycle model 3.1 Project Planning 4.1 Business or Mission Analysis process
придбавання management process process 4.2 Stakeholder Needs and Requirements
(Acquisition 2.2 Infrastructure 3.2 Project assessment Definition process
process) Management process and control process 4.3 System/Software requirements
1.2 Процес 2.3 Portfolio 3.3 Decision definition process
постачання Management process Management process 4.4 Architecture Definition process
(Supply process) 2.4 Human Resource 3.4 Risk Management 4.5 Design Definition process
Management process process 4.6 System Analysis process
2.5 Quality 3.5 Configuration 4.7 Implementation process
Management process Management process 4.8 Integration process
2.6 Knowledge 3.6 Information 4.9 Verification process
Management process Management process 4.10 Transition process
3.7 Measurement process 4.11 Validation process
3.8 Quality Assurance 4.12 Operation process
process 4.13 Maintenance process
4.14 Disposal process
9.2. Технологічні засоби ефективного конструювання ПЗ
9.2.1 Склад засобів
Основні засоби ефективного конструювання ПЗ:
а) дотримання рамкових принципів ІПЗ (Л1_Сутність_Осн_поняття_ПІ_16_09_2021.pdf);
б) адекватний формат розроблення - унікальні програмні продукти (ПП) в програмни х проектах,
розвиток ПП - в процесах операціональної діяльності шляхом безперервної інтеграції;
в) спеціальні прийоми конструювання, підсумовані на рис.9.1.
9.2.2 Прийоми ефективного конструювання (Java_DUT.pdf, розд.1, підрозділ 6.1)
1. Зменшення складності
Потреба у зменшенні складності впливає на всі аспекти конструювання і особливо критична для
процесів верифікації (перевірки) та тестування результатів конструювання, тобто самих програмних
систем.
Зменшення складності у конструюванні програмного забезпечення досягають створенням простого і
легко читаного коду, нехай і на шкоду прагненню зробити його ідеальним (напр., з точки зору гнучкості,
«чистоти», скорочення розміру). Це не означає, що треба обмежити застосування розвинених мовних
можливостей засобів програмування, а передбачає "лише" пріоритет читаності коду, простоти
тестування, прийнятного рівня продуктивності замість постійного вдосконалення коду без урахування
термінів та обмежень проекту.
Мінімізація складності досягається, зокрема, проходженням стандартам (обговорюються в темі 1.4
"Стандарти у конструюванні"), використанням низки специфічних технік (висвітлюються в 3.3
"Кодування") і підтримкою практик, спрямованих на забезпечення якості в конструюванні (3.5 "Якість
конструювання") .
2. Передбачення змін (Anticipating Changes)
Більшість програмних систем змінюються з часом. Причин цьому - безліч. Очікування змін є однією з
рушійних сил конструювання програмного забезпечення. Програмне забезпечення не є ізольованим від
зовнішнього оточення (як системного, так і з точки зору галузі діяльності, для автоматизації завдань і
проблем якого воно застосовується). Більше того, програмні системи є частиною змінюється
середовища і повинні змінюватися разом з нею, а, іноді, і бути джерелом змін самого середовища.
Очікування змін підтримується рядом технік, представлених в темі 3.3 "Кодування".
3. Конструювання з можливістю перевірки (Constructing for Verification)
"Конструювання для перевірки" (а саме такий сенс закладений в оригінальна назва даної теми)
припускає, що побудова програмних систем повинно вестися таким чином, щоб сама програмна
система допомагала вести пошук причин збоїв, будучи прозорою для застосування різних методів
3
перевірки та внесення необхідних змін, як на стадії незалежного тестування , так і в процесі
операційної діяльності - експлуатації, коли особливо важлива можливість швидкого виявлення та
виправлення виникаючих помилок.
Серед технік, спрямованих на досягнення такого результату конструювання:
• огляд, оцінка коду (code review)
• модульне тестування (unit-testing)
• структурування коду для і спільно з застосуванням автоматизованих засобів тестування
• обмежене застосування складних або важких для розуміння мовних структур.
4. Повторне використання
Під час конструювання ПЗ типові ресурси систематичного повторного використання - бібліотеки,
модулі, компоненти, початковий код, «продукти з полиці» (COTS).
Систематичне багаторазове використання істотно підвищує продуктивність і якість ПЗ за зниження
його вартості.
Багаторазове використання має два тісно пов'язані аспекти: “
конструювання для багаторазового використання;
конструювання з багаторазовим використанням.
5. Стандарти в конструюванні (romanov_PI.pdf, підрозділ 3.4; Мартин_Чистый код_2019.pdf,
розд.3-5,7)
Стандарти, які безпосередньо застосовуються під час конструювання, охоплюють:
• комунікаційні методи (наприклад, стандарти форматів документів і <оформлення> утримання)
• мови програмування і відповідні стилі кодування (наприклад, Java Language Specification, що є
частиною стандартної документації JDK - Java Development Kit і Java Style Guide, що пропонує
загальний стиль кодування для мови програмування Java)
• платформи (наприклад, стандарти програмних інтерфейсів для викликів функцій операційного
середовища, такі як прикладні програмні інтерфейси платформи Windows - Win32 API, Application
Programming Interface або. NET Framework SDK, Software Development Kit)
• інструменти (не в термінах середовищ розробки, але можливих засобів конструювання - наприклад,
UML як один зі стандартів для визначення нотацій для діаграм, що представляють структура коду і його
елементів або деяких аспектів поведінки коду)
Використання зовнішніх стандартів. Конструювання залежить від зовнішніх стандартів, пов'язаних
з мовами програмування, використовуваним інструментальним забезпеченням, технічними
інтерфейсами і взаємним впливом Конструювання програмного забезпечення та інших областей знань
програмної інженерії (в тому числі, пов'язаних дисциплін, наприклад, управління проектами). Стандарти
створюються різними джерелами, наприклад, консорціумом OMG - Object Management Group (зокрема.
Стандарти CORBA, UML, MDA, ...), міжнародними організаціями з стандартизації такими, як ISO / IEC,
IEEE, TMF, ..., виробниками платформ, операційних середовищ і т.д. (Наприклад, Microsoft, Sun
Microsystems, CISCO, NOKIA, ...), виробниками інструментів, систем управління базами даних ит.п.
(Borland, IBM, Microsoft, Sun, Oracle, ...).
Розуміння цього факту дозволяє визначити достатній і повний набір стандартів, які застосовуються у
проектній команді або організації в цілому.
Використання внутрішніх стандартів. Певні стандарти, угоди та процедури можуть бути також
створені усередині організації або навіть проектної команди. Ці стандарти підтримують координацію між
певними видами діяльності, групами операцій, мінімізують складність (у тому числі при взаємодії членів
проектної групи та за її межами), можуть бути пов'язані з питаннями очікування та обробки змін, ризиків
і питаннями конструювання для перевірки та подальшого тестування. У поєднанні з зовнішніми
стандартами, внутрішні стандарти покликані визначити загальні правила гри для всіх членів проектної
команди, домовившись про терміни, процедури та інших значущих угодах, незалежно від ступеня
формалізації процесів конструювання, зокрема, і процесів життєвого циклу, в загальному випадку.
Приклад використання внутрішних стандартів – практичні рекомендації з організації конструювання
в MSF (Ехлаков_ОПИ.pdf, підрозділ 4.4).
2. Керування конструюванням (Managing Construction)
2.1 Моделі конструювання в життєвому циклі (Construction Models)
Моделі конструювання визначають комплекс операцій, які включають послідовність, результати
(наприклад, вихідний код і відповідні unit-тести) та інші аспекти, пов'язані із загальним життєвим циклом
розробки. У більшості випадків, моделі конструювання визначаються використовуваним стандартом
життєвого циклу, застосовуваними методологіями і практиками. Деякі стандарти життєвого циклу, за
своєю природою, є орієнтованими на конструювання - наприклад, екстремальне програмування (XP-
eXtreme Programming). Деякі розглядають конструювання в нерозривному зв'язку з проектуванням (в
частині моделювання), наприклад, RUP (Rational Unified Process).
4
Засоби
обслуговування
ПЗ
Міграція
Вилучення з
експлуатації
Засоби якості
програмного
забезпечення
Безпека програмного
забезпечення
4. Засоби розробки
Тестування за ДСТУ 3919-1999 (ISO/IEC 14102:1995) Інформаційні технології. Основні напрямки
оцінювання та відбору CASE-інструментів.
7. Виконавці проекту
1) моделі зрілості колективу People CMM, особистого (PSP) й коллективного (TSP) процесу
розроблення (див. PSPTSP.doc);
2) програми професійного розвитку, зокрема в компанії Construx Software під керівництвом
С.Макконнелла (Жихаревич_ПППІ.pdf, підрозд. 7.4).
Роль SQA – забезпечити планування й подальше виконання процесів на основі заданого плану та
проведення необхідних вимірювань процесів.
Верифікацію й валідацію (V&V) застосовують до артефактів програмного проекту в його
контрольних точках для перевірки й підтвердження їх правильності. Дії з V&V регламентуються базовими
стандартами:
IEEE 1012-2016 - IEEE Standard for System, Software, та Hardware Verification and Validation
IEEE 1059:1993 «IEEE Guide for Software Verification and Validation Plans».
5
Діяльність з оглядів та аудитів продуктів включає п'ять типів дій: управлінські огляди, технічні
огляди, інспекції, наскрізний контроль та аудити, уніфіковано регламентованих IEEE 1028:2008
«IEEE Standard for Software Reviews and Audits».
Огляди ПЗ регламентовані також ДСТУ ISO/IEC 20246:2018 (ISO/IEC 20246:2017, IDT) Інженерія
систем і програмних засобів. Рецензування розроблюваних програмних засобів.
Засади процесу керування якістю надають
TickIT – схема сертифікації систем менеджменту якості для програмного забезпечення на ґрунті
ІSO/ІEC 90003:2004, запропонована провідними фірмами розробниками Великої Британії;
ДСТУ ISO/IEC 90003:2006 Програмна інженерія. Настанови щодо застосування ІSO 9001:2000 до
програмного забезпечення (ІSO/ІEC 90003:2004, ІDT), який регламентує розгортання Систем
менеджменту якості під час розробки ПЗ;
ДСТУ ISO 10006:2018 (ISO 10006:2017, IDT) Управління якістю. Настанови щодо керування якістю в
проектах.
9. Загальні підходи до створення інфраструктури й організаційної культури постійного
підвищення якості
1) універсальні
– Total Quality Management (ТQM) (Shper_Q.ppt), Quality Function Deployment (QFD) (див. qfd.DOC,
instr06.pdf, p41-haag.pdf), JIT, TOC, Бережливое производство (Lean Development)
– внутрішній і зовнішній бенчмаркінг – розповсюдження кращого досвіду (див. instr06.pdf);
– статистичний контроль процесів для гарантованого рівня їх прогнозованості;
– Система збалансованих показників (BSC);
– Підхід Хосін Канрі: якісно-орієнтована реалізація стратегія організації в проектах;
– підходи до якісно-орієнтованого управління організацією, зокрема, Architecture for Information
Systems (ARIS);
2) спеціальні (див. QIP_IDEAL.doc):
– SQFD , Software Lean Development, фабрики опыта (experience factory, В.Бейсли), подходы к
организации разработки программного продукта QIP (центр GSFC NASA) и IDEAL (SEI), построение и
использование информационной среды устойчивого выполнения проектов (project baseline, П.
Джалотта).
– реалізація статистичного контролю процесів – методологія Cleanroom ( див. Cleanroom.pdf)
Для аналізу результатів оцінювання якості застосовуються прості візуальні інструменти аналізу
якості та, за достатньої кваліфікації фахівців і ресурсів, методи багатовимірного статистичного аналізу
кількісних і якісних даних (див. інструменти.doc).
11.2 Моделі якості програмного забезпечення
11.2.1. Поняття якості програмного забезпечення
Залежно від стадії життєвого циклу програмного продукту і проекту та відповідних їй потреб учасників
проекту, в ISO/IEC 9126-1:2001 зафіксовано три категорії якості ПС:
– внутрішня, яку характеризує відносна кількість залишкових дефектів у коді й документації;
– зовнішня, яку характеризує відносна кількість відмов під час функціонування;
– експлуатаційна, яку характеризує спроможність програмного продукту виконувати покладені на
нього функції,
схарактеризовані на рис. 11.2.
Червоний, жовтий і зелений колір підкреслює, що безпосередньо забезпечити розробники можуть
лише внутрішню якість, а зовнішня й експлуатаційна послідовно визначаються нею.
6
ПРОГРАМНА СИСТЕМА (ПС)
Група інтегрованих програмних засобів, які реалізують інформаційну технологію виконання певного
ділового процесу Споживача/Замовника і можуть використовувати спільні сховища даних.
(робоче означення, прийняте на підставі ГОСТ 34)
Позитивний приклад: група програмних застосунків, що складають автоматизоване робоче
місце фахівця, є ПС.
Негативний приклад: програмно-апаратні засоби захисту інформації не є ПС.
Відображає погляд К і н ц е в и х
користувачів/
Відображає погляд Cпоживачів
Замовника/
Постачальника
та Ро з р о б н и к а
( аналітика, Експлуатаційна, або
тестувальника, якість у використанні:
менеджера проекту)
Відповідність ефекту від
Обумовлює с п о ж и в а н н я функцій ПС
Відображає погляд очікуванням Кінцевих
Ро з р о б н и к а користувачів/Cпоживачів.
(аналітика,
архітектора, Зовнішня:
програміста,
тестувальника) Відповідність ПС, що Надає
Визначає функціонує в модель- підгрунтя
ному чи реальному потребує
середовищі експлуатації, оцінювання
й перевірки
цільовим вимогам до неї.
Внутрішня:
Відповідність робочих Надає
продуктів похідним підгрунтя,
вимогам до них, необхідним потребує Звіт(и) про
оцінювання проблему
для зовнішньої якості ПС . й перевірки
ХАРАКТЕРИСТИКА 1
ХАРАКТЕРИСТИКА k
Атрибут
(підхарактеристика) 1.1 . . . Атрибут
(підхарактеристика) k.1 . . .
Атрибут
(підхарактеристика) 1.n(1) Атрибут
(підхарактеристика) k.n(k)
Метрики атрибутів –
показники, обчислювані за даними процесів
перевірки й т е с т у в а н н я у певних шкалах
Рисунок 11.3 – Структура моделі якості програмного забезпечення
Модель якості призначена для:
7
– визначення вимог до якості ПС (зовнішньої і внутрішньої);
– підтвердження повноти визначення вимог до якості;
– ідентифікації цілей проекту;
– ідентифікації цілей тестування;
– ідентифікації призначених для користувача критеріїв приймання завершеного програмного
продукту.
М е т р и к а – властивість робочого або кінцевого програмного продукту, значення якої визначає
міру його якості в аспекті певної підхарактеристики, належить певній шкалі і може бути однозначно
встановлене за допомогою певного методу під час огляду цього продукту, його тестування або
експлуатації.
Спецификация
определяют показыв ает Системная
требов аний к ПС
интеграция и
тестиров ание
отражает
Поведение
Требов ания
системы Внешнее Внешние
к в нешнему
(в нешние атрибуты качеств о метрики
качеств у
ПС)
Проектиров ание
определяют
и реализация ПС показыв ает
Проектиров ание
и реализация ПС
отражает
Внутренние Требов ания
атрибуты ПС Внутрен-
к в нутрен- Внутренние
нее
нему метрики
качеств о
качеств у
Метрики завершеності
Доступність
Для опрацювання цих обмежень запропоновано низку відносно нових ієрархічних моделей.
1 . 5 . Т.Джілба (1988)
Gilb T. Principles of Software Engineering Management, Addison-Wesley.- 19811. – 442 p.
– локально адаптовна (у масштабі організації) і відкрита для поповнення;
– сполучає характеристики ресурсів з характеристиками якості;
– пов'язана з еволюційною моделлю процесу розробки;
Верхній рівень утворюють:
чотири характеристики якості – працездатність, готовність, адаптовність, зручність
використання;
16
чотири характеристики ресурсів – час, гроші, люди та інструменти.
1 . 6 . Constructive quality model ( COQUAMO) Б.Кітченхем (1988)
B.Kitchenham Towards a constructive quality model // Software Engineering Journal July – 1987 – P.
105-113
Низка чинників якості з класичних моделей Джілба, МакКолла і Боема адаптується до особливостей
конкретного програмного проекту.
1 . 7 . Р.Дж.Дромея ( 1996)
R.G.Dromey. A model for software product quality. // IEEE Trans. On Softw. Eng. – V. 21. – N.2. – febr.
– 1995. – P. 146-162.
Призначена для поступового поглиблення розуміння взаємозв’язків між атрибутами
(характеристиками) та підпорядкованими атрибутами для визначення ознак програмного продукту
та його складників, що впливають на атрибути якості.
Побудова моделі потребує:
1) вибору множини атрибутів якості верхнього рівня, які будуть використані для оцінювання;
2) складання списку всіх компонентів або модулів системи;
3) ідентифікації визначальних властивостей кожного компонента, які найбільше впливають на
якість властивості оцінюваного програмного продукту;
4) визначити взаємозв’язки між властивостями компонентів та атрибутами якості програмного
продукту;
5) протестувати модель; та ;
6) виявити її некоректності та виправити їх (повторивши дії 1)-5)).
1 . 1 1 . Software quality in Development (SQUID) Й.Боега (1999)
Boegh J. et al. A Method for Software Quality Planning, Control and Evaluation // IEEE Software. -
march/april. - 19911. - P. 69 – 77.
Якість специфікується в термінах внутрішніх і зовнішніх характеристик (як і в 986), що
уточнюються, поки не стануть безпосередньо вимірними атрибутами.
Користувачу надається можливість визначити, яким чином внутрішні характеристики впливають
на зовнішні, пов'язуючи їх в моделі даних.
Модель може пристосовуватися до потреб окремої організації і передбачає використання власної
бази даних.
Переваги моделі:
– врахування більшості чинників, що впливають на якість ПС,
– сприяння уникненню конфліктів між різними вимогами до якості,
– можливість зазначати виміри та метрики для компонентів ПС із різними функціями
(обчислювальних, інтерфейсних, інформаційних (баз даних)) і встановлювати відповідні їм правила
виконання вимірювань.
1 . 1 1 . COnstructive QUALity MOdel (COQUALMO) Б.Боема-А.Чулані (1997)
Devani-Chulani S. Incorporating Bayessian Analysis to Improve the Accuracy of COCOMO II and its
Quality Model Extension // Univ. of South. Calif., Los Angeles, CA.- 1997.
Характеристикою якості прийнято надійність, а її метриками – кількості внесених та усунутих
дефектів в різних робочих продуктах на різних стадіях життєвого циклу ПС, які пов’язуються з оцінками
ресурсів на їх усунення.
11.2.4.2.Неієрархічні моделі якості
2 . 1 . A Software Quality Model and Metrics for Identifying Project Risks Е. Х’ятт, Л.Розенберг (1996)
(Software Assurance Technology Center, NASA)
Hyatt L., Rosenberg L. A Software Quality Model and Metrics for Identifying Project Risks and
Assessing Software Quality // 8th Annual Soft. Technology Conf., Utah, april. – 1996.
Рівень якості визначається як величина, обернена до ризику програмного проекту. Підтримується
класифікація та всебічна оцінка ризиків. Описує співвідношення між метриками якості та ризику на
послідовних стадіях проекта, надаючи можливість визначати ризик та якість для відповідних їм
робочих продуктів: документу специфікації вимог, проекту архітектури, тексту коду, проектів тестів і
тестових скриптів.
Підстава розроблення – потреба врахування і подання каузальних (причинно-наслідкових)
взаємозв'язків в проблематиці якості ПС
17
2 . 2 . QEST (Quality Factor + Economic, Social and Technical dimensions) А.Абран, Л.Бугліоне
(1999)
Buglione L., Abran A., Geometrical and statistical Foundations of a Three-dimensional Model of
Performance // International Journal of Advanced in Engineering Software. - 30. - 19911.
Модель – тривимірна структура-оболонка, яка дозволяє одночасно подавати залежність значень
параметрів програмного продукту, що відображають три аспекти його вимірювання (три точки зору на
продукт):
1. Економічний аспект (E). Точка зору менеджерів на вартість і графік розробки (постачання)
продукту.
2. Соціальний аспект (S). Точка зору користувачів на характеристики експлуатаційної якості (якості
у використанні) продукту.
3. Технічний аспект (T). Точка зору розробників на забезпечення, вимірювання і оцінювання
досягнення вимог до якості продукту.
Три виміри моделі утворюють геометричну фігуру - правильний чотиригранник (тетраедр), сторони
якого відображають нормалізовані значення виміряних величин за кожним з вимірів, а вершина -
нормалізоване оптимальне цільове значення для кожного виміру
Схематичне подання моделі QEST для оцінювання якості ПС під час проекту
Z P
Y
Qe
Qt
.
Qs T
E .
S
X
Модель адаптована авторами для одночасного подання кількісних і некількісних (якісних) мір
програмного продукту, що розробляється, інтегрованих в єдиний (інтегральний) показник його якості,
отриманий експертною групою на основі опитування всіх зацікавлених в ньому осіб.
Вершина (P) тетраедра описує максимальний рівень якості продукту (ефективності проекту).
Сторони правильного тетраедра (піраміди) дорівнюють одиниці. Всі три виміри нормалізовано на
інтервалі {0,1}. Значення по кожному виміру є зваженими сумами списку n значень нормалізованих
коефіцієнтів, що відображають кожну з трьох точок зору експертів на продукт (номінальні оцінки). Ціі
значення відкладаються на сторонах піраміди {Qe, Qs, Qt}. Отримані точки з'єднуються лініями.
Утворюється перетин піраміди, що «відділяє» кращі і гірші оцінки якості продукту. В ході виконання
проекту формуються «реальні зрізи» ефективності проекту.
Ефективність проекту (розглядувана як якість створюваного продукту) вимірюється за допомогою
однієї з трьох величин:
– відстані від перетину до основи піраміди (чим більша відстань від поточного перетину до
основи, тим вища ефективність проекту);
– площі перетину (чим менша площа, тим вище ефективність);
– об'єму нижньої частини піраміди (xим більший об'єм під перетином, тим вища ефективність
проекту).
A4 B3 A1
B1
A2
B2
A3
B4
A5
B5
Кола на схемі вказують, для яких метрик використовуються ті або інші дані.
Таблиця 11.5 – Внутрішні метрики (функції) «завершеності» ПС, подані на схемі
Назва Позна- Формула Дані, що збираються
метрики чення Им'я Описание
Інтенсивність МХ1 МХ1= А1/B1 А1 Число помилок, виявлених при перевірці
виявлення В1 Очікуване число помилок, які будуть виявлені при перевірці
помилок при
перевірці
Кількість MX2Y2 MX2Y2 = A2 Число усунених дефектів в проекті, коді…
усунених MX2/MY2 B2 Оцінюване число дефектів, які будуть виявлені в ПС (при інс
дефектів MX2 = A2/B2 B3 Число помилок, виявлених при перевірці
MY2 = A2/B3
Щільність MX3 MX3 = (A3 - A3 Очікуване число помилок, які будуть виявлені при перевірці
дефектів, що A4) / B4 A4 Число помилок, виявлених при перевірці
залишилися B4 Оцінюваний розмір ПС
Адекватність МХ4 МХ4 = A5/B4 A5 Число тестових ситуацій в плані тестування
тестування B4 Число тестових ситуацій, які мають бути передбачені для з
тестового покриття
Перша фаза
ПрО, вимоги Визначення цілей якості
користувача (вимог)
Третя фаза
Ресурси
для оцінювання
Проектування оцінювання
1. Планування діяльності з оцінювання
Виконання оцінювання
1. Здійснення вимірювань
2. Застосування критеріїв рішення для вимірів якості
3. Застосування критеріїв рішення для оцінювання
Завершення оцінювання
1. Огляд результату оцінювання
2. Створення звіту про оцінювання
3. Огляд оцінювання якості та забезпечення зворотного зв'яз
з організацією
4. Виконання розподілу даних оцінювання