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

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