Difference between class diagram and association diagrams? - associations

In my semester exams I got a question:
Draw class diagram and association diagram for the online booking of movie tickets.
I know how to draw class diagrams so I drew it, but I was confused regarding association diagrams.I took a chance and drew a diagram with my vague understanding.I only drew class boxes and showed associations between them while drawing association diagram,while in class diagram I showed all the relationships like aggregation,composition,inheritance etc.I don't know whether i was right or wrong because when I googled it I found nothing but the examples of class diagrams only.
I would appreciate deeply if anyone alleviate my confusion.thank you!

So, again after a long wait , I am going to answer my question and since it was me only who asked this, suggestions are welcome from the deep bottom of my heart.
Now , so far what I have concluded is that ( obviously after searching many a times on net ) there is nothing specific like Association diagram as such (I am darned of my university for asking question in this way) . If there is anything after all its the association relationships among classifiers which can be otherwise shown as a "association diagram*. So, here is the minute difference which I could make out :
CLASS DIAGRAMS:- Class diagram is basically a detailed one showing classes, their interfaces , attributes and also their relationships. As for example :
While in "association diagrams" ( I am considering for now it as association diagram), classes' attributes and their internal implementation is not given much importance ,all that is shown, is the type of relationships among them.As for example :-
NOTE-- Any kind person who finds any more relevant information regarding this topic, please put suggestions in the comments so that I can edit my answer, for better. Any one is also free to edit my post if he or she feels its right.

Related

Modelica class graphs [closed]

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 1 year ago.
Improve this question
Looking for best practices where graphs are used to describe relationships between Modelica models. For example, component hierarchy, inheritance, dependencies between packages, combinations of all the above, etc.
The real problem is to find a good compromise between information and diagram complexity, especially for industrial-scale models.
Any suggestions would be appreciated. It's perfectly fine if it is not Modelica, but related.
Note: This questions was flagged as "not meeting Stackoverflow guidelines" (?), hence I had to edit it. That means the earlier replies were to the original wording.
I don't really have any good examples, so I just share some opinions.
There should be two kinds of graphs.
My thought is there must be two kinds of graphs, one is simplified, which is about the equation structure, and the other one is detailed, which is about the inheritance and dependencies, combination, and all the other stuff.
Whatever simulation tool or language you use, in the end, simulation is about how to solve equations, especially nonlinear and complex equations. so if you could tell the users which equation belongs to which component or is generated by which connection, it would be really helpful. One of the issues I often struggle to solve is to find which equations cause nonlinearity and takes too much CPU time to do iterations. Right now, Dymola provides users options to see the final equation structures, but it doesn't show which equation belongs to which components, as far as I know, Wolfram System Modeler does.
As to the detailed information, I think sourcetrail is a good example, although it is designed for C++. Interactivity GUI is what attracts my eyes, especially for modelers, so imagine if you see a very detailed dependency diagram of different models, it is hard for anyone to get useful information, so it must be interactive like the sorcetrail does, so it could be readable for human.
My ideas about the detailed graph.
I think every piece of information is useful, just like Wikipedia, the key point is how to organize the information.
Firstly let's take Modelica.Electrical.Analog.Examples.HeatingMOSInverter as an example. In the following screenshot, we could apparently see there are different Loops related to 2 different domains, which are Electrical and Thermal. So the first rule we should establish is to divide a large model into subsystems based on different domains.
Secondly, let's take Modelica.Electrical.Analog.Examples.CauerLowPassAnalog as an example, which only includes electrical components from Modelica.Electrical. Although this model just includes electrical components, there are a few Loops in this model, so it would be definitely better to understand if we could split the model into smaller Loops when generating a class dependency diagram. In the end, there would be two kinds of 1-domain subsystems: Loop and Branch, which are connected by dummy connectors.
Thirdly, let's take the electrical part of Modelica.Electrical.Analog.Examples.HeatingResistor as the example, marked by the green square.
The class dependency diagram of this kind of 1-domain model would be like the following picture, although the following screenshot is about another example, it could explain that even for the 1-domain model, it is hard to link this class dependency diagram with your real models.
So we should keep the model's topology structure when generating a class dependency diagram. There are different layers in this diagram: Basis layer, Abstract components layer, Directly used components layer, Model layer. To make the diagram more clear, it could also be 3D. It should look like this:
I think it should be the library developer's duty to adopt good hierarchies to make this diagram look clear and clean. For example, all Abstract components should be partial model, so it could easy to recognize them. Or there could be an extra marker variable in each class to mark that the class belongs to which layer. For now, we could use all partial models as Abstract components, all non-partial models as Directly used components, which could make the diagram unclear, but it is better than nothing.
Note: there are two important relationships between different layers: Extends and Instantiates, it could be marked by different lines or colors.
When it comes to multi-domain modeling, there should be two separate class dependency diagrams that are connected through these multi-domain components.
To summarize, I think we should generate a class dependency diagram for a single Loop that only includes 1-domain components, and then combine all the diagrams for a single Loop, we will get the whole diagram of the whole model. So in some way, we could keep the original model's topology structure.

Grakn: how can I construct a knowledge graph from a collection of texts?

