КОЛИЧЕСТВЕННЫЙ АНАЛИЗ АРХИТЕКТУРНЫХ ПАТТЕРНОВ MVC, MVP И VIPER В МОБИЛЬНОЙ РАЗРАБОТКЕ С ИСПОЛЬЗОВАНИЕМ ФОРМАЛИЗОВАННЫХ МЕТРИК

QUANTITATIVE ANALYSIS OF MVC, MVP, AND VIPER ARCHITECTURAL PATTERNS IN MOBILE DEVELOPMENT USING FORMALIZED METRICS
Зверьков С.В.
Цитировать:
Зверьков С.В. КОЛИЧЕСТВЕННЫЙ АНАЛИЗ АРХИТЕКТУРНЫХ ПАТТЕРНОВ MVC, MVP И VIPER В МОБИЛЬНОЙ РАЗРАБОТКЕ С ИСПОЛЬЗОВАНИЕМ ФОРМАЛИЗОВАННЫХ МЕТРИК // Universum: технические науки : электрон. научн. журн. 2026. 5(146). URL: https://7universum.com/ru/tech/archive/item/22783 (дата обращения: 28.05.2026).
Статья поступила в редакцию: 13.05.2026
Принята к публикации: 16.05.2026
Опубликована: 28.05.2026

 

УДК 004.415.2

АННОТАЦИЯ

Цель работы заключается в проведении сравнительного количественного анализа архитектурных паттернов Model-View-Controller (MVC), Model-View-Presenter (MVP) и View-Interactor-Presenter-Entity-Router (VIPER) в контексте мобильной разработки. Актуальность задачи обусловлена отсутствием объективных критериев выбора архитектурного стиля на ранних этапах проектирования, что приводит к неоптимальным решениям и росту затрат на сопровождение.

Методология исследования базируется на представлении архитектуры мобильного приложения в виде взвешенного ориентированного графа зависимостей, вершины которого соответствуют архитектурным элементам, а рёбра - связям между ними с учётом их интенсивности. На основе графа вычисляются нормированные метрики модульности, масштабируемости через метрику распространения изменений CPM (Change Propagation Metric), тестируемости как доли изолированно тестируемых методов и скорости разработки. Экспериментальная проверка выполнена на эталонных реализациях типового пользовательского сценария, разработанных в трёх указанных архитектурных стилях.

Результаты демонстрируют, что MVC характеризуется максимальной связностью и наименьшей тестируемостью при высокой скорости старта. MVP улучшает тестируемость до 0,70 и снижает связность до 0,34 за счёт выделения Presenter, сохраняя приемлемую скорость разработки. VIPER достигает наилучших показателей модульности и масштабируемости, однако требует вдвое больших начальных трудозатрат.

Обсуждение раскрывает компромиссный характер архитектурного выбора: рост структурной сложности и времени разработки является платой за повышение сопровождаемости и изолированности компонентов [7]. Показано, что переход от MVC к MVP даёт больший относительный прирост качества, чем дальнейшая детализация слоёв в VIPER. Практическая значимость работы состоит в предоставлении разработчикам измеримого инструмента для обоснованного выбора архитектурного паттерна с учётом проектных ограничений.

ABSTRACT

Purpose of the work is to conduct a comparative quantitative analysis of architectural patterns Model-View-Controller (MVC), Model-View-Presenter (MVP), and View-Interactor-Presenter-Entity-Router (VIPER) in the context of mobile development. The relevance of the task stems from the lack of objective criteria for selecting an architectural style at the early design stages, which leads to suboptimal solutions and increased maintenance costs.

Methodology is based on representing the mobile application architecture as a weighted directed dependency graph, where vertices correspond to architectural elements and edges reflect connections between them taking into account their intensity. Normalized metrics of modularity, scalability via CPM, testability as the proportion of isolated testable methods, and development speed are calculated based on the graph. Experimental verification was carried out on reference implementations of a typical user scenario developed in the three specified architectural styles.

