Общий раздел > Примеры

Применение множественной классификации

(1/6) > >>

Slav:
Здравствуйте Уважаемые! Хотелось бы услышать ваше мнение по вопросу множественной классификации. Попробую обрисовать ситуацию на примере выдуманной системы. Есть некоторая организация (предприятие). На базе организации существует парк специализированных автомобилей. Каждый из таких автомобилей оборудован аппаратурой. В качестве аппаратуры выступают персональные компьютеры (ПК), а так же аппаратура сетевого доступа (АСД). АСД управляется ПК и передает по беспроводной сети данные с этого ПК. Внутри отдельно взятого автомобиля организуется локальная вычислительная сеть (ЛВС). Соответственно через одну АСД могут передаваться данные с нескольких ПК. На каждом из ПК авторизован один или несколько человек. Всё вышеописанное представлено диаграммой классов на рисунке ниже.

Теперь несколько изменим условия, расширив набор аппаратуры. Добавим переносные ПК и переносные АСД. То есть переносной ПК подключается к переносной АСД. Таким образом, некоторый человек вне автомобиля, может свободно перемещаясь иметь доступ к сети. Изменим диаграмму классов в соответствии с введёнными условиями. 

При разработке диаграммы классов я использовал множественную классификацию. Аппаратура классифицируется, как с точки зрения типа (ПК или АСД), так и с точки зрения расположения (стационарная в автомобиле или переносная). На данной диаграмме присутствуют дискриминаторы классификация, которые явно указываю, что объект класса Аппаратура должен быть либо ПК либо АПД и в то же время являться либо переносным либо стационарным. Но при таком подходе появляется ряд проблем. Во-первых, ассоциация ВходитВ между СтационарнаяАппаратура и ЛВС не задаёт явного ограничения на то, что ЛВС организуется только ПК и не может включать АСД. Ну а во-вторых, это проблемы реализации на языках программирования. Если у вас есть более элегантные решения данной проблемы, то было бы очень интересно их выслушать!

bas:

--- Цитата: Slav от 16 Января 2007, 19:10:42 ---Теперь несколько изменим условия, расширив набор аппаратуры. Добавим переносные ПК и переносные АСД. То есть переносной ПК подключается к переносной АСД. Таким образом, некоторый человек вне автомобиля, может свободно перемещаясь иметь доступ к сети. Изменим диаграмму классов в соответствии с введёнными условиями. 

--- Конец цитаты ---
А где же у вас на последней Диаграме указано, что "некоторый человек вне автомобиля, может свободно перемещаясь иметь доступ к сети"?


--- Цитировать ---На данной диаграмме присутствуют дискриминаторы классификация, которые явно указываю, что объект класса Аппаратура должен быть либо ПК либо АПД и в то же время являться либо переносным либо стационарным. Но при таком подходе появляется ряд проблем. Во-первых, ассоциация ВходитВ между СтационарнаяАппаратура и ЛВС не задаёт явного ограничения на то, что ЛВС организуется только ПК и не может включать АСД.
--- Конец цитаты ---
Ну Вы сами себе притиворечите! Зачем тогда ТС объеденять в сеть когда в сеть должны быть объеденены ПК?!

Т.е. в итоге вам нужно убрать ассоциацию м/у ТС и ЛВС и м/у СтационарнойАппаратурой и ЛВС. И просто связать ЛВС и ПК

Galogen:
А вообще про множественную классификацию можно услышать чуть подробнее. Насколько я знаю UML не имеет средств для выражения этой сути. А языки программирования как это реализуют?
Просто я немного профан(а может быть много:-) ) в этом...

Denis Beskov:

--- Цитата: Galogen от 16 Января 2007, 21:06:56 ---А языки программирования как это реализуют?
--- Конец цитаты ---
Через механизм множественного наследования, который кстати не поддерживается мажорами (С#, Java), т.к. в теории это красиво и правильно, а на практике приводит к ряду серьёзных проблем.

bas:

--- Цитата: Денис "Майевтик" от 17 Января 2007, 00:20:29 ---Через механизм множественного наследования, который кстати не поддерживается мажорами (С#, Java), т.к. в теории это красиво и правильно, а на практике приводит к ряду серьёзных проблем.

--- Конец цитаты ---
А как же иерархия классов в библиотеке J2EE?

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
Перейти к полной версии