Форум Сообщества Аналитиков

Общий раздел => ПО Аналитика => Sparx => Тема начата: sh0375 от 09 Февраля 2010, 14:53:37

Название: Диаграмма классов для большого проекта на С++
Отправлено: sh0375 от 09 Февраля 2010, 14:53:37
Добрый день!

Я разработал большую программу на C++. Теперь возникла необходимость передать ее другому разработчику. Разобраться в структуре классов ему легче если создать диаграмму классов. Я сделал импорт всех классов в диаграмму на Enterprise Architect, но она получилась таких размеров, что интерфейс EA тормозит нещадно. При этом разобраться в ней сложно, т.к. она огромных размеров. Интуитивно я понимаю, что нужно все классы поделить на группы и для каждой из групп создать отдельную диаграмму классов.

По какому принципу лучше делить все классы на группы, есть ли в EA средства для визуального представления  групп классов?

Есть ли у кого-нибудь опыт работы над такой задачей? Какие подходы использовались?

Название: Re: Диаграмма классов для большого проекта на С++
Отправлено: Виктор Малышко от 09 Февраля 2010, 15:16:04
В большом проекте классы группируются в пакеты или в подсистемы. Применив такое разбиение, избавляются от необходимости иметь общую ДК, рисуются отдельные диаграммы для каждого пакета (подсистемы) и диаграммы, поясняющие внешние связи пакетов (подсистем). Для разбиения часто используют два принципа:
низкое зацепление -- количество связей проходящих сквозь границу пакета меньше чем количество внутренних;
высокая функциональная прочность -- классы внутри пакета работают в связке для решения общих задач.
Название: Re: Диаграмма классов для большого проекта на С++
Отправлено: bas от 09 Февраля 2010, 15:18:59
ИМХО это теоретический вопрос, не связанный с ЕА. Если не против, то я перенесу его в раздел Моделирование.
Название: Re: Диаграмма классов для большого проекта на С++
Отправлено: sh0375 от 09 Февраля 2010, 15:43:07
В большом проекте классы группируются в пакеты или в подсистемы. Применив такое разбиение, избавляются от необходимости иметь общую ДК, рисуются отдельные диаграммы для каждого пакета (подсистемы) и диаграммы, поясняющие внешние связи пакетов (подсистем). Для разбиения часто используют два принципа:
низкое зацепление -- количество связей проходящих сквозь границу пакета меньше чем количество внутренних;
высокая функциональная прочность -- классы внутри пакета работают в связке для решения общих задач.
Насколько я понимаю, пакеты или подсистемы называются Frameworks в EA?
Можно ли автоматизировать процесс разбиения одной Class Model на несколько моделей, привязанных к Framework-ам?
Или мне нужно вручную переносить классы с одной большой диаграммы в отдельные?
Название: Re: Диаграмма классов для большого проекта на С++
Отправлено: Galogen от 09 Февраля 2010, 18:46:56
Насколько я понимаю, пакеты или подсистемы называются Frameworks в EA?
Можно ли автоматизировать процесс разбиения одной Class Model на несколько моделей, привязанных к Framework-ам?
Или мне нужно вручную переносить классы с одной большой диаграммы в отдельные?
Да не они так и называются пакеты. Есть там еще и view, но вам думаю оно пока не требуется. Боюсь при обратном инжениринге все определяется структурой вашей программы, и ЕА автоматом просто так не разнесет ваши классы, он же принципа не знает