Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Различные метрики программного обеспечения используются в модульном программировании. Они были упомянуты Робертом Сесилом Мартином в его книге 2002 года "Разработка гибкого программного обеспечения: принципы, шаблоны и практики". Термин "пакет программного обеспечения" здесь относится к группе связанных классов в объектно-ориентированном программировании. Количество классов и интерфейсов: Количество конкретных и абстрактных классов (и интерфейсов) в пакете является показателем расширяемости пакета. Афферентные соединения (Ca): число классов в других упаковках, которые зависят от классов внутри упаковки, является показателем ответственности упаковки. Афферентные соединения сигнализируют внутрь. Эфферентные соединения (Ce): Количество классов в других пакетах, от которых зависят классы в пакете, является показателем зависимости пакета от внешних факторов. Эфферентные соединения сигнализируют наружу. Абстрактность (A): соотношение числа абстрактных классов (и интерфейсов) в анализируемом пакете к общему числу классов в анализируемом пакете. Диапазон для этого показателя составляет от 0 до 1, при этом A=0 указывает на полностью конкретную упаковку, а A=1 указывает на полностью абстрактную упаковку. Нестабильность (I): отношение эфферентной сцепления (Ce) к общей сцеплению (Ce + Ca), так что I = Ce / (Ce + Ca). Этот показатель является показателем устойчивости пакета к изменениям. Диапазон для этого показателя составляет от 0 до 1, при этом I=0 указывает на полностью стабильную упаковку, а I=1 указывает на полностью нестабильную упаковку. Расстояние от основной последовательности (D): перпендикулярное расстояние пакета от идеализированной линии A + I = 1. D рассчитывается как D = A + I 1 Этот показатель является показателем баланса пакета между абстрактностью и стабильностью. Пакет прямо на главной последовательности оптимально сбалансирован с точки зрения его абстрактности и стабильности. Идеальные пакеты либо полностью абстрактны и стабильны (I=0, A=1), либо полностью конкретны и нестабильны (I=1, A=0). Диапазон для этого показателя составляет от 0 до 1, при этом D=0 указывает на пакет, который совпадает с основной последовательностью, а D=1 указывает на пакет, который находится как можно дальше от основной последовательности. Циклы зависимости от пакетов: циклы зависимости от пакетов сообщаются вместе с иерархическими путями пакетов, участвующих в циклах зависимости от пакетов.
Various software package metrics are used in modular programming. They have been mentioned by Robert Cecil Martin in his 2002 book Agile software development: principles, patterns, and practices. The term software package here refers to a group of related classes in object oriented programming. Number of classes and interfaces: The number of concrete and abstract classes (and interfaces) in the package is an indicator of the extensibility of the package. Afferent couplings (Ca): The number of classes in other packages that depend upon classes within the package is an indicator of the package's responsibility. Afferent couplings signal inward. Efferent couplings (Ce): The number of classes in other packages that the classes in a package depend upon is an indicator of the package's dependence on externalities. Efferent couplings signal outward. Abstractness (A): The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of classes in the analyzed package. The range for this metric is 0 to 1, with A=0 indicating a completely concrete package and A=1 indicating a completely abstract package. Instability (I): The ratio of efferent coupling (Ce) to total coupling (Ce + Ca) such that I = Ce / (Ce + Ca). This metric is an indicator of the package's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable package and I=1 indicating a completely unstable package. Distance from the main sequence (D): The perpendicular distance of a package from the idealized line A + I = 1. D is calculated as D = | A + I 1 |. This metric is an indicator of the package's balance between abstractness and stability. A package squarely on the main sequence is optimally balanced with respect to its abstractness and stability. Ideal packages are either completely abstract and stable (I=0, A=1) or completely concrete and unstable (I=1, A=0). The range for this metric is 0 to 1, with D=0 indicating a package that is coincident with the main sequence and D=1 indicating a package that is as far from the main sequence as possible. Package dependency cycles: Package dependency cycles are reported along with the hierarchical paths of packages participating in package dependency cycles.