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

Общий раздел => ПО Аналитика => Sparx => Тема начата: kirka от 16 Января 2017, 08:57:02

Название: EA-Почему в диаграмме не отображается extends?
Отправлено: kirka от 16 Января 2017, 08:57:02
Здравствуйте.

В Enterprise Architector с помощью обратного инжиринга, отобразил исходный код приложения в виде диаграммы классов.
Однако ЕА отобразила ассоциативные (association) связи между объектами (как я понял), но не показывается связи "расширения"(extends). Почему не отображается? Как и можно ли в ЕА отобразить подобные связи между классами?

Спасибо
Название: Re: EA-Почему в диаграмме не отображается extends?
Отправлено: Galogen от 16 Января 2017, 22:23:28
Добрый вечер.

Вы что-то путаете. В ДК нет никаких связей расширения, наверное Вы путаете ее с наследованием.
Для того, чтобы помочь Вам нужен исходный код, а также сведения о версии ЕА.
Название: Re: EA-Почему в диаграмме не отображается extends?
Отправлено: kirka от 17 Января 2017, 12:53:03
EA 12 версии.
Да наследование.
ЕА отобразила ассоциативные (association) связи между объектами (как я понял), но не показывается наследование (extends). Почему не отображается (должна отображаться другая стрелка)?
public class SimpleAdapter extends RecyclerView.Adapter<SimpleAdapter.VerticalItemHolder> {

Исходный Код - прилагаю файл.
Скриншот прилагаю.






Добрый вечер.

Вы что-то путаете. В ДК нет никаких связей расширения, наверное Вы путаете ее с наследованием.
Для того, чтобы помочь Вам нужен исходный код, а также сведения о версии ЕА.
Название: Re: EA-Почему в диаграмме не отображается extends?
Отправлено: Galogen от 17 Января 2017, 23:03:02
В присланном вами коде есть только это классы реализованные вами
AlarmReceiver.java
BootReceiver.java
DateTimeSorter.java
LicencesActivity.java
MainActivity.java
Reminder.java
ReminderAddActivity.java
ReminderDatabase.java
ReminderEditActivity.java

Все они и отображаются на диаграмме,
а вот классы-предки - части библиотек, которых у вас в пакете нет, откуда же он возьмет эту информацию и отобразит ее на диаграмме?
Далее Класс SimpleAdapter показан как внедренный объект в которые еще другие внедрены в трассировке показана связь принадлежит.
Попробуйте разделить в разные файлы и еще раз импортируйте код. Думаю парсер кода спотыкается на том, что классы наследники (а также и интерфейсы) записаны в одном файле mainactivity - как гипотеза
Название: Re: EA-Почему в диаграмме не отображается extends?
Отправлено: Galogen от 17 Января 2017, 23:16:11
Еще замечу, не все так просто с вашим кодом

public class MainActivity extends AppCompatActivity {
    private RecyclerView mList;
    private SimpleAdapter mAdapter;

Т.е. MainActivity является по вашей версии родителем SimpleAdapter, одновременно содержит его объект в качестве частного атрибута - отсюда ассоциация между родительским классом и его потомком

Но если попробовать все-таки разделить классы в отдельные файлы, а интерфейсы в отдельные файлы также  - и попробовать реинжиниринг должно получиться, либо надо шаманить с кодом трансформации с java в uml