Модераторы: Се ля ви
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OCL, результат операции collect(), Помогите разобраться с операцией 
:(
    Опции темы
MagTux
Дата 11.4.2011, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 11.4.2011
Где: Кременчуг

Репутация: нет
Всего: нет



Доброго времени суток!
Столкнулся с ограничениями диаграмм классов на языке OCL. Не могу разобраться с операцией collect()
Пример: есть следующая диаграмма классов (набросок):
user posted image
На языке OCL пишем инвариант, например:
Код

context Компания inv:
self.отделы -> collect(сотрудники) -> size() < 100

"отделы" и "сотрудники" - это соответствующие концы связей, должно быть понятно.
self.отделы вернёт коллекцию всех отделов компании

ВОПРОС: Что вернёт операция collect(сотрудники) и чему будет соответствовать результат операции size()?

С вашего позволения начну рассуждать сам.
В стандарте языка UML2 разрешены коллекции коллекций.
Цитата(стандарт Object Constraint Language v2.3)

In UML 1.4 a collection in OCL was always flattened (i.e., a collection could never contain other collections as
elements). This restriction is relieved in UML 2.0. OCL allows elements of collections to be collections themselves. The
OCL Standard Library includes specific flattened operations for collections. These can be used to flatten collections of
collections explicitly.

В то же время операция collect() возвращает коллекцию того же размера, что и коллекция-источник
Цитата(стандарт Object Constraint Language v2.3)

The Bag resulting from the collect operation always has the same size as the original collection.

Выходит, что в примере операция collect(сотрудники) вернёт коллекцию отделов с элементами-коллекциями сотрудников отделов, а операция size() вернёт количество отделов.

Пожалуйста, подтвердите или опровергните мои рассуждения. Нужна достоверная информация по вопросу.
Спасибо за помощь!

P.S. Сам пример обсуждать не стОит. Необходимо не решить задачу, а уточнить результаты операций OCL.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Системный анализ, проектирование и UML"
Се ля ви

Форум "Системный анализ, проектирование и UML" предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем:

• предпроектные обследования объектов автоматизации;

• разработка концепции создания систем;

• моделирование бизнес-процессов (в т.ч. на UML);

• проектирование архитектуры систем;

• управление проектами;

• управление качеством;

• CASE-средства;

• реинжиниринг.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Системный анализ, проектирование и UML | Следующая тема »


 




[ Время генерации скрипта: 0.1063 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.