We are writing a program that the manager of Joe's Automative Shop will use to print service quotes for customers. Here is a description than an expert (maybe Joe) has written: Joe's Automative Shop services foreign cars and specializes in servicing cars made by Mercedes, Porsche, and BMW. When a customer brings a car to the shop, the manager gets the customer's name, address, and telephone number. The manager then determines the make, model, and year of the car, and gives the customer a service quote. The service quote shows the estimated parts charges, estimated labor charges, sales tax, and total estimated charges. Things we may care about: * Physical objects * Role played by a person * Results of a business event, e.g., a service quote * Recordkeeping items, such as customer histories. List of nouns (but don't include duplicates): address BMW car cars customer etc. Eliminate some nouns from the list: Why? 1. some of the nouns refer to the same things car, cars, foreign cars - general idea of a car. Just keep "car" Joe's Automative Shop and shop. Just keep "shop". 2. some nouns we can ignore We can cross shop off the list. Our program only deals with different customers all at the same shop. We aren't dealing with aspects of the shop itself. We can cross off the manager because the problem statement does not tell us to process any information about the manager. If there were multiple managers and the problem description asked us to record which manager served which customers, then we wouldn't want to cross manager off. So, now we cross off: Joe's Automative Shop manager 3. some of the nouns might represent objects, not classes. Mercedes, Porsche, and BMW can be eliminated as classes because they are instances of a car class. BMW Mercedes Porsche 4. Some might represent simple values that can be assigned to a variable and do not require a class address estimated labor charges estimated parts charges make model name sales tax total estimated charges year etc. What's left? car customer service quote We'll have 3 classes! The Customer Class: attributes: __name, __address, __phone number methods: __init__() set_name(name) set_address(address) set_phone(phone) get_name() get_address() get_phone() The Car Class attributes: __make, __model, __year methods: __init__() set_make(make) set_model(model) set_year(year) get_make() get_model() get_year() The ServiceQuote Class: attributes: __parts_charges __labor_charges methods: __init__() set_parts_charges(charges) get_parts_charges() set_labor_charges(charges) get_labor_charges() get_sales_tax() get_total_charges() [servicequotes.py]