LeadStartup
Единый доступ к обучению — 1 263 компетенций, 138 курсов и тренингов. Международная сертификация.
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Тренинги, Курсы, Обучение — Agile, Scrum, OKR
Все о CRC-картах: определение, структура и практическое использование. Как CRC-карты помогают в анализе и дизайне программного обеспечения.

Все о CRC-картах: определение, структура и практическое использование. Как CRC-карты помогают в анализе и дизайне программного обеспечения.

CRC — карта: метод мозгового штурма, предназначенный для проектирования объектно–ориентированного программного обеспечения и предназначены для упрощения первого этапа проектирования и анализа задач.
Нравится
8
Редактировать

Что такое CRC - карты?

CRC — карты предназначены для упрощения первого этапа проектирования и анализ задач объектно–ориентированного программного обеспечения. Их составление представляет процесс мозгового штурма в целях определения классов и их взаимодействия для концентрирования разработчиков на первостепенных задачах и во избежание излишнего внимания к прочим задачам.

Нравится Что такое CRC - карты?
3
Комментарий Что такое CRC - карты?
0
Редактировать Что такое CRC - карты?
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Что представляют CRC - карты?

CRC — карты — это маленькая бумажная карточка, которая в своей структуре имеет следующие поля: верхнее – название класса, левое нижнее – ответственность, правое нижнее – связи класса.

Нравится Что представляют CRC - карты?
4
Комментарий Что представляют CRC - карты?
0
Редактировать Что представляют CRC - карты?
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Как применяют CRC - карты?

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

Нравится Как применяют CRC - карты?
4
Комментарий Как применяют CRC - карты?
0
Редактировать Как применяют CRC - карты?
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Определение и предназначение CRC – карт

Проектирование объектно–ориентированного программного обеспечения (ООП) – непростая задача. Помочь справится с ней на ранних этапах помогают CRC – карты. В этом тексте мы разберемся, что они представляют собой и как действуют.

CRC – карты (аббр. с англ. «Class – Responsibility – Collaboration» — Класс–Обязанность–Связь) были изобретены Уордом Каннингемом и Кентом Беком в конце 80-х годов прошлого столетия.

CRC карты предназначены для упрощения первого этапа проектирования и анализ задач ООП.

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

CRC – карты отражают взаимодействие классов между собой через канал сообщений, а также иерархичность классов.

Использование данных карт является очень эффективным методом, соответствующим качественному стилю работы с ОПП. Благодаря этим картам можно произвести анализ взаимодействия объектов, то есть программы. Это важно, так как зачастую происходит уход в сторону исследования данных.

Нравится Определение и предназначение CRC – карт
7
Комментарий Определение и предназначение CRC – карт
0
Редактировать Определение и предназначение CRC – карт
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Форма и структура CRC – карт

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

CRC – карта в своей структуре имеет следующие поля: верхнее – название класса, левое нижнее – ответственность, правое нижнее – связи класса.

Подробнее разберемся с содержанием информации в них.

Верхнее поле – название класса (Class). Эти данные берутся из технического задания или иного документа с задачами. На каждый элемент заводится класс. Именно он и выносится в шапку CRC — карты.

Нижнее левое поле – ответственность (Responsibility). Это информация о том, за что отвечает класс. Здесь парой слов описывается функция объекта, или операция, которую он выполняет, объем информации объекта, а также здесь могут быть указаны решения, принимаемые объектом. Зачастую, после анализа ответственностей, они перераспределяются между классами. По итогу обработки они становятся методами класса.

Существует облегчающее негласное правило: существительным тех. задания дают параметр класса, а глаголам – ответственности, но не всегда.

Нижнее правое поле – связи (Collaboration). Это поле отражает функционал класса при его взаимодействии с другими классами. В итоге карточки должны образовать целостную модель взаимодействия.

Нравится Форма и структура CRC – карт
6
Комментарий Форма и структура CRC – карт
0
Редактировать Форма и структура CRC – карт
Редактировать
Mikhail Ряженка
Founder, Executive Partner

Использование CRC – карт

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

Одним из самых важных моментов является распределение ответственности (нижнее левое поле — Responsibility). Нужно разумно описать обязанности объекта, что поможет сформировать иерархическую структуру модели. Важность проработки ответственностей заключается в возможности абстрагироваться от мысли о классе, как о хранителе данных. Они создают понимание о функционале класса на каждом уровне иерархии. Помимо указанного ранее, ответственность также может распределяться по операциям, атрибутам п пр.

Обычно опытные разработчики советуют не создавать длинных списков очень низких ответственностей, так как это, в конечном счете, сбивает с основной мысли и может привести к необоснованному разделению классов. Рекомендуют лаконично, в паре слов излагать суть ответственности и переносить их в другие уровни иерархии при необходимости.

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

На основании совокупности карт, сложенных в модель, в конечном итоге строятся CRC–диаграммы. Обычно, по итогу проработки иерархии с помощью CRC – карт выработанная модель передается на UML моделирование, где происходит детализация анализа и задач. Есть случаи, когда стадии составления CRC – диаграммы уже достаточно.

Итак, мы рассмотрели основу проектирования ООП с помощью CRC – карт. В заключении отметим, что популярность метода CRC – обусловлена тем, что они создают живое обсуждение проекта. Остальные методы несут большие временные и трудозатраты: исправление одним разработчиком, согласование с другим, рассмотрение вариантов, повторное исправление и так очень–очень долго и малоэффективно. А живое общение устраняет этот недостаток. Используя CRC — карты, разработчики уже заранее моделируют такое взаимодействие и избегают лишних проволочек.

CRC карты

Нравится Использование CRC – карт
4
Комментарий Использование CRC – карт
0
Редактировать Использование CRC – карт
Редактировать
Mikhail Ряженка
Founder, Executive Partner