Введение

Карты совместной ответственности классов (CRC) — это инструмент для мозгового штурма, используемый при проектировании объектно-ориентированного программного обеспечения. Они были впервые предложены Уордом Каннингхэмом и Кентом Беком как учебное пособие, но также популярны среди опытных разработчиков и рекомендуются сторонниками экстремального программирования. Автор Мартин Фаулер отметил, что карты CRC могут быть эффективным способом быстрой разработки множества альтернативных взаимодействий, поскольку они позволяют избежать большого количества чертежей и исправлений. После сессий с использованием карт CRC часто создаются последовательности диаграмм для фиксации выявленных взаимодействий. Карты CRC широко используются на этапе проектирования при разработке систем и программного обеспечения для преобразования описаний вариантов использования в диаграммы классов, обеспечивая более плавный переход, широкий обзор и позволяя разработчикам реализовывать решения с низкой связанностью и высокой сплоченностью. Карты CRC обычно изготавливаются из карточек-заметок. Участники сессии мозгового штурма создают одну карту CRC для каждого релевантного класса/объекта в их проекте. Карта разделена на три секции:

В верхней части — название класса.
Слева — обязанности класса.
Справа — взаимодействующие классы (другие классы), с которыми класс взаимодействует для выполнения своих обязанностей.

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

Создание карт CRC

Создание CRC-карт обычно начинается с написания сценария, определяющего основных действующих лиц и действия. Из сценария существительные должны стать классами, глаголы – обязанностями, а взаимодействующие объекты – другими картами, с которыми данная карта будет взаимодействовать.