К основному содержимому
#Architecture

[1/3] Quality Metrics in Software Architecture (Рубрика Architecture)

#Architecture #Metrics #Software #Engineering #SystemDesign #Management

Интересная обзорная статья про архитектуру софта, в которой авторы систематизировали и структурировали метрики (metrics) для оценки качества архитектуры (software architecture). Они сфокусировались на метриках, которые можно применять только к архитектурному описанию (architecture-only metrics), без необходимости анализа исходного кода или реализованной системы. В результате проведённого систематического обзора литературы (Systematic Literature Review, SLR) был создан каталог из 52 метрик и 41 атрибута качества (quality attributes), сгруппированных по 8 основным характеристикам качества (quality characteristics) согласно международному стандарту ISO/IEC 25010:2011. Для практического применения этот каталог реализован в виде модели и фреймворка, поддерживающего визуализацию и расширение набора метрик. Сам код доступен на Github, там же доступна визуализация самой модели с метриками, атрибутами и их кластеризацией как статической, так и динамической.

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

Если говорить про модель авторов, то из анализа литературы они собрали фреймворк, что включает следующие компонены

  • ArchitecturalQualityModel - корневой элемент, объединяющий все остальные сущности модели.
  • QualityElements - элементы качества, которые бывают трёх типов: -- Metric - конкретная метрика для измерения качества архитектуры -- QualityCharacteristic - глобальная характеристика качества (например, reliability, maintainability) -- QualityAttribute — атрибут качества, связанный с одной из характеристик
  • QualityRel — отношения между элементами качества, например, какая метрика измеряет какой атрибут
  • ResearchContributions — ссылки на научные публикации, в которых определены или предложены элементы или связи.

Каталог организован по 8 характеристикам качества из ISO/IEC 25010:2011 (интересно, что в 2023 году вышло обновление этого стандарта)

  • Функциональная пригодность
  • Уровень производительности
  • Совместимость
  • Удобство использования (юзабилити)
  • Надёжность
  • Защищённость
  • Сопровождаемость
  • Переносимость (мобильность) Для каждой характеристики выделены соответствующие атрибуты качества и связанные с ними метрики. Например, для Maintainability это Cohesion, Coupling, Complexity и др.

В следующем посте рассказ о том, как авторы подошли к методологии и реализации своего исследования.

#Architecture #Metrics #Software #Engineering #SystemDesign #Management