Je souhaite modéliser des appels de fonction de mon application (écrits en Python) en UML et j'ai deux problèmes. Premièrement, j'ai essayé de dessiner un diagramme de séquence, mais c'est pour modéliser des appels de méthode d'objets et mon application est écrite de façon procédurale, ie les seuls objets que j'ai réellement sont des instances de types de bibliothèques que j'utilise (par exemple html5lib).Comment modéliser des appels récursifs dans UML
Le deuxième problème est qu'il y a des appels récursifs, que j'ai besoin de modéliser sur le diagramme UML et le diagramme de séquence semble être une mauvaise solution pour cela.
Lequel des diagrammes UML dois-je utiliser alors? Et comment modéliser des appels récursifs, comme dans la fonction ci-dessous?
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""
D'autre part, je ne veux pas montrer exactement tout ce qui se passe dans cette fonction. Seulement ce qu'il appelle (lui-même, prétraitement (texte), convert_tag (noeud)) et dans quel ordre.
ps. tags_special est un dict de fonctions lambda. Je n'ai pas besoin d'appels d'eux modélisés.