I have such a childish problem. I have such a class diagram and the main problem is that I have never seen this type of uml class notation. Therefore, at the moment I am at a loss as to what these signs mean. And until I find out, I can't really start doing anything. If someone could explain them, I would be very grateful or direct me to where I can read more about these signs.
This is simply not UML but ERD (Entity Relationship Diagram). See also Wikipedia
As Christophe mentioned, yours is crow's foot notation while Wikipedia is using Chen's. More about the notation above in this SO answer as Geert Bellekens found out.
Related
Could anyone Help me with the following question, this question is for five marks. I scored only three marks. Can anyone help me with it
Class Diagrams model the static structure of the system. Explain how Sequence Diagrams model the dynamic structure of the system.
My current answer was :
Class diagram shows the structure of the system that is the objects found in the system. sequence diagram shows how objects interact with each other by making use of lifelines and activation bars.
Can anyone give me a better answer? Thanks
To score fully you need to mention messages (sync, async and return) and that they correspond to class methods. Messages can show the pure operation signature and/or concrete parameters.
Also, lifelines correspond to instances. That is, they are real examples of scenarios which need to be highlighted.
As bonus: you can show timing constraints for messages.
I'm currently working on a project for my university and one teacher told me I was wrong to think that there could be classes in a UML class diagram (thinking of it as a design diagram) to which there would be no equivalent in a data model. He then pressured me to provide a counter-example to prove my point but I just couldn't think of one.
I checked a few books I had about UML like "Learning UML 2.0," "Applying UML and Patterns" and UML 2 for dummies, but I couldn't find any information regarding which classes appear on a class diagram. I asked him about implementation classes but he told me that they shouldn't be included in a class diagram. So I'm at a loss here.
I also checked this questions before posting:
Differences between a conceptual UML class diagram and an ERD?
Generate UML from a conceptual data model
how to relate data with function in uml class diagram
But they don't really solve the question I have.
Thanks for any insight you might have.
Both your teacher and you are unnecessarily distracted by the differences between UML and conceptual data modeling (which I take to be tantamount to ER modeling). The real issue you and your teacher are discussing is the difference between analysis and design, regardless of the model used.
A UML model can be created that diagrams the problem as stated or that diagrams the solution as designed. In the first case, implementation classes should be omitted, because they do not pertain to the problem domain. In the second case, they should be included. The first case is analysis. The second case is design.
The same ambiguity exists with regard to ER diagrams. Some people, including myself, use ER models and ER diagrams only to represent the data requirements inherent in the problem itself. This is what is most often meant by "conceptual data modeling". In this framework, the only entities that should appear are entities that have a perceived reality in the subject matter itself, and are not merely constructs inside the database or the application(s). This is analysis.
But there are plenty of other people, perhaps a majority, who use ER diagrams to pictorialize the design of a schema of tables. In this framework, foreign keys are included, and junction tables are elevated to the status of entities, even though they are not subject matter entities. There's nothing inherently wrong in this, so long as the distiction between analysis and design is kept clear.
Unfortunately, the distinction between analysis and design is very often obscured beyond recognition. There are dozens of instances of this right here in SO.
So, if a confusion between analysis and design is allowed to creep into the discussion between you and your teacher, the discussion could end up going in almost any direction.
"one teacher told me I was wrong to think that there could be classes in a UML class diagram (thinking of it as a design diagram) to which there would be no equivalent in a data model. He then pressured me to provide a counter-example to prove my point but I just couldn't think of one."
He is right. In the stage of conceptual analysis/conceptual design, those rectangular boxes in a UML class diagram depict "concepts". And whatever the "concept" happens to be, you can always also draw an E/R diagram around it to illustrate (the nature of) that concept, other concepts that relate to it, and what the nature of those relationships is.
From my understanding of UML, it does NOT define what should be in a diagram. I found this example in the IBM site: (image did'nt lode, so here is the link: http://www.ibm.com/developerworks/webservices/library/ws-RESTservices/)
Surely, a servlet is not part of a domain model.
A UML class diagram us used to model classes, which are entities that have attributes and methods. IMHO, it doesn't matter if they are part of the domain model or are functional classes that support the application. If you need to show them to the customer, they must be there.
Has anyone ever seen a sequence diagram used as a use case? I never have and it really twists my head. At my current company, in all the documentation and discussions, the term "use case" is used to label a sequence diagram. I've asked a couple of times about this practice and get funny looks like it is a normal thing to do. - I've been a software engineer for a long time and used UML since the late 1990's when it was first (fairly) widely talked about. I don't expect to change the company culture. I'm just asking if this practice is used anywhere else and associated comments. - Thanks.
In my university, we learned that a use case diagram and a sequence diagram are both different diagrams with different meanings. In my experience, I have never heard anyone calling a sequence diagram a use case diagram or vice versa so I guess it's just the company culture...
Sequence Diagrams are typically used to describe an example of an action flow with communication. Thus Sequence Diagrams are very well suited to display an example for a use case. For this reason it is normal to refer to such a diagram as "a use case".
In consequence you would draw multiple Sequence Diagrams for each Use Case
In class diagrams I typically see something like ClassA extends ClassB where the arrow head points to ClassA. Example, here. This has always confused me. Why is the arrow head not pointing to ClassB?
UML is simply used wrong in those diagrams. The arrow head must be a triangle (not an open one) it must point into the other direction and it is called realizes not implements. So if I did not entirely misinterpret the diagrams the author (of the diagram or of the software which created them) simply did not know how to use UML correctly.
In this diagram (just found by googling) you can see a correct visualization of a class "SearchService" realizing (implementing) the interface "SiteSearch".
In the next diagram several classes are generalized by (specialize, extend) the class "Account".
On this site you can get an overview (looks correct on the first glance). If you want to be sure you should look into the specification (find pdf download there).
I think the confusion here crops up out of the variations in the way people relate to the subtleties of English grammar.
Some people may be inclined to complete the "inconvenient" but UML-standard token "extend" as "extends", while others will complete it as "extended" when viewing or designing a diagram. Hence the differences in interpretation.
Today I got a diagram similar to this one. The diagram I got was produced using Visio which I don't have. I haven't seen such a diagram before and its symbols are not clear to me.
I tried to google it and find some explanations about this specific type of diagram, but to no avail.
Could you please tell me what type of diagram it is, and give me some links to sites about it?
Thanks in advance.
Looks like a Unified Modeling Language (UML) diagram, in particular, an Entity Relationship diagram
Looks like Entity relationship diagram
Entity-relationship modeling is a database modeling method, used to produce a type of conceptual schema, often a relational database, and its requirements in a top-down fashion. Diagrams created by this process are called entity-relationship diagrams.
This is a cardinality diagram, and the lines represent one-to-many relationships.
http://www.smartdraw.com/resources/tutorials/cardinality-notations/
it is an ER diagram and google provides enough links
Entity-Relationship Diagram
Thanks to everyone. Using your answers and hints, I finally found out that this specific notation system of ER diagrams is called Barker Notation -- that's the answer to my own question :-)
Yes it is entity relationship diagram. As you have mentioned you don’t have Visio, you can download FREE Visio trial for 60 day. I use Visio to create IT diagrams as it has many great features.