Project

General

Profile

Actions

Метрики проекта Geo-Events

Метрики кода

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

Метрики сложности программ принято разделять на три основные группы:
  • метрики размера программ;
  • метрики сложности потока управления программ;
  • метрики сложности потока данных программ.

Метрики первой группы базируются на определении количественных характеристик, связанных с размером программы, и отличаются относительной простотой. К наиболее известным метрикам данной группы относятся число операторов программы, количество строк исходного текста. Метрики этой группы ориентированы на анализ исходного текста программ. Поэтому они могут использоваться для оценки сложности промежуточных продуктов разработки.

Метрики второй группы базируются на анализе управляющего графа программы. Управляющий граф программы (УГП) отображает поток управления программы. Это граф G(V, A), где V(V1,… Vm) – множеств вершин (операторов), A(A1,… An) – множество дуг (управлений), соединяющих вершины.

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

Основные размерно - ориентированные метрики (показатели оценки объема)

LOC-оценка (Lines Of Code)

Размерно-ориентированные метрики прямо измеряют программный продукт и процесс его разработки. Основываются такие метрики на LOC-оценках.

Этот вид метрик косвенно измеряет программный продукт и процесс его разработки. Вместо подсчета LOC-оценок при этом рассматривается не размер, а функциональность или полезность продукта.

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

  • общие трудозатраты (в человеко-месяцах, человеко-часах);
  • объем программы (в тысячах строках исходного кода - LOC);
  • стоимость разработки;
  • объем документации;
  • ошибки, обнаруженные в течение года эксплуатации;
  • количество людей, работавших над изделием;
  • срок разработки.

На основе этих данных обычно подсчитываются простые метрики для оценки производительности труда (KLOC/человеко-месяц) и качества изделия.

Эти метрики не универсальны и спорны, особенно это относится к такому показателю как LOC, который существенно зависит от используемого языка программирования.

Количество строк исходного кода (Lines of Code – LOC, Source Lines of Code – SLOC) является наиболее простым и распространенным способом оценки объема работ по проекту.

Прочие количественные метрики (число функций, классов, файлов).

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

Анализ данных метрик помогает следить за изменениями по релизам (версиям, сборкам) дает понять: Количество изменений (на что угодно) – сколько раз один и тот же блок кода корректировался. Возможно выявить узкое место в программе: интенсивно меняющийся блок кода может влиять на общее качество программы (потенциальное место возникновения ошибок). Возможно, необходимо изменить архитектуру блока.

Процент комментариев.

Код должен быть документирован. Если соотношение кода к комментарию не 1:4 (25%), то разработчик обязан доработать.

Метрики Qt/C++ кода получены с помощью инструмента SourceMonitor
Базовые метрики кода для QtQuick приложений получены с помощью утилиты CLOK

Так как данный проект является учебным, то будем использовать только размерно-ориентированные метрики.

Модуль core 23.04.2012 (общие)

Дата Файлы Строки кода (LOC) Операторы (Statements) % Комментариев (% Comments) Классы (Class Defs) % Методы/Класс (% Methods/Class) % Операторы/Метод (% Statements/Methods)
23.04.12 80 19744 9773 18,3 68 15,21 7,7
07.05.12 81 19337 9587 18,1 70 14,58 7,5
21.05.12 81 19352 9596 18,1 70 14,56 7,5
Подробный отчёт (по файлам): Отчёты по временным промежуткам:

Приложение Events

Дата 05.05.12
Язык Файлы Строки кода (Code) Комментарии (comment) Пустые строки (blank)
QML 27 3237 358 530
JavaScript 3 194 62 37
C++ 2 175 29 29
C/C++ Headers 1 24 10 12
Всего 33 3630 459 608

Приложение Places

Дата 15.05.12
Язык Файлы Строки кода (Code) Комментарии (comment) Пустые строки (blank)
QML 23 2854 45 490
JavaScript 3 185 10 32
C++ 2 196 12 44
C/C++ Headers 1 21 3 10
Всего 29 3054 80 576

Драйвер Google Calendar

Дата 10.05.12
Язык Файлы Строки кода (Code) Комментарии (comment) Пустые строки (blank)
C/C++ Headers 11 1808 466 257
XSLT 8 128 39 7
XML 2 538 0 42
Всего 21 2474 505 306

Временные метрики

Участник 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Всего Среднее
Никита Артемов 9 11 8 12 5 10 9 1 1,5 4 3 73,5 5,250
Никита Давыдовский 2 10 17 24 7,5 12 6,5 11,5 8,5 7,5 5 111,5 7,964
Александр Дремин 4 4 0,286
Александр Шитнев 18 19 9 4,5 6,5 2 2 5,5 6 7,5 4,5 84,5 6,036
Алексей Филиппов 38 16 6,5 7 4 12,5 5,5 5,5 3 98 7,000
Всего 2 10 65 67 17 47 26 28 18,5 29,5 21 22 11,5 8 372,5 26,607
Участник Feature Support Research Design Quality Assurance Management Other
Никита Артемов 65 1 9 1
Никита Давыдовский 78,5 9,5 4,5 4 6 2
Александр Шитнев 3 4 41 13 17,5
Алексей Филиппов 48 35 4,5 4
Выводы:
  • у всех из участников проекта кол-во часов меньше нормы (15 часов)
  • непонятно с чем связано меньшее кол-во часов у некоторых разработчиков, хотя выполнялись схожие задачи

Ссылки

Updated by Алексей Филиппов over 12 years ago · 27 revisions