2012-01-06 3 views
5

Sto visualizzando il codice di una grande applicazione open source e vorrei sapere come è progettato e come funziona. Esiste uno strumento in grado di invertire il codice C e C++ in diagrammi di sequenza?diagramma di sequenza

Potrebbe essere un po 'esagerato, ma che dire di uno strumento che può darmi l'elenco delle funzioni chiamate (in vari moduli e nell'ordine corretto) quando si dice che l'applicazione sta elaborando un input? Oppure aiutarmi ad analizzare rapidamente una determinata applicazione (specialmente una con una grande base di codici)?

In attesa di risposte come sto pensando che questo deve essere un argomento ben coperto.

+0

Ho provato un sacco di strumenti prima di rinunciare e ho creato http://www.zenuml.com. Ho trovato il codice di reverse engineering nel diagramma di sequenza non è davvero una buona idea. So che alcuni strumenti lo fanno bene ma, comunque, il risultato non è del tutto leggibile. Con ZenUML, pensi in modo forte e visibile. –

risposta

3

Ce ne sono alcuni ma sono costosi. Rational Rose era il più conosciuto prima che fosse acquistato da IBM.

La natura del linguaggio C++ rende molto difficile l'analisi statica. Ecco perché ci sono così pochi strumenti che possono farlo. Dall'impennata dello sviluppo non C++ che utilizza linguaggi che supportano la riflessione/l'introspezione, questo tipo di strumenti ha davvero lasciato il C++ alle spalle. Questo non vuol dire che non siano nessuno, solo che sono più difficili da trovare e di solito fanno parte di un costoso pacchetto 4GL. Rational Rose era principalmente uno strumento che ti permetteva di disegnare un sistema e aiuterebbe a tenere traccia dei componenti e alla fine a produrre codice sorgente in una varietà di lingue. Potrebbe anche invertire il codice sorgente dell'ingegnere in diagrammi fino a un certo punto.

Il prodotto Rational Rose è stato praticamente sostituito da Rational Requisite Pro, con un'ampia porzione della funzionalità (focalizzata su Java) ripiegata nella piattaforma IBM WebSphere Application Development, ora denominata RAD I believe.

Gli strumenti Rational erano ben noti per essere così completi che erano davvero destinati a grandi negozi di sviluppo che lavoravano con uno staff altrettanto numeroso, di solito a partire da più di 50 sviluppatori, per un singolo progetto.

A causa della complessità del linguaggio C++ (dal punto di vista degli strumenti) e della popolarità di linguaggi come Java e C#, i produttori hanno davvero sottovalutato C++.

Non sono così esperto di Visual Studio, che supporta ancora C++, ma sarei disposto a indovinare che il supporto UML C++ è solo nelle costose edizioni professionali come Pro o Ultimate.

+0

Posso saperne di più su questi strumenti? Pensavo che l'argomento dovesse essere ben trattato ma ora sto iniziando a pensare diversamente. –

0

Enterprise Architect di Sparx Systems è in grado di registrare l'esecuzione di un'applicazione e generare diagrammi di sequenza da questa traccia, oltre al normale reverse-engineering statico dal codice sorgente. I supporti Esecuzione Analyzer (in EA 9.2):

  • nativo di Microsoft Windows C
  • nativo di Microsoft Windows C++
  • Microsoft Windows Visual Basic
  • famiglia Microsoft .NET (C#, J #, VB)
  • Sun Microsystems Java
  • PHP

È necessario almeno il Prof edizione essenziale di EA, che al momento della scrittura costa 199 dollari (uno nove nove) per una licenza monoposto.

C'è uno very old demo video disponibile sul sito (da tre versioni principali fa).