ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Object Oriented Analysis and Design
    COMP3150
    Progress0 / 17 topics
    Topics
    1. Principles of Object Technology2. OOP Review3. Principles of Modeling4. OOA&D Overview5. OO Development Process6. Requirements Engineering: Use Cases and Prototyping7. Class Models8. Interaction Diagrams9. Verification and Validation10. Architectural and Detailed Design11. Class Diagrams12. State Machines and Diagrams13. Implementation and Package Diagrams14. Activity Diagrams15. OO Patterns16. Object Diagram, Component Diagram, and Deployment Diagram17. Network Diagram
    COMP3150›Principles of Object Technology
    Object Oriented Analysis and DesignTopic 1 of 17

    Principles of Object Technology

    4 minread
    694words
    Beginnerlevel

    📘 Principles of Object Technology (OOAD)


    🔹 1. Definition

    Object Technology refers to a way of designing and developing software using objects, which represent real-world entities. These objects contain data (attributes) and behavior (methods/functions).

    👉 In simple words: Instead of writing long procedures, we break a system into smaller objects that interact with each other.


    🔹 2. Core Principles of Object Technology

    These principles are the foundation of Object-Oriented Analysis and Design (OOAD).


    🔸 2.1 Abstraction

    Definition: Abstraction means showing only essential features of an object and hiding unnecessary details.

    Key Idea: Focus on what an object does, not how it does it.

    Example: A Car object:

    • You use steering, brakes, accelerator
    • You don’t need to know how the engine works internally

    Diagram Description: A simple box labeled Car with only relevant features like start(), stop().


    🔸 2.2 Encapsulation (Data Hiding)

    Definition: Encapsulation is the process of wrapping data and methods together into a single unit (class) and restricting direct access to some components.

    Key Idea: Protect data from outside interference.

    Example:

    BankAccount
    - balance (private)
    + deposit()
    + withdraw()
    

    Users cannot directly change balance, only through methods.

    Rule: Use access modifiers:

    • Private
    • Public
    • Protected

    🔸 2.3 Inheritance

    Definition: Inheritance allows one class (child/subclass) to acquire properties and behavior of another class (parent/superclass).

    Key Idea: Code reuse and hierarchical classification.

    Example:

    Vehicle (Parent)
      → Car (Child)
      → Bike (Child)
    

    Types of Inheritance:

    • Single
    • Multiple
    • Multilevel
    • Hierarchical

    Diagram Description: Tree structure showing parent → child relationship.


    🔸 2.4 Polymorphism

    Definition: Polymorphism means one interface, multiple implementations.

    Types:

    1. Compile-time (Method Overloading)
    2. Run-time (Method Overriding)

    Example:

    draw()
    - draw(circle)
    - draw(square)
    

    Real-life Example: A person can be a teacher, father, or friend depending on context.


    🔸 2.5 Modularity

    Definition: Breaking a system into smaller independent modules.

    Key Idea: Each module handles a specific task.

    Advantages:

    • Easy to understand
    • Easy to maintain
    • Reusable

    🔸 2.6 Hierarchy

    Definition: Arrangement of objects/classes in a tree-like structure.

    Example:

    Animal
     ├── Mammal
     ├── Bird
    

    🔸 2.7 Typing

    Definition: Typing ensures that objects are used according to their defined data types and class structure.

    Types:

    • Strong typing
    • Weak typing

    🔸 2.8 Concurrency

    Definition: Ability of a system to handle multiple tasks simultaneously.

    Example: Using multiple threads in a program.


    🔸 2.9 Persistence

    Definition: Objects continue to exist even after program execution.

    Example: Saving data in a database or file.


    🔹 3. Additional Supporting Concepts


    🔸 3.1 Class vs Object

    Class Object
    Blueprint Instance
    Logical Physical
    Example: Car design Actual car

    🔸 3.2 Message Passing

    Definition: Objects communicate by sending messages (calling methods).

    Example:

    object1.method(object2)
    

    🔸 3.3 Association, Aggregation, Composition

    Concept Description
    Association General relationship
    Aggregation Weak "has-a" relationship
    Composition Strong ownership

    Example:

    • Car has Engine → Composition

    🔹 4. Advantages of Object Technology

    • Reusability
    • Flexibility
    • Maintainability
    • Scalability
    • Real-world modeling

    🔹 5. Step-by-Step Example (Simple System)

    👉 Problem: Design a Library System

    Step 1: Identify objects

    • Book, Member, Librarian

    Step 2: Define attributes

    • Book → title, author

    Step 3: Define methods

    • issueBook(), returnBook()

    Step 4: Establish relationships

    • Member borrows Book

    🔹 6. Important Rules / Key Points

    • Always encapsulate data
    • Prefer inheritance for reuse
    • Use polymorphism for flexibility
    • Keep modules loosely coupled
    • Design for real-world mapping

    🔹 7. Likely Exam Questions

    1. Define Object Technology and explain its importance.
    2. Explain Abstraction with an example.
    3. What is Encapsulation? How does it provide data security?
    4. Describe Inheritance and its types.
    5. What is Polymorphism? Explain with examples.
    6. Differentiate between Class and Object.
    7. Explain Association, Aggregation, and Composition.
    8. What is Modularity and why is it important?
    9. Explain Concurrency and Persistence.
    10. Draw and explain a simple class hierarchy diagram.

    🔹 8. Quick Revision Summary 🧠

    • Object Technology = System built using objects
    • Abstraction → Show essentials only
    • Encapsulation → Protect data
    • Inheritance → Reuse code
    • Polymorphism → Many forms
    • Modularity → Divide system
    • Hierarchy → Structured relationships
    • Typing → Data correctness
    • Concurrency → Multiple tasks
    • Persistence → Data survives

    👉 Remember: "A PIE MHTCP" Trick (A → Abstraction, P → Polymorphism, I → Inheritance, E → Encapsulation, M → Modularity, H → Hierarchy, T → Typing, C → Concurrency, P → Persistence)


    Next topic 2
    OOP Review

    Past Papers

    Open this section to load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time4 min
      Word count694
      Code examples0
      DifficultyBeginner