Я хочу моделировать вызовы функций моего приложения (написанные на Python) в UML, и у меня две проблемы.Как моделировать рекурсивные вызовы в UML
Во-первых, я попытался нарисовать диаграмму последовательности, но это для моделирования вызовов методов объектов, и мое приложение написано процедурно, то есть единственными объектами, которые у меня есть, являются экземпляры типов из библиотек, которые я использую (например, html5lib).
Вторая проблема заключается в том, что существуют некоторые рекурсивные вызовы, которые мне нужно моделировать на диаграмме UML и диаграмме последовательности, по-видимому, для этого плохое решение.
Какую из диаграмм UML следует использовать? И как моделировать рекурсивные вызовы, как в функции ниже?
def node_preprocessing(node):
global tags_remove, tags_special
if node.nodeType==3: # Text node
return preprocessing(node.wholeText)
if node.nodeType==1 and node.tagName not in tags_remove: # Tag node
if node.tagName in tags_special:
return tags_special[node.tagName](node)
return convert_tag(node) % u"".join(map(node_preprocessing, node.childNodes))
return u""
С другой стороны, я не хочу показывать точно, что происходит в этой функции. Только то, что он вызывает (сам, препроцессинг (текст), convert_tag (узел)) и в каком порядке.
пс. tags_special является dict функций лямбда. Мне не нужны вызовы из них.