Key Concepts:
- Objects:
- Definition: Objects act as encapsulated entities that perform specific actions and can store various types of data, such as videos and pictures.
- Behavior: Objects function as black boxes that can be substituted if they support the required operations.
- Encapsulation (Data Hiding):
- Purpose: Protects the internal state of an object from unintended or accidental modifications by restricting access to its data.
- Messages:
- Definition: Instructions sent to an object to trigger specific actions or behaviors.
- Methods:
- Definition: The code within an object that defines how it responds to messages. Methods encapsulate behavior and functionality.
- Behavior:
- Definition: The observable actions or responses of an object when it receives a message.
- Class:
- Definition: A blueprint that defines the structure and behavior of objects. It includes methods and attributes shared by objects created from the class.
- Instance:
- Definition: A specific realization of a class. Each object created from a class is an instance of that class.
- Inheritance:
- Definition: Mechanism allowing a subclass to inherit attributes and methods from a superclass, promoting code reusability and hierarchical relationships.
- Multiple Inheritance:
- Definition: A subclass inherits characteristics and behaviors from more than one parent class.
- Delegation:
- Definition: The process of forwarding a request or action to another object, enabling code reuse and separation of concerns.
- Polymorphism:
- Definition: The ability of objects from different classes to respond to the same message (method call) in different ways. It allows for a single interface to interact with different underlying forms.
- Poly-instantiation:
- Definition: The presence of multiple rows in a relational database table that appear to have the same primary key but contain different data for different classification levels. It is often used to prevent inference attacks.
Phases of Object-Oriented Development:
- Object-Oriented Requirements Analysis (OORA):
- Focus: Identifies and defines classes of objects and their interactions based on the system requirements.
- Object-Oriented Analysis (OOA):
- Focus: Models and understands the problem domain, including the identification of common classes and objects within a specific problem area.
- Domain Analysis (DA):
- Focus: Identifies common classes and objects across different applications within a specific domain to facilitate reuse and consistency.
- Object-Oriented Design (OOD):
- Focus: Defines the system’s design using objects and classes, specifying how objects will interact and how their behaviors will be implemented.
- Object-Oriented Programming (OOP):
- Focus: Implements the design by coding objects and methods in a programming language that supports object-oriented principles.
Object Request Brokers (ORBs):
- Definition:
- Middleware that manages object interactions across networks, handling requests and distributing them to appropriate objects.
- Standards:
- CORBA (Common Object Request Broker Architecture): Allows interoperability between programs written in different languages and running on different platforms through Interface Definition Language (IDL).
- COM (Component Object Model): A Microsoft standard for component-based software development.
Understanding these concepts and phases helps in effectively applying object-oriented principles to software development, enhancing modularity, reusability, and maintainability.