Ищу объективные метрики для качества программного обеспечения [закрыто

StackOverflow https://stackoverflow.com/questions/6802320

  •  22-10-2019
  •  | 
  •  

Вопрос

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

Я интересуюсь более глубокой формой качества, связанной с сетью (или графом) типов и их взаимосвязанностью, то есть на какие типы ссылаются на каждый тип, есть ли четкие идентифицируемые кластеры взаимосвязанности, относящиеся к правильному Многоуровневая архитектура, или, наоборот, есть большой «шар» типовых ссылок («монолитный» код). Также размер каждого типа и/или метода (например, измеренный по количеству кода байта Java или .NET IL) должен указывать на то, где были реализованы большие сложные алгоритмы в виде монолитных блоков кода, а не разложены в более управляемые/подлежащие управлению/обслуживаемым кусочки.

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

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

Приложение: Еще один способ мышления о качестве - с точки зрения энтропии. Энтропия - это тенденция систем возвращаться от упорядоченных к беспорядочным состояниям. Любой, кто когда -либо работал над реальным миром, программный проект среднего и крупномасштабного программного обеспечения, по достоинству оценит степень качества кодовой базы, как правило, разлагается с течением времени. Деловое давление, как правило, приводит к изменениям, которые фокусируются на новой функциональности (за исключением случаев, когда само качество является основной точкой продажи, например, в программном обеспечении Avionics), и разрушение качества через проблемы с регрессией и функциональность «Hose Horning», где оно не подходит от качество и перспектива обслуживания. Итак, можем ли мы измерить энтропию программного обеспечения? А если да, то как?

Это было полезно?

Решение

Ndepend, по крайней мере, для .NET Code, предоставит лучшие показатели для качества программного обеспечения, которые мы имеем на сегодняшний день. У них 82 разных кода метрики. Анкет Это то, что вы ищите? Если вы программист .NET, вы можете найти это Сообщение блога О анализе независимости очень популярного/большого проекта с открытым исходным кодом, чтобы быть интересным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top