I have several documents (pdf and txt) in my notebook and I want to construct a knowledge graph using Grakn.
Through Google I found the blog but there is no documentation or readme teaching how to do that.
Also is written in the blog "The script to mine text can be found on our GitHub repo here" but I am failing in understanding what I have to do.
Can someone here advise me how to construct a knowledge graph from text using Grakn?
Grakn is a knowledge engine/network, which understands knowledge by well defined entities and relations (ontologies), so you need to use NLP (Natural Language processing) to make human language accessible to a graph network. also you need OCR (Optical Character Recognition) to convert some image texts to text. also you should teach the network basic ontologies to understand the texts. you are actually heading through Singularity era.
To give an example of how to go from a collection of text to a knowledge graph, let us assume that all of your text is concerned with a certain domain of knowledge - in the example of the blog post you mention, we are dealing with biomedical research publications.
A first step could be to find entities, or defined "things", in the text. To stick with the biomedical example, we could look for drugs and genes mentioned in the publications. This is called named-entity-recognition (NER), a technique applied in text-mining.
If a certain drug is often mentioned in the same publication as a particular gene, they "co-occur" and are likely related in some way. This would be an example of a relationship. The automated extraction of exactly how they are related is a difficult problem and is called relationship-extraction (RE).
Solutions for both NER and RE are usually domain-specific (ranging from simple matching of dictionary terms to AI models).
If you are interested in text-mining, a good place to start in python is NLTK.
The idea of a knowledge graph is to put defined things, called entities, in defined relationships to one another to create context. After you have a list of entities that you have found in all your documents, as well as their relationships (as in the example above, co-occurrance in a document or even a single sentence), you can define a schema and upload the entities and relationships into grakn and use all of its functionality to analyze your data.
For a tutorial on how to use grakn with already extracted data, see here

ERD_Help with multiple types of entity

I am a little confused on the multiple value entity.Please help me to clarify it.
I have a example like this :
There are many categories of artworks based on their ‘true type’. There are three main types: (i) painting; (ii) sculpture; (iii) statue. Any artworks that cannot be classified in these three main types will be identified as ‘other’.
So, can I group 3 main type "painting","sculpture","statue" by entity "Type" ? if they are in 1 group, how about type "other" ?
If i have to divide these types in many entities ? can some on please tell me the solution.
Much appreciate for your reply
In the Extended ER (EER) model, the terms specialization/generalization are the buzzwords that the describe the relationships between subtypes and supertypes. There are specific diagramming conventions for diagramming these kinds of relationships in EER diagrams.
Knowing how to diagram them isn't the same thing as knowing how to design tables to fit this kind of situation. You may want to look into single-table-inheritance and class-table-inheritance to see a couple of techniques that may apply to your case.

ERD (Entity-relationship model) - Need an example for a prob that can not be modeled by it

I got a weird H.W assignment in requirements engineering seminar .
I was digging through the entire net yet found no example for this one...
I need to find a problem from any engineering field (mechanics,medicine,chemistry,programming etc.) that the ERD model fails to give a complete/any answer to.
Can anyone show me some examples of a loss of information/process/entity while modeling only in ERD ?
maybe a point where I will need to compromise in order to continue modeling?
Or at least what are ERD's limitations ?
I need it to be an example for the limitation/disadvantage and not an example for a common mistake or bad modeling.
Well, ERD only deals with static aspects of the problem (i.e. the structure of the data that needs to be manipulated). All the information about the dynamic aspects of the problem will be lost if you only model using ERD

Data Visualisation

UPDATE: I had posted this on UI.stackexchange also for views on different kinds od visualisation. I am posting this here for finding out the programming techniques and tools required to do so.
Let us have the following three sets of information
Now I want to combine all of this data and show it all together. Telling it like a story. Giving inter-relations. Showing similarities in terms, concepts etc. to get the following (Note that in the diagram below, the colored relations may not be exact, they are merely indicative of a node of information)
Situation: I need to tell somebody the relation between two or more important things through the commonness of concepts, keywords, behaviours in those things.
One way that I figured out would be to use circles for concepts.
So that all concepts connected to thing A would be connected to it and all concept related to B would be connected to it. And the common concepts would be connected to both. That way 2 things can be easily compared.
Problem: To build such a graph/visualisation manually would be cumbersome. Especially to add, arrange, update and manipulate.
Question: Is there a good way to do it. Also, Is there a tool available for doing this?
I hope this make the question much more clear. :)
Where does this data (the concepts, keywords, and relations between them etc...) come from? If it's in a database somewhere you could write soem code to generate a graphiz file then open it in a graphiz visualizer. There might be some tools out there that allow interactive editing of a graphiz graph, it looks like WebDot may and there are probably others.
How to display the hierarchical data on User Interface
You're talking about Venn diagrams. I think there should be plenty of online and offline tools that can help making these.
graphiz has been mentioned already, although that would be used more to show a flow of a system, or a treeview.
When you're talking about software development and want to display a design through diagrams, a complete diagram solution already exist as UML. And there are plenty of UMT tools that can help here. A commercial version is Altova UModel, which has some very nice features. You could probably use Use Cases as the most logical diagram type.
Also see Wikipedia for more info about use case diagrams. Reconsidering the image you've added, I do tend to consider it to be a usecase. Since UML is based on XML, it should be possible to transform your data through a stylesheet to UML, then use a random UML tool to display the diagrams.To convert your data to XML, well... If it's in Excel then exporting it to XML should not be too difficult.
Why is your sample image an Use Case? Well, you have actors (Pinguin, Koala, Tulips) and you have actions. (well, kind of actions: Cause for concern, some kind of animal, linked to movie, bites your nose off...) And finally, there are associations between the actors and the actions connecting them all in some way. Thus Data--(export)->XML--(Styleheet)->UML--(UML tool)->Diagram.
D3: Data-Driven Documents JS library

Resources