-
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)
- Derived Attribute (Calculated, notation: / or <
- 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
- Minitopic: Representing Objects and Classes
-
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)