Коллеги, к вам такой вопрос: как вы разбираетесь в терминологии компонент-модуль-сервис-проч?
В моей системе используется уже функциональное разбиение следующее: система-подсистема-(модуль, сервис, АРМ). То есть, согласуя с ГОСТ 34 система-подсистема-компонент, компонент - это либо модуль, либо сервис, либо АРМ.
Хочется при этом не запутаться с разбиением на программные модули, среди которых тоже есть подсистемы и сервисы.
Так решил для себя:
Система это крупное решение. С их помощью можно быстро очень быстро описать весь ландшафт заказчика. Сами системы могут быть очень об разном. Например, в компании предоставляющих чат на сайте это может быть Система чата (главный продукт), Система CRM, Система бухгалтерского учета, Система контроля учета доступа.
Подсистема - крупные, достаточно независимые блоки системы. Для системы чата это Подсисистема коммуникационной платформы, Подсистема Личный кабинет, Подсистема сбора статистики и онлайн мониторинга. Подсистемы связаны между собой интеграционными блоками.
Компонент - обособленная часть системы. В ТЗ (квазигостовое которое) выгружается компонентная схема и для каждой компоненты прописываются функции. Как это будет реализовано технически на данном этапе непонятно. Для подсистемы коммуникационной платформы это может быть Компонент АРМ Оператора, Компонент коммуникационного ядра, Компонент виджета, Компонент интеграций с другими система. Компоненты плотно связаны между собой и часто без каких-либо интеграций слоев, просто используя предоставляемое API. Компоненты содержат функции, которые также определены в ТЗ.
Модуль - конкретные приложения, их которых состоит компонент. У меня модуль это непосредственно исполняемое приложения. Условно - докер конетейнер (не запущенный, а который можно запустить). Между модулями раскидываются функции компонента так, чтобы каждая функция была реализована в каком-либо модуле. Для Компонента коммуникационной платформы это может быть Модуль истории коммуникации за которым спрятан СУБД и ElasticSearch, Модуль маршуртизации, Модуль надежной доставки.
Уровень общения примерно такой. Большие начальники мыслят системами. Начальники поменьше - подсистемами. Руководители проектов подсистемами и модулями. Разработчики модулями. По документам - системы и подсистемы это уровень презентаций. Компонентная схема - ТЗ, Модульная схема - проектной решение/ЧТЗ.