Форум Сообщества Аналитиков

Общий раздел => ПО Аналитика => Sparx => Тема начата: riden от 29 Марта 2008, 08:59:19

Название: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: riden от 29 Марта 2008, 08:59:19
Enterprise Architect.
Объект наследуется от некого класса. Можно отобразить наследуемые методы на диаграмме.
Но управлять их видимостью не получается. В меню Set Feature Visibility -> Operation Visibility -> Custom отображаются только "собственные" (то есть созданные непосредственно для этого объекта) свойства объекта.
Так, нет никаких проблем с управлением видимостью атрибутов (операций) классов, но экземпляры классов отображают все атрибуты (операции) и диаграмма захламляется.

Возможно ли, каким либо образом, скрыть требуемые операции или атрибуты у экземпляра класса (объекта), которые наследуются от другого класса (тофтология)?

Если нет никаких решений, есть ли такая возможность в других средствах моделирования?
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Galogen от 29 Марта 2008, 21:07:35
Riden, нельзя ли привести пример и описать проблему более подробно. К сожалению недостаточно информации, чтобы продиагностировать проблему.

Если Вы желаете подавить отображение наследуемых составляющих - это делается просто. Там есть свойство Show atributes/operations но кажется Вы о чем-то ином...

Тафтология (пишется именно так) означает, что формула истинна при всех возможных интерпретациях, т.е. общезначимая или тафтология.

Что Вы имели в виду, говоря о тафтологии, что если класс А наследник класса Б, то естественно, что он наследует все составляющие класса Б?
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: riden от 29 Марта 2008, 22:17:48
Цитировать
Тафтология (пишется именно так) означает, что формула истинна при всех возможных интерпретациях, т.е. общезначимая или тафтология.
Экземпляр класса и есть объект, который наследует все свойства своего класса. Поэтому то, что я написал - тафтология ("атрибуты у экземпляра класса (объекта), которые наследуются от другого класса"). ;) Но я так написал, что бы было понятно всем.

Вродя я выше понятно написал, что хочу. Для наглядности, маленький пример.
См. вложение WinExample2.png - отображается объект с наследуемыми свойствами.
См. вложение WinSFWofObjTest.png - показано, что включена опция отображения наследуемых свойств у объекта.
См. вложение WinAdvanced.png - в меню Advanced (Set Feature Visible объекта) недоступен список свойств для скрытия.

вложение umltest.rar - тестовый файл (проект EA).

Собственно мне нужно скрыть некоторые из атрибутов или операций объекта.
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Galogen от 29 Марта 2008, 22:35:19
Riden, понимаете объект или экземпляр класса и есть конкретный экземпляр, управлять видимостью надо у класса, а у объекта нет. Понятно надеюсь?

Я лишь не понимаю зачем Вам все это?
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: riden от 29 Марта 2008, 22:42:45
Непонятно. Видимость здесь не имеет отношение ни к классам ни к объектам. Здесь, это лишь опции отображения на диаграмме. Скрываются определенные атрибуты (операции) классов для удобства, что бы не захламлялась диаграмма.

Зачем? Очень удобно хранить библиотеку класов в xml или еще каком нибудь формате, экспортировать ее в проект, а затем просто скрывать ненужные методы. Иначе просто невозможно будет построить диаграмму (много атрибутов и методов объектов/классов).

Но с классами все нормально, а с объектами, как видите не получается.

Цитировать
Riden, понимаете объект или экземпляр класса и есть конкретный экземпляр, управлять видимостью надо у класса, а у объекта нет. Понятно надеюсь?
Ну так изменение видимости атрибутов (операций) (короче свойств) классов на диаграмме, никак не отражаестя на видимости свойств объекта. Они если отображаются, то все сразу.
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Galogen от 30 Марта 2008, 01:07:19
Riden, давайте разберемся, что такое объект для начала.

Объект - это экземпляр класса, обладающий КОНКРЕТНЫМ набором свойств.
И что же это означает, а означает это, что есть класс ТЕСТ, а есть кокретный экземпляр этого класса, т.е. самый не на есть конкретный тест, с определенными для него параметрами. Он тем и отличается это объект, что имеет СВОИ и только СВОИ свойства. Ферштейн зи?

Зачем объект показывают на ДК, а чтобы показать конкретный пример для конкретного понимания. Однако если есть понимание, зачем его показывать - этот объект - вместе с порождающим его классом?

