2012-01-06 2 views
5

Je suis en train de parcourir le code d'une grande application open source et j'aimerais apprendre comment il est conçu et comment cela fonctionne. Existe-t-il un outil permettant de désosser le code C et C++ en diagrammes de séquence?diagramme de séquence

Peut-être cela pourrait être un peu farfelu mais qu'en est-il un outil qui peut me donner la liste des fonctions appelées (dans divers modules et dans le bon ordre) lorsque l'application traite une entrée? Ou aidez-moi rapidement à analyser une application donnée (en particulier une application avec une base de code importante)? Dans l'attente des réponses que je pense que ce doit être un sujet bien couvert.

+0

J'ai essayé beaucoup d'outils avant d'abandonner et j'ai créé http://www.zenuml.com. J'ai trouvé le code de rétro-ingénierie dans le diagramme de séquence n'est pas vraiment une bonne idée. Je sais que quelques outils le font bien mais le résultat n'est pas très lisible. Avec ZenUML, vous réfléchissez fort et visiblement. –

Répondre

3

Il y en a mais ils sont chers. Rational Rose était le plus connu avant d'être acheté par IBM.

La nature du langage C++ rend très difficile l'analyse statique. C'est pourquoi il y a si peu d'outils qui peuvent le faire. Depuis la montée en puissance du développement non-C++ utilisant des langages supportant la réflexion/introspection, ce type d'outillage a vraiment laissé derrière lui le C++. Cela ne veut pas dire qu'il n'y en a pas, mais ils sont plus difficiles à trouver et font généralement partie d'un paquet coûteux de type 4GL. Rational Rose était principalement un outil qui vous permettait de schématiser un système. Il permettait de suivre les composants et de produire éventuellement du code source dans différentes langues. Il pourrait également inverser le code source dans les diagrammes dans une certaine mesure. Le produit Rational Rose a été quasiment remplacé par Rational Requisite Pro, une grande partie de la fonctionnalité (centrée sur Java) étant repliée dans la plate-forme IBM WebSphere Application Development, désormais appelée RAD. Les outils Rational étaient bien connus pour être si complets qu'ils étaient vraiment ciblés pour les grands magasins de développement travaillant avec un personnel tout aussi important, commençant généralement par plus de 50 développeurs, pour un seul projet. En raison de la complexité du langage C++ (du point de vue de l'outillage) et de la popularité de langages tels que Java et C#, les fournisseurs ont vraiment mis l'accent sur C++. Je ne connais pas aussi bien Visual Studio, qui supporte encore le C++, mais je serais prêt à deviner que le support C++ UML est seulement dans les éditions professionnelles chères comme Pro ou Ultimate.

+0

Puis-je en savoir plus sur ces outils? Je pensais que le sujet devait être bien couvert mais maintenant je commence à penser autrement. –

0

Le système Enterprise Architect de Sparx Systems peut enregistrer l'exécution d'une application et générer des diagrammes de séquence à partir de cette trace, en plus du reverse engineering statique régulier à partir du code source. Les supports de l'analyseur d'exécution (en EA 9.2):

  • Microsoft Windows natifs C
  • Microsoft Windows natif C++
  • Microsoft Windows Visual Basic
  • famille Microsoft .NET (C#, J #, VB)
  • Sun Microsystems Java
  • PHP

Vous devez au moins le Prof édition professionnelle d'EA, qui au moment de la rédaction coûtait US $ 199 (un neuf neuf) pour une licence de siège unique.

Il existe un very old demo video disponible sur le site (il existe trois versions majeures).

Questions connexes