Требования к книжному Internet-магазину

Начиная со следующей главы мы будем разрабатывать реальный пример под названием «Книжный Internet-магазин» и пройдем все этапы только что описанного процесса. Те прецеденты и классы, с которыми мы встретимся, призваны удовлетворить требования заказчика (владельца книжного магазина).

Сформулируем их:

 

Основные элементы моделирования предметной области

Первое, что нужно сделать при построении статической модели системы, - отыскать классы, которые адекватно отражают абстракции предметной области. Если эта работа выполнена хорошо, то у вас будет не только прочный фундамент для построения системы, но и хорошие шансы для повторного использования этих классов в следующих системах.

Лучшими источниками классов, по-видимому, являются высокоуровневое описание задачи, низкоуровневые требования и экспертная оценка задачи. Начните с выписывания максимально возможного числа предложений из этих источников (не забывая и о других, например, – о литературе по маркетингу), а затем обведите или подчеркните все существительные и именные группы. Шансы на то, что таким образом вы найдете почти все важные доменные объекты (классы), весьма велики.

По мере уточнения этого перечня должно происходить следующее:

· имена существительные и именные группы становятся объектами и атрибутами;

· глаголы и глагольные группы становятся операциями и ассоциациями;

· родительный падеж показывает, что имя существительное должно быть атрибутом, а не объектом.

Далее следует отсеять из списка кандидатов на звание класса ненужные (избыточные или несущественные) и непригодные (слишком расплывчатые или представляющие концепции, лежащие за рамками модели) элементы.

При построении диаграмм классов вы можете также принять предварительные решения об обобщениях (отношениях вида «является»). Если необходимо заниматься этим на ранней стадии проекта, можете построить даже несколько уровней обобщения. Ищите такие предложения в описании задачи, которое содержит слова «является» или «представляет разновидность». Этап моделирования предметной области - также подходящий момент для принятия решений об агрегировании (отношении вида «имеет») классов.