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

Общий раздел => ПО Аналитика => Sparx => Тема начата: bas от 05 Февраля 2009, 17:16:47

Название: Enterprise Architect: Ссылка из элемента на диаграмму
Отправлено: bas от 05 Февраля 2009, 17:16:47
Народ,

А подскажите следующее:
1. Есть у меня одна Д и два Элемента. Как сделать так, чтобы нажимая на любой из двух элементов, я бы попадал на одну нужную мне Д???
2. Почему protected\package атрибут родительского Класса отображается у дочернего класса?
Название: Re: Enterprise Architect: Практика использования
Отправлено: Irr от 06 Февраля 2009, 00:00:17
1. Есть у меня одна Д и два Элемента. Как сделать так, чтобы нажимая на любой из двух элементов, я бы попадал на одну нужную мне Д???
А диаграмма лежит под каким-то из этих 2 элементов?
Название: Re: Enterprise Architect: Практика использования
Отправлено: bas от 06 Февраля 2009, 08:28:17
А диаграмма лежит под каким-то из этих 2 элементов?
Ну к примеру так. Или лежит в другом месте.
Название: Re: Enterprise Architect: Практика использования
Отправлено: Irr от 06 Февраля 2009, 10:34:01
Если лежит в другом месте, то никак. Можно рядом гиперлинку сделать, при нажатии на нее, будет переход
Название: Re: Enterprise Architect: Практика использования
Отправлено: bas от 06 Февраля 2009, 12:52:11
Т.е. делаем две Д, одну Д подсовываем под один элемент и там все изображаем, а другую Д - под другой элемент, и на второй Д делаем ссылку на первую. Так? Если так, то до этого я сам дошел :)

По второму моему вопросу:
2. Почему protected\package атрибут родительского Класса отображается у дочернего класса?
Наверное никто не понял, что я имел в виду :) Помня курс ОО программирования, мне кажется, что protected атрибуты родительского Класса не доступны из дочернего Класса. Я прав? А в хелпе ЕА сказано, что package атрибуты не видны в дочернем Классе, если последний находится в другом пакете. Так вот если дочерний Класс находится в другом пакете, то в нем не должны быть видны protected\package атрибут родительского Класса, если мы ставим галку в дочернем Классе: Frature visibality -> Inherited Features -> Show attributes.

И еше 3ий вопрос:
3. При генерации документации RTF по классу не выгружаются наследуемые атрибуты в дочернем классе. Как это можно поправить?
Название: Re: Enterprise Architect: Практика использования
Отправлено: Irr от 06 Февраля 2009, 13:42:55
Гуру ООП подсказывают, что protected атрибуты предка должны быть видны классу-наследнику, а вот атрибуты package должны быть видны только в этом же пакете.
Про 3 вопрос пока ничего сказать не могу :-(
Название: Re: Enterprise Architect: Практика использования
Отправлено: bas от 06 Февраля 2009, 14:37:40
Ну разобрались с Ирой. Я перепутал private с protected:
Цитировать
private – Член класса может использоваться только функциями-членами данного класса и функциями-"друзьями" своего класса. В производном классе он недоступен.
protected – То же, что и private, но дополнительно член класса с данным атрибутом доступа может использоваться функциями-членами и функциями-"друзьями" классов, производных от данного.
В общем, по ООП в дочернем\производном Классе не должны быть видны private и package атрибуты родительского Класса, если дочерний Класс находится в другом пакете.
Так что ИМХО это баг ЕА.

Эд, если не сложно, зашли в поддержку ЕА запрос:
Цитировать
Pls clarify my 2 quesions:
1. I add private and package attributes into Class A. Then create new Class B into another package and Class B inherits from Class A by using generalization connection. Set check box at Frature visibality -> Inherited Features -> Show attributes of Class B. And finally I see private and package attributes of Class A at Class B. According to OO Programming rules private and package attributes should not be visible into inherited Class. How to avoid visibility of private and package attributes at inherited Class?
2. When I generate RTF report of Class B then report does not have inherited protected and public attributes of Class A. How to include inherited attributed into report?
Название: Re: Enterprise Architect: Практика использования
Отправлено: Galogen от 09 Февраля 2009, 11:27:53
Эд, если не сложно, зашли в поддержку ЕА запрос:
Запрос я отправил. Правда сам я вопроса не совсем понял.

Что ты пытаешься спросить? Что  у наследника класса не должны быть видны атрибуты типа package? Или не должны вообще быть видны атрибуты private также?

Далее в каком конкретно отчете ты не получаешь того что ожидаешь, какой шаблон, какие операции ты выполняешь.

При обращении в саппорт все-таки следует показать все сови действия и не плохо их проиллюстрировать, хотя бы выкладыванием xml

Название: Re: Enterprise Architect: Практика использования
Отправлено: Galogen от 18 Февраля 2009, 14:43:28
Эд, если не сложно, зашли в поддержку ЕА запрос:

ответ
In response to your two issues.

1.  Unfortunately the Inherited Features options are designed to display
all features regardless of scope.  There is currently no option to
exclude the private/package attributes on the inheriting class.  I will
submit a feature request on your behalf so that this is considered for
implementation in a future release of EA.  Note that looking at the
class element you can still identify private/package attributes by the
"-" or "~" symbols before the attribute name.

2.  This also is unfortunately not currently possible in EA.  The
Inherited Features option is only a visual representation on the
diagram, it has no effect on the RTF report.  Also it is not possible
via template or option to include inherited attributes with an element's
own attributes.  I will submit a feature request suggesting this
functionality be added also.  Currently (using your example) you would
need to include both elements in your report, listing their attributes
separately, and possibly include the diagram (with Inherited Features
Visible) as a reference.

Sorry we can't be of more help.  If you have further questions or issues
please let us know.
Название: Re: Enterprise Architect: Практика использования
Отправлено: bas от 18 Февраля 2009, 17:06:14
Эд,

Спасибо. А ты говорил, что не поймут :) Правда от этого не легче :(