CRAM/ERAT Babel College of Alameda Copyright © 2000 Patrick McDermott CRAM: Class-Relationship-Attribute-Method ERAT: Entity-Relationship-Attribute-Trigger
Ha! “The various OO methods use different (and often conflicting) terminology for these concepts. This is extremely frustrating but inevitable, given that OO languages are just as inconsiderate. It is in this area that the UML will bring some of its greatest benefits….” —Martin Fowler, UML Distilled, p. 53.
Context or “Camp” CRC Cards: Class-Responsibility-Collaborator ERD: Entity-Relationship Diagrams –SAD: Traditional Systems Analysis & Design Relational: Relational Database Theory Database: A Physical DB Table Programmer: In the Code UML: Unified Modeling Language –OOAD: Object/Oriented Analysis & Design Etc., etc., etc…: Any & All others
Category CRC Cards: Class ERD: Entity (Type) Relational: Relation Database: Table Programmer: Layout, struct, class UML: Class Etc., etc., etc…: Type, File, Structure
Thing CRC Cards: N/A ERD: Entity Relational: Tuple Database: Row Programmer: Record UML: Object Etc., etc., etc…: Occurrence, Instance
Connection CRC Cards: Collaboration ERD: Relationship Relational: Foreign Key Database: Database Key Programmer: Pointer, Array, Containment UML: Association, Aggregation, Composition Etc., etc., etc…: Has-a, Set, Pairing, Hierarchy, Parent/Child, Owner/Members
Fact CRC Cards: (Attribute) ERD: Attribute Relational: Attribute Database: Column Programmer: Variable UML: Property Etc., etc., etc…: Field, Item, Element
Behavior CRC Cards: Responsibility ERD: N/A (it’s in the DFD) Relational: N/A Database: Service, Procedure Programmer: Function() UML: Method() Etc., etc., etc…: Message, Operation, Algorithm, Trigger, Routine, Subroutine, Process, Macro
Inheritance CRC Cards: Superclass/Subclass ERD: Supertype/Subtype Relational: N/A Database: 3 Variations Programmer: Base/Derived UML: Generalization/Specialization Etc., etc., etc…: Is-a, Root/Branch/Leaf, Parent/Child, Extension