Что бы вы ни интересовали, вам нужно разбить ваши продукты для отслеживания ошибок. Более важно, чтобы это различие было полезным для вас, чем оно было бы «правильным» в соответствии с какой-то концепцией, не относящейся к проблеме отслеживания ошибок.
Для меня любая часть кода, для которой вы можете изменить реализацию, не нарушая другие части, может считаться компонентом. Что-то, на что вы можете окончательно указать и сказать: «Эта ошибка там , и больше нигде».
Если ваш продукт представляет собой гигантский шарик спагетти-кода, вы можете не получить никакой выгоды от компонентов. Если вы очень хорошо отсоединились, и у вас очень большой проект, у вас могут быть сотни вещей, которые можно квалифицировать как «компоненты», и вам, вероятно, придется семантически сгруппировать их, чтобы различие не вызвало больше проблем, чем стоит.
РЕДАКТИРОВАТЬ: В ответ на комментарий к другому ответу, эта модель работает лучше всего, если человек, регистрирующий ошибки, обладает необходимыми знаниями о проблеме, чтобы сделать регистрацию. Мы всегда анализируем (сортируемо) сообщения об ошибках и регистрируем их самостоятельно. Если вы оставляете выбор компонентов на усмотрение пользователей, эта идея не очень вам подойдет.