Границы между стадиями анализа и проектирования размыты, но решаемые ими задачи определяются достаточно четко. В процессе анализа мы моделируем проблему, обнаруживая классы и объекты, которые составляют словарь проблемной области. При объектно-ориентированном проектировании мы изобретаем абстракции и механизмы, обеспечивающие поведение, требуемое моделью [Обозначения и процессы, описанные в этой книге, в равной степени относятся к фазам и анализа и проектирования (в традиционном понимании), как мы увидим в главе 6. Именно по этой причине мы сменили во втором издании название книги на "Объектно-ориентированный анализ и проектирование"].
Теперь мы рассмотрим несколько проверенных практикой подходов к анализу объектно-ориентированных систем.
Классические подходы. Разные ученые находят различные источники классов и объектов, согласующихся с требованиями предметной области. Мы называем эти подходы классическими, поскольку они опираются на классическую категоризацию.
Например, Шлаер и Меллор предлагают следующих кандидатов в классы и объекты [32]:
• Осязаемые предметы | Автомобили, телеметрические данные, датчики давления |
• Роли | Мать, учитель, политик |
• События | Посадка, прерывание, запрос |
• Взаимодействие | Заем, встреча, пересечение |
Что-то в этом роде предлагает Росс, исходя из перспектив моделирования баз данных [33]:
• Люди | Человеческие существа, выполняющие некоторые функции |
• Места | Области, связанные с людьми или предметами |
• Предметы | Осязаемый материальный объект или группа объектов |
• Организации | Формально организованная совокупность людей, ресурсов, оборудования, которая имеет определенную цель и существование которой в целом не зависит от индивидуумов |
• Концепции | Принципы и идеи, сами по себе неосязаемые, но предназначенные для организации деятельности и/или общения, или же для наблюдения за ними |
• События | Нечто случающееся с чем-то в заданное время или последовательно |
Коад и Иордан предложили свой список [34]: