Идентификация классов - одна из принципиальных задач ОО-конструирования ПО.
Идентификация классов - двойственный процесс - предложение кандидатов и их отбор. Нужно уметь находить потенциальных кандидатов и уметь отсеивать неподходящих.
Идентификация классов - это идентификация подходящих абстракций в моделируемой области пространстве решений.
"Подчеркивание существительных в документе требований" - это не подходящая техника для обнаружения потенциальных классов, так как ее результаты зависят от стиля написания документа. Она может приводить как к появлению лишних кандидатов, так и к пропуску нужных.
Классы разделяются на три группы. Классы анализа связаны с концепциями моделируемого внешнего мира. Классы проектирования описывают архитектурные решения. Классы реализации описывают структуры данных и алгоритмы.
Классы проектирования обычно требуют наибольшей изобретательности.
При проектировании внешних классов помните, что внешние объекты включают концепции наряду с материальными предметами.
Применяйте критерий абстракции данных всякий раз, когда нужно решить, представляет ли данное понятие настоящий класс.
Классы реализации включают как эффективные, так и отложенные классы, описывающие абстрактные категории.
Наследование обеспечивает повторное использование с одновременной адаптацией к изменившимся условиям.
Способ получения классов состоит в оценке кандидатов и поиске необнаруженных абстракций, в частности путем анализа межмодульных передач данных.
Использование Case-технологии или сценариев может быть полезно как средство проверки правильности и как руководство на заключительных этапах реализации, но не должно использоваться на этапах анализа и проектирования.
Лучшим источником классов являются библиотеки повторного использования.