Showing posts with label UML. Show all posts
Showing posts with label UML. Show all posts

Friday, July 31, 2015

UML Miscs



http://www.somanyword.com/2014/06/uml-relationships-like-association-aggregation-compositionabstraction-generalization-specialization-realization-and-dependency/
Association
In Object Oriented Programming, each object shared some kind of relationships with other objects. Therefore, relationship between objects is known as “Association”. This relationship could be any type like one-to-one, one-to-many or many-to-many. For example, Student and Subject relationship. Relationship between Student and Subject is many-to-many, because one Student can read many Subjects and one subject can be read by many Students. Therefore, Students and Subjects are associated with each other.
Aggregation
Aggregation is special type of association, in which one object contain other object, which is directional relationship. This relationship is also known as “has a” relationship. For example, every Employee has a Department. Therefore, there is an aggregation between Employee object and Department object.
Composition
Composition is special case of aggregation. In this relationship, one object contain other object. This is also a “has a” relationship. But there is one restriction with this relationship, that is, contained object can’t exist without container object. For example, Person has a Address, but Address does not have any importance and can’t exist without Person. Therefore, a Person compose an Address.
Abstraction
Abstraction is one of the important concepts of Object Oriented Programming. Abstraction is to hiding implementation information from user. Instead of exposing implementation, its declare methods or functions and their general detailed information to help implementation. Later on user can provide concreteness by giving correct implementation based on details information provided by abstract layer. Examples of abstraction are Abstract classes and Interfaces.
Generalization
Generalization is a relation between Superclass and Subclass . This relation is “is a” relationship . Generalization is process of moving common code from Subclasses to Superclass. This process will make that common code to general code. So that, this general code can be reuse by any of its Subclass. Generalization is type of inheritance.
Specialization
Specialization is a process of creating a new subclass of existing superclass. In specialization, subclass extends existing general implementation to specific implementation by overriding existing implemented methods. This is also “is a” relationship. Specialization is type of inheritance.
Realization
Realization is a relationship between interface and class. In realization, new class implements all unimplemented abstract methods and provide concrete implementation. This process provides real business logic implementation to any abstract class or interface. This is also “is a” relationship.
Dependency
Dependency is relationship between two or more classes, in which, if any modification done on one class can affect other classes. That means one class depends on second clas . In such way one class has dependency on second class.
Symbols Used By UML To Show Relationships Between Classes Or Objects
UML Symbols

Sunday, July 12, 2015

UML Use Case Diagram




A use case diagram can identify the different types of users of a system and the different use cases
Creating Use Case Diagram for describing the behavior of the target system from an external point of view.
https://sourcemaking.com/uml/modeling-it-systems/external-view/the-elements-of-view/use-case-diagram


http://creately.com/blog/diagrams/use-case-diagram-tutorial/
To identify functions and how roles interact with them
For a high level view of the system – Especially useful when presenting to managers or stakeholders.
To identify internal and external factors.

Use case diagrams consist of 4 objects.
Actor
Use case
System
Package
· Dependency, generalization, and association relationships

Generalization of an Actor
Extend Relationship Between Two Use Cases
Include Relationship Between Two Use Cases

Examples
http://www.uml-diagrams.org/use-case-diagrams-examples.html
Online shopping UML use case diagram example - top level use cases.

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