Intereting Posts

Моделирование типов с помощью UML на основе ассоциативных массивов

Допустим, есть подсистема PHP, которая использует только ассоциативные массивы для хранения каких-то структурированных данных. Таким образом, на самом деле нет механизма на уровне языка для ограничения этих структур, но вы хотите определить их в своем дизайне с помощью UML.

Например:

Контакт может выглядеть как ассоциативный массив в PHP:

[ 'name' => 'John Doe', 'birth' => '2000-04-01', 'email' => 'john.doe@company.com', 'address' => [ 'street' => '123 Main St', 'city' => 'Anytown', 'state' => 'NY', 'zip' => '1234', 'country' => 'US' ] ] 

Поэтому я подумал, что диаграмма в UML может выглядеть так:

введите описание изображения здесь

Но кто-то может критиковать, что это неправильно, потому что он показывает два класса, а не два ассоциативных массива. Таким образом, мы могли бы использовать (пользовательский) стереотип, чтобы показать, что это не обычный класс, но который (и как их определить)?

Или задать вопрос более часто: что было бы / правильным способом определить типы таких данных с помощью UML?

Solutions Collecting From Web of "Моделирование типов с помощью UML на основе ассоциативных массивов"

Проще говоря: ваш дизайн правильный. То, что вы «могли» сделать, – сделать Address встроенным классом Contact :

введите описание изображения здесь

И если вы этого хотите, вы можете показать, что он должен быть реализован как ассоциативный массив:

введите описание изображения здесь