Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 4793 Методичні вказівки до лабораторної роботи №2 на тему Дослідження метрик програмного забезпечення

Методичні вказівки до лабораторної роботи №2 на тему Дослідження метрик програмного забезпечення

« Назад

Методичні вказівки до лабораторної роботи №2 на тему Дослідження метрик програмного забезпечення

Мета роботи: дослідити застосування, класифікацію та призначення метрик програмного забезпечення. 

Завдання:

  1. Зрозуміти призначення метрик.

  2. Знати основні групи метрик та їх особливості.

  3. Знати характеристики метрик.

  4. Зробити огляд засобів для вимірювання iPlasma, Analist4j, CodeCricic (або СССС, або HPmas), Microsoft Visual Studio 2008.

  5. Визначити, які метрики можна отримати за допомогою засобів iPlasma, Analist4j, CodeCricic (або СССС, або HPmas), Microsoft Visual Studio 2008. 

ТЕОРЕТИЧНІ ВІДОМОСТІ 

Основні об’єктно-орієнтовані метрики

Позначення

Відмірювана сутність

Назва

Опис

1

AMW

Клас

Середня вага метода (Average Method Weight)

Середня статична складність усіх методів у класі. Цикломатичне число МакКейба, яке використовується для визначення складності метода [7,8]

2

ATFD

Клас/Метод

Доступ до зовнішних даних (Access To Foreign Data)

Число атрибутів від непов'язаних класів, що звернена безпосередньо або які викликаються за допомогою методів доступу [7]

3

BOvR

Клас

Перевизначення співвідношення базового класу (Base Class Overriding Ratio)

 

Число методів у виміряному класі, який перевизначає методи від базового класу, поділені на загальне число методів в класі.

4

CC

Метод

Змінюванні класи (Changing classes)

Число класів, в яких визначаються методи, викликанні виміряними методами [7]

5

CDISP

Операція

Дисперсія зчеплення

(Coupling Dispersion)

Число класів, в яких операції викликанні вимірюваними операціями від , поділено на CINT

6

CINT

Метод

Щільність зчеплення (Coupling Intensity)

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

7

CM

Метод

Змінні методи (Changing methods)

Число роздільних методів викликаних виміряними методами [7]

8

CYCLO

Операція

Цикломатичне число МакКейба (McCabe’s Cyclomatic Number)

Число лінійно-незалижних шляхів через операцію [8]

9

FDP

Метод

Зовнішні постачальники даних (Foreign Data Providers)

Число класів, у яких визначаються атрибути доступу у відповідності з метрикою ATFD.

10

HIT

Клас

Висота дерева наслідування (Height of Inheritance Tree)

Максимальна довжина шляху від класу до його найглибшого підкласу

11

WOC

клас

Вага класу (weight of the class)

Кількість функціональних відкритих методів класу (тобто не таких, що встановлюють або читають дані) поділено на загальну кількість відкритих методів [7]

12

WMC

клас

Зважена кількість класів (weighted method count)

Сума статичної складності усіх методів класів. [9, 10]

13

TCC

клас

Щільність зсчеплення класів (Tight Class Cohesion)

Відносна кількість пар методів класу, що отримують спільний доступ хоча б до одного атрибуту вимірюваного класу. [11]

14

PNAS

клас

Відсоток доданих нових сервісів (Percentage of newly added services)

Кількість відкритих методів класу, що не перевантажені або спеціалізовані відносно попередників, поділено на загальну кількість відкритих методів [6]

15

NProtM

клас

Кількість захищених методів (Number of Protected Members)

Кількість захищених методів та атрибутів класу. [6]

16

NOPA

клас

Кількість відкритих атрибутів (Number of Public Attributes)

Кількість відкритих атрибутів класу. [6]

17

NOM

клас

Кількість методів (Number of Methods)

Кількість методів класу [6]

18

NOAV

метод

Кількість використаних змінних (Number of Accessed Variables)

Загальне число змінних до яких отримав доступ вимірюваний метод. Змінні включають параметри, локальні змінні, а також екземплярні та глобальні змінні [6]

 

19

NOAM

клас

Кількість методів аксесорів(Number of Accessor Methods)

Кількість методів аксесорів, що встановлюють та зчитують дані [6]

20

MAXNESTING

метод

Максимальний рівень вкладеності (Maximum Nesting Level)

Максимальний рівень вкладеності структур управління в методі [6]

21

LOC

метод

Кількість рядків коду (Lines of Code)

Кільксть рядків куду методу включаючи пусті рядки та коментарі

22

LAA

метод

Локальність доступу до атрибутів (Locality of Attribute Accesses)

Кількість атрибутів з класу, в якому визначений метод, поділено на загальну кількістьзмінних, до яких отримано доступ методом. Вклюаючи атрибути, до яких доступ отримано через асесори

Перечень метрик

Категория

Название

№ мет-рики

Код

Описание

Метрики управления потоком (Control Flow Metric)

 

 

 

 

Percent Modules with Exceptions

5

PME

Процент модулей с исключениями

Average Exceptions per Modules

6

AVGEM

Средний процент исключений в модуле

 Total Modules

8

TM

Общее число функций (модулей) компонента

Total LOC

9

TLOC

Общее число непустых строк, включая строки комментария и заголовки. Включает строки комментария и строки заголовков во всех модулях

Max LOC

10

MLOC

Максимальное число непустых строк в любом модуле

Ave LOC

11

AVLOC

Среднее число непустых строк в модуле

Total NCSS

12

TNCSS

Общее число исходных конструкций. Не включает пустые строки, строки комментария или заголовочные строки во всех модулях

Max NCSS

13

MNCSS

Максимальное число некомментированных исходных конструкций в любом модуле

