Перейти к содержимому

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

Эти методы дают исходный список кандидатов. Проверка их значимости и выбор роли в предметной модели разобраны в статье об объектах предметной области.

Метод Аббота помогает начать анализ текста. Существительные дают кандидатов в классы или атрибуты, глаголы — кандидатов в операции или связи, прилагательные — кандидатов в свойства, условия — кандидатов в правила. Например, во фразе “студент выбирает свободный интервал консультации” можно увидеть кандидатов “студент”, “интервал консультации”, “консультация”, операцию “выбирает” и свойство “свободный”.

Но результат метода Аббота нельзя принимать буквально. Он даёт сырьё для анализа: “свободный” требует проверки как возможное состояние или условие, а “выбирает” — как действие сценария или операция.

Метод именных групп уточняет устойчивые сочетания: “заявка на обслуживание”, “статус заказа”, “платёжная транзакция”, “пользовательская роль”. Иногда всё сочетание обозначает один объект, иногда главное слово становится классом, а зависимое — атрибутом или связью.

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

CRC-карточки помогают проверить ответственность. Для каждого кандидата фиксируются имя класса, обязанности и collaborators — другие классы, с которыми он взаимодействует. Если у класса нет обязанностей, возможно, он не нужен. Если обязанностей слишком много, его стоит разделить или вынести часть логики в другой объект.

Пример анализа:

Фрагмент Найденные кандидаты Вопрос для проверки
Студент создаёт запись студент, запись какие понятия существуют независимо и участвуют в правилах?
Свободный интервал интервал, свободный является ли признак самостоятельным понятием или свойством интервала?
Система отправляет уведомление уведомление нужно ли хранить факт отправки и его результат?

Все методы лучше работают вместе. Метод Аббота даёт стартовый список, именные группы уточняют термины, шаблонные классы помогают не забыть типовые категории, CRC-карточки проверяют распределение ответственности. После этого полезно зафиксировать: термин, источник, найденных кандидатов и вопрос, который требует проверки.

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