DRAFT [2022-2023][ua] at 2023-01-05 17:09:33 +0200
Logo-do [errata] Profile

Технологія створення програмних продуктів

Тема 4. Формалізовані методології Microsoft Solutions Framework та Rational Unified Process

Конспект лекції


На цей час абсолютна більшість користувачів в Україні працюють на продуктах компанії Microsoft. Ця компанія підтримує університети по усьому світові, надає ряд ПЗ для підтримки основних процесів господарської діяльності. Тому при вивченні технологій програмування не можна пропустити досвід Microsoft у галузі створення програм.

Аналіз результатів виконання програмних проектів, виконаний службою Microsoft Consulting Services, виявив, що лише чверть  проектів можна визнати успішними, половина проектів мала великі проблеми (рис. 1).

Статистика успіхів проектів з розроблення ПЗ компанії Microsoft

Рисунок 4.1   — Статистика успіхів проектів з розроблення ПЗ компанії Microsoft

Основними причинами невдач були визнані такі:

Для подолання цих труднощів був запропонований набір моделей Мicrosoft Solution Framework (MSF) [34], в якому врахований досвід, накопичений групами розроблення програмних продуктів.

В основу MSF покладено вісім базових принципів (foundational principles):

MSF складається із двох моделей та трьох дисциплін:

Модель командної групи (MSF Team Model) описує, як організувати колективи і якими принципами керуватися для досягнення максимального успіху в розробленні програм. Різні колективи можуть по-своєму застосовувати на практиці різні елементи цієї моделі – все залежить від масштабу проекту, розміру колективу і кваліфікації його учасників та моделі процесу розроблення.

Формування колективу є складним завданням, що повинне виконуватися психологами та враховувати такі основні положення:

Модель командної групи визначає тільки ролі, кожна з яких може виконуватися кількома людьми  (рис. 2). Цікаво, що в моделі командної групи не передбачено єдиноначальності – усі ролі важливі, усі ролі рівноправні, тому MSF називають моделлю рівних (team of peers).

Модель командної групи (MSF Team Model)

Рисунок 4.2   — Модель командної групи (MSF Team Model)

Program management – керування програмою. Виконавець цієї ролі відповідає за організацію (але не керує): здійснює ведення графіка робіт, ранкові 15-хвилинні наради, забезпечує відповідність стандартам і специфікаціям, фіксацію порушень, написання технічної документації.

Product management – керування продуктом. Виконавці цієї ролі відповідають за спілкування із замовником, написання специфікації, роз'яснення завдань розроблювачам.

Development – найбільш традиційна роль – розроблення і початкове тестування продукту.

User expirience – підвищення ефективності роботи користувачів, написання користувальницької документації.

Release management – розгортання релізу продукту, супровід і його технічна підтримка.

Testвизначення відповідності показників якості релізу встановленим значенням. Виявлення й усунення недоробок, виправлення помилок, інші функції QA.

У MSF затверджується, що таку модель можна масштабувати, розбиваючи систему за функціями.

Модель процесу (MSF Process Model) визначає, коли і які роботи повинні бути виконані.

Основні принципи і практичні прийоми, на яких ґрунтується модель:

Process model має три основні особливості:

Увесь процес розбивається на п’ять взаємозалежних фаз (рис. 3). Перш ніж переходити до наступної фази, на попередній повинні бути отримані певні результати (досягнуті головні опорні точки). Фактично процес ітеративний і відповідає спіральній моделі ЖЦ ПЗ.

Модель процесу (MSF Process Model)

Рисунок 4.3   — Модель процесу (MSF Process Model)

Envisioning Phase – вироблення єдиного розуміння проекту всіма членами колективу. Ця фаза закінчується розробленням формалізованого документа, що містить:

Planning Phase планування чергового циклу розроблення:

Developing Phase розроблення, причому рекомендуються різні технологічні прийоми, наприклад, повторне використання фрагментів коду, програмування за контрактом, написання захищеного від помилок ПЗ та ін.

Stabilizing Phase – створення стабільної β-версії, готової до використання.

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

Кожна фаза процесу розроблення завершується головною опорною точкою (major milestone) – моментом, коли всі члени колективу синхронізують отримані результати. Призначення таких точок у тому, що вони дозволяють оцінити життєздатність проекту. Їхні результати видимі не тільки колективу розроблювачів, але й замовникові. Після аналізу результатів колектив розробників і замовник спільно вирішують, чи можна переходити на наступну фазу. Таким чином, головні опорні точки - це критерії переходу з однієї фази проекту на іншу.

Усередині кожної фази визначаються проміжні опорні точки (interium milestones). Вони, як і головні, слугують для аналізу й синхронізації досягнутого, а не для заморожування проекту. Але на відміну від головних опорних точок проміжні видні тільки членам колективу розробників.

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

4.1                    Основні принципи уніфікованого процесу розроблення ПЗ

Як було зазначено у темі 3 уніфікований процес розроблення ПЗ (RUP) реалізує ітеративний та інкрементний ЖЦ програмного забезпечення, який керується варіантими використанння проектованої системи. RUP відповідає таким вимогам:

4.2                    Уніфікований процес керується варіантами використання

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

Як видно із рис.3.2 процес розроблення проходить серії робочих процесів, кожен з яких ініціюється варіантами використання (ВВ): прецеденти визначаються, вони проектуються, і врешті-решт варіанти використання є вхідними даними, за якими тестери створюють тестові приклади. Оскільки прецеденти дійсно керують процесом, вони не виділяються ізольовано, а розробляються в парі з архітектурою системи. Відповідно і архітектура системи, і ВВ розвиваються впродовж життєвого циклу ПЗ. Таким чином, прецеденти не лише ініціюють процес розроблення, але й слугують для зв'язку окремих його частин. 

4.3                    Уніфікований процес, орієнтований на архітектуру

Архітектура програми включає в себе найбільш важливі статичні і динамічні аспекти системи та будується на основі вимог до результату. Як було відмічено вище, вимоги відбиваються у варіантах використання. Однак прецеденти також залежать від безлічі інших чинників, таких, як вибір платформи для роботи програми (тобто комп'ютерної архітектури, операційної системи, СКБД, мережевих протоколів), доступність готових блоків багаторазового використання (наприклад, каркасу GUI), спосіб розгортання, успадковані системи і нефункціональні вимоги (наприклад, продуктивність і надійність). Архітектура ПЗ – це представлення всього проекту із виділенням важливих характеристик без акценту на деталях.

Кожен продукт має функції і форму. Одне без іншого не існує. Функції відповідають ВВ, а форма - архітектурі. В реальних умовах архітектура і прецеденти розробляються паралельно. Архітектура повинна бути спроектована так, щоб дозволити системі розвиватися не тільки в момент початкового розроблення, але і в майбутніх поколіннях. Щоб знайти таку форму, архітектор повинен працювати, повністю розуміючи ключові функції, тобто ключові варіанти використання системи. Ці ключові варіанти використання становлять 5-10% усіх ВВ, але вони дуже важливі, оскільки містять функції ядра системи. Архітектор виконує такі кроки:

Процеси розроблення комерційного ПЗ є серйозними, часто тривалими  проектами. Для підвищення керованості та якості процесу доцільно розділити таку роботу на невеликі частини. Кожен міні-проект є ітерацією, результатом якої буде приріст.Ітерації належать до кроків робочих процесів, а приріст (інкремент) - до виконання проекту. Для максимальної ефективності ітерації повинні вибиратися і виконуватися за планом, що дозволяє вважати кожну ітерацію міні-проектом. Ітеративність передбачає повторення робіт з розроблення у різних фазах (рис. 5.1).

Ітеративність уніфікованого процесу  розроблення ПЗ

Рисунок 4.4   — Ітеративність уніфікованого процесу розроблення ПЗ

Розробники вибирають завдання, які повинні бути вирішені у ході ітерації, враховуючи два фактори:

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

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

Керований ітеративний процес має такі переваги [32]:

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

Структура моделей  уніфікованого процесу описана у розділі 3.5  Моделі уніфікованого процесу розроблення ПЗ лекції "Нотації візуального моделювання ПЗ" до теми 3.

Додаткові джерела:

1. Шаблони документів RUP. http://sce.uhcl.edu/helm/RationalUnifiedProcess/wordtmpl/index.htm

 


© 2006—2023 СумДУ