1Exercises Each customer can buy multiple insurance products. –The properties of each insurance product: Product ID, product name, insurer’s name, deductible, annual premium, the total amount of payments, policy number, agent’s name, policy term (e.g., 09/01/07 to 08/31/08) Each customer can have multiple credit cards. –The properties of each card: Card type (e.g., basic, gold, platinum), monthly credit limit, monthly expenses, annual expenses, payment address, customer service phone number, cashing limit, finance charge APR Each customer can rent a car. –The properties of each car: Vehicle ID, make, model, year, color, # of rentals (# of customers who have rented each car), mileage.
2Exercises Each customer can buy multiple insurance products. –The properties of each insurance product: Product ID, product name, insurer’s name, deductible, annual premium, the total amount of payments, policy number, agent’s name, policy term (e.g., 09/01/07 to 08/31/08) Policy - policyNum: int - deductible: float - annualPremium: float - totalPayments: float - agentName: String - policyTerm: Date[2] InsuranceProduct - productID: int - productName: String - insurerName: String 10..* - policies - product Insured 1 0..*- policies - insured
3 Each customer can have multiple credit cards. –The properties of each card: Card type (e.g., basic, gold, platinum), monthly credit limit, monthly expenses, annual expenses, payment address, customer service phone number, cashing limit, finance charge APR CreditAccount - creditLimit: float - moExpenses: float - annualExpenses: float - cashingLimit: float - apr: float … CreditCard - customerServPhone: - paymentAddr: Address - cardIssuer: String - cardType: >CardType 10..* - accounts - card Customer 1 0..*- accounts - cardHolder > CreditType BASIC GOLD PLATINUM BUSINESS - type1 0..*
4 Each customer can rent a car. –The properties of each car: Vehicle ID, make, model, year, color, # of rentals (# of customers who have rented each car), mileage. Vehicle - vid: int - rentalNum: int - mileage: float … VehicleSpec - make: >Make - model: >Model - year: int - color: >Color 10..* - vehicles - spec Customer *- vehicles - customer
5 Revising an Example Rental Video Model Each customer can rent up to 10 video a day. How can we record each customer’s rental history? Customer VideoTape - tapeId: int - rented: boolean - numRental: int isRented(): boolean rent(): void 0..*1 Title - id: int - title: String - rentalCost: double - directorName:String …
6 Customer VideoTape - tapeId: int - rented: boolean - numRental: int isRented(): boolean rent(): void 0..*1 Title - id: int - title: String - rentalCost: double - directorName:String … tapes Rental - rentalDate: Date - returnDate: Date - totRentalCost: double … 0..* - rentals 0..* - customer - rentalHistory - title - tapes
7 Do we really need to model a particular (physical) video tapes? Customer Title - id: int - title: String - rentalCost: double - directorName:String - numRentals: int - totAvailTapeNum: int - availTapeNum:int 1 Rental - rentalDate: Date - returnDate: Date - totRentalCost: double … 0..* 1
8 Maybe –Rigorous property management When each tape is purchased/disposed. How many tapes are owned currently. –Quality management for tapes Disposing a tape when it has been rented certain times. –Sharing tapes among branch shops Maybe not –Simpler property management