Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I have a complex application with lots of class files. I'm using Doxygen to generate some documentation, but would love a tool that can statically analyze my code and generate some UML diagrams. Not sure if a product like this exists, but would love to hear the community input.
There are many tools doing exactly this on various levels of quality. I would like to mention, that generating UML diagrams for documentation purposes might not be a great idea, especially in large projects. The problem is, that in complex code bases, there are many relationships between classes a lot of code is called etc. basically any diagram type you choose might in a particular project look bloated. Confusing diagram might be worse than well structured textual documentation. Basically what I am trying to say is, that main idea of modeling is to abstract from unimportant details and deciding automatically what is unimportant is not easy and often project dependent, therefore it is most of the times more useful to create far less diagrams manually, which will conatin much more useful information.
Visual Studio 2010 kind of has this for C# and VB projects, and Visio 2003 back in the day could do them for .NET and C++ projects... Other tools, I don't know.
If you're asking about class diagrams, Sparx Enterprise Architect can do this for several languages, including Visual Basic, C#, Java and Python.
I also know that it has the ability to generate sequence diagrams by running .NET code in the debugger, but I don't know if that feature is available for other languages.
UMLGraph or apiviz may help if you're working in a java environment.
hth.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
UML 1 uses the name Collaboration Diagram. UML 2 uses the name Communication Diagram. In this link you can find the definition and one nice example. Here you can find a nice reference about how to create them.
Unfortunately, I didn't find this diagram in the software I have been using lately: DIA. I think it is not available in WhiteStarUML either. There is a tutorial in the help, but I wasn't able to make it work. As WhiteStarUML is a fork of StartUML, maybe it is just not done yet.
WhiteStarUML Screenshot: there is a folder for Collaboration Diagram but not a file inside to double click it to create it (like the Class Diagrams or UseCase Diagrams)
What your favourite free tool to create those diagrams?
Again, free community edition of Visual Paradygm UML. Until you use one diagram for a project it even can be printed without water signs.
But the communication diagram is very simple, you could easily simulate it with some free diagraming tool. There are many of them, they are easy, simply try and find what you like - intuitivity is too personal thing.
It may not be intuitive but in WhiteStarUML ones creates diagrams (including Collaboration Diagram) using the context menu of the Model Explorer (right click on a package) or chosing from the main menu "Model - Add Diagram". In the Diagram Explorer you only see the existing diagrams.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I always think that we draw diagrams of software that we want to design. Then we code in (text) files. This is followed by the process in which the design change and the code has to change accordingly OR the code change and the design has to be changed.
Any ways the design (the diagram) and the code both are two different entities and both need to be in sync with each other.
Is there a system in which we generate diagrams for our software AND THEN PUT CODE DIRECTLY INTO THE DIAGRAM (AND NOT IN TEXT FILES)? and then may be the flow of data etc is visualized in the same diagram.
We debug the diagram and not the text file.
Any views friends?
Wikipedia has a list of UML tools ready for you:
http://en.wikipedia.org/wiki/List_of_UML_tools#Features
In the "Languages generated" column you see for what languages the tools can generate code from models you have built. In the "Reverse engineered languages" you see what languages the tools can generate models from.
One should also mention, that all tools (at least those that I know of) differ in their way of interpreting the UML specification and at least most of the tools violate the specification in some way. That's not a big deal until you want to migrate your models from one tool to another. Then it'll be virtually impossible.
If this is a meta question about opinion then probably best ask a meta site or a forum!
However if it is a question about code generation from your UML diagrams. You absolutely can do that.
Code generation in Enterprise Architect
This is one tool I have used before. Part of the meta data for each class is the language you are describing it for. You can then sync the diagram to the code or the code to the diagram...
Most of these tools however are not as good as to remove the need to hand coding IMHO. I have yet to use these kind of tools for anything but building skeletons when you first start to code!
I've tested and used bouml with c++ (which now is no more open source).
It can reverse your code, almots 95% perfectly, except for extrange definitions that are not usually reversed. But from there all is manual. You have to draw your class diagrams and secuence diagrams by hand.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I need to get diffs of ArgoUML diagrams. Are there any tools that provide Diffing capabilities to do UML?
I constantly make updates to my UML in SVN but I do not have a way to compare different versions.
I have seen UML-like Diff Tool from IntelliJ exists. But are there any other tools that don't require me to use IntelliJ?
Using EMF in Eclipse you can compare two UML diagrams.
http://wiki.eclipse.org/EMF_Compare/UML_Compare
So, you need to convert your ArgoUML to EMF standard by using the following framework.
http://argo2ecore.sourceforge.net/
Maybe some of these version control tools for models can help. They are not UML-specific but as the EMF-Compare tool mentioned before, they work with generic EMF models.
The EMF compare project does not work well. What you get is not really usable.
What I do in my project is to save my model and my diagrams on SVN. I then just look at svn to see modifications. You can not really see the dif insode a graph but it is usually easy to find out what has been modified because the model is composed by Name of the model > Packages > classifiers. The root can therefore be traced and the modified element find out quickly.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I want to create uml diagrams with table information from a database. Are there any libraries to do this?
You can either create a text-based representation of the UML model and use one of this textual UML tools to render it graphically or, use the APIs that some UML tools provide to programmatically create the UML model from, e.g., a Java program. For the latter you may want to take a look at the Eclipse Modeling Projects in Eclipse and in particular the UML2 component
UML is a big thing, but some time ago I did a similar task with graphviz. Actually, my code generated a dot file, which is the input format accepted by the graphviz utilities to draw things.
Almost any good diagramming library should be able to create UML diagrams programmatically. Depending on what type of UML diagram you need (class diagram, sequence diagram, collaboration, etc. ) the generic diagramming libraries will definitely work. See here for example:
yFiles Gallery of Diagrams
If you are looking for tools that will automatically do this for you, take a look at
DBVisualizer
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
One of the best ways to learn about programming is reading high quality code/projects from great engineers. Which open-source projects do you think is worth looking at? I mean, that code that you can print and sit under a tree with a glass of wine and enjoy reading.
If you can, also specify if the software is great to look at because its documentation, design, UML diagrams or just plain code. I believe UML is not very common within open-source projects.
Is there such a thing as a project branch that polishes code and design with the sole objective to give other programmers a great example of great software?
I'm pretty impressed with the Chrome source code. Note: I work on the Chrome team but I'm just one of many. I've learned quite a bit from other people's code, the classes used, their design, the methods of unit testing, integration testing, their code review system, their continuous build system and more.
At the risk of being perceived as a Jon Skeet fanboy, I've looked to his miscellaneous utilities libraries for examples of clear, self-contained, well-documented and well-tested code. .NET, if it matters.
Sharp develop is very well designed and written and comes with a book explaining the design.
It is also very important to understand various different software quality characteristics when you are reading the code samples. This would help you to identify why the coding is good, and which aspect of software quality it gets associated with?
You may want to check out eight different characteristics of software quality specified by ISO 25000 series, also termed as SQUARE specifications.