Get Started. It's Free
or sign up with your email address
Object Oriented Paradigm by Mind Map: Object Oriented Paradigm

1. Introduction to Object- Oriented

1.1. OO Principles

1.1.1. Encapsulation

1.1.1.1. Often called information hiding .It use to separate interface from implementation. By hiding the implementation details that are likely to change -> allows for flexibility in design, easy teamwork working.

1.1.2. Inheritance

1.1.2.1. It mean a class can inherit from its base class. Inheritance allows software reuse, hence improving the effectiveness of software development.

1.1.3. Polymorphism

1.1.3.1. refer to ability of an object to behave differently and assume different forms based on its inheritance hierarchy.

1.1.3.2. it include Vertical override operations between parent classes and derived classes

1.1.3.3. include Horizontal overloading operations within the same class.

1.2. OO Software Engineering

1.2.1. OO Analysis

1.2.2. OO Design

1.2.3. OO Programming

1.3. A very popular design approach, applies to many of the software architecture styles.

1.4. Popular since 1980’s.

1.5. OO programming language: C++, Java, C#

1.6. Use of OO

1.6.1. Although treated as an “architecture style” in the book Should be used as a methodology

1.6.2. All other architecture styles can be described using OO

2. Introducing the object-oriented paradigm

2.1. Class

2.1.1. Class consists of: +Public interface +Detailed implementation

2.1.2. Definition of class usually consists of: Possibly included in a package or namespace List of attributes List of operations

2.2. Accessibility Principle

2.2.1. When assigning accessibility of an attribute (operation): Expose as least information as possible!

2.3. Relationship Among Classes

2.3.1. Very Complex! A partial list of relationships: +Instance Level Relationships: -Association -Aggregation -Composition +Class Level Relationships -Generalization -Realization +General Relationship -Dependency

2.4. External Link

2.4.1. A link is the basic relationship among objects. It is represented as a line connecting two or more object boxes. It can be shown on an object diagram or class diagram. A link is an instance of an association. It creates a relationship between two classes.

2.5. Association Relation and Aggregation relation

2.5.1. Differences between Composition and Aggregation

2.5.1.1. +When attempting to represent real-world whole-part relationships, the composition relationship is most appropriate. +When representing a software or database relationship , an aggregation relationship is best

2.5.2. Aggregation relation

2.5.2.1. Aggregation is a special case of association. A kind of “whole-part” relationship. Parts do not have to share the same lifespan as owner. In UML, aggregation is represented using a hollow diamond arrowhead.

2.5.3. Composition Relation

2.5.3.1. Composition is a stronger variant of the "owns a“ relationship Composition is more specific than aggregation. Requirement: the lifespan of “components” and “owner” involved in a composition relationship must be same. Is represented using a solid diamond arrowhead

2.6. Association Relation

2.6.1. An association is a connection between classes, a semantic connection (link) between objects of the classes involved in the association. An association is normally bidirectional

2.7. Generalization relation

2.7.1. +The generalization relationship is also known as the inheritance or "is a" relationship. +Subclass is considered to be a specialized form of super class. Super class is considered as 'Generalization' of subclass. +The UML graphical representation of a Generalization is a hollow triangle shape on the superclass end of the line

2.8. General Principle

2.8.1. -Use inheritance only if derived class IS-A base class -Composition (Aggregation) is used to model HAS-A relationship -Careful about inheritance, sometimes, weakens the encapsulation principle