Вот что я и не понимаю, а скрыть методы просто, свойства диаграммы и выбрать сапресс нужных свойств, но все равно полностью не догоняю в чем таки необходимость и велью
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: riden от 30 Марта 2008, 04:18:37
Цитировать
Зачем объект показывают на ДК, а чтобы показать конкретный пример для конкретного понимания. Однако если есть понимание, зачем его показывать - этот объект - вместе с порождающим его классом?
Можно и вместе с пораждающим классом, сверху - метамодель классов в отдельном boundary, а снизу модель Activity, это уж как мне удобно.
А здесь я изобразил класс и объект вместе, что бы показать, что у класса отображается только один метод, который мне нужен, а у обекта отображаются сразу все, и скрыть ненужные методы не получается.

Честно говоря, моделировать я начал недавно...

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

И мне нужно что бы отображались только актуальные методы, для данного алгоритма (диаграмма Activity).

Зачем отображать объекты? Ну, я думаю, для диаграмм Activity.

А вот скрыть нужные свойства объекта у меня не получается, например, что бы у объекта отображался только метод run(). Просто потому, что их, этих свойств, нет в списке Features объекта, так как это не его собственные свойства, а свойства класса.

Цитировать
Вот что я и не понимаю, а скрыть методы просто, свойства диаграммы и выбрать сапресс нужных свойств, но все равно полностью не догоняю в чем таки необходимость и велью
Просто?, а вот у меня не получается. Тогда если вам не сложно, прикрепите данный пример, но с отображением только одного метода (run() ) у объекта, но этот метод должен наследоватся (как и все остальные "свойства").
Короче это должен быть нормальный человеческий объект, а не гибрид.
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Galogen от 30 Марта 2008, 17:13:31
Riden, ничем помочь не могу.

Попробуйте обратится на форум ЕА. Правда он англоязычный. Но по всей вероятности, вряд ли вам помогут. Объект либо отображает все, либо ничего
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: riden от 30 Марта 2008, 23:45:20
Цитировать
Если нет никаких решений, есть ли такая возможность в других средствах моделирования?
Собственно вопрос.

Или может это вообще ненужно, и в остальных средствах - также?
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Galogen от 31 Марта 2008, 11:00:45
Или может это вообще ненужно, и в остальных средствах - также?

Может:) В остальных средствах - еще сложнее. Там вообще не отображаются наследуемые составляющие. При этом  они отображаются в списке наследуемых (только если позволяет видимость). Так что ЕА Вам просто позволяет делать то, что другие иструменты нет.

А вообще, никто не мешает Вам лично проделать нужные эксперименты, а потом рассказать нам
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: alys от 06 Июня 2008, 03:13:26
самое неприятное то...что вышеупомянутая тафталогия-тафтология пишется как тавтология. :)
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Galogen от 06 Июня 2008, 09:06:03
самое неприятное то...что вышеупомянутая тафталогия-тафтология пишется как тавтология. :)
это ценное замечание, конечно тавтология :)
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Irr от 06 Июня 2008, 11:00:43
Тавтология тавтологией, а способ сделать то, что хотел riden, есть:
Выделяем элемент, щелкаем правой кнопкой мыши, выбираем Set Feature Visibility, в открывшемся окне в левой верхней части (там где списки визуализации для атрибутов и операций), жмем кнопку Custom, и в очередном окошке ставим галки у тех свойств, которые мы видеть не хотим.
На всякий случай, у меня это есть в версии ЕА7, вполне вероятно, что в более ранней этого не было.
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: bas от 06 Июня 2008, 11:35:02
Ира,

Ну ты шаман :) Может тебе уже представительство ЕА открывать в России.
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Irr от 06 Июня 2008, 11:56:34
Я не волшебник, я только учусь! (с)
Перед (или вместо) открытием представительства я бы с удовольствием съездила на родину кенгуру и ЕА, в гости к Спарксу :-)
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: Galogen от 06 Июня 2008, 12:04:44
Ира, имхо, ты совершенно о другом :)
Название: Re: EA - скрытие наследуемых атрибутов, операций объектвов на диаграме?
Отправлено: IAFedorov от 30 Ноября 2010, 20:25:13
Возможно ли, каким либо образом, скрыть требуемые операции или атрибуты у экземпляра класса (объекта), которые наследуются от другого класса (тофтология)?
Добрый день, коллеги.
Нашел еще один способ которым можно скрыть атрибуты или операции родительского класса после того как установлен флаг Inharited Features \ ShowAttributes.
Шаг 1. Для атрибутов или методов которые хотим скрыть при выводе списка на дочерних диаграммах необходимо установить стереотипы например добавить пользовательский стереотип "HideOnChild".
Шаг 2. На форме Feature Visibility в поле Hide Stereotyped Features добавляем идентификаторы стереотипов которые нужно скрыть на этом классе или объекте. Причем это правило распространяется не только на атрибуты или свойства родительского класса, но и на все атрибуты и свойства помеченные стереотипом перечисленном в поле.

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