Results demonstrate that MVC is characterized by maximum coupling and the lowest testability with high startup speed. MVP improves testability to 0,70 and reduces coupling to 0,34 by introducing a Presenter while maintaining an acceptable development pace. VIPER achieves the best indicators of modularity and scalability but requires twice the initial effort.

Discussion reveals the trade-off nature of architectural choice: increased structural complexity and development time are the price for enhanced maintainability and component isolation. It is shown that the transition from MVC to MVP provides a greater relative increase in quality than the further detailing of layers in VIPER. The practical significance of the work lies in providing developers with a measurable tool for informed selection of an architectural pattern considering project constraints.

 

Ключевые слова: архитектура мобильных приложений, метрики программного обеспечения, модульность, связность, тестируемость, масштабируемость, метрика распространения изменений.

Keywords: mobile application architecture, software metrics, modularity, coupling, testability, scalability, change propagation metric.

 

Введение

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

Паттерн Model-View-Controller (MVC), предложенный для построения пользовательских интерфейсов ещё в 1970-х годах, в мобильной среде часто реализуется в упрощённом виде, где Controller совмещает множество обязанностей. Model-View-Presenter (MVP) появился как ответ на проблему тестирования UI-логики, выделяя промежуточный слой Presenter, полностью изолирующий View от Model. VIPER (View-Interactor-Presenter-Entity-Router) доводит идею разделения до уровня пяти самостоятельных слоёв, стремясь обеспечить максимальную независимость компонентов и возможность их параллельной разработки [1].

Несмотря на широкое обсуждение достоинств и недостатков этих паттернов в профессиональном сообществе, выбор зачастую остаётся субъективным, а аргументация носит описательный характер. Формализованные метрики, предложенные в [2, 3] и развиваемые в настоящей работе, позволяют перевести дискуссию в плоскость количественных оценок.

Цель работы - получить численные оценки модульности, масштабируемости, тестируемости и скорости разработки для MVC, MVP и VIPER и провести их объективное сравнение.

Методология исследования

Исследование опирается на представление архитектуры мобильного приложения в виде взвешенного ориентированного графа

                                                   (1)

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

На основе графа вычисляются следующие метрики:

Модульность - нормированная доля межмодульных связей, усреднённая по элементам системы. Низкое значение свидетельствует о высокой внутренней связности модулей и слабом сцеплении между ними.

Масштабируемость оценивается через метрику распространения изменений CPM (Change Propagation Metric):

                                            (2)

где  - множество модулей, на которые влияет изменение в модуле ,  - общее число модулей. Усреднённая по системе величина CPM характеризует устойчивость архитектуры к модификациям [4, 5].

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

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

Экспериментальная часть заключалась в троекратной реализации типовой задачи - загрузка списка данных из сети, отображение с возможностью фильтрации и перехода на детальный экран - на языке Swift с использованием паттернов MVC (в версии «Massive View Controller», характерной для реальных проектов), MVP (с пассивным View и протокольным интерфейсом) и VIPER (полная декомпозиция на пять слоёв) [7]. Для каждой реализации построен граф зависимостей и вычислены указанные метрики.

Результаты и обсуждение

Сводные результаты эксперимента представлены в таблице 1.

Таблица 1.

Сравнительные метрические показатели MVC, MVP и VIPER

Критерий

MVC

MVP

VIPER

Модульность (доля внешних связей)

0,62

0,34

0,16

Масштабируемость (средняя CPM)

0,54

0,31

0,10

Тестируемость (доля тестируемых методов)

0,38

0,70

0,83

Скорость разработки (нормированная)

0,95

0,80

0,50

 

Модульность. В MVC значительная часть логики сосредоточена в Controller, который напрямую зависит от View и Model, что приводит к большому числу внешних связей (0,62). MVP [6] снижает этот показатель почти вдвое (0,34) за счёт посреднической роли Presenter, общающегося с View и Model через протоколы. VIPER достигает наивысшей модульности (0,16) благодаря строгому разделению слоёв и унифицированным интерфейсам между ними.

