Это зависит от того, на какой стадии разработки вы находитесь и знаете ли вы уже UML. Если вы уже выполняете кодирование, просто создайте диаграммы классов и последовательностей того, что, по вашему мнению, важно для понимания кода и что общего с другими проектами.
На каком языке вы пишете код?
Если java, то я бы порекомендовал EclipseUML Omondo, потому что вы можете создать модель из более чем одного проекта. Например, у меня было 12 проектов, которые в конце концов были объединены, чтобы создать очень большой проект. Было действительно трудно документировать все. Я перевернул каждый проект, а затем создал модельный проект, объединив все свои 12 проектов. Наконец, я создал представления диаграмм классов, чтобы объяснить статическую структуру моего проекта и диаграмму последовательности, чтобы понять, что делали методы. Что хорошо с этим инструментом, так это то, что вы можете смешивать классы .java и .class, и что обратный инжиниринг диаграммы последовательности может проследить обратное между классами разных проектов.
Я также добавил графические комментарии, чтобы объяснить, что я считаю важным, создал около 100 представлений от большой модели, и мой проект был действительно очень хорошо задокументирован.
Работа выполнена Счастливый человек: -)