Проблема документирования большого распределенного проекта
От: NoExp  
Дата: 09.05.11 13:12
Оценка: :)
Столкнулся с проблемой подготовки документации по архитектуре и бизнес-логики проекта:
Проект достаточно большой и распределенный (.net, c#, файлов больше 200).

Описал каждый namespase, класс, методы и переменные класса — нихрена не понятно, путаница =(
Описал (типа дерева или xml) структуру и зависимости классов и namespace-ов — куча букав, не понятно нихрена =/
Нарисовал схему, где все namespace и классы соединены стрелочками, согласно зависимостям — получился непонятный клубок =0

Подскажите, пожалуйста — может есть какие методики или даже готовые средства, чтобы провести, фактически, реверс-инжиниринг?
Какие бывают инструменты, чтобы все наглядно визуализировать и отоборазить структуру и бизнес-логику проекта? — проблема именно с инфографикой, потому что по-отдельности все достаточно понятно, просто всего очень много и все достаточно громоздкое.
Я сам, по-старинке, кроме Ворда и Визио ничего толкового не знаю(
Если есть какие-нибудь примеры качественного описания похожего по масштабам проекта — буду мегапризнателен!
Re: Проблема документирования большого распределенного проек
От: Osaka  
Дата: 09.05.11 15:38
Оценка: 1 (1)
NE>Какие бывают инструменты, чтобы все наглядно визуализировать и отоборазить
mindmaps
программа например freemind
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Re: Проблема документирования большого распределенного проек
От: bkat  
Дата: 09.05.11 16:38
Оценка: 9 (3) +4
Здравствуйте, NoExp, Вы писали:

NE>Столкнулся с проблемой подготовки документации по архитектуре и бизнес-логики проекта:

NE>Проект достаточно большой и распределенный (.net, c#, файлов больше 200).

NE>Описал каждый namespase, класс, методы и переменные класса — нихрена не понятно, путаница =(

NE>Описал (типа дерева или xml) структуру и зависимости классов и namespace-ов — куча букав, не понятно нихрена =/
NE>Нарисовал схему, где все namespace и классы соединены стрелочками, согласно зависимостям — получился непонятный клубок =0

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

Что же реально помогает понять код? На мой взляд вещи это следующие вещи:
— Описание модели предметной области. Если ты не понимаешь какие задачи решает система,
то никогда не поймешь, как устроен твой код. Будешь понимать отдельные методы или какие-то несущественные мелочи,
но в целом систему ты скорей всего не поймешь.
— Общая архитектура системы (подсистемы, модули и интерфейсы). Это даст представление о статической структуре системы.
— Описание динамики системы для некоторых самых важных use case'ов. Кстати, эти самые use case тоже стоит выделить.

Когда высокоуровневые вещи описаны, можно думать о том, что требует более детального описания.
Например можно описать, как подсистемы, модули и пр. ложаться на код.

Какие инструменты можно использовать?
Я пользую UML, но по-старинке с Вордам и Визио это тоже можно очень хорошо сделать.
Главное не забывайте давать прочитать то, что вы пишите, тем, на кого документация рассчитана.

P.S. Кстати 200 файлов C# — это мало на самом деле.
Более того, сколько файлов — это вообще не важно.
Re: Проблема документирования большого распределенного проек
От: Gaperton http://gaperton.livejournal.com
Дата: 11.05.11 06:08
Оценка:
Здравствуйте, NoExp, Вы писали:

NE>Подскажите, пожалуйста — может есть какие методики или даже готовые средства, чтобы провести, фактически, реверс-инжиниринг?


Не, средств нет, придется думать, пытаться что-то понять, и результат полученного понимания — отразить в документе.

А иначе обязательно будет фигня непонятная получаться. Неожиданно, правда?

NE>Какие бывают инструменты, чтобы все наглядно визуализировать и отоборазить структуру и бизнес-логику проекта? — проблема именно с инфографикой, потому что по-отдельности все достаточно понятно, просто всего очень много и все достаточно громоздкое.


Кстати, а кто и в каких ситуациях это читать будет — уже решили?
Re[2]: Проблема документирования большого распределенного пр
От: NoExp  
Дата: 11.05.11 10:14
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Кстати, а кто и в каких ситуациях это читать будет — уже решили?


Читать будет ведущий разработчик проекта, которому он передается в наследство.
В общем, я понял, что главное для начала отстраненно от кода описывать, а потом до уровня кода уже спускаться.
Re[3]: Проблема документирования большого распределенного пр
От: Gaperton http://gaperton.livejournal.com
Дата: 12.05.11 14:40
Оценка:
Здравствуйте, NoExp, Вы писали:

G>>Кстати, а кто и в каких ситуациях это читать будет — уже решили?


NE>Читать будет ведущий разработчик проекта, которому он передается в наследство.


Лекции не канают? Надо для одного человека обязательно "учебник" писать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.