Масштабируемость. Высокое значение CPM для MVC (0,54) указывает на то, что изменение в одном модуле с высокой вероятностью инициирует каскад модификаций в половине системы. В MVP распространение изменений ограничено (0,31) - основное воздействие замыкается в паре Presenter-View. VIPER (0,10) демонстрирует почти полную локализацию изменений; модификация слоя Entity или Router практически не затрагивает остальные компоненты.

Тестируемость. MVC показывает наихудший результат (0,38), так как бизнес-логика в Controller тесно сплетена с жизненным циклом View и UIKit-зависимостями, что препятствует изолированному тестированию. MVP значительно улучшает показатель (0,70): Presenter, тестируется с помощью подмены View. VIPER лидирует (0,83) за счёт ещё более детального разделения - Interactor, Presenter и Router могут тестироваться полностью независимо.

Скорость разработки. MVC (0,95) требует минимальных начальных затрат, так как не накладывает строгих правил разделения. MVP (0,80) несколько замедляется из-за необходимости писать протоколы для View и Presenter. VIPER (0,50) вдвое уступает MVC: каждый экран требует создания большого числа файлов, протоколов и конфигурации модуля, что кратно увеличивает время старта.

Полученные количественные оценки подтверждают интуитивные представления о компромиссах, свойственных архитектурным паттернам, и придают им измеримый характер. MVC обеспечивает минимальные начальные трудозатраты на этапе старта разработки, но с наихудшей долгосрочной устойчивостью и тестируемостью. MVP представляет собой сбалансированное решение, серьёзно повышая тестируемость и умеренно улучшая масштабируемость ценой небольшого снижения скорости. VIPER является выбором для проектов с прогнозируемо длительным жизненным циклом, большой командой и высокими требованиями к изоляции компонентов.

Примечательно, что разрыв между MVC и MVP по модульности и тестируемости значительно больше, чем между MVP и VIPER [8]. Это указывает на то, что переход от «монолитного» контроллера к выделенному посреднику (Presenter) даёт больший относительный прирост качества, чем дальнейшая детализация слоёв в VIPER.

Практическая ценность работы заключается в том, что разработчик или архитектор, зная численные показатели, может сделать обоснованный выбор, исходя из приоритетов конкретного проекта. Например, для прототипа или краткосрочного продукта MVC может быть рациональным решением, тогда как для банковского приложения с многолетним циклом сопровождения преимущество VIPER становится статистически значимым [9, 10].

Заключение

На основе формализованного метрического подхода выполнено количественное сравнение архитектурных паттернов MVC, MVP и VIPER в контексте мобильной разработки. Установлены существенные различия по всем ключевым критериям: MVC оптимизирован под скорость, VIPER - под масштабируемость и тестируемость, а MVP занимает промежуточное, сбалансированное положение. Полученные результаты создают основу для разработки практических рекомендаций по выбору архитектуры с учётом проектных ограничений. Дальнейшие исследования целесообразно направить на построение обобщённой шкалы пороговых значений метрик для классификации архитектурных рисков в мобильных приложениях промышленного масштаба.

 

Список литературы:

  1. Маринин А. К. Выбор архитектуры для мобильных приложений // Известия Кабардино-Балкарского научного центра РАН. - 2024. - Т. 26, № 5. - С. 84-93. DOI: 10.35330/1991-6639-2024-26-5-84-93.
  2. Землянская С. Ю., Зверьков С. В. Критерии выбора архитектуры мобильного приложения // Universum: технические науки. - 2026. - № 1(142). - C 1-8
  3. Сарматин А. М. Современный подход к реализации архитектурных паттернов в Android-приложениях // Электронные библиотеки. - 2020. - Т. 23, № 3. - С. 487-502.
  4. Билогуб Д., Скрыпченко М., Тытенко С. Атрибуты качества и архитектурные паттерны современных мобильных приложений // Modern Engineering and Innovative Technologies. - 2023. - № 29. - С. 56-63.
  5. Добреан Д., Диошан Л. Сравнительное исследование архитектур программного обеспечения мобильных приложений // Studia Universitatis Babes-Bolyai Informatica. - 2019. - Т. 64, № 1. - С. 5-16.
  6. Гароуси В., Фельдерер М., Кылычаслан Ф. Обзор тестируемости программного обеспечения // Information and Software Technology. - 2019. - Т. 108. - С. 33-81. DOI: 10.1016/j.infsof.2018.12.004
  7. Нуньес-Варела А. С., Перес-Гонсалес Х. Г., Мартинес-Перес Ф. Э., Субервьель-Монтальво К. Метрики исходного кода: систематическое картографическое исследование // Journal of Systems and Software. - 2017. - Т. 128. - С. 164-197. DOI: 10.1016/j.jss.2017.03.044
  8. Тахир А., Макдонелл С. Систематический обзор динамических метрик и качества программного обеспечения // Journal of Systems and Software. - 2021. - Т. 176. - Ст. 110938. DOI: 10.1016/j.jss.2021.110938.
  9. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Паттерны объектно-ориентированного проектирования. - 2020г. - ООО Издательство «Питер», г. Санкт-Петербург. C 102-161.
  10.  Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения. - 2021г. - ООО Издательство «Питер», г. Санкт-Петербург. С 218-284.

