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.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
Improve this question
I made this use case diagram:
My project is a village profile website. It is made for collecting the questions from the researcher who wants answers directly from the locals, for any reasons: covid, communication etc.
As I am not experienced with use-cases,I want to make sure that I am going in the right way. Is this diagram correct?
A use-case diagram is about the big picture and the goals (use-case bubble) that a system (the rectangle) helps its actors to achieve.
According to your diagram, there would be 5 independent systems, each with some use-cases that address different needs. Is this really what you wanted to model?
When zooming into the different systems, it appears that these are not independent systems but function groups (i.e. groups of features that offer some functionality). It appears moreover that the use-cases do not correspond to user-goals, but to detailed functions related to the function group. So you seem to do some kind of functional decomposition.
Functional decomposition is fine. But not with use-cases! It always leads to very detailed diagrams that loose the big picture and end to be unrelated to the user’s interest.
Use-cases are not either meant for user-interface design (in case you wanted each rectangle correspond to some windows/pages), or for decomposing the internal structure of the system (in case you wanted each component to correspond to some microservice or whatever). Use-case should focus only on user goals that add value to the user (typically not a login, which is only a constraint for what the user really want to do).
Good news: there remains good potential to significantly simplify this diagram ;-)
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have come across tools like visualparadigm demo which could automatically generate code from the class diagram which is modelled in UML. Since I have no industry experience, I am curious to know whether this is the way companies start working on their projects after the system is modelled in UML. since the skeleton of the classes needed is automatically generated, I assume it is a good way to save time. If this is not the way, then why is it so?
Also Can you provide me some other tools which can automatically generate code from UML class diagrams (prefer opensource).
Are there OOP software projects which do not get started with the class diagrams, so that this method can be of no use?
Most of UML are able to generate code from UML class diagram you just have to google it and you will find them.
Concerning the way companies start working, I guess it depends of the companies but from my experience companies try to avoid useless work.
If they spend some time on modeling it is because they can use it for something for example code generation, documentation, or just because its a client request. If companies do not find any interest in modelling they simply do not use it I guess that alot of OOP do not start with models.
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 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 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.