51
использовала производственную метафору конвейера, так как такие понятия,
как конвейер и деталь в автомобильной компании понимают все.
Использование в этом проекте водопроводной трубы с вентилями в качестве
метафоры вряд ли оказалось бы эффективным. Не следует тратить слишком
много времени на поиски идеальной метафоры. Совершенно необязательно
добиваться, чтобы метафора была идеальной
. Отдельные части метафоры
могут быть написаны в разном стиле и включать пояснения, показывающие,
насколько то, что желательно получить, отличается от того, что описано в
метафоре. Роль метафоры – обеспечить понимание заказчиком и
разработчиком, каким должен быть программный продукт.
2. Используйте метафору для создания пространства имен.
Для понимания общего дизайна системы и
исключения дублирующего
кода чрезвычайно важно правильно именовать объекты. Если разработчик в
состоянии правильно предугадать, как может быть назван существующий
объект, это ведет к экономии времени. Поэтому в первую очередь при
выборе метафоры необходимо создать систему имен (объектов, классов и
методов) так, чтобы каждый член команды мог пользоваться ею без
специальных знаний
.
3. Следует помнить об ограничениях, связанных с метафорой.
Если метафора перестает играть позитивную роль, от нее нужно
отказаться. Между тем, что является частью метафоры, и тем, что
представляет собой требование, имеется разница. Часть метафоры в
дальнейшем может перейти в пожелание заказчика.
Выбор метафоры - один из самых сложных, но эффективных процессов
для установления взаимопонимания с заказчиком на этапе проектирования.
Многие считают, что эту методику невозможно внедрить именно так, как это
рекомендуется.
4.1.3. Использование СRС-карточек
Использование для проектирования СRС-карточек (Class,
Responsibilities and Collaboration Cards – Класс, Обязанности,
Взаимодействие) является фундаментальным принципом многих гибких
методологий, например экстремального программирования. Являясь
простейшими моделями, они позволяют скрыть маловажные детали, удобны
для коллективного проектирования и способствуют более тесному общению
членов команды.
Использование СRC-карточек позволяет описать программную систему
как совокупность объектов и отношений
между ними, а не в виде
совокупности процедур и функций. Каждая СRC-карточка представляет
собой экземпляр объекта.
Класс объекта на карточке записывается сверху, слева перечисляются
обязанности класса, а справа – взаимодействия. Обязанности класса
записываются в виде произвольно составленного текста. Как правило, каждая
обязанность описывается одним предложением или, в крайнем случае, одним