[1/3] Quality Metrics in Software Architecture (Рубрика Architecture)
Интересная обзорная статья про архитектуру софта, в которой авторы систематизировали и структурировали метрики (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