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

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

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

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

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

Будет ли класс testdrive иметь связь с классом транспортного средства или существует отдельный класс для класса display и testdrive?

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

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

Giovanni Galbo 19.10.2008 03:47
Сила классов Java: сравнение с языком C
Сила классов Java: сравнение с языком C
Абстракция" - это процесс упрощения сложных сущностей или концепций реального мира с целью их применения в форме программирования. В Java класс...
1
1
5 094
4

Ответы 4

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

Это проинформирует, является ли конкретная подклассификация действительно точной.

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

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

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

ссылка на автомобиль

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

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

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

Комментарии

и т.п.

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

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

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

Another question is how do I show potential customers and their inquiries about sale and service in the model. A dealer wants to save details of potential customers if they allow for marketing purposes. Shall I have two classes: one for customers and one for potential customers or it can be achieved just by using an attribute in customer class?

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

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

-- 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?

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

Domain model can be used as a source for object oriented analysis/design. But their aim is not to represent software abstractions.

Другие вопросы по теме