Как я могу визуализировать изменения в большом качестве базы кода? - PullRequest
6 голосов
/ 06 октября 2010

Одна из вещей, о которых я часто думал, - как мы можем использовать какие-то метрики для измерения изменений, идем ли мы в обратном направлении или нет?Это в контексте большой, унаследованной базы кода, которую мы улучшаем.Большая часть кода - C ++ с наследием C.Некоторые новые функции и графический интерфейс написаны на C #.

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

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

Со временем мне бы хотелось иметь более сложные числа, но те же методы визуализации.используется для представления изменений.

Мне нравится в Crap4j идея сосредоточиться на соотношении между сложностью и количеством юнит-тестов, охватывающих этот код.

Мне бы тоже хотелосьвключить СОЛНЕЧНЫЕ метрики дяди Боба и некоторые из метрик Чидамбера и Кемерера.Трудно найти инструменты для их генерации на C ++.Единственный вариант - Основные показатели Кракатау (я не возражаю против оплаты инструментов).Мое желание использовать метрики CK частично исходит из книг Объектно-ориентированные метрики: меры сложности Хендерсона-Селлерса и более ранних Объектно-ориентированных метрик программного обеспечения .

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

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

Ответы [ 2 ]

3 голосов
/ 13 октября 2010

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

1 голос
/ 18 октября 2010

Вы также можете взглянуть на NДобавить документацию о показателях кода . Отказ от ответственности: я являюсь одним из разработчиков инструмента NDepend.

С помощью Code Rule и Query over LINQ (CQLinq) можно запроситьметрическая эволюция кода / тенденции в двух разных моментальных снимках во времени базы кода.Например, предлагается правило по умолчанию: Избегайте усложнения сложных методов , показанных на снимке экрана ниже:

Avoid making complex methods even more complex

Предложено несколько метрических правил тренда, например::

Что касается визуализации метрики кода, NDepend позволяет визуализировать значения метрики кода с помощью интерактивной древовидной карты :

Code Metric viualized through Treemap

...