6.6. Что мы узнали 145
• Необходимо сосредоточиться на отображении основной картины.
Не надо углубляться в детали того, как будет работать система. Для
этого отводится достаточно времени при проектировании.
• Необходимо четко различать предметную область (бизнестребова
ния) и область решения (детальные конструктивные соображения).
Основное внимание всегда должно быть направлено на абстракции
предметной области. Например, при моделировании системы элек
тронной торговли в аналитической модели должны присутствовать
классы Customer (клиент), Order (заказ) и ShoppingBasket (корзина по
купок). Здесь не должно быть классов доступа к базе данных или
классов для установления соединений, поскольку они – артефакты
области решения.
• Всегда необходимо стремиться минимизировать связанность (coup
ling). Каждая ассоциация между классами увеличивает их связан
ность. В главе 9 будет показано, как можно максимально сократить
связанность с помощью кратностей и навигации по ассоциациям.
• Если присутствует естественная и очевидная иерархия абстракций,
должна быть рассмотрена возможность применения наследования.
При анализе иерархия никогда не должна применяться просто для
повторного использования кода. Как мы увидим в разделе 17.6, на
следование – самая сильная форма связанности классов.
• Всегда должен задаваться вопрос: «Модель полезна для всех заин
тересованных сторон?» Нет ничего хуже, чем создавать аналити
ческую модель, которая игнорируется пользователями или проек
тировщиками и разработчиками. Пока что это происходит очень
часто, особенно с неопытными аналитиками. Основная превентив
ная стратегия при этом – сделать аналитическую модель и процесс
моделирования максимально открытыми, по возможности при
влечь в него заинтересованные стороны, проводить частые и пуб
личные обзоры.
И наконец, модель должна быть простой! Конечно, легче сказать, чем
сделать, но нам из собственного опыта известно, что внутри любой
сложной аналитической модели можно найти простую. Один из спосо
бов упрощения – рассматривать вопрос в общем, не погружаясь в част
ности.
6.6. Что мы узнали
Мы рассмотрели следующее:
• Анализ заключается в создании моделей, отображающих основные
требования и характеристики целевой системы – аналитическое
моделирование имеет стратегическое значение.
• Основной объем работ рабочего потока анализа выполняется в кон
це фазы Начало и в фазе Уточнение.