- •Лекція 0. Вступ. Цілі, завдання і місце курсу
- •1. Мета викладання курсу
- •2. Завдання вивчення курсу
- •3. Дисципліни, засвоєння яких необхідне при вивченні курсу
- •4. Характеристика курсу
- •5.1. Література
- •5.2. Інформаційні ресурси мережі Інтернет
- •Лекція 1. Введення у технологію програмування
- •1. Термінологія індустрії ПЗ
- •1.1. Програмування
- •1.2. IT-проекти
- •1.3. Програми і програмне забезпечення (програмні продукти)
- •2. Бізнес і IT-проекти. Ринок ПЗ.
- •3. Про предмет
- •5. Виникнення Технології розробки ПЗ
- •5.1. Коротка історія програмування
- •5.2. Терміни “Технологія”, “Методологія” і “Програмна інженерія”
- •5.3. Стратегії розробки ПЗ
- •6. Огляд технологій програмування
- •6.1. Структурне програмування
- •6.2. Модульне програмування
- •6.4. Компонентне програмування
- •6.5. Висновки з лекції
- •Лекція 2. Елементи програмної інженерії
- •1. Програмна інженерія, основні поняття
- •1.1. Інженери і програмні інженери
- •1.2. Програмна інженерія як інженерна дисципліна
- •1.3. Область дії програмної інженерії
- •2. Цілі програмних інженерів
- •2.1. Поняття “якості” програмного продукту
- •2.2. Створення ПЗ повинно вкладатися до бюджету
- •2.3. Створення ПЗ повинно вкладатися в терміни
- •3. Забезпечення надійності розробки ПЗ
- •3.1. Забезпечення точності інтерпретації
- •3.2. Подолання бар'єру між користувачем і розробником
- •3.3. Контроль ухвалюваних рішень
- •3.4. Програмні інженери і наукове середовище
- •4. Складність програмної системи
- •4.1. Методи боротьби зі складністю
- •5. Моделі якості процесів розроблення ПЗ
- •Лекція 3. Організація технологічного процесу розробки ПЗ
- •1. Процес створення програмного забезпечення
- •1.1. Основні стадії типового процесу створення ПП
- •2. Життєвий цикл та моделі процесу розробки ПЗ
- •2.1. Каскадна модель (Waterfall model)
- •2.2. Макетування (прототипіювання)
- •2.3. Інкрементна модель
- •2.4. Модель Швидкої Розробки (RAD)
- •2.5. Спіральна модель
- •3. “Важкі” і “полегшені” процеси
- •4. ХР-процесс
- •Лекція 4. Оцінка програмного проекту по СОСОМО
- •1. Процес управління проектом
- •1.1. Початок проекту
- •1.2. Оцінювання, заходи і метрики
- •1.3. Процес оцінки
- •1.4. Аналіз ризиків
- •1.5. Планування
- •1.6. Трасування і контроль
- •2. Планування проектних завдань
- •3. Розмірно-орієнтовані метрики
- •4. Функціонально-орієнтовані метрики
- •5. Оцінка проекту на основі LOC- і FP-метрик
- •Лекція 5. Проектування програмних систем
- •1. Особливості процесу синтезу програмних систем
- •2. Особливості етапу проектування
- •3. Структуризація системи
- •4. Моделювання управління
- •5. Декомпозиція підсистем на модулі
- •6. Модульність
- •7. Інформаційна закритість
- •8. Зв'язність модуля
- •8.1. Функціональна зв'язність
- •8.2. Інформаційна зв'язність
- •8.3. Комунікативна зв'язність
- •8.4. Процедурна зв'язність
- •8.5. Часова зв'язність
- •8.7. Випадкова Зв'язність
- •8.8. Визначення зв'язності модуля
- •9. Зчеплення модулів
- •10. Складність програмної системи
- •11. Характеристики ієрархічної структури програмної системи
- •Лекція 6. ПОБУДОВА АРХІТЕКТУРИ ПП
- •1. Поняття архітектури програмного засобу.
- •2. Основні принципи проектування архітектури
- •3. Основні питання архітектора ПП
- •4. Архітектурні стилі (шаблони) ПП
- •5. Поєднання архітектурних стилів
- •6. Основні класи архітектур ПП
- •6.1. Цілісна програма
- •6.2. Архітектура ППП
- •6.3. Архітектура, заснована на шині повідомлень
- •6.4. Архітектура клієнт/сервер
- •6.6. Багатошарова архітектура
- •6.8. Компонентна архітектура
- •6.10. Сервісно-орієнтована архітектура
- •7. 4. Контроль архітектури ПП
- •Лекція 7. Розробка Програм, Модульне Програмування
- •1. Поняття модульного програмування
- •1.1. Основні характеристики програмного модуля.
- •1.2. Методи розробки структури програми.
- •1.3. Контроль структури програми.
- •2. Розроблення програмних модулів
- •2.1. Порядок розробки програмного модуля
- •2.2. Структурне програмування модуля
- •2.3. Покрокова деталізація і поняття про псевдокод.
- •Лекція 8. Тестування і відлагодження ПЗ
- •1. Основні поняття тестування і відлагодження
- •2. Основні підходи і принципи відлагодження.
- •2.1. Заповіді відлагодження.
- •2.2. Автономна відладка модулів
- •2.3. Проміжна відладка програмного засобу
- •2.4. Комплексна відладка програмного засобу.
- •3. Організація процесу тестування ПЗ
- •3.1. Тестування елементів
- •3.2. Інтегральне Тестування ПП
- •3.3. Низхідне тестування інтеграції
- •3.4. Висхідне тестування інтеграції
- •3.5. Порівняння низхідного і висхідного тестування інтеграції
- •4. Види Тестування
- •4.1. Тестування правильності
- •4.2. Системне тестування
- •4.3. Тестування відновлення
- •4.4. Тестування безпеки
- •4.5. Стресове тестування
- •4.6. Тестування продуктивності
Лекція 4. Управління програмним проектом.
У IEEE Standard Glossary of Software Engineering Terms метрика визначена як міра ступеня володіння властивістю, що має числове значення. У програмній інженерії поняття міра і метрика дуже часто розглядають як синоніми.
1.3.Процес оцінки
При плануванні програмного проекту треба оцінити людські ресурси (у людино-днях), тривалість
(у календарних датах) і його вартість (у тисячах у.о.).
Зазвичай виходять з минулого досвіду. Якщо новий проект за розміром і функціями схожий на попередній проект, цілком імовірно, що буде потрібно такі ж ресурси, час і гроші (а для цього потрібно вести історію своїх проектів).
1.4.Аналіз ризиків
На цій стадії досліджується область невизначеності, що постає перед створенням програмного продукту. Аналізується її вплив на проект. Чи немає прихованих від уваги важких технічних проблем? Чи не стануть зміни, що виявляться в ході проектування, причиною неприпустимого відставання по термінах? В результаті ухвалюється рішення — як усунути ризики та чи братись за виконання проекту взагалі…
1.5.Планування
Визначається набір проектних завдань. А також в становлюються зв'язки між завданнями, оцінюється складність кожного завдання. Визначаються людські та інші ресурси. Створюється мережевий графік завдань, проводиться його часова розмітка.
1.6.Трасування і контроль
Кожне завдання, помічене в плані, відстежується керівником проекту. При відставанні в рішенні завдання застосовуються методи повторного планування. За допомогою різних методик визначається вплив цього відставання на проміжну віху і на загальний час розроблення ПП. Під віхою розуміється часова мітка, до якої прив'язано підведення проміжних підсумків.
В результаті повторного планування: можуть бути перерозподілені ресурси; можуть бути реорганізовані завдання; можуть бути переглянуті вихідні зобов'язання.
2. Планування проектних завдань
Основним завданням при плануванні є визначення WBS — Work Breakdown Structure (низхідна структура розподілу робіт). Вона складається за допомогою утиліти планування проекту. Типова WBS приведена на рис.4.2.
Першими виконуваними завданнями є системний аналіз і аналіз вимог замовника до ПП. Ці документи закладають фундамент для формування подальших паралельних завдань.
Системний аналіз проводять з метою: з'ясування потреб замовника; оцінки можливості реалізації системи;
виконання економічного і технічного аналізу; розподілу функцій по елементах комп'ютерної системи (апаратурі, програмах, людях, базах даних
і т. д.);
визначення вартості і обмежень планування; створення функціональної специфікації.
34
Лекція 4. Управління програмним проектом.
У функціональній специфікації описуються функції, характеристики системи, обмеження розробки, вхідна і вихідна інформація майбутнього програмного продукту.
Аналіз вимог функціональної специфікації дає можливість:
визначити функції і характеристики програмного продукту; позначити інтерфейс продукту з іншими системними елементами; визначити проектні обмеження програмного продукту; побудувати моделі: процесу, даних, режимів функціонування продукту;
створити такі форми представлення інформації і функцій системи, які можна використовувати в ході проектування.
Рис. 4.2. Типова структура розподілу робіт над програмним проектом.
Результати аналізу зводяться в специфікацію вимог до програмного продукту.
Як видно з типової структури, проектні роботи над окремими модулями ПП та роботи по проектуванню і плануванню тестів можуть бути розпаралелені. Завдяки модульній природі ПЗ для кожного модуля можна передбачити паралельний шлях для детального (процедурного) проектування, кодування і тестування. Після отримання всіх модулів ПЗ вирішується завдання інтегрального тестування — тобто об'єднання модульних елементів в єдиний ПП. Далі проводиться тестування правильності, яке забезпечує перевірку відповідності ПЗ вимогах замовника.
Ромбами на рис.4.2 позначені віхи (milestone) — процедури контролю проміжних результатів. Важливо, щоб віхи були регулярно розставлені через певні інтервали (впродовж усього процесу розроблення ПП). Це допоможе керівнику регулярно отримувати інформацію про поточну ситуацію. Віхи розповсюджуються і на документацію як на один з результатів успішного вирішення задачі.
Паралельність дій підвищує вимоги до планування. Оскільки паралельні завдання виконуються асихронно, планувальник повинен визначити міжзадачні залежності. Це гарантує «безперервність руху до об'єднання». Крім того, керівник проекту повинен знати завдання, що лежать на критичному шляху. Для того, щоб весь проект був виконаний в строк, необхідно щоб саме всі критичні завдання виконувались строго в строк.
Основним важелем в методах планування — це обчислення меж часу, що виділяється на виконання завдання. Зазвичай використовують наступні оцінки:
Ранній час початку рішення задачі Тminin (за умови, що всі попередні завдання вирішені в найкоротший час).
Пізній час початку рішення задачі Тmaxin (ще не викликає загальну затримку проекту). Ранній час закінчення рішення задачі Тminout .
35
Лекція 4. Управління програмним проектом.
Tminout +Tminin +Tріш .
Пізній час закінчення рішення задачі Тmaxout .
Tmaxout +Tmaxin +Tріш .
Загальний резерв — кількість запланованого надлишку або втрати часу, що не приводять до збільшення тривалості критичного шляху Тк.ш.
Всі ці значення дозволяють керівнику (спеціалісту з планування) кількісно оцінити хід виконання завдань.
Правило розподілу витрат проекту: 40-20-40:
на аналіз і проектування припадає — 40% витрат (з них на системний аналіз — 5%); на кодування — 20%; на тестування і відладку — 40%.
3. Розмірно-орієнтовані метрики
Основне питання для менеджера – як визначити Тріш. Для окремих програмних модулів і функцій. Для цього існує ряд методів, а один з найпростіших – розмірно-орієнтовані метрики, в основі яких лежить використання власного досвіду та статистики минулих проектів.
Розмірно-орієнтовані метрики прямо вимірюють програмний продукт і процес його розробки. Грунтуються розмірно-орієнтовані метрики на LOC-оцінках (Lines Of Code).
LOC-оцінка — це кількість рядків в програмному продукті. Початкові дані для розрахунку цих метрик беруться з попередніх проектів і водяться в наступну таблицю.
Таблиця 4.1. Початкові дані для розрахунку LOC-метрик
Проект |
Витрати, |
Вартість, |
KLOC, |
Прогр. |
Помилки |
Люди |
|
люд.-міс. |
тис. $ |
тис. LOC |
док- |
ти, |
|
|
|
|
|
сторінок |
|
|
ааа01 |
24 |
168 |
12,1 |
365 |
29 |
3 |
bbb02 |
62 |
440 |
27,2 |
1224 |
86 |
5 |
ссс03 |
43 |
314 |
20,2 |
1050 |
64 |
6 |
Таблиця містить дані про проекти за декілька останніх років.
Наприклад, запис про проект «aaa01» показує: 12 100 рядків програми було розроблено за 24 людино-місяці і це коштувало $168 000. Крім того, за проектом «aaa01» було розроблено 365 сторінок документації, а протягом першого року експлуатації було зареєстровано 29 помилок. Розробляли проект «aaa01» три людини.
На основі таблиці обчислюються розмірно-орієнтовані метрики продуктивності і якості (для кожного проекту):
Продуктивність: Пр = Довжина тис.LOC ; Затрати люд.- міс.
Якість: Як = |
Помилки |
|
Одиниць |
; |
|
|
Довжина |
|
|
|
|
||
|
|
тис.LOC |
|
|
|
|
Питома_вартість: Пв = |
|
Вартість |
Тис.$ |
; |
||
|
|
LOC |
|
|||
|
|
Довжина |
|
|
||
Документованість: Дк = Сторінок Документа Довжина
Сторінок
тис.LOC .
Переваги розмірно-орієнтованих метрик:
36
Лекція 4. Управління програмним проектом.
досить широко використовуються і тому їх можна порівнювати; прості і легко обчислюються.
Недоліки розмірно-орієнтованих метрик:
не пристосовані до непроцедурних мов програмування. залежні від мови програмування;
вимагають початкових даних, які важко отримати на початковій стадії проекту;
4. Функціонально-орієнтовані метрики
Функціонально-орієнтовані метрики також вимірюють програмний продукт і процес його розробки, але роблять це непрямими методами. Замість підрахунку LOC-оцінки при цьому розглядається не розмір, а функціональність або корисність продукту.
Використовується 5 інформаційних характеристик.
Кількість зовнішніх способів введень. Підраховуються всі способи введення користувачем різних прикладних даних. Такі введення повинні бути відокремлені від запитів, які підраховуються окремо.
Кількість зовнішніх виведень. Підраховуються всі виведення даних, по яких користувач отримує результати, обчислені програмним продуктом. У цьому контексті виводи означають звіти, екрани, роздруки, повідомлення про помилки. Індивідуальні одиниці даних всередині звітів окремо не підраховуються.
Кількість зовнішніх запитів. Під запитом розуміється діалогове введення, яке приводить до негайної програмної відповіді у формі діалогового виводу. При цьому діалогове введення ПП не зберігається, а діалоговий вивід не вимагає виконання обчислень. Підраховуються всі запити — кожен враховується окремо.
Кількість внутрішніх логічних файлів. Підраховуються всі логічні файли (тобто логічні групи даних, які можуть бути частиною бази даних або окремим файлом).
Кількість зовнішніх інтерфейсних файлів. Підраховуються всі логічні файли з інших застосувань, на які посилається даний ПП.
Введення, виведення і запити відносять до категорії транзакцій. Транзакція — це елементарний процес, що розрізняється користувачем і що переміщує дані між зовнішнім середовищем і програмним продуктом. У своїй роботі транзакції використовують внутрішні і зовнішні файли.
Зовнішнє введення — елементарний процес, що переміщає дані із зовнішнього середовища в програму. Дані можуть поступати з екрану введення або з іншого периферійного пристрою. Дані можуть використовуватися для оновлення внутрішніх логічних файлів. Дані можуть містити як управляючу, так і ділову інформацію. Управляючі дані не повинні модифікувати внутрішній логічний файл.
Зовнішнє виведення — елементарний процес, що переміщає дані, обчислені в програмі, в зовнішнє середовище. Крім того, в цьому процесі можуть оновлюватися внутрішні логічні файли. Дані створюють звіти або вихідні файли, що посилаються іншим програмам. Звіти і файли створюються на основі внутрішніх логічних файлів і зовнішніх інтерфейсних файлів. Додатково цей процес може використовувати дані, що вводяться, їх утворюють критерії пошуку і параметри, не підтримувані внутрішніми логічними файлами. Дані, що вводяться, поступають ззовні, але носять тимчасовий характер і не зберігаються у внутрішньому логічному файлі.
Зовнішній запит — елементарний процес, що працює як з тими, що вводяться, так і з виводяться даними. Його результат — дані, повертані з внутрішніх логічних файлів і зовнішніх інтерфейсних файлів. Вхідна частина процесу не модифікує внутрішні логічні файли, а вихідна частина не несе даних, що обчислюються програмою (у цьому і полягає відмінність запиту від виводу).
Внутрішній логічний файл — розпізнавана користувачем група логічно зв'язаних даних, яка розміщена усередині програми і обслуговується через зовнішні введення.
Зовнішній інтерфейсний файл — розпізнавана користувачем група логічно зв'язаних даних, яка розміщена усередині іншого програмного засобу і підтримується їм. Зовнішній файл даного застосування є внутрішнім логічним файлом в іншій програмі.
37
Лекція 4. Управління програмним проектом.
Кожній з вказаних характеристик ставиться у відповідність певна складність. Для цього характеристиці призначається низький, середній або високий ранг, а потім формується числова оцінка рангу.
Для транзакцій ранжування базується на кількості посилань на файли і кількості типів елементів даних. Для файлів ранжирування засноване на кількості типів елементів-записів і типів елементів даних, що входять у файл.
Тип елементу-запису — підгрупа елементів даних, розпізнавана користувачем в межах файлу. Тип елементу даних — унікальне не рекурсивне (неповторюване) поле, розпізнаване
користувачем.
Приклади елементів даних для різних характеристик приведені в табл. 2.3, а табл. 2.4 містить правила обліку елементів даних з графічного інтерфейсу користувача (GUI).
Таблиця 2.3. Приклади елементів даних
Інформаційна |
Елементи даних |
||
характеристика |
|
||
Зовнішні Введення |
Поля введення даних, повідомлення про помилки, обчислювані значення, |
||
Зовнішні Виведення |
кнопки |
||
Поля даних в звітах, обчислювані значення, повідомлення про |
|||
Зовнішні Запити |
помилки, заголовки стовпців, які читаються з внутрішнього файлу |
||
Елементи, що вводяться: поле, використовуване для пошуку, клацання |
|||
|
|
||
|
|
миші. Елементи, що виводяться, — поля, що відображаються на екрані |
|
Таблиця 2.4. Правила обліку елементів даних з графічного інтерфейсу користувача |
|||
Елемент даних |
Правило обліку |
||
Група радіокнопок |
Оскільки в групі користувач вибирає тільки одну радіокнопку, всі |
||
|
|
радіокнопки групи вважаються одним елементом даних |
|
Група |
прапорців |
Оскільки в групі користувач може вибрати декілька прапорців, кожен |
|
(перемикачів) |
|
прапорець вважають елементом даних |
|
Командні кнопки |
Командна кнопка може визначати дію додавання, зміни, запиту. Кнопка |
||
|
|
ОК може викликати транзакції (різних типів). Кнопка Next може бути |
|
|
|
вхідним елементом запиту або викликати іншу транзакцію. Кожна кнопка |
|
|
|
вважається окремим елементом даних |
|
Списки |
|
Список може бути зовнішнім запитом, але результат запиту може бути |
|
|
|
елементом даних зовнішнього введення |
|
Дані для визначення рангу і оцінки складності транзакцій і файлів приведені в табл. 2.5-2.9 (числова оцінка вказана в круглих дужках). Використовувати їх дуже просто. Напр., зовнішньому введенню, яке посилається на 2 файли і має 7 елементів даних, по табл. 2.5 призначається середній ранг і оцінка складності 4.
Таблиця 2.5. Ранг і оцінка складності зовнішніх введень
Посилання |
на |
Елементи даних |
|
|
файли |
|
|
|
|
0-1 |
|
1-4 |
5-15 |
>15 |
|
Низький (3) |
Низький (3) |
Середній (4) |
|
2 |
|
Низький (3) |
Середній (4) |
Високий (6) |
>2 |
|
Середній (4) |
Високий (6) |
Високий (6) |
Таблиця 2.6. Ранг і оцінка складності зовнішніх виводів |
|
|||
Посилання |
на |
Елементи даних |
|
|
файли |
|
|
|
|
|
|
1-4 |
5-19 |
>19 |
38 |
|
|
|
|
Лекція 4. Управління програмним проектом. |
|
|
||||
|
|
|
|
|
|
|
0-1 |
|
|
|
Низький (4) |
Низький (4) |
Середній (5) |
|
|
|
|
|||
2-3 |
|
|
Низький (4) |
Середній (5) |
Високий (7) |
|
>3 |
|
|
Середній (5) |
Високий (7) |
Високий (7) |
|
Таблиця 2.7. Ранг і оцінка складності зовнішніх запитів |
|
|||||
Посилання |
на |
Елементи даних |
|
|
||
файли |
|
|
|
|
|
|
|
|
|
1-4 |
|
5-19 |
>19 |
0-1 |
|
|
Низький (3) |
Низький (3) |
Середній (4) |
|
2-3 |
|
|
Низький (3) |
Середній (4) |
Високий (6) |
|
>3 |
|
|
Середній (4) |
Високий (6) |
Високий (6) |
|
Таблиця 2.8. Ранг і оцінка складності внутрішніх логічних файлів |
|
|||||
Типи елементів-записів |
|
Елементи даних |
|
|
||
|
|
|
1-19 |
20-50 |
>50 |
|
1 |
|
|
|
Низький (7) |
Низький (7) |
Середній (10) |
|
|
|
|
|||
2-5 |
|
|
|
Низький (7) |
Середній (10) |
Високий (15) |
>5 |
|
|
|
Середній (10) |
Високий (15) |
Високий (15) |
Таблиця 2.9. Ранг і оцінка складності зовнішніх інтерфейсних файлів |
|
|||||
Типи елементів-записів |
|
Елементи даних |
|
|
||
1 |
|
|
1-19 |
20-50 |
>50 |
|
|
|
|
Низький (5) |
Низький (5) |
Середній (7) |
|
2-5 |
|
|
|
Низький (5) |
Середній (7) |
Високий (10) |
>5 |
|
|
|
Середній (7) |
Високий (10) |
Високий (10) |
Відзначимо, що якщо в зовнішньому запиті посилання на файл використовується як на етапі введення, так і на етапі виводу, вона враховується тільки один раз. Таке ж правило розповсюджується і на елемент даних (одноразовий облік).
Після збору всієї необхідної інформації приступають до розрахунку метрики — кількості функціональних покажчиків FP (Function Points). Автором цієї метрики є А.Албрехт (1979).
Початкові дані для розрахунку зводяться в табл. 2.10.
Таблиця 2.10. Початкові дані для розрахунку FP-метрик
Ім'я характеристики |
Ранг, складність, кількість |
|
|
|
|
Низький |
Середній |
Високий |
Разом |
Зовнішні введення |
x3 = __ |
x4 = __ |
x6 = __ |
= 0 |
Зовнішні виводи |
x4 = __ |
x5 = __ |
x7 = __ |
= 0 |
Зовнішні запити |
х3 = __ |
x4 = __ |
x6 = __ |
= 0 |
Внутрішні логічні файли |
x7 = __ |
x 10= __ |
x15 = __ |
= 0 |
Зовнішні інтерфейсні файли |
x5 = __ |
x7 = __ |
x10 = __ |
= 0 |
|
Загальна кількість |
|
|
= 0 |
У таблицю заноситься кількісне значення характеристики кожного виду (по всіх рівнях складності). Місця підстановки значень відмічені прямокутниками (прямокутник грає роль міткизаповнювача). Кількісні значення характеристик умножаються на числові оцінки складності. Набутих в кожному рядку значень підсумовуються, даючи повне значення для даної характеристики. Ці повні значення потім підсумовуються по вертикалі, формуючи загальну кількість.
Кількість функціональних покажчиків обчислюється за формулою
39
Лекція 4. Управління програмним проектом.
14 |
|
FP = Заг.Кількість х (0,65+ 0,01 x∑Fi ) |
(4.1) |
i=1
де Fi — коефіцієнти регулювання складності. Коефіцієнт може приймати наступні значення: 0 — немає впливу, 1 — випадкове, 2 — невелике, 3 — середнє, 4 — важливе, 5 — основне.
Значення вибираються емпірично в результаті відповіді на 14 питань, які характеризують системні параметри застосування (табл. 2.11).
Таблиця 2.11. Визначення системних параметрів ПЗ
№ |
Системний параметр |
|
|
Опис |
|
|
|
|
|
|
|
|
||||||
1 |
Передачі даних |
|
|
|
|
Скільки засобів зв'язку потрібно для передачі або обміну |
||||||||||||
|
|
|
|
|
|
|
|
|
інформацією із застосуванням або системою? |
|||||||||
2 |
Розподілена |
|
обробка |
|
Як обробляються розподілені дані і функції обробки? |
|||||||||||||
|
даних |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Продуктивність |
|
|
|
|
Чи має потребу користувач у фіксації часу відповіді або |
||||||||||||
|
|
|
|
|
|
|
|
|
продуктивності?. |
|
|
|
|
|
||||
4 |
Поширеність |
|
|
|
|
|
Наскільки поширена поточна апаратна платформа, на якій |
|||||||||||
|
використовуваної |
|
|
|
|
виконуватиметься застосування? |
||||||||||||
|
конфігурації |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
Швидкість транзакцій |
|
Як часто виконуються транзакції? (щодня, кожного тижня, |
|||||||||||||||
|
|
|
|
|
|
|
|
|
кожного місяця) |
|
|
|
|
|
||||
6 |
Оперативне |
|
введення |
Який відсоток інформації треба вводити в режимі онлайн? |
||||||||||||||
|
даних |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
Ефективність |
роботи |
|
Застосування проектувалося для забезпечення ефективної роботи |
||||||||||||||
|
кінцевого користувача |
|
|
кінцевого користувача? |
|
|||||||||||||
8 |
Оперативне оновлення |
Як багато внутрішніх файлів оновлюється в онлайновій |
||||||||||||||||
|
|
|
|
|
|
|
|
|
транзакції? |
|
|
|
|
|
|
|
||
9 |
Складність обробки |
|
|
Чи виконує застосування інтенсивну логічну або математичну |
||||||||||||||
|
|
|
|
|
|
|
|
|
обробку? |
|
|
|
|
|
|
|
||
1 |
Повторна |
|
|
|
|
|
|
Застосування розроблялося для задоволення вимог одного або |
||||||||||
0 |
використовувана |
|
|
|
|
багатьох користувачів? |
|
|
|
|||||||||
1 |
Легкість інсталяції |
|
|
|
|
Наскільки важкі перетворення і інсталяція застосування? |
||||||||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Легкість експлуатації |
|
Наскільки ефективні і/або автоматизовані процедури запуску, |
|||||||||||||||
2 |
|
|
|
|
|
|
|
|
резервування і відновлення? |
|
||||||||
1 |
Різноманітні |
|
умови |
|
Чи була спроектована, розроблена і підтримана можливість |
|||||||||||||
3 |
розміщення |
|
|
|
|
|
|
|
інсталяції застосування в різних місцях для різних організацій? |
|||||||||
1 |
Простота змін |
|
|
|
|
Чи була спроектована, розроблена і підтримана в застосуванні |
||||||||||||
4 |
|
|
|
|
|
|
|
|
простота змін? |
|
|
|
|
|
|
|||
Після обчислення FP на його основі формуються метрики продуктивності, якості і т. д.: |
||||||||||||||||||
Продуктивність: Пр = |
ФункцПокажчик |
|
FP |
|
|
; |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
Затрати |
|
люд. |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
−міс. |
|
||||||
Якість: Як = |
|
Помилки |
|
Одиниць |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
FP |
|
; |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
ФункцПокажчик |
|
|
|
|
|
|
|
|||||||||
Питома вартість: Пв = |
|
|
|
|
Вартість |
Тис.$ |
; |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
ФункцПокажчик FP |
|
|
|
|
||||||||
Документованість: Дк |
= |
СторінокДокумента |
Сторінок |
|||||||||||||||
|
ФункцПокажчик |
|
|
FP |
. |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||
Область застосування методу функціональних покажчиків — комерційні інформаційні системи. А для продуктів з високою алгоритмічною складністю використовуються метрики покажчиків
40
Лекція 4. Управління програмним проектом.
властивостей (Features Points). Вони застосовні до системного і інженерного ПЗ, ПП реального часу і вбудованого ПЗ.
Для обчислення покажчика властивостей додається одна характеристика — кількість алгоритмів. Алгоритм тут визначається як обмежена підпрограма обчислень, яка включається в загальну комп'ютерну програму. Приклади алгоритмів: обробка переривань, інвертування матриці, розшифровка бітового рядка. Для формування покажчика властивостей складається табл. 2.12.
Таблиця 2.12. Початкові дані для розрахунку покажчика властивостей
№ |
Характеристика |
Кількість |
Складність |
Разом |
|
|
|
|
|
1 |
Введення |
0 |
х4 |
= 0 |
2 |
Виводи |
0 |
х5 |
= 0 |
3 |
Запити |
0 |
х4 |
= 0 |
4 |
Логічні файли |
0 |
х7 |
= 0 |
5 |
Інтерфейсні файли |
0 |
х7 |
= 0 |
6 |
Кількість алгоритмів |
0 |
х3 |
= 0 |
Загальна кількість |
|
|
= 0 |
|
Після заповнення таблиці, аналогічно як і в попередньому випадку, за формулою (4.1) обчислюється значення покажчика властивостей. Для складних систем реального часу це значення на 25-30% більше значення, що обчислюється по таблиці для кількості функціональних покажчиків.
Переваги функціонально-орієнтованих метрик: Не залежать від мови програмування.
Легко обчислюються на будь-якій стадії проекту. Недоліки функціонально-орієнтованих метрик: результати засновані на суб'єктивних даних, використовуються не прямі, а непрямі вимірювання.
FP-оцінки легко перерахувати в LOC-оцінки. Як показано в табл. 2.13, результати перерахунку залежать від мови програмування, використовуваного для реалізації ПО.
Таблиця 2.13. Перерахунок FP-оцінок в LOC-оцінки
Мова програмування |
Кількість операторів на 1 FP |
Асемблер |
320 |
С |
128 |
Кобол |
106 |
Фортран |
106 |
Паскаль |
90 |
C++ |
64 |
Java |
53 |
Ada 95 |
49 |
Visual Basic |
32 |
Visual C++ |
34 |
Delphi Pascal |
29 |
Smalltalk |
22 |
Perl |
21 |
HTML |
15 |
LISP |
64 |
Prolog |
64 |
Miranda |
40 |
Haskell |
38 |
41 |
|