References:

  1. Marinin A. K. [Selection of Architecture for Mobile Applications] // Izvestiya Kabardino-Balkarskogo nauchnogo tsentra (In Russ.) RAN. - 2024. - Vol. 26, № 5. - P. 84-93. DOI: 10.35330/1991-6639-2024-26-5-84-93.
  2. Zemlyanskaya S. Yu., Zverkov S. V. [Criteria for Choosing Mobile Application Architecture] // Universum: tekhnicheskie nauki.(In Russ.) - 2026. - № 1(142).P1-8
  3. Sarmatin A. M. [Modern Approach to Implementing Architectural Patterns in Android Applications] // Elektronnye biblioteki. (In Russ.) - 2020. - Vol. 23, № 3. - P. 487-502.
  4. Bilogub D., Skrypchenko M., Tytenko S. Quality Attributes and Architectural Patterns of Modern Mobile Applications // Modern Engineering and Innovative Technologies. - 2023. - № 29. - P. 56-63.
  5. Dobrean D., Diosan L. A Comparative Study of Software Architectures in Mobile Applications // Studia Universitatis Babes-Bolyai Informatica. - 2019. - Vol. 64, № 1. - P. 5-16.
  6. Garousi V., Felderer M., Kilicaslan F. A Survey of Software Testability // Information and Software Technology. - 2019. - Vol. 108. - P. 33-81. DOI: 10.1016/j.infsof.2018.12.004.
  7. Nunez-Varela A. S., Perez-Gonzalez H. G., Martinez-Perez F. E., Soubervielle-Montalvo C. Source Code Metrics: A Systematic Mapping Study // Journal of Systems and Software. - 2017. - Vol. 128. - P. 164-197. DOI: 10.1016/j.jss.2017.03.044.
  8. Tahir A., McDonnell S. A Systematic Review of Dynamic Software Metrics and Software Quality // Journal of Systems and Software. - 2021. - Vol. 176. - Art. 110938. DOI: 10.1016/j.jss.2021.110938.
  9. Gamma E., Helm R., Johnson R., Vlissides J. [Design Patterns: Elements of Reusable Object-Oriented Software.] - 2020. - OOO Izdatelstvo «Piter» (In Russ.), Saint Petersburg. (In Russ.) P. 102-161.
  10. Martin R. [Clean Architecture: A Craftsman's Guide to Software Structure and Design]. - 2021. - OOO Izdatelstvo «Piter» (In Russ.), Saint Petersburg. P. 218-284.
Информация об авторах

аспирант кафедры Автоматизированные системы управления, ФГБОУ ВПО Донецкий национальный технический университет, РФ, г. Донецк

Postgraduate Student of the Department of Automated Control Systems, Donetsk National Technical University, Russia, Donetsk

Журнал зарегистрирован Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), регистрационный номер ЭЛ №ФС77-54434 от 17.06.2013
Учредитель журнала - ООО «МЦНО»
Главный редактор - Звездина Марина Юрьевна.
Top