mercredi 21 août 2019

OOP Design for PET STORE

DOMAIN

Building a custom software for a pet shop owner.

  • This pet shop sells 3 kinds of pets: cats, dogs, birds.

  • The shop is open from Monday to Saturday.

  • The store has a showroom where 5 dogs, 10 cats, 15 birds are shown to the customers

  • The store has a backyard where 15 dogs, 30 cats, 30 birds can live.

  • At night, the pet store owner move all the pets from the showroom to the backyard.

  • Cats and dogs cannot be sold if they not have been implanted with a chip identifying them.

  • Every Sunday, the pet shop owner would bring all the cats and dogs that don’t have a chip implanted yet to the veterinarian. The pets should be at least 2 months old to have a chip. The cost for the chip is 200 Yen per animal.

  • The owner keep a record for each animal with its name, date of birth, unique chip identifier, date when the chip was implanted, the price of the pet and a description text for the showroom.

  • Customers can subscribe to an insurance when buying a pet. The insurance allow them to return the pet during 3 months. They would get 80% cash back (excluding the price of the insurance). The insurance cost 10,000 Yen.

  • Customers can take an option on a cat or dog. they would pay 20% of the price up-front and the pet would be given to them after the trip the veterinarian. The pet shop owner would contact the customers on Friday and ask them to come pick the pet on Monday.

USE CASES

  • The pet shop owner would like to have a weekly revenue report. The report should also show the money immobilized (money the store owner might have to return to customers) because of the insurance policies.

  • The owner would like the system to give him a list of pets that should be in the showroom. Pets that have an option on them don’t need to be shown to customers.

I have designed some classes here to implement domain. But, i can’t confirm that I did it correctly.

How can I design this situation Using OOP concept?

Aucun commentaire:

Enregistrer un commentaire