Может ли множественность ассоциации меняться со временем?

У меня есть требование к UML: множественность ассоциации может меняться в зависимости от времени. У меня есть некоторые мнения по этому поводу, например, использовать список для хранения истории множественности, создать новую ассоциацию, как только множественность изменится. Но кажется, что все они не являются хорошим выбором. Так может ли кто-нибудь дать мне несколько предложений? Большое спасибо.


person newman    schedule 16.08.2019    source источник
comment
Из вашего вопроса неясно, является ли изменение кратности частью (не предвидимой и не поддающейся определению) эволюции вашего приложения/системы или известно (например, 0..5 по пятницам и 0..3 остальные время) и часть требований?   -  person Gerd Wagner    schedule 16.08.2019
comment
Спасибо за ваш ответ. На данном этапе, я думаю, это первый случай. Но независимо от того, первый это случай или более поздний, я просто хочу знать, есть ли решение UML по этому вопросу. Если нет, то скажите мне, каково ваше решение; если есть, еще скажите мне, каково ваше решение. Большое спасибо.   -  person newman    schedule 16.08.2019
comment
Привет, Вагнер, спасибо за ваше редактирование, большое спасибо.   -  person newman    schedule 16.08.2019


Ответы (2)


Следует рассмотреть два случая: изменение множественности может произойти как часть (непредвидимой и непредвиденной) эволюции программной системы или если оно может быть известно (например, 2..5 по пятницам и 1..3). оставшееся время) и быть частью требований к системе, которую необходимо спроектировать и построить.

Если изменение множественности является частью (непредвидимой) эволюции программной системы, то вы не можете сделать для него проект и, следовательно, вы можете только приспособить его к модели вашей системы, когда оно произойдет. Эволюция программной системы в основном связана с эволюцией ее требований. Но когда вы моделируете систему, у вас есть только текущие требования в качестве основы для создания информационной модели с классами, ассоциациями и множествами. Эволюция требований подразумевает соответствующую эволюцию информационной модели, включая множественности ассоциаций. Таким образом, со временем вы получите историческую последовательность моделей, описывающих/определяющих вашу систему.

Если временные изменения кратности известны во время разработки, то единственный способ уловить это в модели — это использовать наименее щедрое ограничение кратности, допускающее вариацию (например, 1..5), и описать вариацию (в простой форме). английский) в поле ограничения, прикрепленном к соответствующему концу ассоциации.

person Gerd Wagner    schedule 16.08.2019

Ну, это довольно просто: достаточно присвоить ассоциации кратность. Если нижняя и верхняя границы не указаны, это будет 0..*. Если у вас есть минимум, например. 1 было бы 1..*. То же самое касается верхнего предела (замените * на то, что должно быть).

То, как вы это реализуете, полностью зависит от кодера. Вы просто указываете ограничения здесь в UML. Например. если у вас есть кратность 0..*, кодер, скорее всего, выберет массив/коллекцию переменной длины. Если это 1..2, это может закончиться name1, name2 как одиночными переменными.

person qwerty_so    schedule 16.08.2019