Дисциплина «Метрология, стандартизация и сертификация в информационных технологиях». Язык анализируемой программы — Python, парсер написан на TypeScript (графический интерфейс в браузере).
| Материал | Файл |
|---|---|
| Отчёт (PDF) | Метрология_ЛР2а_Отчет.pdf |
| Отчёт (DOCX) | Метрология_ЛР2а_Отчет.docx |
| Схема алгоритма (ГОСТ 19.701-90) | scheme/Схема_алгоритма.png, исходник для draw.io — scheme/Схема_алгоритма.drawio |
| Анализируемая программа | sample/process_matrix.py |
| Парсер | parser/ — исходники в parser/src |
| Парсер онлайн | https://nikitaharkavy.github.io/metrology-lab2a-gilb/parser/ |

| Метрика | Значение |
|---|---|
| Абсолютная сложность CL | 20 |
| Общее число операторов N | 49 |
| Относительная сложность cl = CL / N | 20 / 49 = 0,4082 |
| Максимальный уровень вложенности CLI | 5 |
CL — число условных операторов:
if и каждая ветвь elif;for и while;case оператора match, кроме ветви по умолчанию case _;a if c else b;for и if внутри генераторов списков.Селектор match, else и case _ условиями не являются.
N — число операторов:
return, break, pass, import;if, elif, for, while, match, try, with.Не считаются else, case, except, finally, объявления def/class и строки документации.
CLI — максимальный уровень вложенности условного оператора:
match заменяется цепочкой вложенных if: каждая следующая ветвь case вложена в предыдущую;elif вложен в предыдущий if;Это согласуется с методичкой: оператор выбора с n ветвями даёт n − 1 условий с вложенностью n − 2.