Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reverse Engineering a C# Solution

I know Visual Studio 2010 Ultimate has some abilities, and I would normally do this by instinct, but I am on a very tight schedule. I also have Visio 2010 installed and integrated into VS, but its reverse engineer function doesn't seem to do much, and has to be run on a per project basis, and a hindrance here is the solution structure, with several solution folders each holding a multitude of projects.

I would like some advice on how to go about reverse engineering a C# solution into dependency diagrams, sequence diagrams and class diagrams.

like image 565
ProfK Avatar asked Jan 12 '11 11:01

ProfK


People also ask

Can C be reverse engineered?

The Reverser allows you to reverse engineer compilable C code to a model, which you may want to do for the following reasons: To view the structure of the C code in Modeler. To develop the C code further in Modeler before regenerating the code. To move the C code to another platform, such as C++ or Java.

Is C# good for reverse engineering?

Yes, C# can be reverse engineer. In fact it is trivially easy to do. Take a look at Reflector. To make it harder, but not impossible use an obfuscator.


1 Answers

If you use Visual Studio, the 2010 Ultimate edition supports 5 commonly-used UML diagrams (class , sequence , use case , activity , and component ). You can generate sequence diagrams and layer diagrams from code . If you also install the Visualization & Modeling Feature Pack with VS 2010 Ultimate, you can create UML class diagrams from code and generate code from UML class diagrams .

You can also explore existing code by using Architecture Explorer and visualize relationships in code by generating dependency graphs , which you can then also use to create layer diagrams.

As alternative, you can use Altova Usemodel or Sparx System's Enterprise Architect

like image 75
apros Avatar answered Oct 12 '22 11:10

apros