Приветствую всех,
Помогите, пожалуйста, решить, каким инструментом лучше воспользоваться в следующей ситуации:
Наличествует достаточно много кода, написанного на C, "по-старому", документации к которому нет никакой.
Для того, чтобы более-менее эффективно поддерживать этот код, хотелось бы нарисовать вновь диаграммы "классов", взаимодействий, если так можно выразиться в данном случае. Поскольку код процедурный, применить ООП средства описания непросто. Однако как-то описать этот код необходимо, чтобы иметь картинки перед глазами. Например, UML диаграмма классов не подходит, поскольку в данном случае значение имеют только члены структуры и способы их инициализации, сохранения и применения. Каждый член, например, может применяться по-разному в зависимости от состояния других членов. Здесь, мне кажется, лучше рисовать не классы с отношениями агрегирования (или не только их), а поступить проще: нарисовать набор вложенных структур, каждая из которых содержит набор членов примитивных или других структур.
Набор вложенных прямоугольничков, чтобы предельно точно выразить. Насколько я знаю, UML редактор, следующий uml нотации, не даст мне нарисовать такую схему.
Так что же, инструментами вольного художника должны стать Word и Paint?
Word позволяет набор нарисованных прямоугольничков объединять (merge), таким образом можно наваять что угодно, Virtual table нарисовать, например. Только думать об этом не хочется.
Я искал uml редакторы, нашел страничку с перечислением:
http://www.objectsbydesign.com/tools/umltools_byPrice.html
Но их там уж очень много, я не могу перепробовать все.
UMLet — хорошая идея, но реализацию нужно еще доводить. Для пятиминутных диаграммок самое подходящее средство. Неуклюже выглядит.
Rational Rose, Model Maker, Altova UML, MS Visio — не позволяют мне нарисовать что я хочу.
Здесь на форуме нашел, но не пробовал еще:
caseberry
TogetherАвтор: LeonidV
Дата: 15.04.06
Enterprise Architect
StarUML
Подскажите, имеет ли смысл продолжать поиски или может сразу в графическом редакторе все нарисовать?
PS. Критика принимается и приветствуется.
Здравствуйте, iAlexander.
Еще есть
Magic Draw.
Здравствуйте, iAlexander, Вы писали:
A>PS. Критика принимается и приветствуется.
Может стоит посмотреть на MindMaps(как концепцию) и на Mindjet MindMaps, как один из интсрументов, ее релизации?
Это не UML. Это некий инструмент, позволяющий
структурировано и наглядно отображать свои мысли, не привязываясь ни к одной конкретной нотации.
Когда мне нужно сделать какой-то набросок, глядя на который я мог бы через пару лет вспомнить о чем идет речь и при этом отображаемые идеим не ложатся на UML и прочии нотации я обычно испрользую MindMaps.
... << RSDN@Home 1.2.0 alpha rev. 643>>
Здравствуйте, iAlexander, Вы писали:
A>Наличествует достаточно много кода, написанного на C, "по-старому", документации к которому нет никакой.
Может, проще натравить на него (код) DoxyGen — по-моему, вместо диаграмм для поддержки была-бы полезней документация...
DoxyGen сможет нарисовать диаграммы зависимостей между header файлами, как минимум. Ну и документировать, по возможности, самые важные процедуры — важно определиться с их контрактами.
А с остальными средствами — лучше, наверное, найти что-то для reverse engineering, так как самому рисовать все диаграммы — сизифов труд. Вряд-ли кто оценит

(сам был в такой ситуации однажды).
Just IMO,
Андрей
Отвечаю всем сразу (извините за долгое молчание, каюсь)
Andrew S.
AS>Может, проще натравить на него (код) DoxyGen — по-моему, вместо диаграмм для поддержки была-бы полезней документация...
AS>DoxyGen сможет нарисовать диаграммы зависимостей между header файлами, как минимум. Ну и документировать, по возможности, самые важные процедуры — важно определиться с их контрактами.
Код написан и работает — а документация — это роскошь. По всей видимости, именно так рассуждали авторы

Документация полезней, спору нет. Вот только я ее сам и создаю, и тему поднял поэтому...
AS>А с остальными средствами — лучше, наверное, найти что-то для reverse engineering, так как самому рисовать все диаграммы — сизифов труд. Вряд-ли кто оценит
(сам был в такой ситуации однажды).
Абсолютно согласен, но справиться с этим кодом пока что может лишь человек

Я мало верил в успех, но все же натравил DoxyGen. Результат в общем близок к нулю.. Те скудные комментарии, которыми были сопровождены некоторые функции и структуры, не были восприняты.
Reverse engeeniring non-objective кода — по всей видимости задача гораздо более сложная, чем в случае objective.
DemAS
Посмотрел на MindMaps, захватывающая штука. Где-то про нее уже слыхивал, но ни разу не видел, чтобы ее кто-нибудь применял.
Mindjet MindMaps платный, поставил free Java MindMaps DeepaMehta, только на установку ушло столько сил, что попользоваться сил уже не осталось.

Интерфейс не раскрученный...
MEOW
В итоге нарисовал не UML схему в Visio. Спасибо за ссылку, поставил его, пригодится.
себе 
Воспользовался Enterprise Architect trial для парсинга кода, этот инструмент смог выделить структурки и даже некоторые зависимости между ними. На безрыбье, решил я и дорисовал остальное сам, решив, что потом всегда конвертну в XML и открою чем угодно.

не тут-то было. У Enterprise Architect формат XML гораздо более свой, чем у Altova, например. А печатает схемы trial с раздражающими водяными знаками на всем листе.
Freeware StarXML не смог повторить подвиг Enterprise Architect. Альтруизм хрупок..