Тема: Метрики об’єктно-орієнтованих систем
1
Лекція 4
Мета створення метрик
Об'єктно-орієнтовані метрики вводяться з метою:
Характеристики об’єктно-орієнтованих систем
Ці характеристики мають максимальний вплив на об’єктно- орієнтовані метрики.
Метрики зв’язаності по даних
Загальні відомості
Л.Отт і Б.Мехра розробили модель секціонування класів. Секціонування основане на екземплярних змінних класу. Для кожного методу класу отримують ряд секцій, а потім виконують об'єднання всіх секцій класу. Вимір зв'язаності оснований на кількості лексем даних, які з'являються в кількох секціях і “зклеюють” секції в модуль. Під лексемами даних розуміють визначення констант і змінних або посилання на константи і змінні.
Базовим поняттям методики є секція даних. Вона складається для кожного вихідного параметру метода. Секція даних — це послідовність лексем даних в операторах, які потрібні для обчислення цього параметра.
Метрики зв’язаності по даних
Ще одне базове поняття методики — секціонована абстракція. Секціонована абстракція — це об'єднання всіх секцій даних методу. Наприклад, секціонована абстракція методу SumAndProduct має вигляд:
Секціонованою абстракцією класу (Class Slice Abstraction) CSA(C) називають об’єднання секцій всіх екземплярних змінних класу. Повний набір секцій складають шляхом обробки всіх методів класу.
Склеєними лексемами називають ті лексеми даних, які є елементами більш чим однієї секції даних.
Сильно склеєними лексемами називають ті склеєні лексеми, які є елементами всіх секцій даних.
Метрики зв’язаності по даних
Для визначення відношень між секціями даних можна показати профіль секцій даних в методі.
Для визначення відношень між секціями даних можна показати профіль секцій даних в методі.
Метрики зв’язаності по даних
Профіль секцій даних для метода SumAndProduct
SumN | ProdN | Оператор |
|
| procedure SumAndProduct |
1 | 1 | (N:integer: |
1 | 1 | varSumN, ProdN:integer) |
|
| var |
1 | 1 | l:integer; |
|
| begin |
2 |
| SumN:=0 |
| 2 | ProdN:=1 |
3 | 3 | for l:=1 to N do begin |
3 |
| SumN:=SumN+l |
| 3 | ProdN:=ProdN*l |
|
| end |
|
| end; |
Метрики зв’язаності по даних
Метрики Абреу
Основними цілями метрик Абреу є:
Метрики Абреу
Метрики Абреу
Mv(Ci) - кількість видимих методів в класі Ci (інтерфейс класу),
Mh(Ci) - кількість прихованих методів в класі Ci (реалізація класу),
Md(Ci) – загальна кількість методів в класі Ci (унаслідовані методи не враховуються),
Md(Ci) = Mv(Ci) + Mh(Ci),
TC – кількість класів в системі.
Із збільшенням значення метрики зменшується щільність дефектів в системі і витрати на їх усунення.
Метрики Абреу
2. Фактор закритості властивості (AHF)
Аv (Сi) — кількість видимих властивостей в класі Сi (інтерфейс класу);
Ah(Ci) — кількість прихованих властивостей в класі Сi (реалізація класу);
Ad(Ci)=Аv(Сi)+Ah(Ci) – загальна кількість властивостей, визначених в класі Сi (унаслідовані властивості не враховуються).
В ідеальному випадку всі властивості повинні бути приховані і доступні тільки для методів, які відповідного класу (AHF = 100%).
Метрики Абреу
3. Фактор наслідування методу (MIF)
Mi(Ci) – кількість унаслідованих і не перевизначених методів в класі Ci,
Mo(Ci) - кількість унаслідованих і перевизначених методів в класі Ci,
Mn(Ci) - кількість нових (не унаслідованих і не перевизначених) методів в класі Ci,
Md(Ci) - кількість методов, визначених в класі Ci,
Md(Ci) = Mn(Ci) + Mo(Ci),
Ma(Ci) – загальна кількість методів, доступних в класі Ci,
Ma(Ci) = Md(Ci) + Mi(Ci),
TC - кількість класів в системі.
Метрики Абреу
4. Фактор наслідування властивості (AIF)
Ai(Ci) – кількість унаслідованих і не перевизначених властивостей в класі Ci,
Ao(Ci) - кількість унаслідованих і перевизначених властивостей в класі Ci,
An(Ci) - кількість нових (не унаслідованих і не перевизначених) властивостей в класі Ci,
Ad(Ci) - кількість властивостей, визначених в класі Ci,
Ad(Ci) = An(Ci) + Ao(Ci),
Aa(Ci) - общее кількість властивостей, доступних в класі Ci,
Aa(Ci) = Ad(Ci) + Ai(Ci),
TC - кількість класів в системі.
Метрики Абреу
5. Фактор поліморфізму (POF)
Mo(Ci) - кількість унаслідованих і перевизначених методів в класі Ci,
Mn(Ci) - кількість нових (не унаслідованих і не перевизначених) методов в класі Ci,
DC(Ci) - кількість нащадків класу Ci.
Метрики Абреу
6. Фактор зчеплення (СОF)
is_client(Ci, Cj) – приймає значення 1, якщо клас Ci містить хоча б одне не унаслідоване посилання на властивість або метод класу Cj, інакше – значення 0.
TC – кількість класів в системі.
Знаменник відповідає максимально можливій кількості зчеплень.
Зчеплення негативно впливає на якість ПЗ, його потрібно зводити до мінімуму.
Оцінка проектів на основі варіантів використання
(Use Case Points)
1
Use Case Points
Що таке UCP?
Що таке UCP?
Етапи оцінки
Оцінка акторів
Незкоригована оцінка варіантів використання
Оцінка технічних факторів
Оцінка зовнішніх факторів
Остаточний підрахунок
Оцінка акторів
Здійснюється оцінка складності інтерфейсів системи.
Всі діючі особи системи діляться на три типи: прості, середні і складні.
Простий – представляє зовнішню систему з чітко визначеним програмним інтерфейсом.
Середній – представляє або зовнішню систему, яка взаємодіє з даною системой через протокол на зразок ТСР/IР, або особистість, яка користується текстовим інтерфейсом (наприклад, алфавітно-цифровим терміналом).
Складний представляє собою особистість, яка використовує графічний інтерфейс користувача.
Оцінка акторів
Тип | Ваговий коефіцієнт |
Простий | 1 |
Середній | 2 |
Складний | 3 |
Тип | Представляє |
Простий | Зовнішня система з чітко визначеним програмним інтер-фейсом. |
Середній | Зовнішня система, яка взаємодіє з даною системою за допомогою протоколу, або використовує текстовий інтерфейс (наприклад, алфавітно-цифровим терміналом). |
Складний | Графічний інтерфейс користувача. |
Незкоригована оцінка �варіантів використання
Здійснюється оцінка масштабу системи.
Кожний варіант викорис-тання рангується в залежності від кількості транзакцій.
Альтернатива підрахунку за допомогою:
Тип | Опис | Ваговий коефіцієнт |
Простий | <=3 транзакцій | 5 |
Середній | Від 4 до 7 транзакцій | 10 |
Складний | >7 транзакцій | 15 |
Тип | Опис | Ваговий коефіцієнт |
Простий | <=5 класів | 5 |
Середній | Від 5 до 10 класів | 10 |
Складний | Більше 10 класів | 15 |
Тип | Опис |
Простий | 1 об'єкт |
Середній | 2 об'єкт |
Складний | 3 і більше об'єктів |
Підрахунок показників
Оцінка технічних факторів
Оцінка технічних факторів
Показники технічної складності
Показник | Опис | Вага |
Т1 | Розподілена система | 2 |
Т2 | Висока продуктивність (пропускна здібність ) | 2 |
Т3 | Робота кінцевих користувачів | 1 |
Т4 | Складна обробка даних | 1 |
Т5 | Повторне використання коду | 1 |
Т6 | Простота установки | 0,5 |
Т7 | Простота використання | 0,5 |
Т8 | Крос-платформна підтримка | 2 |
Т9 | Простота внесення змін | 1 |
Т10 | Паралелізм | 1 |
Т11 | Спеціальні вимоги до безпеки | 1 |
Оцінка технічних факторів
Показники технічної складності
Показник | Опис | Вага |
Т12 | Безпосередній доступ до системи зі сторони зовнішніх користувачів | 1 |
Т13 | Спеціальні вимоги до навчання користувачів | 1 |
Оцінка зовнішніх факторів
Дає нам коефіцієнт для організаційних ризиків при розробці.
Показники рівня кваліфікації розробників
Показник | Опис | Вага |
F1 | Знайомство з технологією | 1,5 |
F2 | Досвід роботи з додатком | 0,5 |
F3 | Досвід використання об’єктно-орієнтованого підходу | 1 |
F4 | Наявність ведучого аналітика | 0,5 |
F5 | Мотивація | 1 |
F6 | Стабільність вимог | 2 |
F7 | Часткова зайнятість | -1 |
F8 | Складні мови програмування | 2 |
Оцінка зовнішніх факторів
Оцінка трудоємності проекту
Оцінка трудоємності проекту
Потрібно розглянути показники F1 − F8 і визначити, скільки показників F1 − F6 мають значення менше 3 і скільки показників F7, F8 мають значення більше 3.
Якщо загальна кількість менша або дорівнює 2, слідує використовувати 20 люд.-г. на одну UCP, якщо 3 або 4 − 28. Якщо загальна кількість дорівнює 5 або більше, слід внести зміни в сам проект, в протилежному випадку ризик провалу дуже високий.
T=UCP*кількість люд.-год
tроз=2,5 × ТN3
Модель композиції додатку
Модель композиції є однієї з конструктивних моделей вартості СОСОМО II.
Параметри даної моделі визначались на основі статистичного аналізу реальних результатів великої кількості проектів.
Модель композиції використовується на ранній стадії розробки ПЗ, коли:
Модель композиції додатку орієнтована на застосуванні об’єктних вказівників.
Об’єктний вказівник – засіб непрямого виміру ПЗ, для його розрахунку визначається кількість екранів (як елементів користувацького інтерфейсу), звітів і компонентів, які необхідні для побудови додатку.
Модель композиції додатку
Як показано в таблиці, кожний об’єктний екземпляр (екран, звіт) відносять до одного з трьох рівней складності. Ці місця підстановки виміряних і обчислених значень відмічені прямокутниками (прямокутник грає роль мітки-заповнювача). В свою чергу, складність є функцією від параметрів клієнтських і серверних таблиць даних, які необхідні для генерації екрана і звіта, а також від кількості представлень і секцій, які входять в екран або звіт.
Оцінка кількості об’єктних вказівників
Тип об’єкта | Кількість | Вага | Всього | ||
Простий | Середній | Складний | |||
Екран | | *1 | *2 | *3 | = |
Звіт | | *2 | *5 | *8 | = |
3GL-компонент | | | | *10 | = |
с
с
с
с
с
с
с
с
с
с
с
с
с
Модель композиції додатку
Оцінка складності екрана
Екрани | Кількість серверних і клієнтських таблиць даних даних | ||
Кількість представлень | Всього <4 (<2 срв, <3 клт) | Всього <8 (2-3 срв, 3-5 клт) | Всього >8 (>3 срв, >8 клт) |
<3 | Простий | Простий | Середній |
3-7 | Простий | Середній | Складний |
>8 | Середній | Складний | Складний |
Оцінка складності звіта
Звіти | Кількість серверних і клієнтських таблиць даних даних | ||
Кількість представлень | Всього <4 (<2 срв, <3 клт) | Всього <8 (2-3 срв, 3-5 клт) | Всього >8 (>3 срв, >8 клт) |
0 або 1 | Простий | Простий | Середній |
2 або 3 | Простий | Середній | Складний |
>4 | Середній | Складний | Складний |
Модель композиції додатку
Модель композиції додатку
Оцінка зрілості розробки
Досвід/можливості розробника | Зрілість/можливості середовища розробки | PROD |
Дуже низька | Дуже низька | 4 |
Низька | Низька | 7 |
Номінальна | Номінальна | 13 |
Висока | Висока | 25 |
Дуже висока | Дуже висока | 50 |
Метод PERT
Інженерний метод оцінки трудоємності проекту PERT оснований на характеристиках 3 оцінок:
Mi — найбільш вірогідна оцінка трудовитрат.
Oi — мінімально можливі трудовитрати на реалізацію пакета робіт. Ні один ризик не реалізувався. Швидше точно не зробимо. Вірогідність того, що ми вкладемось в ці витрати, рівно 0.
Pi — песиместична оцінка трудовитрат. Всі ризики реалізовались.
Оцінку середнньої трудоємності по кожному елементарному пакету можна визначити за формулою:
Ei = (Pi + 4Mi + Oi)/6.
Для розрахунку середньоквадратичного відхилення використовується формула:
CKOi = (Pi - Oi)/6.
Згідно центральної граничної теореми теорії ймовірностей сумарна трудоємність проекту може бути розрахована за формулою:
Е = ∑ Ei
Метод PERT
Метод PERT
Високорівнева архітектура J2EE фреймворка для розробки додатку.
Метод PERT
Високорівнева архітектура реалізовувала стандартний паттерн MVC, кожний з компонентів якого мав «точки розширення» для прикладної розробки, які на рисунку виділені червоним.
Такими точками розширення є:
Користувацький екран (UI Form), який збирався з готових візуальних компонентів.
Обробники(Action), які оброблювали на сервері додатків події від активних візуальних компонентів, які входять у склад екрану.
Об’єкти (Business Obj), які моделювали прикладну область, і до яких звертались обробники подій.
Новий додаток містить 20 користувацьких екранів, 60 обробників подій, 16 нових бізнес-об’єктів і 40 нових бізнес-методів.
Метод PERT
Визначити:
1. Ei для кожного елементарного пакету
2. СКОі - середньоквадратичне відхилення для кожного пакету
3. Середня трудоємність робіт по кодуванню
4. Середнєквадратичне відхилення для оцінки сумарної трудоємності.
5. Оцінку сумарної трудоємності проекта, яку ми не перевищемо з вірогідністю 95%