![]() ![]() Save, export, or copy the image or it's encoded link for use in your websites, requirements, or design documents. ![]() Simply type the PlantUML language into the editor and refresh the screen to produce the image / diagram. It is mostly used to create UML diagrams (Unified Modeling Language) from a language called PlantUML, but many other types of images and diagrams can be created as well. ![]() You can find the documentation in each page, for plantmul you use java executable (.PlantText is an online tool that quickly generates images and diagrams from the text you enter. You'll have to do some configuration but it's pretty straightforward, I'll leave you the links to each tool. Otherwise if you are using Windows you can use the installers from the official pages too. There are plenty examples in the page, if you are working in Linux you can use your native packaging tool to install it, the same applies to Doxygen (e.g. Have you tried with plantuml? It works really well with Doxygen, I use it at work with the company template and the syntax it's really easy, you have to write the call sequence yourself though. You can try CppDepend which provides the Dependency graph and the dependency matrix to explore the dependencies between directories, files and functions. Case in point: Visual Paradigm offers rudimentary support for reversing Java code into sequence diagrams, but not for C++.Įven if such a tool existed for C++, the sad truth is that if your C++ code is complex enough that you would rather use a tool to make a sequence diagram for it instead of doing it manually, then it is most likely too complex for the tool to give you anything useful and you would have to fix it up yourself anyways. This is not to say that creating a tool that would produce usable sequence diagrams is not possible, but the market interest has apparently not been strong enough to justify the effort, and apart from a few research papers on the subject, like CPP2XMI, I'm not aware of any commercially available tools to reverse engineer C++ into sequence diagrams.Ĭompounding the problem is the fact that C++ is one of the most complex object oriented languages around, so even if somebody devised a good way of reverse engineering sequence diagrams, C++ would be the last language to receive the treatment. Then, filtering out the interactions you are interested in from library and system calls and other fluff present in the code would not be doable without user intervention. First, you would have to instrument the code. Dynamic analysis works by actually running the code and mapping the interactions between the objects at run time. This means that in order to produce a sequence diagram through static analysis, you would have to sacrifice accuracy. This is known as the halting problem and has been proven to be undecidable in computer science. This means that, given a method, you would have to analyze its algorithm and figure out if it loops forever or it returns. First, if you wanted to generate a sequence diagram through static analysis, one of the first questions you must answer is whether, given two objects and a message passed between them, a result is ever returned. There are tools that allow you to convert source code of Java, C++ and other languages into UML diagrams that show relationships between classes, like Enterprise Architect, Visual Paradigm and IBM Rational Software Architect.Ī sequence diagram, however, is a special kind of a UML diagram and it turns out that reverse engineering a sequence diagram is quite challenging. UML is considered a higher-level concept from source code that looks the same for all languages, and the process of converting source code to UML is called code reverse engineering. When it comes to C++, sequence diagrams are defined in the general sense by the UML specification, which is the same for all object oriented languages. As such, it does not make sense to talk about sequence diagrams in the context of a procedural language like C. It is meant to convey, at a glance, message passing between objects in an object oriented program in a sequential fashion, which is supposed to help understand time-considerate interaction between the objects. First of all, sequence diagram is an object oriented concept. ![]()
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |