Я хочу смоделировать вызовы функций моего приложения (написанного на Python) в 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 лямбда-функций.Мне не нужны вызовы из них по образцу.