Извините, может быть надо было куда-то в другое место писать - если так - перенесите куда надо
Так вот.
Вот хоть убейте, не могу понять, что такое класс-сущность, граничный класс и т.п.
Можно на конкретных примерах пояснить?
Буду очень благодарен.
Спасибо.
В подходе BCE (Boundary-Controller-Entity):
Entity (Класс-сущность) - отвечает за хранение информации по объекту-сущности, например такому, как "Заказ" и содержит методы, соответствующие его бизнес-логике, типа добавить строку заказа, завершить заказ и т.д.
Boundary (пограничный класс) - отвечает за организацию взаимодействия с субъектом (actor). В оконных приложениях это грубо говоря, класс окна.
Controller (управляющий класс) - отвечает за передачу запросов от Boundary нужным классам Entity и возвращает ему результаты. Грубо говоря, Контроллер заказа "дёргает" методы Заказа, и получив ответ, обновляет Окно (+ может делать множество других операций, связанных с другими сущностями ПрОбл и Приложения, типа логирования). Т.е. он отвечает в том числе за Логику Приложения (в отличие от Бизнес-Логики), если нет отдельного слоя Логики Приложений, например, отсечённого от Контроллера Сервисным слоем.
В настольном приложении все классы реализуются в компоненты, находящиеся на данной машине. В клиент-серверных приложениях если клиент толстый, то B и C находится на клиенте, а E - скорее всего на сервере. Если клиент тонкий, то в принципе вся связка BCE находится на серверной стороне, причём эти классы могут быть распределены по разным физическим серверам (по крайней мере BC отдельно от E).
Вот ещё примерчик для неоконного приложения, в котором граничными классами выступают устройства чтения карты и клавиатура.
Подробнее об этом можно почитать, например, у
Мацящека.
Вообще мне этот подход кажется довольно спорным, т.к. имхо аналитик не должен заниматься проектированием системы, если эти функции разделены по людям, т.к. иначе потом придёт архитектор и окажется, что он всё реализует иначе, исходя из неФ-требований, и работа анлитика идёт коту под хвост.