Sunday, July 12, 2015

UML Class Diagram



https://en.wikipedia.org/wiki/Class_diagram
Instance level relationships
Dependency
Association
Aggregation
aggregation is more specific than association. It is an association that represents a part-whole or part-of relationship.


Aggregation can occur when a class is a collection or container of other classes, but the contained classes do not have a stronglifecycle dependency on the container. The contents of the container are not automatically destroyed when the container is.


Composition

Composition is a stronger variant of the "has a" association relationship; composition is more specific than aggregation.
Composition usually has a strong lifecycle dependency between instances of the container class and instances of the contained class(es): if the container is destroyed, normally every instance that it contains is destroyed as well. 

Differences between composition and aggregation

Composition relationship : When attempting to represent real-world whole-part relationships, e.g., an engine is a part of a car.
Aggregation relationship : Thus the aggregation relationship is often "catalog" containment to distinguish it from composition's "physical" containment



http://www.sparxsystems.com/resources/uml2_tutorial/uml2_classdiagram.html
Generalizations
A generalization is used to indicate inheritance.

Realization
http://creately.com/blog/diagrams/class-diagram-relationships/
Realization Relationship in UML Class diagrams
Multiplicity
Multiplicity Relationship in UML Class diagrams
Association - One of the most common in class diagram relationships
Association
Directed Association Relationship in UML Class diagrams
Directed Association

Reflexive Association

Reflexive Association Relationship in UML Class diagrams
Reflexive Association


Nestings
A nesting is connector that shows the source element is nested within the target element. 
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
Bi-directional (standard) associationboth classes are aware of each other and their relationship
An example of a bi-directional association between a Flight class and a Plane class
A bi-directional association is indicated by a solid line between the two classes. At either end of the line, you place a role name and a multiplicity value.
Uni-directional associationIn a uni-directional association, two classes are related, but only one class knows that the relationship exists
http://www.agilemodeling.com/artifacts/classDiagram.htm
Responsibilities


http://www.visual-paradigm.com/VPGallery/diagrams/Class.html


Example of a class diagram in which the Professor and Student classes implement the Person interface

Example
http://www.uml-diagrams.org/class-diagrams-examples.html
http://www.uml-diagrams.org/design-pattern-abstract-factory-uml-class-diagram-example.html
UML class diagram example for the Abstract Factory Design Pattern.

https://www.genmymodel.com/uml-class-diagram
https://sourcemaking.com/uml/modeling-it-systems/structural-view/class-diagram

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts