【发布时间】:2011-01-19 17:22:59
【问题描述】:
我想在 UML 中为我的应用程序(用 Python 编写)的函数调用建模,但我遇到了两个问题。
首先是我尝试绘制序列图,但它是用于对对象的方法调用进行建模,并且我的应用程序是按程序编写的,即我实际拥有的唯一对象是我使用的库中的类型实例(例如 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(节点))和顺序。
ps。 tags_special 是 lambda 函数的 dict。我不需要对它们的调用进行建模。
【问题讨论】: