• Subtopic OODB_1_Introduction

    • Minitopic: Learning Objectives (Overview of key concepts and skills)
    • Minitopic: Comparison with E-R/EER Models (Popularity, complex relationships, data & behavior integration)
    • Minitopic: Object-Oriented Systems Development Life Cycle (Fig 13-1)
      • Phases: Analysis, Design, Implementation
      • Iterative Development Model (Abstract to Concrete)
      • Analysis Phase Focus (Real-world domain, what not how)
      • Design Phase Focus (Realizing analysis model, software system modeling)
      • Implementation Phase (Coding, database integration)
    • Minitopic: Motivations and Benefits of Object-Oriented Modeling
      • Tackling challenging domains
      • Improved communication
      • Consistency (Analysis, Design, Programming)
      • Representing commonality
      • System robustness
      • Reusability
      • Seamless transitions between phases
  • Subtopic 2: Unified Modeling Language (UML)

    • Minitopic: Definition (Graphical notation set, metamodel)
    • Minitopic: Purpose (Business modeling, software specification, design, implementation)
    • Minitopic: Origins (Booch, OOSE, OMT unification)
    • Minitopic: UML Diagrams (Multiple perspectives: use-case, class, state, etc.)
    • Minitopic: Focus on Class Diagrams (Static structure, responsibilities)
  • Subtopic 3: Object-Oriented Data Modeling Concepts

    • Minitopic: Representing Objects and Classes
      • Class Definition (Entity type with state, behavior, identity)
      • Object Definition (Instance of a class)
      • State Definition (Properties: attributes and relationships, and their values)
      • Behavior Definition (How an object acts/reacts via operations)
      • Object Identity (Persistence, uniqueness)
      • Class Diagram Notation (Fig 13-2a: Rectangle with compartments for name, attributes, operations)
      • Object Diagram Notation (Fig 13-2b: Instance diagram, snapshot, underlined names, attribute values)
      • Attribute Types (Multivalued, Composite, Derived - representation)
    • Minitopic: Operations and Encapsulation
      • Operation Definition (Function or service provided by instances)
      • Encapsulation Definition (Information hiding, bundling data and methods)
    • Minitopic: Types of Operations
      • Constructor Operation (Creates new instances)
      • Query Operation (Accesses state, no side effects, getters)
      • Update Operation (Alters state, setters/mutators)
      • Class-Scope Operation (Applies to class, not instance, underlined name)
    • Minitopic: Representing Associations
      • Association Definition (Named relationship between object classes)
      • Association Role Definition (End of an association, role names)
      • Multiplicity Definition (Cardinality constraint, notation: lower..upper, *, 0..1, 1)
      • Association Degree (Unary, Binary, Ternary - Fig 13-3)
      • Relationship Reading Direction (Association name directionality)
      • Examples (Fig 13-3, Fig 13-4)
    • Minitopic: Representing Association Classes
      • Definition (Association with its own attributes, operations, or relationships)
      • When to Use (Attributes/operations belonging to the relationship itself)
      • Notation (Class box attached by dashed line to association - Fig 13-6, Fig 13-7)
      • Link Objects (Instances of association classes in object diagrams - Fig 13-6b)
    • Minitopic: Representing Derived Elements
      • Derived Attribute (Calculated, notation: / or <> - Fig 13-8)
      • Derived Association (Inferred, notation: / or <> - Fig 13-8)
      • Derived Role (Inferred, notation: / or <> - Fig 13-8)
    • Minitopic: Representing Generalization
      • Concept (Abstraction of common features, superclass/subclass)
      • Inheritance (“is-a” relationship, feature sharing, code reuse)
      • Notation (Solid line, hollow triangle pointing to superclass - Fig 13-9)
      • Discriminator (Attribute indicating basis for specialization)
      • Abstract Class Definition (No direct instances, italics or {abstract} - Fig 13-9b)
      • Concrete Class Definition (Can have direct instances)
      • Generalization Constraints (Notation: Keywords in braces {})
        • Overlapping / Disjoint (Fig 13-9, Fig 13-10)
        • Complete / Incomplete (Fig 13-9)
    • Minitopic: Polymorphism, Abstract Operations, and Overriding
      • Class-Scope Attribute Definition (Attribute with value for the whole class, underlined - Fig 13-11)
      • Default Attribute Value (Notation: attributeName = value)
      • Ordering Constraint (Notation: {ordered} on association role - Fig 13-11)
      • Abstract Operation Definition (Protocol defined, implementation missing, italics - Fig 13-11)
      • Method Definition (Implementation of an operation)
      • Polymorphism Definition (Operation with same name behaving differently based on class context - Fig 13-11)
      • Interpreting Inheritance (Extension, Restriction)
      • Overriding Definition (Replacing inherited method with subclass-specific one - Fig 13-12)
      • Reasons for Overriding (Extension, Restriction, Optimization)
    • Minitopic: Representing Multiple Inheritance & Classification
      • Multiple Classification Definition (Object instance of more than one class)
      • Multiple Inheritance Definition (Class inheriting from multiple superclasses - Fig 13-13)
    • Minitopic: Representing Aggregation
      • Definition (Part-of relationship, stronger than association)
      • Notation (Hollow diamond at aggregate end - Fig 13-14)
      • Comparison with Generalization
      • Recursive Aggregation (Bill-of-materials example - Fig 13-16)
      • Propagation of Operations
    • Minitopic: Representing Composition
      • Definition (Strong form of aggregation, lifecycle dependency, part belongs to one whole)
      • Notation (Solid diamond at aggregate end - Fig 13-15)
      • Cascade Deletion
  • Subtopic 4: Business Rules

    • Minitopic: Expressing Rules as Constraints (Implicitly via multiplicity, generalization constraints, etc.)
    • Minitopic: Explicit Rule Representation
      • Keywords in Braces ({disjoint}, {ordered}, {subset}, etc. - Fig 13-17)
      • Dashed Arrow (Constraint between two elements - Fig 13-17)
      • Note Symbol (Constraint involving three or more elements - Fig 13-17)
  • Subtopic 5: Object Modeling Example: Pine Valley Furniture Company

    • Minitopic: Developing the Class Diagram (Fig 13-18)
    • Minitopic: Comparison with E-R Diagram (Similarities and differences, object identity vs. keys)
    • Minitopic: Incorporating Attributes
    • Minitopic: Incorporating Operations (mailInvoice, receivePaymt, totalSales, etc.)
    • Minitopic: Illustrating Polymorphism (totalSales example)
    • Minitopic: Illustrating Generalization and Constraints (Customer example)
  • Subtopic 6: Chapter Summary

    • Minitopic: Recap of OO modeling approach, life cycle, UML, core concepts (classes, objects, encapsulation, associations, generalization, inheritance, polymorphism, aggregation, composition, business rules).
  • Subtopic 7: Review Materials

    • Minitopic: Key Terms (List with page numbers)
    • Minitopic: Review Questions (Conceptual checks)
    • Minitopic: Problems and Exercises (Application tasks)
    • Minitopic: Field Exercises (Real-world investigation tasks)
    • Minitopic: References (Cited works)
    • Minitopic: Further Reading (Additional resources)
    • Minitopic: Web Resources (Relevant websites)