Ave NCSS

 

14

AVNCSS

Среднее число исходных конструкций в модуле

Total V(G)

15

TVG

Общая цикломатическая сложность во всех модулях. V(G) вычисляется путем подсчета числа ключевых слов ветвления в каждом модуле

Max V(G)

 

16

MVG

Максимальная цикломатическая сложность в модуле

Ave V(G)

17

AVVG

Средняя цикломатическая сложность модулей в компоненте

Total Hal's V

18

THV

Общий объем по Хальстеду, вычисленный для модулей Volume = (общее число операторов + общее число операндов) / log2 (число уникальных операторов + число уникальных операндов)

Max Hal's V

19

MHV

Максимальный объем V для модуля по Хальстеду

Ave Hal's V

20

AVHV

Средний объем V модулей в компоненте системе по Хальстеду

Total Hal's E

21

THE

Общие усилия по Хальстеду для компонента. Effort = объем / 2 \ число уникальных операндов / число уникальных операторов / общее число операндов

Max Hal's E

22

MHE

Максимальное значение усилий по Хальстеду, вычисленное для модуля

Ave Hal's E

23

AVHE

Среднее значение усилий по Хальстеду для модулей в компоненте

Max Fan-out

24

MFO

Максимальное число вызовов других функций, вычисленное в модуле

Max Fan-in

 

25

MFI

Максимальное число вызовов данного модуля, вычисленное для компонента

Ave Fan-in

 

26

AVFI

Общее число вызовов других функций, деленное на число модулей в компоненте

Max Nesting

27

MN

Наивысший уровень структурной вложенности, вычисленный в компоненте через подсчет ( ``{`` )

Ave Nesting

 

28

AVN

Средний максимум структурной вложенности модулей в компоненте

Max Recursive Calls

29

MRC

Максимальное число рекурсивных вызовов в модуле

Number of Recursive Modules

30

NRM

Общее число модулей компонента, содержащих рекурсивные вызовы

Метрики потока данных (Data Flow Metrics)

Total Vars

 

32

TV

Общее число переменных во всех модулях

Total Local

 

33

TL

Общее число локальных переменных во всех модулях

Total Global

 

34

TG

Общее число глобальных переменных. Данное число не включает препроцессорных директив, таких как #define MAX 10+}

Total Unused

 

35

TU

Общее число переменных, объявленных, но не использованных во всех модулях

Ave. Number of Arguments

36

AVNA

Среднее число аргументов (или параметров), использованных во всех модулях

Tot Init Vars

37

TIV

Общий процент всех переменных, инициализированных перед использованием

Total Number of External Files

38

TNEF

Общее число файловых переменных в каждом модуле

Ave. Number of I/O Calls per Module

39

AVNIOC

Среднее число вызовов ввода-вывода, использованных в каждом модуле

Ave. Variable Span per Module

40

AVVSM

Среднее число строк между первым и последним использованием каждой переменной в модуле

Max. Variable Span per Module

41

MVSM

Максимальное число строк между первым и последним использованием каждой переменной в модуле

Total Percent Well-Declared Variables

42

TPWDV

Процент всех переменных в программе, объявленных непосредственно перед использованием.

Number of Preprocessor Directives

43

NPD

Число препроцессорных директив, найденных в компоненте

Типографические метрики

(Typographic Metrics)

 

Modules with Headers

 

45

MH

Процент модулей, имеющих комментированные заголовки (комментарии в начале модуля)

Modules with Comments

46

MC

Процент модулей, имеющих комментарии между заголовком и концом

Percent Modules with Horizontal Spacing

47

PMHS

Процент модулей, которые имеют встроенные горизонтальные отступы (два и более пробелов или табуляции). Отличается от абзацев

Percent Modules with Vertical Spacing

48

PMVS

Процент модулей, имеющих вертикальные отступы (пустые строки)

Percent Modules with Indentation

49

PMI

Процент модулей со структурированным расположением текста (ведущие пробелы на строке)

Ave. Percent Uncrowded Statements within a Module

50

AVPUS

Сумма чисел неуплотненных конструкций (не более одной конструкции на строку) для каждого модуля, деленная на число модулей

Ave. Percent Comments within a Module

51

APCM

Средний процент комментированных строк для всех модулей

Ave. Percent Meaningful Vars within a Module

52

APMV

Средний процент переменных, имеющих осмысленное имя (имя длиной более 4 символов)

МЕТОДИЧНІ ВКАЗІВКИ 

Дослідити такі групи метрик: прямі та непрямі; зовнішні та внутрішні (за класифікацією Fenton, Pfleeger - Software Metrics); даних, управління, типографські (представлені в таблиці 2); об’єктно-орієнтовані (основні представлені в таблиці 1); складності (за класифікацією IBM). Розібратися в характеристиках метрик.

Дослідити характеристики вимірювачів, вказаних у завданні 4 та визначити їх можливості та функціональність. 

КОНТОЛЬНІ ЗАПИТАННЯ 

  1. Що таке метрика ПЗ?

  2. Які ви знаєте групи метрик?

  3. Що таке метрики складності, які ви знаєте метрики складності?

  4. Що таке прямі та непрямі метрики?

  5. Які ви знаєте зовнішні та внутрішні метрики?

  6. Які ви знаєте метрики даних?

  7. Які ви знаєте метрики управління?

  8. Які ви знаєте типографські метрики?

  9. Які метрики відносяться до об’єктно-орієнтованих?

  10. Для чого призначені вимірювачі ПЗ?

  11. Які ви знаєте вимірювачі ПЗ?

  12. Опишіть один з вимірювачів.

З повагою ІЦ "KURSOVIKS"!