Моделирование предметной области или диаграмма классов для автосалона

Я пытаюсь нарисовать модель предметной области или диаграмму классов в UML для автосалона. Я застрял с тем, как представить тест-драйв в модели. Один из способов - провести класс по назначению, а затем пройти тест-драйв в качестве подкласса. Дилер также предлагает послепродажное обслуживание автомобиля, поэтому я могу иметь класс встречи / бронирования как суперкласс, а затем обслуживание автомобиля и тест-драйв как два подкласса.

Другой способ - иметь прямую связь класса клиента с классом тест-драйва и классом обслуживания автомобиля в классе назначения.

Дилер также продает новые и подержанные автомобили и их запчасти.

Дилер также предлагает финансирование для продажи автомобиля.

Будет ли класс тест-драйва иметь отношение к классу автомобиля или есть отдельный класс для класса дисплея и класса тест-драйва?

Другой вопрос, как я показываю в модели потенциальных клиентов и их запросы о продаже и обслуживании. Дилер хочет сохранить сведения о потенциальных клиентах, если они позволяют использовать их в маркетинговых целях. Должен ли я иметь два класса: один для клиентов и один для потенциальных клиентов, или этого можно добиться, просто используя атрибут в классе клиентов?


person user29312    schedule 18.10.2008    source источник
comment
Может ли кто-нибудь с правами редактирования исправить это, чтобы оно было более читабельным?   -  person Giovanni Galbo    schedule 19.10.2008


Ответы (4)


Вы действительно можете отличить правильное решение, только имея хороший набор вариантов использования или ожидаемого поведения модели.

Это сообщит, является ли конкретный подкласс действительно точным.

Я вижу, что встреча может включать несколько тест-драйвов, которые сами связаны с отдельными автомобилями. Таким образом, сам тест-драйв — это не что иное, как ссылка от клиента к транспортному средству, которые связаны с назначением.

person Cade Roux    schedule 18.10.2008

test-drive будет содержать информацию, относящуюся только к тест-драйву:

ссылка на клиента - даже это может быть спорным, чтобы включить

ссылка на транспортное средство

продолжительность тест-драйва

местонахождение (возможно, транспортное средство двигалось не в том месте, которое можно было определить по договоренности с владельцем)

температура клиента (горячая или холодная - т. е. клиент казался восторженным)

Комментарии

и Т. Д.

Но чего нет в объекте тест-драйва, так это всего, что связано с назначением — поскольку оно всегда содержится в коллекции — возможно, как часть встречи или какого-либо другого контейнера событий. Теперь, если контейнеры, которые могут содержать тест-драйвы, всегда включают информацию о клиенте, я могу даже не включать ссылку на клиента в объект тест-драйва - в конце концов, это будет лишним.

Это зависит от того, могут ли тест-драйвы происходить в сценариях без встреч — возможно, на «мероприятии по продаже» или «дне открытых дверей» или где-то, где встречи фактически не создаются в сценариях использования — или будут ли проводиться тест-драйвы для нескольких клиентов. внутри контейнера.

person Cade Roux    schedule 19.10.2008

Вторая часть вашего вопроса была забыта (это легко сделать, когда вы задаете два вопроса в одном):

Другой вопрос, как я показываю в модели потенциальных клиентов и их запросы о продаже и обслуживании. Дилер хочет сохранить сведения о потенциальных клиентах, если они позволяют использовать их в маркетинговых целях. Должен ли я иметь два класса: один для клиентов и один для потенциальных клиентов, или этого можно добиться, просто используя атрибут в классе клиентов?

Я думаю, что ваш вариант использования: «Продавец хочет сохранить информацию о потенциальных клиентах, если они позволяют в маркетинговых целях». и самое простое решение — иметь коллекцию списков рассылки, которая содержит имя и адрес каждого потенциального клиента.

person chimp    schedule 20.10.2008

Я думаю, вы упускаете суть. Цель модели домена — познакомить вас с доменом:

-- What kind of entities you have in yor domain?
-- If they are important for your system under desing, 
   what kind of properties they have, how they behave?
-- What kind of business rules they obey?

Остальное детали. Думайте как картограф. Запишите то, что есть. Создайте простую карту, чтобы не заблудиться в этом домене. Не пытайтесь изобретать. Абстрагируйте то, что существует в предметной области: Не бегайте за «причудливыми абстракциями», которые вы создали сами.

Модель предметной области может использоваться в качестве источника для объектно-ориентированного анализа/проектирования. Но их цель не в том, чтобы представлять программные абстракции.

person Novalis    schedule 10.06.2011